test(e2e): extend catch-up equivalence corpus to wrapper + reverse/primary classes (#202)#232
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C9RTnbCyhqEUSPc7xCK76p
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9fee5966e9
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| catch-up boundary. One name is wrapped and burns owner-controlled fuses; the | ||
| other is wrapped, unwrapped back to registrar authority, and then used in a | ||
| reverse/primary-name claim. Full route snapshots and normalized-event rows |
There was a problem hiding this comment.
Cite the ENSv1 behavior claims
This new docs entry describes ENSv1-specific behavior—wrapping, burning owner-controlled fuses, unwrapping back to registrar authority, and reverse/primary-name claiming—but it does not include pinned .refs citations. The repo rule requires every ENSv1 behavior claim in docs to cite the upstream source, so this entry would be rejected and leaves reviewers unable to audit the scenario description against the pinned contracts.
AGENTS.md reference: AGENTS.md:L42-L42
Useful? React with 👍 / 👎.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C9RTnbCyhqEUSPc7xCK76p
Closes #202 (follow-up from the PR #198 review). The catch-up-vs-live output-equivalence scenario (#193/#208) certified the #157 divergence containment only on an ENSv1-finalized-single-name corpus. This extends it to the highest-risk classes.
Added
A wrapper + reverse/primary fixture on the same forced-catch-up vs live-intake comparison: register
catchupeqwrapped.eth,wrap_eth_2ld,set_wrapper_fuses(fuse bits1|4), plus a reverse record + primary-name claim. Asserts Full route-snapshot and normalized-event equality via the existingharness/perturb.rsmachinery, with the #208 receipt-reconstructed preimage assertion preserved. The original single-name scenario is retained.Result
No real catch-up-vs-live divergence surfaced —
Fullequality holds unchanged on the wrapper + reverse corpus; no containment exception was added. This strengthens the #157 guarantee: the two-phase automatic replay produces byte-identical catch-up output even for wrapper/reverse-name handling, not just the single-name slice.Test-only (catchup_equivalence.rs, perturb.rs subjects, README); e2e suite green.
🤖 Generated with Claude Code
https://claude.ai/code/session_01C9RTnbCyhqEUSPc7xCK76p