Skip to content

test(v4): end-to-end cross-language matrix claim — python→ts add slice, fail-closed at ParseTree→TargetModel bridge - #4791

Merged
briansrls merged 3 commits into
mainfrom
session/cool-newt-570
Jun 13, 2026
Merged

briansrls merged 3 commits into
mainfrom
session/cool-newt-570

Conversation

@briansrls

@briansrls briansrls commented Jun 12, 2026 •

Copy link
Copy Markdown
Contributor

Summary

One end-to-end cross-language test claim — the executable form of the N+M-not-N×M
thesis. It walks the add slice from Python source IN through the language-neutral
Node core out to TypeScript source OUT, composing only EXISTING machinery, and
fails closed at the exact link that is not yet realized (no silent skip, no shim).

New file: src/v4/test/claim/manual/cross_language_add_python_to_typescript.dag.

No new machinery. Only claim/data files + composition of existing fns. No
compiler-stage code, no std combinator, no language-model row. The missing middle is a
reported FINDING, surfaced as a typed check object (self_host.dag fail-closed pattern),
not an improvised bridge.

Chain status (each link verified by execution)

# Link Status
1 Python source text → Outcome<ParseTree> PROVEN — python_mvp1_grammar_parse_accepted = true
2–4 ParseTree → grammar-relation rows → TargetModel/core node FAILS CLOSED — no fn carries a parse-side ParseTree to the emit-side core node a TargetModel serializes. Named: ParseTreeToTargetModelBridgeCheck / ^parse_tree_to_target_model_bridge_not_realized
5 TS emit → executable real-IO receipt PROVEN — ts_effect_io_emit_holds = true (#4778 path)

The composed witness cross_language_add_python_to_typescript_chain_status_holds returns
true = "both ends proven AND the missing middle fails closed at the named bridge." When
a real ParseTree→TargetModel bridge lands, the fail-closed check flips to Holds, the witness
flips to false, and whoever builds the bridge must update the matrix cell to ChainProven.

Matrix (claim data — cross_language_emit_matrix)

source → target status
dag → typescript ChainProven (core node is already language-neutral; emit serializes directly — cert mvp1_ts_emit_add_fn_accepts_holds)
python → typescript ChainFailsClosedAtCheck @ parse_tree_to_target_model_bridge_not_realized
go → typescript ChainFailsClosedAtCheck @ go_add_parse_production_currently_rejects (distinct, upstream break — see Findings)

Findings reported to Mgr-EMIT

  1. The single missing bridge: ParseTree → TargetModel. Parse yields Outcome<ParseTree>
    (= Node); emit/translate consume an already-emitted core node + TargetModel; nothing
    converts the former to the latter. This is the one real fn the full chain needs.
  2. go add-fn parse is RED. go_mvp1_grammar_validates_fixture = true but
    go_mvp1_grammar_parse_accepted = false (parse_production_tree rejects). The go cell
    breaks upstream of the bridge. Python's parse passes.
  3. Runtime: 627s (~10.5 min) for the composed witness, dominated by the Python
    parse_production_tree. Reported for the ci: enroll compiler-semantics claim witnesses in v4_lens_ci (substrate .dag rows) #4785 corpus-gate enrollment decision — NOT
    self-excluded.

Test plan

All run with target/release/gunbc run --source-root src/v4 --entry <FILE> --function <FN> --claim-run:

python_mvp1_grammar_validates_fixture                       → true
python_mvp1_grammar_parse_accepted                          → true   (Python source → ParseTree)
ts_effect_io_emit_holds                                     → true   (#4778 TS real-IO receipt)
mvp1_ts_emit_add_fn_accepts_holds                           → true   (dag-core → TS add-fn source)
go_mvp1_grammar_validates_fixture                           → true
go_mvp1_grammar_parse_accepted                              → false  (FINDING 2)
parse_tree_to_target_model_bridge_fails_closed              → true
cross_language_add_python_to_typescript_chain_status_holds  → true   (627s wall, exit 0)

Status: DRAFT — held pending §3 emit-surface sign (routed through Mgr-EMIT).

@briansrls briansrls changed the title End-to-end cross-language matrix claim (operator-requested): compose EXISTING machinery into one claim — Python source in (python_mvp1_grammar_parse_fixture → ParseTree, exists) → grammar-relation rows → TargetModel/Node → TypeScript out (emit + execution receipt, exists via #4778 path) for the add test(v4): end-to-end cross-language matrix claim — python→ts add slice, fail-closed at ParseTree→TargetModel bridge Jun 13, 2026
@briansrls
briansrls marked this pull request as ready for review June 13, 2026 00:17
briansrls pushed a commit that referenced this pull request Jun 13, 2026
Sign refusal blockers (silent-gull @ 6499c56):
- Budget: split 20-row enrollment into parallel shard_a/shard_b jobs (~10 rows
  each, 20m ceiling) so uncontended base ~9m/shard vs measured 18.2m full run;
  CI uses --spot-perturb-check (1–2 rotating ExpectPass rows) not full perturb.
- Bind: witness_sg2_arrow ExpectFail re-anchored #4761→#4791 (closed→open PR on
  grammar-relation / ParseTree→TargetModel bridge).

Final sign head — no further pushes unless CI forces a real fix.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls pushed a commit that referenced this pull request Jun 13, 2026
Manager ruling (msg_26e8bc1a): spot-perturb (1–2 rows, GITHUB_RUN_NUMBER
rotation) drops Phase B to ~1m → ~8.7m uncontended total → 2.6× ≈ 22.6m ≤ 35m;
shard unnecessary. Reverts a149eba row-shard split; keeps #4791 re-anchor.

dissolve-on-arrival: #4783 multi-entry claim_batch; perturb-phase split if spot
coverage proves insufficient.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls pushed a commit that referenced this pull request Jun 13, 2026
#4791 documents the missing ParseTree→TargetModel bridge but merges while
the witness stays red; anchor to open tracking issue #4801 instead.

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

Copy link
Copy Markdown
Contributor Author

CI status (not a code defect): the 3 "failing" checks at 3d08fdc are the documented C9 substrate-equivalence contention artifact, not a defect in this diff.

  • Job API (run 27451383872, latest for the current HEAD): v4_lens_gate and v4_lens_ci both cancelled after running exactly 20 minutes (00:57→01:17 / 00:58→01:18) — the 20m job-timeout kill under DRAM contention across the concurrent emit lane. ci is the aggregator failing-closed on those cancelled deps (8s). gh pr checks renders cancelled-deps as "fail."
  • All must-pass floor gates are green: ci_floor, ci_floor_emit, ci_floor_parity, affected, fmt, doc_refs, infra_isolation, layering_imports, timeout_budgets.
  • The lens gates run fixed C9 rosters — they do not execute this PR's witness. This PR's registered witness is the sub-second parse_tree_to_target_model_bridge_fails_closed; the 627s composed chain is deliberately not auto-enrolled.
  • This is the latest run for the latest commit (not a supersede), so the cancels are contention, not concurrency.

No code fix applies. Mitigation per the known artifact is a serialized v4_lens rerun once emit-lane contention clears — requested from the managing session. Not re-triggering from here (a re-push would only re-cancel under contention).

— sent from cool-newt-570

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