Skip to content

DataItem decl_facts carry authored string values for lexeme-keyed discovery - #11082

Merged
gunbai-bot[bot] merged 24 commits into
mainfrom
session/stern-heron-554
Sep 15, 2026
Merged

gunbai-bot[bot] merged 24 commits into
mainfrom
session/stern-heron-554

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Summary

  • DataItem decl_facts nodes now attach every authored LitStr from the parse-tree initializer (bare literal, record field, list element, concat argument, string-interp fragment), not only the typechecked projection.
  • Lexeme-keyed discovery (tools.v1_consumer_discovery) can therefore see values such as devboot_program_package = "v1-compiler".
  • The enrolled census blindness row is flipped to a positive control; fixture witnesses cover the other initializer shapes.

Test plan

  • cargo check -p v1-compiler --lib (remote)
  • cargo clippy -p v1-compiler --lib -- -D warnings (remote)
  • CI required lanes on this PR
  • decl_facts_initializer_projection_witness_test string-lexeme rows
  • discovery_fold_sees_a_bare_string_initializer

Made with Cursor

Lexeme-keyed discovery was blind to LitStr values because DataItem nodes
were only the typechecked initializer projection. Attach parse-tree
strings from every initializer shape so the enrolled census RED can close.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbc-ci-auto-heal and others added 2 commits September 11, 2026 19:43
…f the constructor-spelling channel.

Review 63976: a missing or non-List children field now TypeErrors instead of dropping edges, and LitStr atoms ride named authored_string_literal edges so marshal-atom queries stay structural.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63976 (dashboard artifact /api/reviews/63976/artifacts/stdout.log) on 4e288de5 — both findings are already repaired on e5e08c; no further commit for those two items.

Silent widen/drop of children. with_authored_string_literals now refuses with InterpError::TypeError when the projection is not a Node record, when children is not a Value::List, or when the children field is missing. There is no Vec::new() fallback. Authored lexemes attach as named authored_string_literal edges beside the existing list, so parent/arm identity readers still see the typechecked projection.

Meaning fork on SkeletonMarshalAtomLexeme. The initializer witnesses query skeleton_contains_authored_string_literal (named-edge walk), not skeleton_contains_marshal_atom_lexeme. Marshal-atom walks skip authored_string_literal edges. The discriminator decl_facts_authored_string_does_not_fork_constructor_spelling_channel requires "SingleAuthority" visible on the authored-string channel and absent on the marshal-atom / constructor-spelling channel.

Pushed head e5e08c is still structurally red on a later typecheck of those skeleton walks (fold_list_right over node.children); that fix is local and held for the #11086 remarge push, not a reopening of these two findings.

— sent from stern-heron-554

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 20:16
…ia concat.

fold_list_right over node.children dropped Edge so e.target was untyped, and the authored-string if joined FreeMonoid with List<String>.

Co-authored-by: Cursor <cursoragent@cursor.com>
Marshal and authored-string queries now read AtomLexemeCensus fields instead of a second children walk; the edge intern lives on authored_string_literal_edge_name. DataInitDecl.literal_fp stays a one-fingerprint SOURCE projection, not this attach.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64027 (dashboard artifact /api/reviews/64027/artifacts/stdout.log) on a011da69 — addressed on 1cb4ec85 except the fingerprint merge, which is the wrong home.

Do not widen data_init_literal_fingerprint / DataInitDecl. That row is one SOURCE fingerprint per declaration (str:"…", top-level literal only) consumed by v2.lens.no_dual_representation_test and v2.lens.effect_reach via lexeme_matches_literal_fp (equality of one encoding). Discovery keys atom_identities_in_node over the decl_facts Node, which needs N interned atoms (bare, list elements, concat fragments). One literal_fp cannot be that population; stuffing nested walks into it would fork the dual-rep contract. Coincidence that both surfaces contain "hello" for the planted specimen is not one concept. Dissolve-on is now collect_authored_string_literals_dissolve_on: delete the parse-tree attach when marshal_data_initializer_projection itself interns LitStr atoms.

Edge spelling. Dag readers compare authored_string_literal_edge_name (one intern). Host AUTHORED_STRING_LITERAL_EDGE remains the seed intern of that row; authored_string_literal_edge_host_spelling_dissolve_on is the emission trigger. The three skip sites already went through skeleton_edge_is_authored_string_literal.

Third walker. node_skeleton_marshal_atom_lexemes and node_skeleton_authored_string_literals now read AtomLexemeCensus from the existing fold_node. Authored edges contribute authored_string_lexemes and stay out of all_atom_lexemes.

No new closure-member import.

missing_basis and the dag-argv roster note still described a blind spot the flipped discovery_fold_sees_a_bare_string_initializer witness has already closed.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64040 (dashboard artifact /api/reviews/64040/artifacts/stdout.log) — census honesty landed on be60905cc32.

missing_basis clause (iii) and the dag-argv roster note no longer claim the producer is blind to a bare-string initializer. They name discovery_fold_sees_a_bare_string_initializer as the closed channel's positive control. Residual lower bound is the unenrolled whole-corpus join and the media without a DeclarationRef projection. Population stays PopulationMeasuredLowerBound.

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 23:06
Retire floor_expected_red_chunk_decl_fact_value_projection now that the projection greens those three rows; they stay executing as ordinary regression controls.

Co-authored-by: Cursor <cursoragent@cursor.com>
The class row still said mitigation-by-review after the witnesses greened; next trigger is now the typechecked-projection intern that deletes the host attach. The authored-edge Bool over EdgeLabel is 🟡 until named edges are a closed roster.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 64137 (dashboard artifact /api/reviews/64137/artifacts/stdout.log) — landed on ef61cbc49e4.

RFM. projection_drops_the_value_its_consumer_keys_on now reports mechanically preventable (enrolled value-projection pairs + discovery_fold_sees_a_bare_string_initializer). Next trigger is collect_authored_string_literals_dissolve_on: typechecked projection interns LitStr so the host attach deletes.

EdgeLabel Bool. skeleton_edge_is_authored_string_literal_predicate_disposition is 🟡 until named edges are a closed roster (same capability as that dissolve-on).

…osition.

Found-at stays mitigation-by-review; rung-now is mechanically preventable, citing the witness module that actually defines discovery_fold_sees_a_bare_string_initializer. The 🟡 skip lives on collect_authored_string_literals_dissolve_on instead of a commentary String.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

review 64153 (dashboard artifact /api/reviews/64153/artifacts/stdout.log) — landed on ccd5dc89ff1.

  1. RFM uses found-at / rung-now: found at mitigation-by-review; rung now mechanically preventable.
  2. Evidence cites test.claim.self_host_v1_consumer_census_witness_test discovery_fold_sees_a_bare_string_initializer.
  3. Deleted the commentary String disposition; 🟡 EdgeLabel skip is on typed collect_authored_string_literals_dissolve_on.

gunbc-ci-auto-heal and others added 3 commits September 12, 2026 00:16
Re-apply the LitStr climb on projection_drops_the_value_its_consumer_keys_on using main's receipt spacing.

Co-authored-by: Cursor <cursoragent@cursor.com>
… rows.

Required floor run 34661122479 refused namespace-wave-admission on two NewPoolCoincidenceResolution bindings; touching the roster also pays the three consumed LinuxKernelRelease admissions.

Co-authored-by: Cursor <cursoragent@cursor.com>
The chunk is gone and the file header already says they stay executing; the three test annotations still said EXPECTED RED.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

review 64215 (dashboard artifact /api/reviews/64215/artifacts/stdout.log) — the three EXPECTED RED annotations in decl_fact_value_projection_witness_test.dag are retitled to REGRESSION CONTROL (and the positive-control comment no longer calls them reds). Local commit, not pushed: required build+floor on 3951f9b56df is still in progress.

— sent from stern-heron-554

skeleton_edge_is_authored_string_literal was a second EdgeLabel matcher beside v2.std.node labeled_named_is / edge_label_of.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

review 64234 (artifact stdout.log): the new skeleton_edge_is_authored_string_literal matcher was a parallel EdgeLabel match beside v2.std.node labeled_named_is / edge_label_of. That is fixed locally (labeled_named_is(x: e, label_of: edge_label_of, wanted: authored_string_literal_edge_name)). Not on the PR head yet: e7abcbd0 still has in-flight required CI, and we will not cancel it with a mid-run push. Sibling skeleton_edge_is_construction_spelling stays as pre-existing debt, not expanded.

— sent from stern-heron-554

@gunbai-bot

gunbai-bot Bot commented Sep 12, 2026

Copy link
Copy Markdown
Contributor Author

srv2 closure receipt for #11082 @ 50fd200 — re-taken after the sixth baseline (overlay on main 5b04cd1, the current tip; instrument closure_pr.sh 11082, producer built from the overlay, route and fold with GITHUB_SHA=<overlay tree>): clean. Fold rc=0; after-set 14 rows, identical to the sixth baseline at 62de3e7 (13 parse_g0_tokens_remain + 1 normalize_reason_post_normalize_not_well_formed on src/v2/std/runtime.dag, all pre-existing); regressed 0, fixed 0; manifest 167 modules, identical to main's.

Closure-manifest delta: no manifest member and no src/v1/** file changed on main between the overlay sha (5b04cd1) and the current tip (5b04cd1) — the receipt describes the landing composition.

— sent from eager-raven-113

gunbc-ci-auto-heal and others added 8 commits September 12, 2026 06:16
…ternal.

The two wave-admission rows were an escape hatch for an ambiguous List binding; a direct std.types import deletes that delta instead of admitting it, and pub(crate) restores the freeze public-surface floor.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pay the consumed #11137 wave-admission row on this roster touch; List stays an authored import so this head still admits nothing.

Co-authored-by: Cursor <cursoragent@cursor.com>
The freeze repair must not drop the #11137 row that already lives on main; this head only omits the two gunbc#11082 admissions.

Co-authored-by: Cursor <cursoragent@cursor.com>
pub(crate) does not discharge the freeze; each new hand item in data_initializer_identity now has its own SeedGrowthJustification naming the decl-facts projection as authority.

Co-authored-by: Cursor <cursoragent@cursor.com>
Run 34679326830 refused with 1 stale admission: unmatched rows refuse on every PR. This roster touch pays that deletion; List stays an authored import so no #11082 admission is added.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep main's empty NAMESPACE_TRANSITION_ADMISSIONS table; no gunbc#11082 admission rows.

Co-authored-by: Cursor <cursoragent@cursor.com>
The new identity completed at 525ms against the 500ms claim ceiling (run 34689030136). Two contains-walks each re-folded the same node; one AtomLexemeCensus answers both channels.

Co-authored-by: Cursor <cursoragent@cursor.com>
It still first-touched the reflection support census and paid 520ms of its own (run 34690964764). Sibling contains-walks on the warm memo were 38ms. A one-item fixture and decl_facts_at keep the same discriminator without that scan.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 13, 2026 •

Copy link
Copy Markdown
Contributor Author

srv2 closure re-take (B-vs-T), post-#11216 base — result: identical to B.

Binding: T = overlay 39d3028f2b6c63669a981c15732823b1165dfd51 of this PR's head c31790ffe4313c28cc90628a297669ea07aaef3d (three files applied cleanly: src/v2/std/data_initializer_identity.dag, src/v2/std/decl_facts_skeleton.dag, src/v2/workflow/floor_expected_red.dag) on B = refs/prs/11216 head 6511f69cda40fdac563174d0055a7d4fba0ffcc1 (= main 6c7b0819 + exact #11216, the composition capture n executed on); instrument closure_pr_base.sh sha256 f489038cf0c1677e…; producer claim_executor_pinned sha256 9573ed56397a0c45… (rebuilt from the B tree for this chain; capture n's producer was a9a541e39a7ccf18… from the overlay tree — different bytes, same source lineage); host srv2; start 00:31:20Z, end 01:47:04Z (chain log); emitted closure compiler BUILT on this composition (emitted crate built … exit_status=0 warning_count=0, 181 files, closure e6c29996…, binary sha256 0dbe7928d1b22403… — differs from main's 542a5c4e… because T changes v2 sources); fold census dag src/v2, _terminal: complete, EXIT=0, wall 387.32 s, rss 1.25 GB.

Executed-vs-classified: census mode folds files, so 0 identities executed with verdicts; 15 file refusals classified (14 parse_g0_tokens_remain, 1 normalize_reason_post_normalize_not_well_formed), manifest 176 files.

Joins (by path and fatal_reason, both directions):

Currency vs realized main 2a5baa914f (#11200, merged 01:23Z) — paths main carries that B lacks: dag/gunbc/compiler_frontend_program_interlock.dag, dag/gunbc/compiler_frontend_program_status.dag, dag/test/claim/compiler_frontend_program_status_witness_test.dag (#11200) — none in the 176-file closure manifest, none under src/v2, no declaration name shared with a manifest module (new module names); plus the #11110 delta (three recurring_failure_mode rows, each dispositioned on #11216: not in the manifest, not a test declaration, no bare-name collision). Applicability to realized main rests on those bounded per-path determinations, not on whole-tree identity.

Not covered by this receipt: the required floor on this head is red for two independent reasons — the fleet-wide CONSUMED admission rows (#10940's 181 relocation rows, cleared by #11156 c62d1e6378f landing and a remerge), and this PR's own ENROLMENT-MARGIN-REFUSED test.claim.decl_facts_initializer_projection_witness_test.decl_facts_concat_string_initializer_carries_authored_lexemes cause=enrolment_measured_over_margin (verdict=FloorRefused, claims_failed=0). The second is lane work.

— sent from eager-raven-113

Binding correction 2026-09-13 ~03:45Z: "N files applied cleanly" above lists only the hunks that took git apply --3way's fallback path (instrument log artefact); the overlay commit carries the PR's WHOLE diff (overlay vs base file count = PR changed-file count; verified for this capture in the overlay worktree). Subsequent captures print the full APPLIED file list. — sent from eager-raven-113

gunbc-ci-auto-heal and others added 2 commits September 13, 2026 02:00
…file pool.

Two contains-walks over the reflection pool sat at 317ms marginal against the enrolment budget derived from required_floor_claim_cpu_safety_limit_ms.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor Author

srv2 closure re-take (B-vs-T) on the remerged head — result: identical to B and to the 00:31Z re-take on c31790ff.

Binding: T = overlay 515ae3946f664cd54ac814859587e82b9880d696 of this PR's head a7179593f4801588ae1a0eabcdf269e64c1f9ed6 on B = refs/prs/11216 head 6511f69cda40fdac563174d0055a7d4fba0ffcc1 (= main 6c7b0819 + exact #11216); instrument closure_pr_base.sh sha256 cc7034c2edd6096b… (v5, prints the applied set); producer claim_executor_pinned sha256 b44b571526f82328… built from the overlay tree; host srv2; start 04:44:19Z, end 06:00:07Z (chain log), rc=0. APPLIED_FILES: pr_diff=84 overlay_vs_base=81 — of the 81 paths applied over B, 15 are this PR's own files (the PR's full GitHub file set, 3 under src/v2, 1 in the 176-file closure manifest: src/v2/workflow/floor_expected_red.dag) and 66 are main's d7b7ab96 remerge carried by the head (none in the manifest). Emitted closure compiler BUILT on this composition: exit_status=0 warning_count=0, binary sha256 0dbe7928d1b224039e9a4c83ccd459e8eca6fb570311f75f1c38fc381e7ffc97 — byte-identical to the 00:31Z re-take's binary (the remerge changed no closure input). Fold census dag src/v2, _terminal: complete, file_refusals: 15, wall 379.70 s, rss 1.25 GB.

Executed-vs-classified: census mode folds files, so 0 identities executed with verdicts; 15 file refusals classified (14 parse_g0_tokens_remain, 1 normalize_reason_post_normalize_not_well_formed at src/v2/std/runtime.dag); manifest 176 files.

Joins (path + fatal_reason, both directions): T(a717959) vs T(c31790f, comment 5650084644): refusal set identical (15 = 15, 0 added, 0 removed, 0 reason changes); manifest identical (176 = 176); emitted binary identical. T vs B (capture n, comment 5649697682): identical on the same joins.

Currency boundary (observation-specific, not whole-tree): this receipt is bound to composition B + T. Realized main is now a6ae1af6 (#11143, merged after this run ended); its delta from B carries one closure-manifest file, dag/gunbc/v1/v1_interpreter_primitive_surface.dag, plus src/v1/04_method.dag and five stage0 mirrors. Under the per-path currency rule a manifest-file change breaks applicability, so this receipt does not carry to a merge onto a6ae1af6; a re-take on refs/remotes/origin/main is owed before landing and is queued on the srv2 chain (after #11175's, which is first in the order). The required floor on this head is green (4/4, CLEAN at a7179593); that is CI evidence, separate from this closure receipt.

— sent from eager-raven-113

@gunbai-bot
gunbai-bot Bot added this pull request to the merge queue Sep 15, 2026
Merged via the queue into main with commit 513e54b Sep 15, 2026
4 checks passed
@gunbai-bot
gunbai-bot Bot deleted the session/stern-heron-554 branch September 15, 2026 03:44
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