axstack 0.20.0 → 0.20.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/README.md CHANGED
@@ -114,11 +114,15 @@ answer trust or permission prompts on the worker's behalf, and never create a
114
114
  duplicate writer. A `worker_done` advances work only when its Task and Dispatch
115
115
  match the active attempt and its revision evidence verifies.
116
116
 
117
- Two reusable native PR-manager chats run on staggered 15-minute schedules in
118
- dedicated workspaces. Review and watch each admit at most five bounded PR jobs;
117
+ Two logical native PR-manager lanes run on staggered 15-minute schedules. Each
118
+ pass uses a fresh finite session in its persistent dedicated workspace. Review
119
+ and watch each admit at most five bounded PR jobs;
119
120
  waiting PRs stay covered without reserving slots. Axstack adds no custom
120
- scheduler, queue engine, or decision interpreter. Native reuse, busy-tick,
121
- recovery, and VPS resource behavior require a canary before activation.
121
+ scheduler, queue engine, or decision interpreter. Sessions reconcile before
122
+ admission, save durable continuity and decisions, clean only positively
123
+ identified owned unused setup shells, and self-close as their final action.
124
+ Native fresh-session, overlapping-pass, recovery, and VPS resource behavior
125
+ require a canary before activation.
122
126
 
123
127
  Mobile completion/reply behavior remains unverified. Structural checks and
124
128
  qualitative scenario evaluation are not live runtime proof.
package/docs/workflows.md CHANGED
@@ -173,8 +173,8 @@ gate. An applicable `Notification policy` may use `axstack-relay`; otherwise the
173
173
  current Orca conversation is the fallback. The relay normally delivers one-way
174
174
  through native `hermes send`: it checks CLI lookup and the configured target,
175
175
  binds the recipient, deduplicates on the run record, and records the returned
176
- `message_id`. PR-manager notifications point the user to the reusable manager's
177
- Orca conversation; Telegram delivery, replies, and silence grant no action
176
+ `message_id`. PR-manager notifications point the user to GitHub or a durable
177
+ user-owned conversation; Telegram delivery, replies, and silence grant no action
178
178
  authority. Delivery failure never clears the underlying hold.
179
179
 
180
180
  Healthy watch observations remain quiet. The optional `axstack-monitor` is a
@@ -182,16 +182,25 @@ read-only observer for standalone watches and never sends.
182
182
 
183
183
  ## Native watch automations
184
184
 
185
- The accepted contract has exactly two reusable native manager chats: review at
186
- minutes `0,15,30,45` and watch at `7,22,37,52`. Each has a dedicated manager
187
- workspace, scans complete discovery pages, and admits at most five executing
185
+ The accepted contract has exactly two logical native manager lanes: review at
186
+ minutes `0,15,30,45` and watch at `7,22,37,52`. Each scheduled pass uses a
187
+ fresh finite session in a persistent dedicated workspace, scans complete
188
+ discovery pages, and admits at most five executing
188
189
  PR jobs. Waiting PRs stay covered and consume no slot after owned descendants
189
190
  settle. Each job uses one repository-parented worktree; managers never check out
190
191
  PR branches in their own workspaces.
191
192
 
193
+ Every pass reconciles saved, GitHub, and native Orca state before admission. A
194
+ confirmed same-lane manager makes the new duplicate do no work or shared-record
195
+ write and close only itself. Normal teardown settles descendants, saves durable
196
+ continuity and decisions, closes only positively identified owned unused setup
197
+ shell terminals, then self-closes as the final action. It never blanket-closes
198
+ the workspace or cleans preserved candidates, evidence, user sessions, unknown
199
+ liveness, `user_takeover`, or ambiguous publication state.
200
+
192
201
  Requested reviews cover any accessible repository; automatic repairs retain
193
202
  their `defi-com/monorepo` and `defi-com/mobile` scope. Orca owns schedules,
194
- reuse, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
203
+ sessions, Tasks, and Dispatches. Axstack adds no custom scheduler, queue engine,
195
204
  cursor files, polling loop, or historical runtime fallback.
196
205
 
197
206
  ## Automations
@@ -200,8 +209,9 @@ The review and watch managers use short packaged prompts that load the current
200
209
  relative contract and invoke `axstack-review` or `axstack-watch`. Bounded jobs
201
210
  publish ordinary exact-head review verdicts or reviewed fast-forward repairs;
202
211
  the human merges. Exceptional security, permanent-on-chain, or architectural
203
- decisions remain held in the manager conversation with an authorized
204
- deduplicated Telegram notification. The current operational contract is
212
+ decisions remain actionable in GitHub or a durable user-owned conversation
213
+ after manager self-close, with an authorized deduplicated Telegram notification.
214
+ The current operational contract is
205
215
  `skills/axstack/references/automations.md`.
206
216
 
207
217
  ## Run record and evidence
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.20.0",
3
+ "version": "0.20.1",
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",
@@ -5,7 +5,7 @@ automation specs and plans describe retired designs and are not instructions.
5
5
 
6
6
  ## Topology and schedules
7
7
 
8
- There are exactly two reusable manager chats:
8
+ There are exactly two logical manager lanes:
9
9
 
10
10
  - **Review manager:** runs at minutes `0,15,30,45` and invokes
11
11
  [axstack-review](../../axstack-review/SKILL.md) for eligible peer reviews.
@@ -13,17 +13,29 @@ There are exactly two reusable manager chats:
13
13
  [axstack-watch](../../axstack-watch/SKILL.md) for eligible own-PR watch or
14
14
  repair events.
15
15
 
16
- Each uses native existing-workspace reuse in its own dedicated manager
17
- workspace. A manager never checks out a PR branch in that workspace. Missed
18
- slots do not replay a backlog; the next ordinary tick discovers current state.
19
- The two short packaged prompts sit beside this file and discover these rules by
20
- relative link instead of copying them.
21
-
22
- This is prompt policy, not proof that Orca serializes a busy tick or reuses a
23
- session. Before activation a native canary must prove same-session reuse, busy
24
- tick behavior, recovery after session loss, nested dispatch depth for
25
- coordinator-launched leaves, and total process and memory effects. A firing
26
- timestamp proves neither delivery nor useful completion.
16
+ Each scheduled pass starts a fresh finite manager session in its persistent
17
+ dedicated workspace; the workspace and saved continuity persist, but the
18
+ manager chat does not. A manager never checks out a PR branch in that
19
+ workspace. Missed slots do not replay a backlog; the next ordinary pass
20
+ discovers current state. The two short packaged prompts sit beside this file
21
+ and discover these rules by relative link instead of copying them.
22
+
23
+ This is prompt policy, not proof that Orca starts a fresh session or prevents
24
+ overlapping passes. Before activation a native canary must prove fresh-session
25
+ launch, overlapping-pass behavior, recovery after session loss, nested
26
+ dispatch depth for coordinator-launched leaves, and total process and memory
27
+ effects. A firing timestamp proves neither delivery nor useful completion.
28
+
29
+ ## Session admission
30
+
31
+ Reconcile saved state, current GitHub state, and native Orca Tasks, Dispatches,
32
+ sessions, and liveness in the dedicated workspace before discovery or
33
+ admission. A confirmed live manager for the same lane remains authoritative.
34
+ The new duplicate does no PR work, makes no shared-record write, touches
35
+ nothing owned by the live manager, and closes only itself as its final action.
36
+ Unknown liveness blocks admission and shared-record writes; it does not
37
+ authorize takeover, cleanup, or a duplicate manager. Preserve `user_takeover`
38
+ and other user-owned sessions.
27
39
 
28
40
  ## Discovery and coverage
29
41
 
@@ -74,8 +86,8 @@ a slot settles; repeatedly changing PRs cannot starve older unserved work.
74
86
 
75
87
  ## Per-PR jobs
76
88
 
77
- The reusable manager owns ongoing discovery and continuity; the bounded PR
78
- coordinator owns only its admitted event. Do not create a second live owner or
89
+ The logical manager lane owns ongoing discovery and continuity across finite
90
+ sessions; the bounded PR coordinator owns only its admitted event. Do not create a second live owner or
79
91
  writer for the same PR. Reuse an existing valid per-PR worktree, owner, and
80
92
  unchanged receipts before creating anything. Otherwise create one separate
81
93
  Orca worktree per PR job, parented to that repository's primary worktree, and
@@ -85,19 +97,23 @@ handles the current actionable event, returns exact receipts, then settles.
85
97
  Settlement returns continuity to the manager rather than retaining an idle PR
86
98
  coordinator. Reviewers retain the isolation required by `axstack-review`.
87
99
 
88
- An unchanged exact head and event creates no job. Dedupe from current GitHub
89
- state, native Orca Task and Dispatch state, and the existing compact run record;
90
- do not create machine cursor files or a queue engine. Record enough to resume:
91
- PR, head, base, event identity, mode, owner and worker receipts, candidate,
100
+ An unchanged exact head and unchanged event identity creates no job; an
101
+ unchanged exact head with a new event identity remains actionable. Event
102
+ identity includes the applicable review ID and body digest, check identity and
103
+ result, or other current GitHub event receipt. Dedupe from current GitHub state,
104
+ native Orca Task and Dispatch state, and the existing compact run record; do
105
+ not create machine cursor files or a queue engine. Record enough to resume: PR,
106
+ head, base, event identity, mode, owner and worker receipts, candidate,
92
107
  publication receipt, hold, and next action. GitHub remains authoritative for
93
108
  open state, revisions, reviews, checks, and merge state.
94
109
 
95
110
  When the current event is handled, settle and release owned native resources.
96
- Preserve a dirty worktree, an unpushed candidate, pending external result, or
97
- user-owned work until its durability and ownership are proven. Here a pending
98
- external result means an unconfirmed publication or send outcome, not pending
99
- CI. Waiting state belongs in GitHub and the compact record, never in an idle
100
- model, per-PR timer, or polling loop.
111
+ Preserve dirty worktrees, unpushed candidates, review evidence, pending
112
+ external results, and user-owned work until durability and ownership are
113
+ proven. Unknown liveness, `user_takeover`, and ambiguous publication likewise
114
+ forbid cleanup. Here a pending external result means an unconfirmed publication
115
+ or send outcome, not pending CI. Waiting state belongs in GitHub and the compact
116
+ record, never in an idle model, per-PR timer, or polling loop.
101
117
 
102
118
  ## Review and repair authority
103
119
 
@@ -137,18 +153,36 @@ boundary.
137
153
  ## Exceptional decisions and notifications
138
154
 
139
155
  A credible security concern, permanent on-chain state change, or architecture
140
- decision is held in the reusable manager's Orca conversation. Store the PR,
141
- head, base, action, candidate, decision context, and preserved candidate bytes
142
- or refs in the compact record. Send one deduplicated Telegram notification only
143
- when the recorded `Notification policy` authorizes it, using
144
- [axstack-relay](../../axstack-relay/SKILL.md) and telling the user to act in
145
- that manager conversation.
156
+ decision is held in GitHub or a durable user-owned conversation that survives
157
+ the finite manager session. Store the PR, head, base, action, candidate,
158
+ decision context, durable decision location, and preserved candidate bytes or
159
+ refs in the compact record. The decision must never depend on a closed manager
160
+ chat. Send one deduplicated Telegram notification only when the recorded
161
+ `Notification policy` authorizes it, using
162
+ [axstack-relay](../../axstack-relay/SKILL.md) and telling the user where the
163
+ durable decision is actionable.
146
164
 
147
165
  Telegram delivery, a Telegram reply, or silence never authorizes an action.
148
- After a decision in the manager conversation, revalidate the exact candidate,
149
- head, base, event, authority, and remote state before acting. A changed input
150
- makes the old decision stale and holds that action. There are no token files,
151
- Telegram decision interpreter, or separate model gate.
166
+ After a decision, revalidate the exact candidate, head, base, event, authority,
167
+ and remote state before acting. A changed input makes the old decision stale
168
+ and holds that action. There are no token files, Telegram decision interpreter,
169
+ or separate model gate.
170
+
171
+ ## Finite-session teardown
172
+
173
+ After admission closes, settle every owned PR job and all descendants before the
174
+ manager session ends; active or unknown descendants keep their PR slot occupied
175
+ and must be reconciled rather than trusted from saved status. Then save durable
176
+ continuity, evidence locations, pending receipts, and user decisions before
177
+ self-close. Waiting PRs still occupy zero slots once their owned trees settle.
178
+
179
+ Cleanup is scoped to positively identified owned unused setup shells: use the
180
+ version-matched native exact-terminal close operation for each such terminal only.
181
+ Never blanket-close a workspace. Preserve dirty worktrees, unpushed candidates,
182
+ review evidence, user-owned terminals, unknown liveness, `user_takeover`, and
183
+ ambiguous publication state. Close the finite manager's own exact terminal
184
+ through the native guide. Self-close is the final action; perform no record
185
+ write, cleanup, or other work afterward.
152
186
 
153
187
  ## Recovery and limits
154
188
 
@@ -162,6 +196,6 @@ unambiguous work may proceed.
162
196
  Use only native schedules and Orca orchestration. Add no daemon, shell precheck,
163
197
  watchdog script, custom scheduler, cursor or pending sidecar, runtime database,
164
198
  workflow state machine, decision interpreter, or programmatic escalation gate.
165
- The live VPS activation, native reuse and busy-tick behavior, recovery path,
199
+ The live VPS activation, native fresh-session and overlapping-pass behavior, recovery path,
166
200
  nested dispatch depth for coordinator-launched leaves, and resource ceiling
167
201
  remain unverified until the canary succeeds.
@@ -110,8 +110,8 @@ differs from merged; human merges.
110
110
 
111
111
  ## Watch health
112
112
 
113
- The native review and watch managers reuse separate dedicated workspaces on
114
- staggered 15-minute schedules. Each admits at most five executing PR jobs;
113
+ Native review and watch lanes use fresh finite sessions in persistent dedicated
114
+ workspaces on staggered 15-minute schedules. Each admits at most five executing PR jobs;
115
115
  waiting PRs remain covered without reserving slots. Bounded PR jobs own their
116
116
  events, use per-PR worktrees, and settle after descendants settle. Build no
117
117
  custom scheduler, state engine, or legacy fallback. Details live in
@@ -1,9 +1,10 @@
1
1
  # Review manager prompt
2
2
 
3
- You are the reusable review manager in your dedicated Orca workspace. Enter
3
+ You are a fresh finite review-manager session in its persistent dedicated Orca workspace. Enter
4
4
  through the installed `axstack-review` skill; that skill loads its packaged
5
5
  `../axstack/references/automations.md` contract by relative reference. Discover
6
6
  every eligible peer-review event and invoke the skill through Orca for each
7
7
  admitted bounded PR job. Keep complete coverage separate from the five-job
8
8
  execution cap, preserve exact ownership and receipts, settle completed trees,
9
- and stay quiet when nothing changed. Never check out a PR branch here.
9
+ and stay quiet when nothing changed. Reconcile before admission, save durable
10
+ continuity, then self-close as the final action. Never check out a PR branch here.
@@ -1,10 +1,11 @@
1
1
  # Watch manager prompt
2
2
 
3
- You are the reusable watch manager in your dedicated Orca workspace. Enter
3
+ You are a fresh finite watch-manager session in its persistent dedicated Orca workspace. Enter
4
4
  through the installed `axstack-watch` skill; that skill loads its packaged
5
5
  `../axstack/references/automations.md` contract by relative reference. Discover
6
6
  every eligible own-PR event and invoke the skill through Orca for each admitted
7
7
  bounded PR job. Keep complete coverage separate from the five-job execution
8
8
  cap, preserve exact ownership, candidates, holds, and receipts, settle
9
- completed trees, and stay quiet when nothing changed. Never check out a PR
10
- branch here.
9
+ completed trees, and stay quiet when nothing changed. Reconcile before
10
+ admission, save durable continuity, then self-close as the final action. Never
11
+ check out a PR branch here.
@@ -9,7 +9,7 @@ Produce one evidence-bound verdict for an exact candidate revision using the
9
9
  review count and model routing required by its mode. Report within the
10
10
  requested authority; the human merges unless separately authorized otherwise.
11
11
 
12
- When the current session is the reusable review manager, load
12
+ When the current session is a fresh review-manager session, load
13
13
  [Native PR managers](../axstack/references/automations.md) and follow only its
14
14
  discovery, admission, recovery, and settlement branch. Do not review a PR,
15
15
  materialize `axstack-owner`, or check out a PR branch in the manager workspace.
@@ -276,7 +276,7 @@ private transport values or configuration.
276
276
 
277
277
  Under a manager PR job, credible serious risk found by a reviewer raises the
278
278
  standing internal prompt and dependent-action hold immediately in the compact
279
- run record and reusable manager's Orca conversation. The authorized
279
+ run record and a durable GitHub or user-owned conversation. The authorized
280
280
  `axstack-relay` notification points the user there; delivery or silence never
281
281
  authorizes action.
282
282
 
@@ -329,7 +329,7 @@ to the intended commit.
329
329
  For a peer PR selected under
330
330
  [Native PR managers](../axstack/references/automations.md), apply the same
331
331
  complete-review and exact-commit requirements. A serious-risk escalation holds
332
- submission in the reusable manager conversation. Otherwise `APPROVE` requires
332
+ submission at its durable decision location. Otherwise `APPROVE` requires
333
333
  no validated blocker and `REQUEST_CHANGES` requires at least one evidenced
334
334
  validated blocker. `INCOMPLETE`, unavailable inputs, unresolved disagreement,
335
335
  or unknown GitHub state submits nothing.
@@ -14,7 +14,7 @@ Its required edge loads [Shared lifecycle](../axstack/references/lifecycle.md),
14
14
  including the end-of-run audit hook. Reach other references only at the steps
15
15
  that name them.
16
16
 
17
- When the current session is the reusable watch manager, load
17
+ When the current session is a fresh watch-manager session, load
18
18
  [Native PR managers](../axstack/references/automations.md) and follow only its
19
19
  discovery, admission, recovery, and settlement branch. Do not adopt or repair a
20
20
  PR, materialize `axstack-owner`, or check out a PR branch in the manager
@@ -71,9 +71,9 @@ Read-only checks and updates to the already-owned local record need no runtime
71
71
  load. When the watch needs a new owner or automated observation, first read
72
72
  [Watch runtime](references/watch-runtime.md) and then
73
73
  [Orca runtime](../axstack/references/orca-runtime.md). Reconcile before creating
74
- anything. The native watch manager reuses one dedicated workspace on its
75
- staggered 15-minute schedule, covers every eligible own PR, and starts only
76
- bounded actionable-event jobs. Waiting PRs reserve no execution slots and
74
+ anything. Each native watch-manager pass starts a fresh finite session in one
75
+ persistent dedicated workspace on its staggered 15-minute schedule, covers
76
+ every eligible own PR, and starts only bounded actionable-event jobs. Waiting PRs reserve no execution slots and
77
77
  there is no watch deadline for manager automation. `axstack-monitor` stays an
78
78
  optional read-only observer that never sends. One read-only PR observation
79
79
  needs neither. The bounded PR coordinator is the live owner for its event;
@@ -127,8 +127,8 @@ the current revision, and a recorded hold or next owner where work remains.
127
127
  When a new actionable event is eligible under a recorded `Notification policy`,
128
128
  the owner may use the optional [axstack-relay](../axstack-relay/SKILL.md).
129
129
  The monitor never sends. The manager deduplicates authorized notifications;
130
- absent policy or failed relay uses its current Orca conversation and leaves
131
- every existing hold open.
130
+ absent policy or failed relay uses the recorded durable GitHub or user-owned
131
+ conversation and leaves every existing hold open.
132
132
 
133
133
  ## 5. State readiness precisely
134
134
 
@@ -140,9 +140,9 @@ observed state distinct from merged, and the human merges by default.
140
140
  ## 6. End and preserve continuity
141
141
 
142
142
  A bounded manager PR job ends as soon as its current event and every owned
143
- descendant settle. It returns exact receipts and remaining state to the
144
- reusable manager, releases proven resources, and never waits for merge or stops
145
- the manager's recurring schedule.
143
+ descendant settle. It returns exact receipts and remaining state to the logical
144
+ manager lane's durable continuity, releases proven resources, and never waits
145
+ for merge or stops the manager's recurring schedule.
146
146
 
147
147
  End a standalone watch early when all required PRs merge, at cancellation, or
148
148
  at its shared default 24 h deadline. There is no watch deadline for manager
@@ -36,9 +36,9 @@ exact new revision and base, all six angles, applicable acceptance, the reply
36
36
  body identities, and every affected boundary, with no unresolved material
37
37
  finding or urgent hold. Under a manager PR job, a serious-risk escalation
38
38
  preserves the local candidate and exact context, records the hold in the
39
- compact record and reusable manager conversation, and sends only an authorized
40
- deduplicated notification. Publication remains held until the user decides in
41
- that conversation and all exact inputs are revalidated.
39
+ compact record and a durable GitHub or user-owned conversation, and sends only
40
+ an authorized deduplicated notification. Publication remains held until the
41
+ user decides at that durable location and all exact inputs are revalidated.
42
42
 
43
43
  ## 3. Revalidate immediately before publication
44
44
 
@@ -13,10 +13,11 @@ stop task-owned registrations at completion, cancellation, or expiry.
13
13
 
14
14
  ## Native watch manager
15
15
 
16
- The separate native watch manager follows the
16
+ The separate native watch manager lane follows the
17
17
  [native PR-manager contract](../../axstack/references/automations.md). It reuses
18
- one dedicated workspace at minutes `7,22,37,52`, scans every eligible own PR,
19
- and admits at most five bounded actionable-event jobs. Waiting PRs stay covered
18
+ one persistent dedicated workspace while each scheduled pass uses a fresh
19
+ finite session at minutes `7,22,37,52`. It scans every eligible own PR and
20
+ admits at most five bounded actionable-event jobs. Waiting PRs stay covered
20
21
  without reserving slots. Each job uses its own repository-parented worktree and
21
22
  settles with all descendants; no model, per-PR timer, or polling loop waits for
22
23
  CI, review, a user decision, or merge.
@@ -27,8 +28,8 @@ settings or source configuration are not runtime evidence. Preserve quiet
27
28
  unchanged behavior, exact-head event dedupe, ownership, complete discovery,
28
29
  and current authority.
29
30
 
30
- Before activation, canary same-session reuse, a busy scheduled tick, session
31
- loss and recovery, nested dispatch depth for coordinator-launched leaves, and
31
+ Before activation, canary fresh-session launch, an overlapping scheduled pass,
32
+ session loss and recovery, nested dispatch depth for coordinator-launched leaves, and
32
33
  total process and memory behavior. Until observed, those remain unverified; do
33
34
  not replace them with a precheck, watchdog, custom scheduler, state engine, or
34
35
  legacy fallback.