Repository navigation
Two next-rung notes sat at end-of-file, naming no subject, and the required parse phase refused every branch - #10719
Merged
Merged
Conversation
…quired parse phase refused every branch main is parse-red at 59a692a and has been since that merge. The required run's parse phase refuses before the floor executes, so EVERY branch cut from current main fails for a reason its own diff does not contain -- observed on PR #10717, whose six changed files are all under dag/gunbc/live_deploy and dag/test/claim/live_deploy. src/v2/lens/unit_modeling.dag:148:1 src/v2/lens/testgen.dag:2164:1 source annotation names no subject: no module item follows it Section 4c admits a standalone leading `//` block attached to a MODULE-SCOPE DECLARATION. Both notes were the last line of their file, so nothing followed them to attach to. The citations themselves are correct -- gunbc.guarantee_stall.unit_modeling_carrier_totality_stall and gunbc.guarantee_stall.testgen_anchor_generator_totality_stall both exist -- and each describes the `construction_justification` declaration immediately above it, whose WallAfterGrounding class is exactly the thing section 4b(2) obliges to name a next-rung trigger. So each note moves above the declaration it describes. Nothing is deleted and no citation changes; the annotation simply leads its subject instead of trailing it. WHY THIS IS ITS OWN PR: PR #10717 is under a keep-it-tightly-scoped ruling, and folding an unrelated two-file repair into it would be the scope creep that ruling exists to prevent. This also unblocks every other branch, not only that one. Verified by execution: both entries resolve with zero diagnostics through `gunbc run`, the strict route that produced the refusal. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019iXPtAqzPaNBZbaaM5rxrY
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 7, 2026
Pick up #10719 parse-phase fixes (dangling end-of-file annotations) that red the required floor on every PR still based on the pre-fix main.
1 of 5 tasks
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 7, 2026
…ject fix. docs/design-failure-modes.md is the merge-base projection; heal derives the merged authorities. Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Sep 7, 2026
The required floor refused on call-shape mismatch: callees_from_node declares only node and terminal_callee_symbols. Main is red on the same three sites after #10719 cleared the dangling-annotation parse block. Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls
pushed a commit
that referenced
this pull request
Sep 7, 2026
…kes (#10730) callees_from_node declares (node, terminal_callee_symbols); the three call sites in fn_index_depth_agreement still passed param_names, so the required floor lane refused on every branch with a call shape mismatch. A signature change landed without its callers. The exclusion the argument fed is the one this module's own annotation already records as excluding nothing: no live declaration references its own parameter by a lexeme that also names a declaration. So the callers are corrected to the current two-parameter shape rather than the parameter being restored. param_names_of stays imported deliberately. It is still used independently by the collision measurement at line 118, so dropping the import to "clean up" after removing these three arguments would trade one break for another. Not verifiable by ordinary compilation: gunbc compile --source-root dag --source-root src/v2 does not reach this lens module -- it reports 37 blocking errors on main and none of them are these. Only claim_executor's floor lane observes the subject, so the floor is the oracle for this repair and a clean local compile establishes only that nothing else broke. The two end-of-file annotation failures in the same lane were already repaired by #10719 and are not part of this change. Claude-Session: https://claude.ai/code/session_01XapoExtJQauXkqJCDS9dGs Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Sep 7, 2026
…kes (#10730) callees_from_node declares (node, terminal_callee_symbols); the three call sites in fn_index_depth_agreement still passed param_names, so the required floor lane refused on every branch with a call shape mismatch. A signature change landed without its callers. The exclusion the argument fed is the one this module's own annotation already records as excluding nothing: no live declaration references its own parameter by a lexeme that also names a declaration. So the callers are corrected to the current two-parameter shape rather than the parameter being restored. param_names_of stays imported deliberately. It is still used independently by the collision measurement at line 118, so dropping the import to "clean up" after removing these three arguments would trade one break for another. Not verifiable by ordinary compilation: gunbc compile --source-root dag --source-root src/v2 does not reach this lens module -- it reports 37 blocking errors on main and none of them are these. Only claim_executor's floor lane observes the subject, so the floor is the oracle for this repair and a clean local compile establishes only that nothing else broke. The two end-of-file annotation failures in the same lane were already repaired by #10719 and are not part of this change. Claude-Session: https://claude.ai/code/session_01XapoExtJQauXkqJCDS9dGs Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
briansrls
pushed a commit
that referenced
this pull request
Sep 8, 2026
…10709) * Add Rust-explicit emitted-fn projection to compile_fixture. Witnesses could only see that a fixture compile completed, not what it emitted, so a truncated service parameter at the top of a call chain was indistinguishable from a correct emit. FixtureCompileCompleted now carries EmittedRustFnSignature rows (source identity + ordered parameter names, no types), with a GREEN/RED pair proving the projection discriminates on a clean sibling. Co-authored-by: Cursor <cursoragent@cursor.com> * Clarify ordered_parameter_names: emit layout fact, membership is the durable assert. Order is emit_func_params order by contract; asserting on position couples a witness to emitter layout. Prefer emitted_rust_fn_has_parameter unless the subject is that layout. Co-authored-by: Cursor <cursoragent@cursor.com> * State projection ceilings and land a shallow service-chain consumer. Document that nothing refuses if emit_func_params and the projection disagree (order is convention), and that names-only cannot see type-only changes. Add a depth-3 service-chain consumer with a no-service RED sibling so the instrument has a real executing consumer on this PR. Co-authored-by: Cursor <cursoragent@cursor.com> * Name the order join's next-rung trigger; mark names-only as permanent. Order below ceiling: trigger is deriving the projection from the same source emit_func_params reads; regenerating emit_rust / crossing #10688 is the reason unbuilt, not the trigger. Names-only is a deliberate permanent boundary with no lift trigger. Co-authored-by: Cursor <cursoragent@cursor.com> * Route projection param/resource names through emit_ident. Membership asserts must see the same identifier spelling emit_func_params binds — snake-case, sanitization, reserved-word escape — not the raw authored or registry name. Co-authored-by: Cursor <cursoragent@cursor.com> * Restate the projection as resolved-registry grain, not emit observation. Review 61614: membership and order are unjoined to emit_func_params; the carrier and consumer must not claim emitter-binding facts. Document registry subject, expand the stall to membership, cite parent admission, keep emit_ident spelling fidelity at this grain. Co-authored-by: Cursor <cursoragent@cursor.com> * Align self-test wording with resolved-registry grain. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop in-diff stall admission claim; admission must resolve outside the diff. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop remaining in-diff stall admission claim from EmittedRustFnSignature docs. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop invalid param_names arg from callees_from_node call sites. The required floor refused on call-shape mismatch: callees_from_node declares only node and terminal_callee_symbols. Main is red on the same three sites after #10719 cleared the dangling-annotation parse block. Co-authored-by: Cursor <cursoragent@cursor.com> * Enroll #10706 OutsideModeledGuarantee absences in PLANTED_CONTROL_CITATIONS. The stamps deliberately cite capabilities that must stay absent (still_outside is DeclarationRefDeclarationAbsent only). Adding or deleting those citations both erase the boundary; site-grain planted-control enrollment is the missing other half. Fixture proves PlantedControlNoLongerRefuses fires and corpus_findings suppresses the grounding site. Co-authored-by: Cursor <cursoragent@cursor.com> * Withhold #10706 OutsideModeledGuarantee join witnesses as censored cost debt. They call guarantee_boundary_still_outside over witness_layer_roots and hit cpu_deadline before any verdict (~33-41s vs 500ms); siblings that skip the join stay on the floor. Co-authored-by: Cursor <cursoragent@cursor.com> * State EmittedRustFnSignature as a §3b middle-value divergence with a technical reason. The fork of emit_func_params remains real and named; the reason (registry-grain consumer surface without coupling this instrument to emit_rust/#10688) admits it without an in-diff approval claim. Document the resource-arm source drift the tip reviews measured. Co-authored-by: Cursor <cursoragent@cursor.com> * Drop PLANTED_CONTROL enrollment and its censored cost-debt follow-on. Those four #10706 absences are a next-rung-trigger population owned by #10704 (NEXT_RUNG_TRIGGER_CITATIONS), not planted controls; enrolling them here forked the roster meaning and armed a red on capability success. Restore the empty-roster climb comment. Instrument projection work is untouched. Co-authored-by: Cursor <cursoragent@cursor.com> * Rename registry projection off emitted_* to ResolvedRustFn*. The rows are filled from item_registry before emit_resolved_for_target; keeping an emitted_* carrier name was a §3 meaning fork. Helpers and FixtureCompileCompleted field follow. Parallel emit_func_params walk stays the named next-rung, not this rename. Co-authored-by: Cursor <cursoragent@cursor.com> * Rename projection witnesses off emitted_* to match ResolvedRustFn* carrier. Module paths and filenames were still test.claim.emitted_rust_fn_*; that reintroduced the §3 meaning fork the carrier rename removed. Co-authored-by: Cursor <cursoragent@cursor.com> * Update module lines and citations after resolved_rust_fn_* witness rename. The prior commit moved the files; this aligns module paths, test names, and the instrument's discriminating-RED citation with the ResolvedRustFn* carrier. Co-authored-by: Cursor <cursoragent@cursor.com> * Refuse bare-name registry collisions in resolved_rust_functions projection. Walk per TypedModule.item_registry instead of the bare-name-merged graph registry, overlay expanded service names when the module still owns the row, and require Found before asserting a parameter is absent so Absent cannot green REDs. Co-authored-by: Cursor <cursoragent@cursor.com> * Keep per-module resolved_rust_fn rows across bare-name reuse. Review 61777: aborting the instrument on cross-module bare-name collision turns legal multi-module programs (and subjects that should CompileRefuse) into InstrumentRefused. Rows stay keyed by (owner_module, declaration_name); overlay the merged registry only when it still names this module. Co-authored-by: Cursor <cursoragent@cursor.com> * Move witness match-arm annotations to module-item grain. Floor parse refuses body-level //; the Absent≠lacks-parameter notes belong above the enclosing fns. Co-authored-by: Cursor <cursoragent@cursor.com> * Omit colliding bare-name rows from resolved_rust_functions. Review 61828: falling back to the un-expanded TypedModule ItemInfo on a merge loser silently drops propagated service_names while emit_func_def still binds the survivor's via bare-name lookup. Omit every Fn/Func row whose bare name appears in more than one module — lookup Absent, not InstrumentRefused, not a wrong signature. Co-authored-by: Cursor <cursoragent@cursor.com> * Follow #10724 witness rename in floor_cost_debt enrollment. CI merge hit stale_cost_debt: the apply_script_* identity was renamed on main while the roster still enrolled the old spelling. Co-authored-by: Cursor <cursoragent@cursor.com> * Note #10724 rename beside the floor_cost_debt measurement comment. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: gunbc-ci-auto-heal <gunbc-ci-auto-heal@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
main is parse-red, and every branch cut from it inherits the failure
mainat59a692ae8fails the required run's parse phase, which refuses before the floor executes. So every branch cut from current main goes red for a reason its own diff does not contain — observed on #10717, whose six changed files are all underdag/gunbc/live_deployanddag/test/claim/live_deploy.The repair
§4c admits a standalone leading
//block attached to a module-scope declaration. Both notes were the last line of their file, so nothing followed them to attach to.The citations are correct —
gunbc.guarantee_stall.unit_modeling_carrier_totality_stallandgunbc.guarantee_stall.testgen_anchor_generator_totality_stallboth exist — and each describes theconstruction_justificationdeclaration immediately above it, whoseWallAfterGroundingclass is exactly what §4b(2) obliges to name a next-rung trigger.So each note moves above the declaration it describes. Nothing is deleted and no citation changes; the annotation leads its subject instead of trailing it.
Why this is its own PR
#10717 is under a keep-it-tightly-scoped ruling, and folding an unrelated two-file repair into it would be the scope creep that ruling exists to prevent. This also unblocks every other branch, not only that one.
Evidence
Both entries resolve with zero diagnostics through
gunbc run— the strict route that produced the refusal.claim_batch --hermeticdoes not enforce this class, which is why it can pass locally while CI's strict preparation refuses.🤖 Generated with Claude Code
https://claude.ai/code/session_019iXPtAqzPaNBZbaaM5rxrY