Skip to content

docs(lib): correct which guard term rejects a leaked cancelled pending node - #295

Merged
hardyjosh merged 1 commit into
mainfrom
fix/lib-pause-guard-doc
Aug 10, 2026
Merged

hardyjosh merged 1 commit into
mainfrom
fix/lib-pause-guard-doc

Conversation

@hardyjosh

@hardyjosh hardyjosh commented Aug 10, 2026 •

Copy link
Copy Markdown
Collaborator

Adversarial finding libs C2 (mutation-test run @ c371a23). Stacked on #294.

Comment-only. The pending-branch guard's pendingEffective != 0 term is a provably-dead equivalent mutant — the > block.timestamp re-assertion already rejects a leaked cancelled node. Corrects the NatSpec to attribute the rejection correctly (and notes the != 0 twin IS load-bearing on the completed branch). No behaviour change.

🤖 Generated with Claude Code

hardyjosh commented Aug 10, 2026 •

Copy link
Copy Markdown
Collaborator Author

Merge activity

  • Aug 10, 4:33 PM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Aug 10, 4:42 PM UTC: Graphite rebased this pull request as part of a merge.
  • Aug 10, 4:42 PM UTC: @hardyjosh merged this pull request with Graphite.

@hardyjosh
hardyjosh force-pushed the fix/signed-price-hardening branch from a9fa039 to 99740ac Compare August 10, 2026 16:35
@hardyjosh
hardyjosh force-pushed the fix/lib-pause-guard-doc branch from bbbfec2 to 5bf24e5 Compare August 10, 2026 16:35
@hardyjosh
hardyjosh changed the base branch from fix/signed-price-hardening to graphite-base/295 August 10, 2026 16:39
@hardyjosh
hardyjosh changed the base branch from graphite-base/295 to main August 10, 2026 16:40
…g node

Adversarial-pass finding (libs C2) on LibCorporateActionsPause. The pending
branch guard `pendingCursor != NODE_NONE && pendingEffective != 0` attributed
the rejection of a leaked cancelled node (effectiveTime == 0) to the
`!= 0` term, but that term is logically dead here: the inner
`pendingEffective > block.timestamp` re-assertion already rejects a zero (or
past) effectiveTime, since `0 > block.timestamp` is false. Deleting the
`!= 0` conjunct is a provably equivalent mutant — no test can distinguish the
two programs. Corrected the comment to state that the `> block.timestamp`
re-assertion is what closes the phantom-node hole on this branch, and that the
`!= 0` twin IS load-bearing on the COMPLETED branch (where the re-assertion is
`<= block.timestamp`, which 0 satisfies). Comment-only; no behaviour change.

191 tests; fmt/slither clean.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013hi8wq9YkjWPcGACXCEKeL
@hardyjosh
hardyjosh force-pushed the fix/lib-pause-guard-doc branch from 5bf24e5 to ed0fb1d Compare August 10, 2026 16:41
@hardyjosh
hardyjosh merged commit c7c22c3 into main Aug 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant