axstack 0.20.6 → 0.20.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/workflows.md
CHANGED
|
@@ -200,6 +200,17 @@ shared manager workspace or a PR-job worktree, or cleans preserved candidates,
|
|
|
200
200
|
evidence, user sessions, unknown liveness, `user_takeover`, or ambiguous
|
|
201
201
|
publication state. Manual review/watch remains outside this scheduled lifecycle.
|
|
202
202
|
|
|
203
|
+
One natively ordered successor may recover an exact positively completed
|
|
204
|
+
predecessor whose terminal survived, but only after matching its automation,
|
|
205
|
+
run, workspace, and terminal incarnation and proving zero unsettled descendants.
|
|
206
|
+
It saves and reads back the cleanup claim before exact native close, then proves
|
|
207
|
+
the full process tree exited before ownership release or guarded worktree removal.
|
|
208
|
+
Age, status, or idle state alone never authorizes cleanup. Conflicting successors,
|
|
209
|
+
identity mismatch, unknown or protected state, `user_takeover`, unexpected
|
|
210
|
+
terminals, dirty or unpushed work, and unarchived evidence hold cleanup; an
|
|
211
|
+
unchanged failure is deduplicated. Native ordering is not an atomic lock, so the
|
|
212
|
+
overlap canary remains an activation requirement.
|
|
213
|
+
|
|
203
214
|
Each bounded job uses a private `0700` temporary directory inside its own
|
|
204
215
|
worktree. Cleanup targets only the validated owned path: no `TMPDIR` globs,
|
|
205
216
|
shared-root sweeps, or general cache wipes, and uncertain files remain for
|
package/package.json
CHANGED
|
@@ -66,6 +66,38 @@ intent alone is insufficient. Conversely a completed run row does not prove exit
|
|
|
66
66
|
If these facts remain unknown, report the hold at the durable decision location;
|
|
67
67
|
do not silently stand down forever or replace a potentially live owner.
|
|
68
68
|
|
|
69
|
+
### Guarded completed-predecessor recovery
|
|
70
|
+
|
|
71
|
+
A successor may retire a positively completed predecessor whose manager terminal
|
|
72
|
+
survived only through this narrow recovery path. Eligibility requires an exact
|
|
73
|
+
automation ID, run ID, workspace ID, and terminal incarnation match, a positive
|
|
74
|
+
completion receipt bound to that incarnation, zero active or unsettled descendants,
|
|
75
|
+
and every owned Task and Dispatch settled. A completed row or saved retirement
|
|
76
|
+
intent alone is not positive completion. Age, status, and idle state are never
|
|
77
|
+
cleanup authority. Active, unknown, protected, identity-mismatched,
|
|
78
|
+
`user_takeover`, unexpected-terminal, permission-held, or otherwise unverifiable
|
|
79
|
+
state preserves the predecessor and pauses admission; this path never takes over
|
|
80
|
+
its PR work.
|
|
81
|
+
|
|
82
|
+
Exactly one successor, selected by native run ordering, may write the cleanup
|
|
83
|
+
claim. Immediately before writing, re-read the complete lane inventory and
|
|
84
|
+
ordering; then save and read back claimant identity, predecessor identity,
|
|
85
|
+
completion, and zero-descendant continuity before the exact native workspace
|
|
86
|
+
close. A later successor reconciles that claim and performs no cleanup mutation.
|
|
87
|
+
Missing ordering or a conflicting claim holds both cleanup and admission. This
|
|
88
|
+
ordering is not an atomic lock; activation still depends on the overlap canary
|
|
89
|
+
proving that two successors cannot both mutate one predecessor.
|
|
90
|
+
|
|
91
|
+
Use the version-matched native workspace close against the receipt's complete
|
|
92
|
+
workspace ID, never an individually guessed terminal or broad selector. After
|
|
93
|
+
close, re-list native runs, workspaces, terminals, Tasks, and Dispatches and prove
|
|
94
|
+
the full predecessor process tree exited before ownership release. Save and read
|
|
95
|
+
back the exit and release receipts, then use native worktree cleanup only when the
|
|
96
|
+
workspace has no children, dirty or unknown files, unpushed commits, unarchived
|
|
97
|
+
evidence, or user-owned work. Preserve every failed or uncertain close, exit,
|
|
98
|
+
release, or removal with its exact resume condition and pause the lane. An
|
|
99
|
+
unchanged cleanup failure gets no destructive retry or duplicate notification.
|
|
100
|
+
|
|
69
101
|
Before PR admission, reconcile old pass resources and reclaim every safely
|
|
70
102
|
removable earlier pass workspace under the retirement guards below. This is
|
|
71
103
|
routine cleanup on every admitted pass; do not wait for the three-workspace
|