Skip to content

Preserve held disposition in changed-witness standing - #9739

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
session/swift-carp-293
Aug 30, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
session/swift-carp-293

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 30, 2026 •

Copy link
Copy Markdown
Contributor

Work item node://adhoc-40803be0-645 (parent neat-swift-219).

The changed-witness projection collapsed KnownRedHeld into PlannedAndPassed, producing the contradictory line observed on #9727 (standing=planned-and-passed outcome=known-red-held). This changes the .dag authority first: ChangedWitnessExecutionStanding now has a distinct PlannedAndKnownRedHeld constructor, realized on the host wire as planned-and-known-red-held. Ordinary passing identities remain planned-and-passed.

This standing is not display-only: it feeds changed_witness_standing_blocks and therefore the required-floor decision. The new held constructor is explicitly non-blocking, preserving the sanctioned expected-red behavior while making the projected label honest. Exhaustive .dag matches carry the new arm, so omitted classifications refuse compilation.

RED/control evidence:

  • planned_with_known_red_held_verdict_stands_green now requires the distinct held constructor; it would fail under the prior collapse.
  • planned_with_passed_verdict_stands_green keeps the ordinary pass label.
  • passed_and_known_red_held_are_green proves both decision polarities explicitly.
  • Seed projection test asserts the exact planned-and-known-red-held wire label and outcome=known-red-held.

Verification:

Composition: #9725 also adds a constructor and match arms to floor_changed_witness.dag. The changes are semantically independent and trivially composable; this PR lands FIRST; #9725 then integrates the resulting main, preserving both exhaustive arms (PlannedAndKnownRedHeld from here, DeclinedRoutedToWetLane from #9725).

Hand-Rust receipt: v1_compiler.cli_run.required_floor_runner.changed_witness_projection_rows and emit_changed_witness_projection are ExistingSeedItemModified under gunbc.seed_growth_admission.SeedGrowthChangeDisposition; this change only re-arms those existing functions for the new modeled standing constructor. It adds zero module-scope Rust items and no new seed capability, so no SeedGrowthJustification row is due.

@gunbai-bot

gunbai-bot Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

Addressed both findings from review 57572 in commit 14cb7cf.

  • Replaced all five shape-recursive Boolean helpers with one exhaustive standing_kind projection, and converted every test to compare that canonical observation. This shrinks the test vocabulary from five coproduct traversals to one.
  • Added the explicit hand-Rust receipt to the PR body: the Rust edits only modify the existing changed_witness_projection_rows and emit_changed_witness_projection items (ExistingSeedItemModified under gunbc.seed_growth_admission.SeedGrowthChangeDisposition), add zero module-scope Rust items, and introduce no new seed capability. Therefore no SeedGrowthJustification row is due.

— sent from swift-carp-293

@gunbai-bot
gunbai-bot Bot merged commit 3b8eaf5 into main Aug 30, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/swift-carp-293 branch August 30, 2026 11:24
@briansrls
briansrls restored the session/swift-carp-293 branch August 30, 2026 11:25
@gunbai-bot
gunbai-bot Bot deleted the session/swift-carp-293 branch August 30, 2026 11:29
gunbai-bot Bot pushed a commit that referenced this pull request Aug 30, 2026
…ding arms

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019LUsJiEMrVVJYjbAXXvKtc
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.

0 participants