Skip to content

Namespace flip Dispatch 1 — turn on namespace-only resolution (global flip) + inline-qualify the import-dependent references. Residue=0 banked on main by #7165. Plan: docs/plans/namespace-flip-last-28-root-a-two-std-defork.md - #7200

Closed
gunbai-bot[bot] wants to merge 2 commits into
mainfrom
dispatch-2-import-deletion

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Auto-opened by session-dashboard for session snappy-tern-366.
Pushing to dispatch-2-import-deletion 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.

@gunbai-bot

gunbai-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Not abandoned — staying draft intentionally.

Dispatch 2 (global import deletion) is active on d869741:

Will gh pr ready once grammar deletion + fallout are addressed and CI is worth running green-by-execution — not before.

— sent from snappy-tern-366

@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 25, 2026 04:16
@gunbai-bot

gunbai-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Read review 42458 in full. Clean APPROVE — no findings, suggestions, or non-blocking fix requests beyond confirming the diff matches the Dispatch 2 roadmap (mechanical import strip, targeted std.types.ContentHash / std.content_hash.* qualifications, dropped policy-test residue banked by #7165).

No code changes from this review. Local branch has additional fallout fixes (rebase on main, node.dag ContentHash qualification, compile fallout) queued for push; remote head is still 83d26c6 with heal/regen red.

— sent from snappy-tern-366

@gunbai-bot

gunbai-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

review 42460 — verified against remote head 83d26c6 (origin/main...origin/dispatch-2-import-deletion):

files with non-blank additions: 2
85  src/v2/std/node.dag
 3  dag/std/content_hash.dag

No other .dag file gains non-blank lines on the published diff; the rest is import-line removal only. No code change from this review — it's descriptive confirmation, not a fix request.

Merge readiness (re-evaluated): NOT READY

Gate Status
api-review tally (≥2 APPROVE) review 42458 APPROVE on file; review 42460 is the substantive-additions scan (informational). Need second distinct api-review APPROVE on GitHub if not already recorded.
REQUEST_CHANGES none seen
mergeable=CLEAN CONFLICTING (mergeStateStatus: DIRTY — branch behind main)
CI green no — heal + regen fail on 83d26c6 (node.dag ContentHash branch typing)
satisfies request partial — mechanical strip landed; 02_parse.dag import grammar deletion + compile fallout still open; local worktree has rebased fallout fixes not pushed (20 commits ahead of remote)

Continuing fallout/rebase work locally; will push when pre-push is green.

— sent from snappy-tern-366

@gunbai-bot

gunbai-bot Bot commented Jul 25, 2026

Copy link
Copy Markdown
Contributor Author

Closing — not a rebase base, and not repairable in place.

Dispatch 2 was cleared on a premise that turned out to be values-only: namespace-flip-last-28-root-a-two-std-defork.md:230 says the flip is the closure-independent binding mechanism the PR-5b strip was blocked on. True for values and functions; false for types. Cross-module type references have no containment binding at all — fully-qualified std.types.ContentHash in type position resolves no better than the bare name.

The six node.dag errors here are not this branch's defect and fixing them would not fix anything: they fired by accident, where an if happened to juxtapose a fabricated Product(<anon>) branch against a correctly-typed one. The two ifs in the same file whose branches are both fabricated are not flagged at all. Repairing the six would only remove the accident that made a pre-existing §5 fail-open visible.

Full receipt, eight-probe witness set and fix ordering: #7214 (§14 of the #6985 diagnosis).

This strip was a good discovery instrument and was stopped correctly — silent success was the failure mode here, and across 1,658 files a green compile would have carried no information. It gets redone once (b) the fabrication fails closed and (a) type references bind by containment; at that point the strip is a different strip, so these commits are evidence rather than a base.

The 35 commits are preserved at evidence/dispatch-2-import-deletion-shelf (f5a1494), pushed before archiving the session so nothing is lost.

— sent from clever-pike-49

@gunbai-bot gunbai-bot Bot closed this Jul 25, 2026
briansrls added a commit that referenced this pull request Jul 25, 2026
…EN (#7214)

Dispatch 2 (#7200, global import deletion) went red on six sites in
src/v2/std/node.dag, all `Primitive(std.types.ContentHash) vs
Product(<anon>)`. Root-caused by execution against main+#7178 with an
eight-probe witness set; recorded as §14 of the existing #6985 diagnosis
rather than a new doc.

Two findings:

1. The qualified spelling buys no binding. `std.types.ContentHash` written
   out in full, in type position, resolves no better than the bare name —
   there is no containment binding path for cross-module TYPE references.
   The flip gave containment binding to values/functions, not to types, so
   the premise Dispatch 2 was cleared on is false for types.

2. The failure arm widens instead of refusing. Name absent from the pool
   refuses correctly (`unresolved type`, located); name present in the pool
   but not import-reachable fabricates `Product(<anon>)`, which unifies with
   everything downstream. Proven to pass a real cross-module consumer
   boundary at `0 blocking error(s)`. Only an incidental `if` juxtaposition
   catches it — DESIGN §5 fabricated-plausible-output, sitting under a
   1658-file strip whose green would have meant nothing.

Consequence: §13's blocker extends to Dispatch 2, which was not exempt.
Fix order is the fail-open first (it is what makes any binding fix
verifiable), then a containment path for type references.

Receipt only — no fix lands here, and #7200's branch is left as evidence.

Co-authored-by: Brian Searls <briansrls@gunb.ai>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.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