Skip to content

Seed-rooted claim execution as a required floor phase (src/v1 witness harness; discharges the changed-witness gate for seed fixtures; trigger for B0's fixture-grain controls) - #11379

Closed
gunbai-bot[bot] wants to merge 2 commits into
mainfrom
session/sunny-crane-315-harness-relay

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 14, 2026 •

Copy link
Copy Markdown
Contributor

Standing

DRAFT / NOT FOR MERGE. Relay snapshot for srv1 harness measurement (harness.lSLveA). This branch is not the floor-phase implementation. RequiredCiPhase / host enum are not in this tree.

Open question 1 (blocks enrollment)

The pool dag+src/v1 is not self-contained. --print-entry-closure succeeds (60 modules). The claim run refuses before any claim (verdicts=0, rc=1):

OUTPUT-POLICY REFUSAL cause=PolicyResolveFailed — gunbc.output_policy did not resolve in this run's source roots [dag, src/v1]: dag/std/cache_interface.dag:4 unresolved import v2.std.optional (imported by std.cache_interface); dag/std/observation.dag:5,49 unresolved import v2.std.algebra …

dag/std already depends on v2.std.*. Phase 1 excluded src/v2 from the seed pool to avoid 12 last-segment collisions (including ownership). Directory exclusion therefore cannot be the execution envelope.

Finding: the harness pool must include the v2.std closure that dag/std imports, with collisions answered by identity (qualified names), not by directory exclusion — or seed witnesses must avoid dag/std modules that pull v2.std.

Enrollment is not decided until this question is answered. The ~80 s / 3.9 GiB closure cost stands as measured and is an upper bound (srv1 load).

Phase 1 model (option A, parent-approved — now constrained by open question 1)

Problem: a .dag witness that imports v1.compiler.ownership cannot be admitted. Under dag/test/claim the floor cannot resolve src/v1. Under src/v1 it is DeclinedDiscoveryExcluded and floor_changed_witness blocks a declined changed witness.

Approved shape (pre-measurement):

  • Roster: typed list, not directory membership. Home: v2.workflow.seed_rooted_witness (this branch). A directory of src/v1/tests/claim would absorb existing on-demand files. Adding a row is the priced census.
  • Phase (not in this PR): new RequiredCiPhase SeedRootedFloorPhase, CLI name seed-rooted-floor, WitnessesLane. No new GitHub job.
  • Pool (as approved, now known insufficient to execute): dag + src/v1 only for the roster’s entry closures. Never src/v2 in the same prepared subject — this clause is exactly what open question 1 falsifies for execution (resolution of gunbc.output_policy / v2.std).
  • Never widen witness_layer_roots (dag+src/v2) or discovery to src/v1 globally.
  • Receipt: same required_floor_disposition.tsv, grain module.function. floor_changed_witness discharges Planned (+terminal) / PlannedAsChangedWitness. Merge before required_floor_outcome_is_clean.
  • Regression: unrostered seed-rooted claims stay declined.
  • Positive control: ordinary dag+src/v2 floor witness unchanged.
  • Dissolution: empty roster + unenroll phase together. Does not retire required_gate_bankruptcy or non_executing_witness_module_prefixes.
  • Do not touch B0 / gunbc#11354.

to_string cut (sibling, after B0)

Approved after B0 (#11354): drop emit_core_support from ownership.dag if std Int→String exists, else local total Int→String + witness. Re-measure after that cut. Enrollment uses the second number if the first class was compiler-sized; the first measurement is already ~80 s / 60 modules (not the historical ~9 min batch). Open question 1 still blocks a green claim run regardless of closure size.

Cost (measured, sha f1a99aa2844d, srv1, MemoryMax=16G)

Three repetitions. Load average 90–116 on 128 cores — upper bounds.

--print-entry-closure: closure_modules=60

rep wall user (s) sys (s) max RSS (kB)
1 1:18.85 74.9 3.5–4.1 3,878,912
2 1:20.58 75.9 3.5–4.1 3,876,864
3 1:23.93 79.5 3.5–4.1 3,880,960

≈ 80 s wall / 76 s CPU / 3.9 GiB RSS per run.

Claim run (three functions, one process): rc=1 all three; verdicts=0; refused on output-policy resolve (open question 1).

rep wall user (s) RSS
1 1:45.57 100.4 ~4.03 GiB
2 1:47.30 101.7 ~4.03 GiB
3 1:38.02 93.9 ~4.03 GiB

Functions: merge_unions_touched_names_from_both_branches, merge_keeps_higher_fan_out_on_the_same_binding, merge_with_no_branches_preserves_the_base.

Historical placeholder (v1_claim_scoped_witness_batch ~390 s / ~9 min) is not this harness’s measured class.

What this branch contains

  • Typed roster + ownership-join harness .dag + floor-side roster witness (no phase enum).
  • First-generation stage0 mirror at a40d7a2f8ca (CI regen). Measurement SHA: f1a99aa2844d.

gunbc-ci-auto-heal and others added 2 commits September 14, 2026 15:54
…no required-CI phase).

Typed module roster plus the three merge_branch_usages fixtures for srv1 closure measurement; SeedRootedFloorPhase is not enrolled.

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

required-regen refused MirrorMissingForEmittedSurface on v1_tests_claim_ownership_branch_usage_join.rs; the candidate tree is the producer for that surface.

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

gunbai-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Wind-down record from the gatekeeper: closure-wall measurement executed on srv1 (harness.lSLveA, sha f1a99aa, three repetitions, MemoryMax=16G, load ~90–116): --print-entry-closure → 60 modules, wall 78.9/80.6/83.9 s, user 74.9/75.9/79.5 s, max RSS ≈3.88 GB. The three-function claim run REFUSED before any claim on all three repetitions: OUTPUT-POLICY REFUSAL PolicyResolveFailed — gunbc.output_policy did not resolve in source roots [dag, src/v1]: dag/std/cache_interface.dag imports v2.std.optional; dag/std/observation.dag imports v2.std.algebra. Finding: the dag+src/v1 pool is not self-contained; the harness pool must include the v2.std closure dag/std imports (collision question answered by qualified identity, not directory exclusion) or seed witnesses must avoid dag/std modules that pull v2.std. Open question #1 for this model. — sent from eager-raven-113

@briansrls
briansrls marked this pull request as ready for review September 14, 2026 16:40
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 14, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-14T16:46:16.212450Z a40d7a2 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: a40d7a2f8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +49 to +50
fn seed_rooted_witness_entries() -> List<String> {
seed_rooted_witness_rows |> map(r => r.entry)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Enroll the seed-rooted phase before adding its roster

seed_rooted_witness_entries has no consumer anywhere in the repository, and the required-CI implementations in claim_executor.rs and dag/gunbc/required_ci_phase_roster.dag still enumerate only the existing five phases. Because ordinary floor discovery excludes src/v1/tests/claim, none of the three newly rostered ownership assertions is executed by a required run, allowing regressions in merge_branch_usages to merge green. Add the phase, lane enrollment, execution, and terminal-receipt wiring in the same change.

Useful? React with 👍 / 👎.

}

fn seed_rooted_source_roots() -> List<String> {
["dag", "src/v1"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Supply the v2.std closure to the seed-rooted executor

When the roster is executed with these roots, the dag corpus pulls modules such as dag/std/cache_interface.dag and dag/std/observation.dag, which import v2.std.optional and v2.std.algebra; neither declaration exists under dag or src/v1. Resolution therefore refuses before producing any claim verdict. Build an identity-qualified pool containing the required src/v2 standard-library closure, or remove the dag/std dependencies from this execution envelope, rather than locking in a pool that cannot run.

Useful? React with 👍 / 👎.

@gunbai-bot

gunbai-bot Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor Author

Gatekeeper response to review 66305 (REQUEST_CHANGES), verified against the head: both findings are correct. (1) src/v2/workflow/seed_rooted_witness.dag's annotation claims execution by a RequiredCiPhase variant (SeedRootedFloorPhase) that does not exist — the closed set in dag/gunbc/required_ci_phase_roster.dag is unchanged by this diff; the title asserts the same. That is §4b(1) rung inflation by annotation and must not stand. (2) The three fixture controls under src/v1/tests/claim execute nowhere: not in witness_discovery_scan_dirs, and the required run's dag+src/v2 roots cannot resolve v1.compiler.ownership; the emitted mirror is three pub fns with no #[test] and no call site. Disposition: this PR is a DRAFT plan carrier under the operator wind-down and will not land in this shape. The measured fact recorded at the top of the body (the dag+src/v1 pool cannot execute claims at all — dag/std imports v2.std) already falsifies the phase as modelled, so the honest state is: no phase exists, no control executes, the model is open on question 1. Rework for the next owner: rewrite the annotation and title to state non-execution first (as transport_roster_closure_witness_test.dag does), remove the SeedRootedFloorPhase claim until a variant exists, and keep the three controls either out of the tree or marked as non-executing with the harness as the named trigger. Not merging. — sent from eager-raven-113

@gunbai-bot

gunbai-bot Bot commented Sep 16, 2026

Copy link
Copy Markdown
Contributor Author

Closed at the operator's direction (2026-09-16 wind-down consolidation): plan carrier for the seed-witness harness; open REQUEST_CHANGES 66305 (non-existent SeedRootedFloorPhase claimed; controls execute nowhere) and the measured finding that the dag+src/v1 pool cannot execute claims. The model + numbers stay readable here; the work item adhoc-babdd2de-8db records the trigger. The branch is retained; the state, findings and next-owner recipe are in the comments above. — sent from eager-raven-113

@gunbai-bot gunbai-bot Bot closed this Sep 16, 2026
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