Skip to content

feat(v4): enroll English emit/ingest round-trip in claim-witness corpus CI - #4947

Merged
briansrls merged 3 commits into
mainfrom
pr-4933-rebase
Jun 15, 2026
Merged

briansrls merged 3 commits into
mainfrom
pr-4933-rebase

Conversation

@briansrls

@briansrls briansrls commented Jun 15, 2026 •

Copy link
Copy Markdown
Contributor

Rebased english emit/ingest round-trip corpus enrollment on main post-#4940 (markup serializer keystone).

Adds corpus_ci_gate_row_english_emit_ingest_round_trip to monolith roster + shard A; counts 43/19/24.

Supersedes #4933 (stale pre-#4940 base).

Test plan

  • cargo test --workspace (local)
  • CI on this PR

@briansrls briansrls changed the title §3 emit-breadth lead (crit-path; crisp-crane archived left §3 ownerless): drive emit breadth as N data rows NOT NxM hand-arms — the bidirectional emit/ingest round-trip (the fold's inverse proof) + host-transport-bridge dissolution. Build on §1 stage-fold + §2 eval spine (complete; Loop-emit/Bind-em feat(v4): enroll English emit/ingest round-trip in claim-witness corpus CI Jun 15, 2026
@briansrls
briansrls marked this pull request as ready for review June 15, 2026 09:24
…us CI

Rebased on main post-#4946: one additive corpus row on shard A; counts 45/19/26.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls merged commit 5e35c1f into main Jun 15, 2026
18 checks passed
@briansrls
briansrls deleted the pr-4933-rebase branch June 15, 2026 13:04
briansrls added a commit that referenced this pull request Jun 15, 2026
…9→20 (#4955)

#4947 enrolled the English emit/ingest round-trip row into
claim_witness_corpus_shard_a_rows (now 20 members) and bumped the full-list
count datum, but did not bump claim_witness_corpus_shard_a_row_count. The
shard-a gate's count guard (projected 20 != modeled 19) exits 2, so
v4_claim_witness_corpus_a fails on every branch off post-#4947 main — a
tree-wide merge block (confirmed: run 27548200843 shard-a FAILURE, shard-b
success).

Bump the datum to match reality (shard_a genuinely has 20 members). Minimal:
only the consumed shard_a datum. The full-list count (54 vs 55 members) is an
unconsumed/non-gating ledger and shard_b (35) matches, so both are left alone.

Throwaway: the in-flight claim-witness-corpus model-first dissolution retires
the count-guard datums entirely.

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
briansrls added a commit that referenced this pull request Jun 15, 2026
…ility) (#4959)

* WIP: ci investigation

* WIP: ci investigation

* chore(ci): retire redundant *_row_count cross-checks (merge-skew liability)

The claim-witness-corpus and affected-set node-frontier/testgen gates each
cross-checked a projected row count against a hand-maintained *_row_count datum.
That datum is a parallel ledger for a fact the typed shard List already carries:
the gate projects rows directly from the list, so a dropped row simply is not
enrolled and its witness is not run — the count datum cannot detect that and only
DRIFTS under concurrent merges (a hand-count vs a hand-list is the merge-skew
axis that reddened main on #4947: two PRs each list-consistent, the squash-merge
re-resolve combined their list edits while the count stayed stale).

Delete the cross-checks and the now-unused datums (CLAUDE.md ledger principle):
- scripts/v4-claim-witness-corpus-gate.sh: drop count_data + expected_count fetch
  + the projected-vs-modeled comparison; keep row_count for the notice.
- scripts/v4-affected-set-node-frontier-gate.sh: drop both expected_count fetches
  + both comparisons (node-frontier + testgen).
- claim_witness_corpus_ci_runner.dag: delete claim_run_row_count (dead, 0 readers,
  and stale at "54" vs 55 real) + shard_a_row_count + shard_b_row_count.
- affected_set_ci_runner.dag: delete ci_runner_node_frontier_claim_run_row_count.
- affected_testgen_ci_runner.dag: delete affected_testgen_claim_run_row_count.

Teeth retained: per-row pass + per-row perturb-RED + ExpectFail-drift +
empty-roster fail-closed guards are all untouched. A real witness regression
still trips RED. (Pass-by-omission on list-row deletion is restored properly by
glob-discovery; this only removes the drift-prone parallel ledger.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* WIP: ci investigation

* WIP: ci investigation

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
briansrls pushed a commit that referenced this pull request Sep 11, 2026
Keying the compatibility subject on the runtime's bytes rather than its enum
variant was the right repair and it read a NonEmptyStr off the runtime row. For one
of the three rows that string was never a digest: the DeepSeek image carried
"aidendle94/sparkrun-vllm-ds4-gb10 (digest pinned in
extdeps.docker.images.sparkrun_vllm_ds4_gb10)" -- a sentence about a pin standing
where a pin belongs. A subject keyed on that compares a MUTABLE TAG as though it
were an artifact, which is the same failure the byte-keying was introduced to
remove, one level down.

So the pin is its own question with two honest answers. PinnedByDigest IS the
bytes; PinnedElsewhere names the authority that holds the pin and yields NO
identity -- runtime_pin_as_identity returns an Optional and runtime_artifact_key
renders a located <unpinned:...> marker, so an unpinned runtime cannot silently
share a key with anything, including another unpinned runtime.

The patch set is in that key, and it is the half the repair depends on. The next
runtime this fleet needs is a derivative: upstream vLLM 385dce36 with the two
vllm#55277 commits backported and a FlashInfer revision carrying flashinfer#4802
and #4947. Stock bytes and patched bytes can share a digest lineage, so a key that
dropped the patch set would let the refusal measured on stock bytes refuse the
patched image -- and the patched image is the entire repair. patch_set: [] on the
three existing rows is a positive fact, which is why the official image's NoPE MLA
refusal reads as a statement about upstream rather than about a local build.

runtime_artifact_wire and runtime_artifact_key are deliberately two functions: a
launch may legitimately pull an unpinned tag, and a receipt must never claim that
pull was an identity.

The new witness proves the discrimination without building anything -- same digest,
same source revision, differing only in patch set, keys must not collide -- and its
negative rows are live corpus rows rather than fixtures.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01W6hK2jVJ1neNMVR1oi6PyW
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