axstack 0.20.25 → 0.20.27

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.20.25",
3
+ "version": "0.20.27",
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",
@@ -50,7 +50,7 @@
50
50
  "id": "axstack-reviewer-secondary",
51
51
  "name": "Axstack reviewer (secondary)",
52
52
  "provider": "claude",
53
- "model": "claude-sonnet-5",
53
+ "model": "claude-sonnet-5-5",
54
54
  "modeId": "bypassPermissions",
55
55
  "thinkingOptionId": "xhigh",
56
56
  "notes": "Secondary reviewer in the ordered claude-only peer pair: Opus medium followed by Sonnet xhigh. Eligible authored reviewer for an Opus-authored candidate. Never author or owner; review exact SHA and base across all six angles and acceptance. Peer first pass stays isolated."
@@ -59,7 +59,7 @@
59
59
  "id": "axstack-checker",
60
60
  "name": "Axstack tracker checker",
61
61
  "provider": "claude",
62
- "model": "claude-sonnet-5",
62
+ "model": "claude-sonnet-5-5",
63
63
  "modeId": "bypassPermissions",
64
64
  "thinkingOptionId": "low",
65
65
  "notes": "Report-only discrepancy checker for the selected external tracker (Linear or GitHub Issues). Never mutates the tracker; the driver independently verifies evidence before applying updates. A null model means explicit user selection is required before dispatch and must never launch a provider default."
@@ -86,7 +86,7 @@
86
86
  "id": "axstack-research-web",
87
87
  "name": "Axstack research web",
88
88
  "provider": "claude",
89
- "model": "claude-sonnet-5",
89
+ "model": "claude-sonnet-5-5",
90
90
  "modeId": "bypassPermissions",
91
91
  "thinkingOptionId": "low",
92
92
  "notes": "Research web reader: gathers primary-source facts efficiently. Validate configured availability at launch; hold affected work without fallback."
@@ -113,7 +113,7 @@
113
113
  "id": "axstack-explainer",
114
114
  "name": "Axstack explainer",
115
115
  "provider": "claude",
116
- "model": "claude-sonnet-5",
116
+ "model": "claude-sonnet-5-5",
117
117
  "modeId": "bypassPermissions",
118
118
  "thinkingOptionId": "xhigh",
119
119
  "notes": "Complex visual explanation author: traces systems, changes, and implementation gaps in requested artifacts and verifies rendered behavior where applicable. Validate configured availability at launch; hold affected work without fallback."
@@ -122,7 +122,7 @@
122
122
  "id": "axstack-explainer-review",
123
123
  "name": "Axstack explainer reviewer",
124
124
  "provider": "claude",
125
- "model": "claude-sonnet-5",
125
+ "model": "claude-sonnet-5-5",
126
126
  "modeId": "bypassPermissions",
127
127
  "thinkingOptionId": "high",
128
128
  "notes": "Independent visual explanation reviewer: checks the exact artifact for source fidelity and rendered behavior where warranted. Any artifact change invalidates its review. Validate configured availability at launch; hold affected work without fallback."
@@ -131,7 +131,7 @@
131
131
  "id": "axstack-explore-codebase",
132
132
  "name": "Axstack codebase explorer",
133
133
  "provider": "claude",
134
- "model": "claude-sonnet-5",
134
+ "model": "claude-sonnet-5-5",
135
135
  "modeId": "bypassPermissions",
136
136
  "thinkingOptionId": "xhigh",
137
137
  "notes": "Codebase mapper: explores repository structure and interfaces for research and handoff context. Validate configured availability at launch; hold affected work without fallback."
@@ -140,7 +140,7 @@
140
140
  "id": "axstack-explore-execution",
141
141
  "name": "Axstack execution explorer",
142
142
  "provider": "claude",
143
- "model": "claude-sonnet-5",
143
+ "model": "claude-sonnet-5-5",
144
144
  "modeId": "bypassPermissions",
145
145
  "thinkingOptionId": "low",
146
146
  "notes": "Execution explorer: runs bounded checks of runtime behavior where authorized. Validate configured availability at launch; hold affected work without fallback."
@@ -149,7 +149,7 @@
149
149
  "id": "axstack-monitor",
150
150
  "name": "Axstack monitor",
151
151
  "provider": "claude",
152
- "model": "claude-sonnet-5",
152
+ "model": "claude-sonnet-5-5",
153
153
  "modeId": "bypassPermissions",
154
154
  "thinkingOptionId": "low",
155
155
  "notes": "Optional independent read-only observer for a standalone PR watch. Reads GitHub, feedback, and checks, persists event IDs, and wakes the owner only for a new actionable event. Never sends, authors, reviews, replies, or acts as either reusable PR manager. Healthy snapshots stay quiet. Chat-run mode: one same-host native read-only observer per Run; fresh finite passes report precise deltas internally to the original Run/driver and may disable/read back only their own automation at verified stop. No repair, dispatch, public notification, or replacement coordinator. Effective scheduled model/effort and wake require live proof."
@@ -158,7 +158,7 @@
158
158
  "id": "axstack-auditor",
159
159
  "name": "Axstack auditor",
160
160
  "provider": "claude",
161
- "model": "claude-sonnet-5",
161
+ "model": "claude-sonnet-5-5",
162
162
  "modeId": "bypassPermissions",
163
163
  "thinkingOptionId": "xhigh",
164
164
  "notes": "Read-only end-of-run and checkpoint auditor. Collects scope and outcome evidence with counts and denominators and reports PASS, FAIL, or UNKNOWN without inventing numbers. Never edits, merges, activates, or audits itself."
@@ -176,10 +176,10 @@
176
176
  "id": "axstack-debug-investigator-2",
177
177
  "name": "Axstack debug investigator 2",
178
178
  "provider": "claude",
179
- "model": "claude-sonnet-5",
179
+ "model": "claude-sonnet-5-5",
180
180
  "modeId": "bypassPermissions",
181
181
  "thinkingOptionId": "xhigh",
182
- "notes": "Debug investigator seat 2. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-sonnet-5 at xhigh effort because it has fewer model families; independence comes from brief isolation."
182
+ "notes": "Debug investigator seat 2. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-sonnet-5-5 at xhigh effort because it has fewer model families; independence comes from brief isolation."
183
183
  },
184
184
  {
185
185
  "id": "axstack-debug-investigator-3",
@@ -194,10 +194,10 @@
194
194
  "id": "axstack-debug-investigator-4",
195
195
  "name": "Axstack debug investigator 4",
196
196
  "provider": "claude",
197
- "model": "claude-sonnet-5",
197
+ "model": "claude-sonnet-5-5",
198
198
  "modeId": "bypassPermissions",
199
199
  "thinkingOptionId": "xhigh",
200
- "notes": "Debug investigator seat 4. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-sonnet-5 at xhigh effort because it has fewer model families; independence comes from brief isolation."
200
+ "notes": "Debug investigator seat 4. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity. This preset repeats claude-sonnet-5-5 at xhigh effort because it has fewer model families; independence comes from brief isolation."
201
201
  },
202
202
  {
203
203
  "id": "axstack-arena-judge-astra",
@@ -113,7 +113,7 @@
113
113
  "id": "axstack-explainer",
114
114
  "name": "Axstack explainer",
115
115
  "provider": "claude",
116
- "model": "claude-sonnet-5",
116
+ "model": "claude-sonnet-5-5",
117
117
  "modeId": "bypassPermissions",
118
118
  "thinkingOptionId": "xhigh",
119
119
  "notes": "Complex visual explanation author: traces systems, changes, and implementation gaps in requested artifacts and verifies rendered behavior where applicable. Validate configured availability at launch; hold affected work without fallback."
@@ -131,7 +131,7 @@
131
131
  "id": "axstack-explore-codebase",
132
132
  "name": "Axstack codebase explorer",
133
133
  "provider": "claude",
134
- "model": "claude-sonnet-5",
134
+ "model": "claude-sonnet-5-5",
135
135
  "modeId": "bypassPermissions",
136
136
  "thinkingOptionId": "xhigh",
137
137
  "notes": "Codebase mapper: explores repository structure and interfaces for research and handoff context. Validate configured availability at launch; hold affected work without fallback."
@@ -185,7 +185,7 @@
185
185
  "id": "axstack-debug-investigator-3",
186
186
  "name": "Axstack debug investigator 3",
187
187
  "provider": "claude",
188
- "model": "claude-sonnet-5",
188
+ "model": "claude-sonnet-5-5",
189
189
  "modeId": "bypassPermissions",
190
190
  "thinkingOptionId": "xhigh",
191
191
  "notes": "Debug investigator seat 3. Dispatched only by axstack-debug at L1 with the shared evidence packet and one distinct brief; never reads another investigator's output. Works in its own disposable worktree at the pinned revision plus the recorded dirty patch; may instrument there for probes; never commits, pushes, publishes, or creates children. Returns one receipt per brief. Independence comes from brief isolation, not model diversity."
@@ -49,6 +49,13 @@ Once identified as a duplicate, the new pass does no PR work, makes no further
49
49
  shared-record write, touches no live or unsettled resource owned by the live
50
50
  manager, and closes only its own exact terminal as its final action under the
51
51
  guard below.
52
+ A duplicate pass admits nothing and runs read-only discovery into its own pass
53
+ note in its private evidence folder, recording new eligible events and the unserved count.
54
+ If a duplicate pass finds the live owner's coordinator idle at its prompt, its
55
+ final agent turn ended without `worker_done` for more than five minutes (nudged
56
+ or not), as in [Per-PR jobs](#per-pr-jobs), record the stalled owner in its own
57
+ pass note and send one deduplicated notification under the recorded
58
+ `Notification policy`.
52
59
  Unknown liveness blocks admission and shared-record writes; it does not
53
60
  authorize takeover, cleanup, or a duplicate manager. Preserve `user_takeover`
54
61
  and other user-owned sessions.
@@ -130,6 +137,21 @@ Orca worktree per PR job, parented to that repository's primary worktree, and
130
137
  pin the observed head and base. The bounded PR coordinator loads the
131
138
  review skill, launches only the reviewers that skill owns,
132
139
  handles the current actionable event, returns exact receipts, then settles.
140
+ Check the admitted coordinator soon after start and while waiting, using native
141
+ terminal and Dispatch inspection. If an idle coordinator's final agent turn ended
142
+ without `worker_done` and it is at its prompt, nudge it once by typed terminal
143
+ input restating its brief.
144
+ For this lane, the nudge is the one brief confirmation, and a second ask follows
145
+ this stop rule, not an open-ended hold; see [Orca runtime](orca-runtime.md) for
146
+ the confirmation boundary.
147
+ If still idle because its next turn ended without `worker_done` or it stays idle
148
+ at its prompt five minutes after the nudge, use native `worker-stop`, reconcile
149
+ its Task, Dispatch, and descendants, and record the event unserved (INCOMPLETE,
150
+ re-admissible).
151
+ A started coordinator waiting on its reviewers (a live reviewer Dispatch or a
152
+ running wait) is not idle and is never stopped by this rule.
153
+ Once the tree is settled, continue discovery and admission;
154
+ an uncertain stop or live descendant retains the slot and holds admission.
133
155
  Settlement returns continuity to the manager rather than retaining an idle PR
134
156
  coordinator. Reviewers retain the isolation required by `axstack-review`:
135
157
  each runs in a separate Orca child worktree, writes probes and evidence to
@@ -98,6 +98,11 @@ permission dialogs. A trust dialog that still appears is a hold.
98
98
  An `input_accepted` stage proves only that input reached the terminal. Require
99
99
  `turn_started` plus runtime/session inspection before treating the agent as
100
100
  started, and verify the requested role independently before trusting its work.
101
+ If a worker asks to confirm its own dispatch brief, the dispatching owner
102
+ confirms once by typed terminal input restating the brief's authority, then
103
+ re-verifies `turn_started`. That confirmation never answers a trust or permission prompt;
104
+ it answers only the agent's own model-turn question about its brief, never a
105
+ harness or tool dialog, and adds no authority. A second ask is a hold.
101
106
  A workspace trust, hook review, permission, authentication, or model prompt is
102
107
  a visible hold. Never answer a trust or permission prompt on the worker's
103
108
  behalf. A permission prompt or provider safety refusal is a held, incomplete
@@ -34,7 +34,7 @@ provider/model/effort substitution.
34
34
  | `mixed` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`claude/claude-opus-5-5` medium) |
35
35
  | `mixed` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-primary` (`codex/gpt-6-sol` high) |
36
36
  | `codex-only` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`codex/gpt-6-luna` xhigh) |
37
- | `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
37
+ | `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5-5` xhigh) |
38
38
  - `axstack-advisor-astra`/`axstack-advisor-opus` advise and author candidates;
39
39
  `axstack-arena-candidate-grok`/
40
40
  `axstack-arena-candidate-antigravity` add families.
@@ -209,7 +209,7 @@ This section applies to peer and authored PR modes.
209
209
  | `mixed` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`claude/claude-opus-5-5` medium) |
210
210
  | `mixed` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-primary` (`codex/gpt-6-sol` high) |
211
211
  | `codex-only` | Codex / Sol (`codex/gpt-6-sol`) | `axstack-reviewer-secondary` (`codex/gpt-6-luna` xhigh) |
212
- | `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5` xhigh) |
212
+ | `claude-only` | Claude / Opus (`claude/claude-opus-5-5`) | `axstack-reviewer-secondary` (`claude/claude-sonnet-5-5` xhigh) |
213
213
 
214
214
  Provenance is matched on provider/model ID; record effort, but never use
215
215
  effort to create a mapping. Any other author provenance for the
package/src/roles.js CHANGED
@@ -13,7 +13,7 @@ const AUTHORED_ROUTES = Object.freeze({
13
13
  'codex/gpt-6-sol': ['axstack-reviewer-secondary', 'codex/gpt-6-luna', 'xhigh'],
14
14
  },
15
15
  'claude-only': {
16
- 'claude/claude-opus-5-5': ['axstack-reviewer-secondary', 'claude/claude-sonnet-5', 'xhigh'],
16
+ 'claude/claude-opus-5-5': ['axstack-reviewer-secondary', 'claude/claude-sonnet-5-5', 'xhigh'],
17
17
  },
18
18
  });
19
19