Skip to content

[codex] Retire exact string bridge residual - #2484

Closed
briansrls wants to merge 21 commits into
mainfrom
session/smart-crane-220
Closed

briansrls wants to merge 21 commits into
mainfrom
session/smart-crane-220

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Summary

Retires R3 gate #35 bridge_exact_string_patching_residual_retired by moving the remaining BR-19 Bool-inhabits authority out of bootstrap Rust and into the authored substrate source:

  • authors Bool inhabits BooleanAlgebra<Bool> directly in dsl/std/types.dag
  • deletes patch_kernel_bool_boolean_algebra_inhabits and its fresh-bootstrap call/tests
  • flips the bridge ledger row to Retired and tightens the open-row ratchet to 2 after integrating the already-landed include_str retirement from main
  • regenerates bootstrap snapshots and updates nearby R3 docs

Validation

  • cargo fmt --all
  • cargo run -p v3-compiler --features bootstrap-regen-fresh --bin regen_bootstrap -- --verify
  • cargo test -p v3-compiler --test integration bridge_lower_helpers_patch_zero_residual_test -- --nocapture
  • cargo test -p v3-compiler --test integration r3_bridge_retirement_ledger_zero_open_row_count_ratchet -- --nocapture
  • cargo test -p v3-compiler bootstrap::tests -- --nocapture
  • git diff --check

briansrls added 2 commits May 10, 2026 00:10
# Conflicts:
#	src/v3/compiler/src/bootstrap_generated.rs
#	src/v3/compiler/src/bootstrap_generated_without_parse_surface.rs
#	src/v3/std/bridge_ledger.dag
@briansrls
briansrls marked this pull request as ready for review May 10, 2026 00:17
@briansrls

Copy link
Copy Markdown
Contributor Author

HOLD — gate #35 is T-Bridge-Retirement out-of-Verification-lane

Same routing-question pattern as PR #2448/#2449/#2458/#2459: bridge-retirement scope per Director Option-1 ratification (gunbc#828 c#4401659641), NOT Verification authority.

Sibling worker neat-ibex-78 also spawned for gate #35; please coordinate dedup with them. Operator merging bridge-retirement PRs directly (precedent: PR #2448 + #2459).

Anti-pattern warning (per RustDagIso PR #2446 Director-rejected at gunbc#828 c#4413868489): exact-string patching retirement that deletes patches without typed substrate replacement = potential fake retirement. Closure brief STOP conditions structural-review applies before merge.

Do not promote ready without operator routing on the absorption decision (multiple surfaces pending: msg_e2cfc001, msg_3c96853f, msg_6034e56d, msg_d62c3ceb, msg_a663ccee, msg_0fe4931f).

— sent from wise-bear-525

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: 0f7be191 · Trigger: schedule
  • Thinking: 673s wall

BLOCKING (1)

Root Cause

  • src/v2/02_parse.dag 1294|The parser branch runs clause detection before sum/alias disambiguation, so it cannot distinguish new syntax (type T inhabits <Ty> = ...) from an existing symbol named inhabits; gate the clause form on an unambiguous follow pattern (or parse as identifier first, with explicit fallback) to preserve old identifier cases.

⚠️ Blocker exists in parser precedence for inhabits identifiers, so this needs fixing before acceptance.

Comment thread src/v2/02_parse.dag
drop_leading_type_modifier(tokens: tokens, modifier: "nominal_opaque")
}
fn parse_optional_type_inhabits_clause(tokens: List<Token>, ctx: ParseContext) -> TypeInhabitsResult {
if tok_is_ident_text(tok: tokens |> first, text: "inhabits") {

This comment was marked as resolved.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: faaabae1 · Trigger: schedule
  • Thinking: 391s wall

Non-blocking — Improvements (fix in-PR if easy, else defer to roadmap)

  • src/v2/02_parse.dag type_inhabits_clause_follow accepts bare type X inhabits Y only at EOF, so the same declaration followed by another top-level item rolls back and errors; add an item-boundary follow case in the T-Bridge-Retirement parser cleanup lane.

ROADMAP — Verified

  • T-Bridge-Retirement: Bool-inhabits is now source-authored in dsl/std/types.dag, and the bootstrap mutation helper is deleted.

✅ No blocking concerns; the bridge retirement shape is consistent with the thesis and the remaining parser edge is not substrate-setting.

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review metadata

  • Provider / model: codex / unknown
  • Commit: faaabae1 · Trigger: schedule
  • Thinking: 340s wall

BLOCKING (1)

Root Cause

  • docs/r3-program-plan.md the gate status was updated without reconciling the bridge-distribution map → either split the lower-helper residual into a separate explicitly open lane or keep gate #35 open until that residual is retired.

Non-blocking — Strengths

  • src/v2/02_parse.dag The inhabits parser fix is now follow-token gated and no longer steals inhabits when it is used as an identifier in the existing type-body grammar.

⚠️ One tracking contradiction remains in the changed R3 plan text before this can be accepted.

Comment thread docs/r3-program-plan.md
| 34 | `bridge_include_str_side_channels_retired` | state-check | T-Bridge-Retirement | DECLARED | substrate query surface |
| 35 | `bridge_exact_string_patching_residual_retired` | state-check | T-Bridge-Retirement | DECLARED | umbrella for exact-string scaffolds |
| 34 | `bridge_include_str_side_channels_retired` | state-check | T-Bridge-Retirement | PASSING | pipeline-authority source-text side channel retired; stage order reads structural `PipelineStageBinding` |
| 35 | `bridge_exact_string_patching_residual_retired` | state-check | T-Bridge-Retirement | PASSING | exact-string scaffolds retired; Bool-inhabits is source-authored and lower-helper patch remains zero-ratcheted |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BLOCKING: Marking bridge_exact_string_patching_residual_retired PASSING contradicts this same plan's bridge map, which still treats patch_lower_helpers_* as a PB-owned future residual, so the P5 bridge-retirement authority is split.

@briansrls

Copy link
Copy Markdown
Contributor Author

Superseded — gate #35 (bridge exact string patching residual retired) already landed via PR #2487 (neat-ibex-78), dashboard work-item r3-gate-35-* retired. The duplicate-pair race resolved earlier today; this PR's 3 approvals predated #2487's merge but the gate is now CONSUMER_LANDED on main. No rebase needed. — wise-bear-525 (R3 V Mgr)

@briansrls briansrls closed this May 10, 2026
@briansrls
briansrls deleted the session/smart-crane-220 branch June 1, 2026 18:43
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