Repository navigation
feat(op): pre-flight binds pending resources to the run's root — phase 2 closes - #601
Merged
Merged
Conversation
…se 2 closes Phase 2, PR 3 of the resource-construction plan (#584) -- the activation binding the run-from-elsewhere ruling made load-bearing: a graph is planned or loaded in whatever environment happened to construct its resource objects, but every location fact about them belongs to the root the RUN binds. The executor's pre-flight resolve pass now re-bases every pending entry onto the run's environment and re-binds root-relative schemes rel-first through the new op.RootBinder seam: identity (the rel) is unchanged, the root becomes the run's, the native form derives. file.Resource implements BindRoot, and Resolve's abs-first rebind -- the documented inverse, which preserved the construction-time machine location -- flips rel-first. The verification consequence stays mark-don't-fail; phase 3 owns the transition-failure semantics. Pinned in both directions: a graph planned under root A and executed under root B verifies and observes under B. The trace records B as the binding; the claimed rel is Active when the file exists only under B (the plan root never held it), and Gone when it exists only under A (with the dispatch failing to find it). PR 1 made the identity payload relocatable; this PR makes the verification relocatable -- the two halves of "one graph, any machine." Phase 2 is complete: rel identity (#596), the plan-space grammar and authoring migration (#600), and the binding (this PR). The Windows CI leg went 28 known failures to zero during this phase and #547 closed; step 4's consumer sweep finished across the three PRs (readback in PR 1, providers already on the accessor, Resolve's rebind here). Closes #584. Verified with make check (103 packages ok, 0 failures) and make vet under GOOS windows. Windows expectation: green stays green. Refs #546, #585.
David-Noble-at-work
added a commit
that referenced
this pull request
Aug 22, 2026
…ion (#607) The plan and design documents catch up with the campaign through phase 3 (#582-#585 delivered; #586-#587 remain). The plan (resource-construction.md): status in-progress; the phase-2/3 headings carry the merged PR numbers (#596/#600/#601; #602-#606); delivered markers on the docket's items 4/5, judgment scenario 1, and the fail-fast scenario; the directive-inventory rulings gain an execution-status note (the wire rename ran; the planner/struct_param/lifetime removals are chartered, not executed); the divergence table records which rows phases 0-3 resolved and which are phase 4's subject; phase 5's already-satisfied items are marked. 4-resource-management.md: the header's staging note now says phases 0-3 are in the tree; SS2's execution-time summary reflects bind-then-scoped-verify; SS3's delivered note extends to C2 (#606) -- every file-scheme mutator is a resource-typed consumer; SS5.4 marks the {id, uri} intent row delivered (#602); SS9 gains rulings 12-14 (claims taxonomy with Skip dropped, scoped verification, resource-typed mutation targets). The status companion records the landed phases and narrows outstanding work to #586 + #587. 4.1-resource-identity.md: identity never changes after construction -- the three "Resolve updates the cached URI" passages are replaced, the interface sketch corrects to Resolve() error with the RootBinder seam named, and file's opaque catalog identity (file:<rel>) is disambiguated from the rendered hierarchical form in SS2 and SS6. The status companion gains the rel-identity completion row. 3.5.4-file-provider.md: the mutator table carries the landed signatures (typed targets, on_missing defaults), a consumption-model paragraph ties the mutators to the claims taxonomy, and the SymbolicLink row records lstat existence. 2-execution-graph.md: Run's description includes the pre-flight binding pass and per-scope claim verification. Refs #581. Co-authored-by: David Noble <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 2, PR 3 of resource-construction — the activation binding
(§5.5), ruled load-bearing by the run-from-elsewhere caveat. Closes #584.
The binding
The executor's pre-flight resolve pass re-bases every pending entry onto the run's environment and
re-binds root-relative schemes rel-first through the new
op.RootBinderseam: identity (the rel)unchanged, root becomes the run's, native form derives.
file.ResourceimplementsBindRoot;Resolve's abs-first rebind — the documented inverse — flips rel-first. Verification staysmark-don't-fail; phase 3 owns the transition-failure consequence.
The proof
Two pins, both sharp: a graph planned under root A, executed under root B. The trace records B as the
binding; the claimed rel is Active when the file exists only under B (the plan root never held it),
and Gone when it exists only under A, with the dispatch failing. PR 1 made the identity payload
relocatable; this PR makes the verification relocatable — the two halves of "one graph, any machine."
Phase 2 closes
Rel identity (#596) + the plan-space grammar and authoring migration (#600) + the binding (here). During
this phase the Windows CI leg went 28 known failures → 0 and #547 closed. Step 4's consumer sweep
completed across the three PRs.
Verified
make check— 103 ok, 0 failures (both binding pins, every scenario star)make vetGOOS=windowsRefs #546, #585.