Repository navigation
Keep declaration shells as namespace-graft body units - #10963
Conversation
…le is not treated as a lost forest. The collector flattened parse projections into a declaration's children, so an empty body looked dissolved whenever no function survived as a ComputationNode. Stop flattening at those production identities; a top_level_item wrapper with no unit still refuses. Co-authored-by: Cursor <cursoragent@cursor.com>
…of a third emitted roster. The collector now asks dag_surface_is_top_level_item_alternative_emitted, which joins the choice nonterminals to the grammar roster. That drops the extra import_block row that was not an alternative of dag_production_top_level_item. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed review 63219: deleted — sent from fierce-tern-547 |
…ent. The names live on dag_grammar_top_level_item_expr; the comment only points at that join. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closure before/after for #10963 at head Verdict: REGRESSION. 68 → 153 refusing files. The graft repair discharges cause B for its 25 files, but the trees it now produces fail the post-normalize well-formedness law for 90 modules that were ACCEPTED at the baseline. Per-file outcomes for the 25 cause-B files:
Non-target: Regressed (previously accepted, now refusing at
Reading: keeping |
…tten is empty. Conj requires uniquely Named edges. Injecting every type/data/import shell as dag_surface_type_decl (repeated) made previously accepted modules fail well_formed. Flatten is the admitted shape when nonempty; an empty flatten with surviving top-level-item alternatives becomes one Cardinality forest. Regression: text.dag through normalize, and a two-decl-plus-fn synthetic. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closure before/after for #10963 at head 68 → 43. Zero regressions. All 99 baseline-accepting modules remain accepted; no file outside cause B changed cause; nothing moved to an earlier stage. The 90-file regression from the previous head ( Cause B ( This meets the stated bar (all 25 cleared or advanced; all 99 accepting modules still accepted; no earlier-stage movement; the synthetic lost-wrapper red is your fixture's to keep red). Ready to leave draft. |
…witness. Floor typecheck refuses Primitive(String) at lex_walk_artifact's source parameter; chars is the existing inhabitance path used by tokenize claims. Co-authored-by: Cursor <cursoragent@cursor.com>
Module-level data ran a grammar-wide fold on every load, which pushed native_decl_selection over the floor CPU line. Membership still derives from dag_grammar_top_level_item_expr, only on the empty-flatten graft path. Co-authored-by: Cursor <cursoragent@cursor.com>
…load. Eager membership over the grammar on every node made native_decl_selection miss the floor CPU line. Derive the unit identities once per empty flatten. Restore the long-lane file so interpreted 16s controls stay declined rather than planned as changed witnesses. Co-authored-by: Cursor <cursoragent@cursor.com>
…d types. The changed-witness observer typechecks the graft module; if-branches of Primitive(Symbol) vs Optional refused the floor before any claim ran. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closure before/after for #10963 at head 68 → 43. Zero regressions. Cause-relative outcome for the 25 target rows: 25 RefusalCleared, 0 AdvancedToNewCause, 0 StillBlockedByTargetCause, 0 RegressedToEarlierCause — all 25 discharge. Non-target files whose cause changed: 0. Previously accepted members now refusing: 0. After-histogram: parse_g0_tokens_remain 26, body_lowering_reason_match_arm_navigation_refused 8, tokenize_lex_e1_unrecognized_char 8, normalized_tree_reason_wrapper_retention_not_normalized 1. Identical outcome to the receipt at Consequence (ruled): because the closure reduction reproduces, the long source-level witnesses at this head that still assert |
…ldless atom.
A non-well_formed unit becoming Atom{id} with empty children was the empty-observation drop again: presence of a production identity without the declaration. Cardinality already admits positional children; well_formed of interiors is the unit's own fact.
Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63268 (dashboard-only, /api/reviews/63268/artifacts/stdout.log)
— sent from fierce-tern-547 |
… walk. namespace_graft_fold_collect_children only called namespace_graft_collect_body_edge over children; the outer name already is that walk. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63283 (dashboard-only, /api/reviews/63283/artifacts/stdout.log)
— sent from fierce-tern-547 |
Those identities still expected namespace_graft_body_dissolved_refused after the reconstruct path landed, so the executing real-source controls contradicted the repair. They now require normalize accept and absence of that reason. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63307 (dashboard-only, /api/reviews/63307/artifacts/stdout.log)
— sent from fierce-tern-547 |
…raft. well_formed alone was green for a childless Atom of the same identity; the discriminating RED is that grammar_production_identity_node_projection targeting dag_surface_type_decl is still in the grafted tree. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 63318 (dashboard-only, /api/reviews/63318/artifacts/stdout.log)
— sent from fierce-tern-547 |
5000e01 to
c49b443
Compare
c49b443 to
70fd2db
Compare
Summary
namespace_graft_body_dissolved_refusedwas firing for every module that declared types/data/imports but no function: flattening parse-projection spines into those declaration shells left an empty grafted body whiledag_surface_top_level_itemstill survived.Repair: nonempty flatten is kept (the admitted Conj of uniquely Named edges). Empty flatten with surviving top-level-item alternatives reconstructs one Named forest. A leftover
dag_surface_top_level_itemwith no unit still refuses (lost forest). Header-only still accepts.GitHub head (final):
70fd2db818b— merge of5000e014(includesc8fd2c9long-oracle rewrite) with main267d69b8(D1 #10946 and G #10961). Merge commit only; freeze.Receipts
e915a1df2a4on mainb0a6d53c— 68 → 43, 25/25 namespace_graft RefusalCleared, zero regressions, identical to 8da3ae1. Keep declaration shells as namespace-graft body units #10963 (comment)70fd2db818b(re-taken after Cut the seed out of the emitted closure's dependency graph #10988). Until that comment lands, e915a1d is not the landing receipt.Commits after 8da3ae1 (why each exists)
4d2fdb41— long witness passed host Primitive String intolex_walk_artifact; floor typecheck red untilchars(s:).e092e45d—dag.dageager-eval of grammar-wide unit-id fold on every load;native_decl_selectionhit the 500ms CPU line.f33bd800— moved that derivation intonamespace_graft(empty-flatten only) and restored the long-lane file so the 16s controls stay declined as long-lane, not planned-as-changed.e915a1df—if production.name == namemixed Primitive(Symbol) vs Optional; floorChangedWitnessObservationFaileduntil both arms are Optional.Test plan
70fd2db818b(after Cut the seed out of the emitted closure's dependency graph #10988)70fd2db818b(run 34557396822 floor was host page-thrash on srv4, not a witness flip)witness_type_fn_module_grafts/witness_type_only_module_grafts(c8fd2c9) assert accept and notnamespace_graft_body_dissolved_refusednamespace_graft_lost_top_level_item_without_unit_refuses_RED; type-decl unit keeps identity-projection (namespace_graft_type_decl_unit_is_not_dissolved_holds); nonempty flattennamespace_graft_nonempty_flatten_stays_well_formed_holdsci_layer_roots); they are not a false over-ceiling assertion. Censoredfloor_cost_debtrows were not added after the merge-only ruling; parent run on this head held 19 known-red, 0 budget-refused.Merge order: #10988 → D2 first after it. Tally: build+floor green + one approval + no REQUEST_CHANGES on this head + the merged-head receipt.