Repository navigation
feat(file): Move's source and RemoveAll's target consume — phase 3 closes without remainder - #606
Merged
Merged
Conversation
…loses without remainder Phase 3, C2 of the resource-construction plan (#585) -- the last file-scheme mutators join the ruled model, and every mutator is now a resource-typed consumer. file.Move takes source *Regular with on_missing (stop default): a move destroys the source location, so the source claims required intent, and success marks its entry Gone with the destroyer stamp -- a later consumer of the moved-away source sees the narrated verdict. file.RemoveAll takes target *Directory with on_missing, policy-gated like its siblings; its missing-target pin rewrites to both directions (Stop errors, Ignore no-ops). Backup delegates through the typed Move. The params rename source_path -> source and path -> target across the star scripts, writ adopt, and writ migrate. The strict case caught one more star: test_mkdir_and_remove_all created its tree mid-run and removed it by name, promise-less -- re-authored so remove_all consumes mkdir's promise, the ordering riding the edge. writ migrate's layer registration now authors its consumed source in plan space; one kind-looseness is recorded there: the registration moves a DIRECTORY through the *Regular-typed claim -- dispatch observes the actual kind (candidateOfMode) and the rename handles either; kind-honest claims for directory moves ride the 3.6 method-classification work. Verified with make check (103 packages ok, 0 failures) and make vet under GOOS windows. Phase 3 of the plan is complete: stateless intent rows, scoped verification, resource-typed mutators across the board, and the consumed-Gone guard with the narrated verdict, every ruling carrying standing CI evidence. Refs #585, #581.
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 3, C2 of resource-construction (#585) — the closing PR.
The last mutators
file.Move(source *Regular, destination_path, on_missing)— a move destroys the source location: thesource claims, and success marks it Gone with the destroyer stamp, so a later consumer of the
moved-away source gets the narrated verdict.
file.RemoveAll(target *Directory, on_missing, prune, boundary)— policy-gated like its siblings, missing-target pin covering both directions.Backupdelegates through the typed Move. Every file-scheme mutator is now a resource-typed consumer.
The sweep
source_path→source,path→targetacross six star scripts, writ adopt, and writ migrate. Thestrict case caught one more fixture (
test_mkdir_and_remove_all— mid-run tree, removed by name) —re-authored to consume mkdir's promise. Migrate's layer registration authors plan-space rels; one recorded
kind-looseness: it moves a directory through the
*Regular-typed claim (dispatch observes the actualkind; kind-honest directory-move claims ride 3.6).
Verified
make check— 103 ok, 0 failuresmake vetGOOS=windows; gofmt clean; expectation: green stays greenWith this merge, phase 3 is complete — every ruling from the claims-taxonomy design carries standing CI
evidence. Refs #585, #581.