axstack 0.20.5 → 0.20.6

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/README.md CHANGED
@@ -112,6 +112,9 @@ session in an isolated workspace and admits at most five executing PR jobs per
112
112
  lane, fewer under resource pressure. Waiting PRs remain tracked without consuming
113
113
  execution slots, so a large open-PR backlog does not require an idle agent per PR.
114
114
  Completed passes save continuity and retire their own verified resources.
115
+ Held jobs preserve evidence, use private worktree-local temporary paths, and
116
+ release capacity only after native descendant settlement. Uncertain execution
117
+ teardown pauses the lane; settled evidence cleanup does not occupy a slot.
115
118
 
116
119
  Scheduling is opt-in and requires host-specific runtime validation before
117
120
  activation. Installing Axstack does not turn it on. Repairs are limited to
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
+ Each bounded job uses a private `0700` temporary directory inside its own
204
+ worktree. Cleanup targets only the validated owned path: no `TMPDIR` globs,
205
+ shared-root sweeps, or general cache wipes, and uncertain files remain for
206
+ reconciliation. Permission prompts and provider safety refusals are incomplete
207
+ holds, never bypass or cross-model retry signals. The coordinator preserves the
208
+ evidence, settles the exact owned tree through Orca's supported lifecycle, and
209
+ releases capacity only after native settlement is verified. Unresolved execution
210
+ teardown pauses the lane; retained evidence or cleanup metadata does not consume
211
+ a slot after positive full-tree settlement. Once settled, an unchanged held
212
+ event remains deduplicated while unrelated eligible PRs continue.
213
+
203
214
  Requested reviews cover any accessible repository; automatic repairs retain
204
215
  their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
205
216
  sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
@@ -216,6 +227,11 @@ after manager self-close, with an authorized deduplicated Telegram notification.
216
227
  The current operational contract is
217
228
  `skills/axstack/references/automations.md`.
218
229
 
230
+ These documents and their source-contract tests define expected decisions.
231
+ Scenario fixtures are behavioral-evaluation inputs, not model-evaluation
232
+ results, and neither form is live proof; activation still requires the native
233
+ canary described by the operational contract.
234
+
219
235
  ## Run record and evidence
220
236
 
221
237
  Substantive delegated or resumable work uses one compact `progress.md` rooted at
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.20.5",
3
+ "version": "0.20.6",
4
4
  "description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks Orca capabilities.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -79,7 +79,9 @@ After cleanup, re-list and count only the earlier pass workspaces still remainin
79
79
  If three or more unreclaimed
80
80
  earlier pass workspaces remain, disable only this automation through the native
81
81
  CLI, verify the disabled setting, save/report the cleanup hold, and admit no new
82
- PR jobs. Also pause on a confirmed cleanup failure or unresolved lane ownership.
82
+ PR jobs. Also pause on a confirmed earlier-manager retirement failure or
83
+ unresolved lane ownership. A settled PR-job worktree retained for evidence is a
84
+ cleanup hold, not unsettled execution or lane ownership.
83
85
  Already-dispatched passes still reconcile and retire only their own safe resources;
84
86
  this threshold is a stop condition, not an atomic hard cap on in-flight creations.
85
87
  An uncertain disable is a reported failure, not proof scheduling stopped. Resume
@@ -145,6 +147,13 @@ handles the current actionable event, returns exact receipts, then settles.
145
147
  Settlement returns continuity to the manager rather than retaining an idle PR
146
148
  coordinator. Reviewers retain the isolation required by `axstack-review`.
147
149
 
150
+ Give each job a private job-local temporary directory under its per-PR
151
+ worktree, following the ownership, containment, and cleanup checks in the
152
+ [runtime boundary](orca-runtime.md#reviewer-workspaces-and-evidence). Never
153
+ delete through a broad `TMPDIR` glob, sweep a shared temporary root, or wipe a
154
+ general cache. Preserve evidence and any temporary path whose ownership or
155
+ containment is uncertain.
156
+
148
157
  An unchanged exact head and unchanged event identity creates no job; an
149
158
  unchanged exact head with a new event identity remains actionable. Event
150
159
  identity includes the applicable review ID and body digest, check identity and
@@ -155,6 +164,39 @@ head, base, event identity, mode, owner and worker receipts, candidate,
155
164
  publication receipt, hold, and next action. GitHub remains authoritative for
156
165
  open state, revisions, reviews, checks, and merge state.
157
166
 
167
+ ## Held job settlement
168
+
169
+ Use native runtime inspection, not saved prose or silence, to identify an
170
+ actual hold and bind it to the exact Task, Dispatch, terminal, event, and
171
+ evidence. Permission prompts and provider safety refusals are incomplete held
172
+ outcomes: do not answer or bypass them, retry their content through another
173
+ model, or claim completion. Do not forge `worker_done`. Record the held event
174
+ identity and its resume condition in durable continuity. An unchanged hold creates no new job, no
175
+ retry, and no repeated notification; a changed event is reconsidered against
176
+ the original authority rather than assumed safe.
177
+
178
+ Preserve the prompt or refusal evidence, then follow the version-matched
179
+ orchestration recovery and cleanup guidance for every owned descendant. Use
180
+ only supported native lifecycle actions and receipt-supplied next actions;
181
+ saved status, contact loss, and a coordinator narrative do not settle a worker.
182
+ Unknown or user-owned work is never a kill target. Do not release the PR slot
183
+ until native state verifies settlement of the coordinator and every descendant.
184
+ Unrelated eligible PRs continue after the tree is verified settled, while the
185
+ held PR waits durably for its resume condition.
186
+
187
+ Execution settlement and cleanup retention are separate. Positive full-tree
188
+ process exit plus native Task and Dispatch settlement frees the slot. Retained
189
+ metadata does not occupy an execution slot: preserve it and its evidence for
190
+ reconciliation without reviving the failed job. Likewise, an archive hold
191
+ blocks workspace removal, not settled execution capacity; record the cleanup
192
+ hold, preserve the workspace, and let unrelated eligible PRs continue.
193
+
194
+ An active, unknown, protected, or unverifiable coordinator or descendant is
195
+ different: preserve its evidence and keep its slot occupied. Unresolved
196
+ execution teardown, or failure to retire the manager pass itself, pauses the
197
+ lane before another pass can admit work rather than accumulating active passes
198
+ or claiming capacity from an uncertain process tree.
199
+
158
200
  When the current event is handled, settle and release owned native resources.
159
201
  Preserve dirty worktrees, unpushed candidates, unarchived review evidence, pending
160
202
  external results, and user-owned work until durability and ownership are
@@ -255,7 +297,9 @@ unarchived evidence, children, user-owned work, unknown files, or unexplained
255
297
  dirty source. A verified evidence archive does not require otherwise clean Git
256
298
  state, but every remaining change must still be positively classified and safe;
257
299
  unknown dirt blocks removal. Never use recursive shell deletion. Failed cleanup
258
- remains recorded, not silently forgotten.
300
+ remains recorded, not silently forgotten. Failed PR-job workspace cleanup stays
301
+ a cleanup hold after execution settles; failed or unverifiable manager-pass
302
+ retirement pauses the lane instead of allowing active passes to accumulate.
259
303
 
260
304
  The activation canary must additionally prove distinct workspace IDs per pass,
261
305
  cross-workspace lane admission, self-retirement and absence after client reconnect,
@@ -68,8 +68,11 @@ An `input_accepted` stage proves only that input reached the terminal. Require
68
68
  started, and verify the requested role independently before trusting its work.
69
69
  A workspace trust, hook review, permission, authentication, or model prompt is
70
70
  a visible hold. Never answer a trust or permission prompt on the worker's
71
- behalf. Preserve the attempt and use only the runtime guide's inspection and
72
- recovery procedure; reconcile before retry so no duplicate writer starts.
71
+ behalf. A permission prompt or provider safety refusal is a held, incomplete
72
+ outcome, never consent or completion. Never bypass or retry it through another
73
+ model. Preserve the attempt and its evidence, then use only
74
+ the runtime guide's inspection and recovery procedure; reconcile before any
75
+ authorized retry so no duplicate writer starts.
73
76
 
74
77
  ## Reviewer workspaces and evidence
75
78
 
@@ -84,8 +87,13 @@ Keep reviewer-authored reports, probes, and logs inside the reviewer's worktree
84
87
  in an untracked, dispatch-specific artifact directory, not in `/tmp` or a
85
88
  provider scratch directory. Name its absolute path in the brief and completion
86
89
  receipt; keep tracked candidate files read-only and do not commit artifacts.
87
- For test tools that need temporary files, use a worktree-local temporary
88
- directory where supported; incidental tool-managed caches are not review evidence.
90
+ For tools that need temporary files, create one worktree-local, task- and
91
+ dispatch-specific directory with mode `0700`, and scope `TMPDIR` to the owned
92
+ command where supported. Before use or cleanup, validate that its real path is
93
+ inside the exact worktree, is not a symbolic link, and matches the recorded
94
+ owner. Remove only that exact validated owned path, with no glob or parent-root
95
+ deletion; never wipe a general cache. Uncertain temporary files are preserved
96
+ for later reconciliation. Incidental tool-managed caches are not review evidence.
89
97
  Before removing a reviewer worktree, preserve its report and supporting evidence
90
98
  in the driver's Orca workspace and update the run record's paths. Terminal
91
99
  release alone is not permission to discard evidence or remove the worktree.