Skip to content

Namespace PR-5d: corpus import strip src/v2/test/** (delete import lines; bare refs stay; disjoint from 5a/5b/5c; ~4319 import lines; regen if needed; dag_compile_clean_gate) - #6608

Closed
briansrls wants to merge 2 commits into
mainfrom
session/bright-cat-263

Conversation

@briansrls

@briansrls briansrls commented Jul 14, 2026 •

Copy link
Copy Markdown
Contributor

Namespace PR-5d — corpus import strip: src/v2/test/**

Deletes module-level import statements from src/v2/test/** (the reference in the body becomes the sole representation of usage — design §8.4/§8.5, Rule-1 end-state).

Scope (519 files, 4319 → 122 import statements removed):

  • Stripped: every dependency-declaration import in src/v2/test/**.
  • Retained (by design):
    • src/v2/test/fixture/** — imports here are test subjects, not dependency declarations (layering-scan / realization-vocab / medium-structure / transport-script planted fixtures the scanners assert on; e.g. fixture/layering_scan/std_imports_extdeps/std/plant.dag's import extdeps.shell is the violation the layering scanner counts). Stripping them would silently gut those tests (§5).
    • src/v2/test/claim/generated/** — producer-emitted / drift-gated; regenerated, not hand-edited.

⚠️ BLOCKED — do not flip ready / merge yet

Verified by execution (local build of PR-4d seed #6595 with this strip applied): this strip cannot compile/witness-resolve until the v1 seed derives its per-entry resolve closure from references instead of import statements.

  1. dag_compile_clean_gate does not compile test files — the whole-tree clean compile resolves the non-test import closure (1041/2101 modules; 0 src/v2/test mentions). It would false-green on this strip.
  2. CI witness/claim execution breaks. claim-run --entry <file> uses a scoped per-entry import closure. Stripping a test file's imports collapses that closure to the file itself. eval_runtime.dag: with imports → 0 diagnostics (resolved 53 sources); stripped → 129 unresolved. The CI frontier strict-resolves every diff-touched .dag (519 here) → reds en masse.
  3. PR-4d (global_bare, Namespace PR-4d: v1 global-unique bare fallback in lookup_binding_by_name — unblocks src/v1 import strip; witnesses + regen #6595) is necessary but not sufficient, and no qualification rescues the strip: global_bare resolves a bare name iff globally-unique among already-resolved modules — it does not pull a defining module into the closure. Even a fully-qualified probe.aaa.WidgetQqq fails without an import (resolved 1 source).

Prerequisite: wire the reference-derived module-graph (design §8.5; scaffolded in #6593 as module_graph.dag, flagged, not consumed by the seed) into the v1 seed's per-entry resolve closure.

Landing sequence: (a) reference-derived closure in seed → (b) 4d global_bare → (c) homonym qualification (e.g. Byte has 3 decls → bare = GlobalBareAmbiguous) + rebase + verify by running the witnesses, not dag_compile_clean_gate.

Escalated the structural blocker (a). Strip is complete and committed; holding as draft.

Brian Searls added 2 commits July 14, 2026 15:04
@gunbai-bot gunbai-bot Bot mentioned this pull request Jul 14, 2026
6 tasks
@gunbai-bot

gunbai-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Intentionally held DRAFT — not abandoned. Do not flip ready or close.

This strip is complete and correct-in-principle (519 files, 4319→122 import statements) but is structurally blocked and will red CI until two upstream pieces land on main:

Why CI reds now (documented, expected): the seed derives its per-entry resolve closure and its lens-reachability graph from import statements. Stripping test imports (i) collapses each test's claim-run --entry closure (mass unresolved), and (ii) removes the witness→lens import edges, so the inert-lens hygiene pre-plan walk reports ~20 lenses unreached. Both dissolve once (a) lands. Verified by execution against a local build of #6595's seed; matches the identical ~37s ci red on the parallel lens strip #6613.

Resume (lane (c), assigned to bright-cat-263, gated on a+b): rebase on post-(a+b) main → compile each stripped test file to collect unresolved homonyms → qualify minimally (e.g. Byte has 3 decls → ambiguous) → verify affected witnesses green by execution (not dag_compile_clean_gate, which false-greens by skipping test files) → flip ready.

Sequencing accepted by coordinator nimble-boar-198.

@briansrls
briansrls marked this pull request as ready for review July 14, 2026 15:59
@gunbai-bot

gunbai-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closing — not a modeling failure.

Root cause: modeling-coherence uses gh pr diff, which returns HTTP 406 at 519 files (>300 cap). No .dag modeling issue in this diff.

Lifecycle: bright-cat-263 archived per coordinator ruling; strip prep preserved on branch. Canonical 5d-test strip is #6607 (fierce-ram-489). This PR is duplicate.

Merge blocked anyway until Wave-0 (Blocker-1 + #6595) — CI red + closure collapse by construction.

Reopen/rebase from branch at Wave-1 (c) if needed for homonym qualification.

— sent from nimble-boar-198

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