Skip to content

affected set lens - #6247

Merged
briansrls merged 9 commits into
mainfrom
session/gentle-owl-459
Jul 5, 2026
Merged

briansrls merged 9 commits into
mainfrom
session/gentle-owl-459

Conversation

@briansrls

@briansrls briansrls commented Jul 5, 2026 •

Copy link
Copy Markdown
Contributor

PR-B of the affected-set lane (design: docs/plans/interface-summary-declared-use-arity.md, merged #6244): witness enrollment rows gain their two missing facts — kind (what medium runs this witness) and span (which seams it certifies).

What

  • std/realization_schedule.dag: WitnessKind = CorpusWitnessKind | ExecutionWitnessKind, WitnessSeam {producer, consumer}, WitnessSpan = SpanUndeclared | SpanSeams{seams}, witness_kind_eq (exhaustive match, no wildcard); ScheduleWitnessEntry carries kind.
  • gunbc/commit_workflow.dag: CommitWitnessClaim carries kind + span; live roster rows stamped (CorpusWitnessKind, SpanUndeclared); span well-formedness (self-seam, duplicate seams, empty seam list all rejected); projection wildcards _ => acc replaced with explicit arms (fail-open fold → total match).
  • workflow/ci_floor_plan.dag: corpus/execution partition now decided by kind via exhaustive match — the path-prefix heuristic is demoted to an agreement cross-check (witness_entries_kind_path_all_agree), dissolve-on noted.
  • gunbc/merge_admission.dag: roster content-hash folds kind+span (hash flips once on landing — expected, it's a real roster fact change).
  • Witness tests: 7 new span/kind witnesses incl. RED controls + kind-wins-over-path discriminator.

Receipts (by execution, ctrl-build remote, this head)

  • commit_workflow_span_kind_witnesses — exit 0
  • ci_floor_optin_roster_witnesses — exit 0
  • ci_floor_plan_witnesses — exit 0

Notes for reviewers

  • Seed mirror std_realization_schedule.rs intentionally NOT regenerated: regen_stage0 --emit-fresh exits 1 on clean main (pre-existing, differential-verified; residual 02_parse.dag diagnostics owned by open Register builtin get in the resolver registry (unbreaks regen self-compile) #6255). Rust never constructs the changed types on a live path — claim_executor decodes entry/function by field name; extra fields are inert.
  • The ci check is red structurally: every ref incl. main is killed by the 10-min job timeout (fix in flight on fix/floor-timeout-verdict — timeout-as-failure semantics per operator ruling 2026-07-05).
  • Span facts are declarative v0 (SpanUndeclared everywhere live) — selection consumption lands with the seam-factorization lane, per the design note's FLAG C.

🤖 Generated with Claude Code

Brian Searls and others added 4 commits July 4, 2026 23:23
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

CI red @ ebf1373 is structural, not this diff: the ci job hits the 10-minute timeout inside batch-1 compile-clean (whole-tree compile ~7min+ when the build is warm), and every main push run for the past day is 'cancelled' the same way (gh run list --branch main: 8/8 cancelled). The floor currently cannot fit the 10-min budget on any ref; batch-2 gates never execute. Not fixable per-PR — needs an operator call on budget vs batch-1 scope (ROADMAP §2's 'affected-set-scope the compile-clean' lever). PR-B verification is running out-of-band on the ctrl-build remote (compile check + witness runs); receipts will be posted here. — sent from gentle-owl-459

@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 5, 2026 02:59
Brian Searls and others added 3 commits July 5, 2026 03:11
…gen registry

cursor review findings (all valid): the origin/main merge brought in the
enforcement-intent lane's roster row + two ScheduleWitnessEntry literals,
all pre-dating the kind/span fields. v1 does not enforce record-field
completeness (missing fields decode as Null silently), so these were
runtime hazards, not typecheck errors. Post-merge exhaustive sweep now
clean: every construction site stamped.

Also removes v1_compiler_dag_collect{,_support}.rs from GENERATED_STAGE0_FILES:
#6242 parked them hand-maintained (in-tree dissolution note) but left the
GENERATED entries, and regen_stage0's fail-closed double-registration check
refuses — blocking all seed regen on main. Deletion completes #6242's own
declared intent; unblocks the mirror regen this PR needs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… the emitter lane)

The park-vs-skip choice for dag_collect{,_support}.rs during their marked
model-lag window is #6242's lane's call; this PR stays witness-metadata.
Probing behind the guard showed the next self-compile layer anyway
(json_quote/collect_dag_nodes scope failures from the changed
dag_collect_support module) — regen is transport-blocked on main
regardless of the registry state.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Re: both cursor reviews.

Findings 2 & 3 (second review) — valid, fixed by commit. The origin/main merge had brought in the enforcement-intent lane's three construction sites, all pre-dating the kind/span fields; all three are now stamped (commit_workflow.dag roster row, lens/enforcement/contract.dag, enforcement_live_witness_test.dag), and a post-merge exhaustive sweep over every ScheduleWitnessEntry/CommitWitnessClaim construction shows zero unstamped sites (the one residual grep hit is a destructuring pattern, not a construction). One correction to the finding's mechanics, which makes it more important, not less: v1 does not enforce record-field completeness — the old-shape rows would have decoded with kind as silent Null, not failed typecheck. Receipts by execution on this head: commit_workflow_span_kind_witnesses, commit_workflow_witnesses, ci_floor_optin_roster_witnesses, ci_floor_plan_witnesses, enforcement_consistency_gate_holds, roster_read_liveness_discriminates — all exit 0.

Finding 1 (first review, seed mirror) — deferral receipt, four layers deep, all by execution. The regen transport (regen_stage0 --emit-fresh, which is also SelfHostRealizedComparisonGate's declared transport) exits 1 on clean main and has all week; the blocker chain as of tonight: (1) 04_resolve.dag if-branch types — fixed by #6250; (2) 02_parse.dag builtin get — fixed by #6255; (3) regen_stage0 registry double-park from #6242's hand-maintained window — their in-tree comment declares the model-lag deliberately, with a named dissolution trigger ("until … std.content_hash memo rows emit"); (4) probing behind that guard surfaces json_quote/collect_dag_nodes scope failures in the self-compile, from the same #6242-changed module. So RegenVerifyGate cannot run green on ANY head today — this PR cannot regress a gate whose transport is unrunnable, and no live Rust path constructs the changed types (claim_executor decodes entry/function by field name; unknown fields inert, verified at claim_executor.rs:167-183). The mirror regen lands as an immediate follow-up when #6242's dissolution trigger fires; it cannot land before it by construction.

— sent from gentle-owl-459

@briansrls
briansrls merged commit 6d44272 into main Jul 5, 2026
1 of 3 checks passed
@briansrls
briansrls deleted the session/gentle-owl-459 branch July 5, 2026 06:36
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