Skip to content

Resolve #4549 dirty merge: merge main into safe-bulk branch, reverify v4 0-diag + suite-delta=0 - #4572

Merged
briansrls merged 12 commits into
mainfrom
session/lively-ram-331
Jun 9, 2026
Merged

briansrls merged 12 commits into
mainfrom
session/lively-ram-331

Conversation

@briansrls

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session lively-ram-331.
Pushing to session/lively-ram-331 advances this PR.

Worker attestation

Before flipping this PR to ready for review, confirm each item:

  • Title describes the change (not the session id or branch).
  • PR body summarises what and why (replace the TODO below).
  • Tests run: name the command (e.g. npm test, cargo test) and the result.
  • If this closes a work item, the body contains a Closes #N directive.
  • No commits on this branch are surprises (no fork/cherry-pick I did not make).
  • No secrets / credentials / large binaries staged.

Summary

TODO: replace this paragraph with one or two sentences naming the change and its motivation. Reviewers read this first.

Test plan

  • TODO: list the commands that ran (or "no tests changed; relied on CI") and the outcome.

Brian Searls and others added 6 commits June 8, 2026 18:27
After #4541 ^-sigil merge: delete tautological/aliased Symbol tag declarations
in safe-bulk scope (lens/extdeps/test/workflow/install + non-load-bearing std);
replace refs with ^NAME / ^RHS. Excludes compiler/ (111) and load-bearing std
escalate batches per manager steer.

Includes prep tooling (symbol_tag_prep_quantify.py, symbol_tag_bulk_migrate.py)
and exemplar std/artifact.dag. ~238 files, ~2911 tags migrated.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cross-file bare refs in testgen.dag and extdeps language files missed
by per-file sweep; prefix with ^ to match deleted declarations.
Gate: v4-bootstrap-viability 0 diagnostics.

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

Prior ready-flip spawned duplicate workflow runs; cancelled infra_isolation
and ci checks left PR checks_state failing despite green ci_floor run.

Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate main's frontier_decision_matches observation API into the
safe-bulk symbol-tag sweep, resolving four lens_affected_set claim conflicts.

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls marked this pull request as ready for review June 8, 2026 22:15
Brian Searls and others added 4 commits June 8, 2026 22:45
Integrate main's three derivable_coercion roster rows (46→49) while
keeping map_structural_key_equality from the safe-bulk branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate main post-#4573; resolve import-format conflicts in
lens_affected_set dimension_seed_rerun and excluded_propagation_proof.

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

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: f8375991 · Trigger: schedule
  • Thinking: 145s wall

BLOCKING (1)

Root Cause

  • scripts/symbol_tag_prep_quantify.py Unvalidated corpus root and empty-corpus success path → check ROOT is an existing directory and reject an empty .dag file set before creating CSV/JSON outputs.

⚠️ Fix the input boundary so the quantification artifact cannot silently measure nothing.



def iter_dag_files(root: str):
for dirpath, _, files in os.walk(root):

This comment was marked as resolved.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Valid finding — fixed in 88d7bc8.

  • resolve_corpus_root() now requires ROOT to resolve to an existing directory (exit 2 with cwd in the error).
  • After the walk, the script rejects an empty .dag set before creating OUT_DIR or writing CSV/JSON.
  • Verified: missing path → exit 2; empty dir → exit 2; src/v4 → normal census (449 tautological).

— sent from lively-ram-331

Validate ROOT resolves to an existing directory and reject zero .dag
files before writing census outputs, so migration evidence cannot
silently report an empty census from a wrong cwd or missing tree.

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

Copy link
Copy Markdown
Contributor Author

Reverification @ b7f25ea (after main merge) — ✅ ALL GATES GREEN

Independent reverify (session snappy-fox-188) of the post-merge head.

Diff scope vs main — git diff --name-only origin/main...b7f25e: only .dag files + 2 un-imported scripts/*.py. Zero .rs / Cargo.toml / Cargo.lock changes. The Rust workspace is code-inert relative to main.

Gate Result
v4 0-diagnostics ✅ gunbc compile --source-root src/v4 --target rust → compiled: 415 files emitted, 0 diagnostics
Roster identity ✅ v4_roster_pilot.dag, wave3_shadow_roster.dag, manual_corpus_roster.dag byte-identical to main; all references resolve (whole-tree 0-diag compile)
DAG-emit parity receipt (the cargo test that reads .dag) ✅ pipeline::dag_emit_from_resolved_matches_compile_sources_for_v4_slice — 1 passed
Member-by-member suite delta = 0 ✅ by identity + executed control (below)

Suite delta = 0, proven not assumed. cargo test --workspace --release surfaces one compile failure: v2-compiler (lib test) — 45 × E0308. Executed control on origin/main: the identical 45-error failure reproduces. Since the v2-compiler source is byte-identical across both (git-proven), this is a pre-existing baseline failure on main, not a regression introduced by this PR. NEW-failures = ∅. (This lib-test target is not run by CI — CI runs only the --exact parity test, which passes here.)

Conclusion: b7f25e is clean against all three reverify gates. Safe to merge from the verification standpoint.

@briansrls

Copy link
Copy Markdown
Contributor Author

Codex APPROVE (@ 88d7bc) — verified, no further action.

Checked against current HEAD 88d7bc8939:

  • PR diff vs origin/main is exactly one file: scripts/symbol_tag_prep_quantify.py (read-only PREP quantification helper, outside src/v4/).
  • No .dag, .rs, or Cargo.* changes in the merge-base diff.
  • Prior codex BLOCKING (unvalidated/empty corpus root) is addressed: resolve_corpus_root() (L40–48) + empty .dag guard (L105–111) fail closed before writing artifacts.
  • Script is regex-only, writes CSV/JSON to /tmp by default, no substrate/modeling impact.

Agree with APPROVE verdict. Merge-readiness gates all green (claude+codex 2/2, no REQUEST_CHANGES, mergeable=CLEAN, CI passing). Leaving merge to operator lane per policy.

— sent from lively-ram-331

@briansrls

Copy link
Copy Markdown
Contributor Author

Cursor/composer-2.5 APPROVE (@ bb5ba55) — verified, no further action.

Checked against current HEAD bb5ba55ffe:

  • Merge-base diff vs origin/main is exactly scripts/symbol_tag_prep_quantify.py (+281 lines, read-only PREP census helper).
  • No src/v3/, substrate, .dag, or Rust changes in the PR delta.
  • Fail-closed input boundary present: resolve_corpus_root() (L40–48) + empty .dag guard (L105–111) — addresses prior codex BLOCKING.
  • Matches existing symbol-tag tooling pattern; writes CSV/JSON to /tmp only.

Agree with APPROVE. Merge gates: 3/2 distinct approvals (claude, codex, cursor), no REQUEST_CHANGES, GitHub MERGEABLE/CLEAN, CI all SUCCESS. Implementation lane closed; operator merge only.

— sent from lively-ram-331

@briansrls briansrls left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Review metadata

  • Provider / model: codex / unknown
  • Commit: bb5ba55f · Trigger: schedule
  • Thinking: 138s wall

Non-blocking — Strengths

  • scripts/symbol_tag_prep_quantify.py The added helper is implementation-only and the new input-boundary checks address the evidence-integrity risk under INVARIANTS.md P3.

✅ The supplied diff fixes the prior fail-open census path and I found no blocking concerns.

@briansrls

Copy link
Copy Markdown
Contributor Author

Codex review @ bb5ba55 (non-blocking) — verified, already addressed.

The prior BLOCKING finding (unvalidated/empty corpus root → silent zero-count census) was fixed in 88d7bc8, present on current HEAD bb5ba55ffe:

  • resolve_corpus_root() (L40–48): rejects missing/non-directory ROOT before os.walk, exit 2 with resolved path + cwd.
  • Empty-corpus guard (L105–111): rejects zero .dag files before creating OUT_DIR or writing CSV/JSON.

Runtime verified on bb5ba55: missing path → exit 2; empty dir → exit 2; src/v4 → normal census.

Agree with codex assessment: input-boundary checks address the P3 evidence-integrity risk; no blocking concerns on changed lines. No further code changes needed.

— sent from lively-ram-331

@briansrls
briansrls merged commit 13c89b0 into main Jun 9, 2026
9 checks passed
@briansrls
briansrls deleted the session/lively-ram-331 branch June 9, 2026 03:07
briansrls added a commit that referenced this pull request Jun 9, 2026
…4572 merge — tag-only, 0-diag, member-by-member suite-delta=0; escalate PR to Mgr-ENF-2 parent before merge-ready (#4590)

* WIP: Symbol-tag load-bearing batch 1: node.dag ^X conversions (48) after #457

* tag-only node.dag ^X conversions

---------

Co-authored-by: Brian Searls <briansearls1@gmail.com>
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