axstack 0.24.0 → 0.24.1
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axstack",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.1",
|
|
4
4
|
"description": "Axstack installer and setup CLI: installs owned chat skills and role data, configures supported harness settings, and checks T3 Code capabilities.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -34,7 +34,7 @@ T3 sessions are exempt from Claude trust preflight.
|
|
|
34
34
|
|
|
35
35
|
## Session admission
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
The owner-of-record performs guarded retirement in [Finite-session teardown](#finite-session-teardown).
|
|
38
38
|
Lane identity requires exact thread/run identity, never a title or directory-name
|
|
39
39
|
guess; never infer lane ownership from an empty local workspace.
|
|
40
40
|
Reconcile saved state, current GitHub state, and native T3 threads, runs,
|
|
@@ -54,8 +54,36 @@ events and the unserved count. If a duplicate finds a stalled owner idle at its
|
|
|
54
54
|
prompt with a final turn lacking a completion receipt for more than five
|
|
55
55
|
minutes (nudged or not), record it in that private note and send one deduplicated
|
|
56
56
|
notification under the recorded `Notification policy`.
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
A **wedged lane pass**, whether owner, successor or duplicate, has a non-terminal
|
|
58
|
+
run with more than 60 minutes of verified inactivity across its thread, all its
|
|
59
|
+
runs, delegated tasks and descendant threads, and is free of `user_takeover`.
|
|
60
|
+
A user-taken-over descendant holds recovery and excludes its pass from the
|
|
61
|
+
wedged category, and is never interrupted.
|
|
62
|
+
A live pass has a non-terminal run and is not wedged.
|
|
63
|
+
Exactly one successor recovers a wedged owner or resumes an interrupted takeover:
|
|
64
|
+
the earliest-started live pass, selected by native run start
|
|
65
|
+
ordering; missing or tied ordering evidence holds admission and recovery.
|
|
66
|
+
The successor interrupts the owner and its descendant threads with
|
|
67
|
+
`t3_thread_interrupt`, naming each exact `runId` and a stable `clientRequestId`
|
|
68
|
+
per run, and reads back terminal state for the whole tree
|
|
69
|
+
before recording the takeover in continuity and becoming owner.
|
|
70
|
+
If a successor wedges between interrupt and takeover, the next elected live pass
|
|
71
|
+
interrupts the wedged successor and its tree with `t3_thread_interrupt` at each
|
|
72
|
+
exact `runId` using the same per-run procedure, and reads back terminal state for
|
|
73
|
+
that whole tree before recording any takeover, then resumes recovery from terminal readback
|
|
74
|
+
of the interrupted owner, which is
|
|
75
|
+
excluded from the potentially-live-owner hold.
|
|
76
|
+
The owner-of-record, including a successor immediately after takeover, interrupts
|
|
77
|
+
wedged non-owner passes (duplicates or failed successors) using the same exact-run
|
|
78
|
+
procedure and terminal readback, then retires them under Finite-session teardown.
|
|
79
|
+
Before any admission, the successor reconciles the previous owner's in-flight
|
|
80
|
+
jobs from GitHub and evidence. Only a verdict already published and read back
|
|
81
|
+
counts as served. Otherwise the event is unserved/`INCOMPLETE` and re-eligible.
|
|
82
|
+
A failed interrupt or unverified terminal state keeps the existing hold plus
|
|
83
|
+
one deduplicated notification under the recorded `Notification policy`.
|
|
84
|
+
Outside the wedged-pass recovery above, unknown liveness blocks admission,
|
|
85
|
+
shared-record writes, takeover and cleanup, including when activity is recent.
|
|
86
|
+
Preserve user-taken-over threads.
|
|
59
87
|
This is prompt policy, not an atomic lock: the overlap canary must demonstrate
|
|
60
88
|
one admission owner before activation. Count all unsettled PR jobs and descendants.
|
|
61
89
|
|
|
@@ -132,7 +160,9 @@ under [T3 runtime](t3-runtime.md). For a worker's own brief question, confirm th
|
|
|
132
160
|
brief once.
|
|
133
161
|
A second brief ask follows the five-minute stop rule, never an open-ended hold.
|
|
134
162
|
An idle final turn without a valid completion
|
|
135
|
-
receipt is incomplete, not successful. A
|
|
163
|
+
receipt is incomplete, not successful. A wait with more than 60 minutes of
|
|
164
|
+
verified inactivity across its whole tree is a wedge, not a running wait.
|
|
165
|
+
A started coordinator waiting on its
|
|
136
166
|
reviewers (a live reviewer task or running wait) is not idle and is never
|
|
137
167
|
stopped for waiting. Reconcile terminal failure and all descendants before
|
|
138
168
|
recording an event unserved and re-admissible.
|
|
@@ -260,16 +290,21 @@ or separate model gate.
|
|
|
260
290
|
|
|
261
291
|
## Finite-session teardown
|
|
262
292
|
|
|
263
|
-
|
|
264
|
-
|
|
293
|
+
Only the owner-of-record pass retires settled predecessor passes and qualifying
|
|
294
|
+
terminal duplicates, including duplicates newer than the owner and immediately
|
|
295
|
+
after successor takeover.
|
|
296
|
+
Qualifying duplicates have a terminal run, no descendants and only their own pass note.
|
|
297
|
+
Each pass reports the retained worktree count.
|
|
298
|
+
Retirement requires terminal run evidence and settled descendants,
|
|
265
299
|
durable continuity, evidence read-back and verified salvage where needed;
|
|
266
300
|
follow [Workspace hygiene](workspace-hygiene.md) and [T3 runtime](t3-runtime.md).
|
|
267
301
|
Then run the driver-start orphan sweep under Workspace hygiene; the sweep is
|
|
268
302
|
silent when nothing was removed. Record sweep results and holds in continuity's
|
|
269
303
|
Open holds table.
|
|
270
304
|
The orphan sweep covers the run record's repositories plus registered repositories on this host.
|
|
271
|
-
`t3_thread_organize` settle/archive
|
|
272
|
-
|
|
305
|
+
Retirement settles duplicate threads with `t3_thread_organize` (settle/archive
|
|
306
|
+
changes metadata only) before separate guarded Git worktree removal.
|
|
307
|
+
Unknown, active or user-taken-over threads,
|
|
273
308
|
ambiguous publication and failed salvage stay preserved.
|
|
274
309
|
|
|
275
310
|
A review-manager pass may retire a predecessor pass's local `t3code/*` branch
|
|
@@ -295,7 +330,8 @@ removal, not settled execution capacity. The next pass retires this settled pass
|
|
|
295
330
|
|
|
296
331
|
The canary runs two overlapping `run_scheduled_task_now` passes and proves one
|
|
297
332
|
admission owner per PR. The canary reviews or correctly no-ops one real PR event.
|
|
298
|
-
The canary reconciles a killed predecessor
|
|
333
|
+
The canary reconciles a killed predecessor and demonstrates wedged-pass recovery:
|
|
334
|
+
exactly one successor interrupts and retires a wedged predecessor.
|
|
299
335
|
With a temporary limit equal to the current count, the canary disables the
|
|
300
336
|
schedule and verifies that the following interval creates zero new pass worktrees.
|
|
301
337
|
The previous review-manager automation is disabled, never deleted, only after all four T3 canary checks pass.
|