axstack 0.27.0 → 0.27.2

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.
@@ -45,7 +45,7 @@ executor MCP, and live schedule behavior need separate preflights.
45
45
 
46
46
  Installation creates no production schedule and adds no custom scheduler.
47
47
  Every verified own-PR publication arms or joins the driver's chat-run watch.
48
- Its bound T3 schedule resumes the driver every 5 minutes by default while open PRs stay watched.
48
+ Its bound T3 schedule uses the cadence in [Chat-run watch activation](#chat-run-watch-activation).
49
49
  See [Chat-run PR watch](workflows.md#chat-run-pr-watch) for authority, schedule identity and stop conditions.
50
50
  Missing schedule capability holds activation.
51
51
  The optional review manager uses an unbound 15-minute T3 schedule and requires
@@ -83,7 +83,12 @@ Delivery failure never clears the underlying hold.
83
83
 
84
84
  ## Chat-run watch activation
85
85
 
86
- A bound T3 schedule resumes the driver thread every 5 minutes by default.
86
+ A bound T3 schedule resumes the driver thread on a 30-minute fallback while
87
+ native PR watches are armed and work and release are settled.
88
+ Unsettled work or release, unavailable or unarmed native watches for any open
89
+ member, or failed re-arming restore five minutes. Human-only waits use 60 minutes
90
+ under [Chat-run watch runtime](../skills/axstack-watch/references/watch-runtime.md#chat-run-watch).
91
+ A T3 "stopped watching" notice triggers a PR re-check and native re-arm in that same turn.
87
92
  The run record holds the schedule ID and driver thread.
88
93
  Each wake reconciles all unsettled dispatch attempts
89
94
  and runs the own-PR maintenance loop: feedback, base movement, required CI,
package/docs/workflows.md CHANGED
@@ -390,8 +390,8 @@ never sends relay messages.
390
390
  Accepted risks: two agents can miss the same defect while CI is green; spec
391
391
  approval is the user's main checkpoint. A head guard does not atomically guard
392
392
  base freshness; the concurrent-merge race is held by the post-merge push-failure
393
- rule. A watch waking every 5 minutes (60 when quiet) until PRs land has an accepted
394
- token cost. Preview code runs under the same VPS user as agents and is not isolated;
393
+ rule. A watch with a 30-minute fallback, 5-minute recovery, and 60-minute human wait
394
+ until PRs land has an accepted token cost. Preview code runs under the same VPS user as agents and is not isolated;
395
395
  tests already do, so the added risk is small.
396
396
 
397
397
  ## Optional native peer-review automation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "axstack",
3
- "version": "0.27.0",
3
+ "version": "0.27.2",
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",
@@ -89,6 +89,8 @@ Read the [T3 runtime boundary](t3-runtime.md) and use its bound
89
89
  `schedule_task` wake (`everyMs:300000`), recording the scheduledTaskId.
90
90
  Follow [Native PR links and watches](t3-runtime.md#native-pr-links-and-watches)
91
91
  alongside that bound schedule.
92
+ Apply [Chat-run watch runtime](../../axstack-watch/references/watch-runtime.md#chat-run-watch)
93
+ cadence conditions before ending the turn.
92
94
  An explicitly adopted PR joins only with its maintenance snapshot.
93
95
  The original driver alone routes work; one author writes each
94
96
  candidate. Until a PR is merge-ready, wakes feed implement §6 step 4. After
@@ -246,22 +246,41 @@ Before finishing PR work, including watch end or Close-out, the driver calls
246
246
  `list_thread_pull_requests` and links every missing run PR.
247
247
  Never link unrelated PRs.
248
248
 
249
+ After verified publication readback of an own PR, for every layer of a `gh stack`,
250
+ the driver also calls `t3_thread_update` with `action: link_pull_request`,
251
+ `pullRequest` containing its number, repository and full PR URL, and `threadId`
252
+ set to the author thread, then reads back the PR link with
253
+ `list_thread_pull_requests` for that same author thread.
254
+ A missing or failed author-link readback never triggers author repair: it holds
255
+ only that PR's merge-ready and requires retrying the link.
256
+
257
+ When the forge confirms a run PR merged or closed, in the same driver turn the
258
+ driver settles its author thread with `t3_thread_organize` using `action: settle`
259
+ and reads back `settled: true` with `t3_thread_read` for that thread.
260
+ Apply the existing [Settlement](workspace-hygiene.md#settlement) guards:
261
+ terminal run evidence is required and user-taken-over threads stay untouched.
262
+ A missing or failed settle readback holds watch end and Close-out only for
263
+ that author thread until resolved.
264
+
249
265
  For every watched own PR in chat-run or standalone adopted maintenance, when
250
266
  available the driver calls `watch_pull_request` for T3 wakes on check completion,
251
267
  new comments from others, or branch conflicts, then ends the turn.
252
268
  Never poll or keep a model active between native PR wake events.
253
- When T3 reports it stopped watching a PR, the next wake re-checks the PR and
254
- calls `watch_pull_request` again.
269
+ A T3 "stopped watching" notice is itself a driver wake: in that same turn,
270
+ re-check the PR and call `watch_pull_request` again.
255
271
  This includes a stop after T3 could not read the PR for 15 minutes.
256
272
  Route native PR wake events through watch §4 and the unchanged §5 readiness predicate.
257
273
 
258
274
  If `watch_pull_request` is unavailable, fall back to the bound 5-minute schedule
259
275
  and `scripts/pr-digest.js` without a hold.
276
+ If re-arming fails, restore the bound 5-minute schedule.
260
277
  When the run waits only on a user decision or a human-only step, including a
261
278
  user merge, with no unsettled worker and no PR needing watch events, change
262
279
  the run watch cadence to 60 minutes at once.
263
280
  When work restarts, restore the normal 5-minute cadence.
264
281
  Keep native PR watches.
282
+ For chat-run cadence changes, follow [Chat-run watch runtime](../../axstack-watch/references/watch-runtime.md#chat-run-watch)
283
+ for 30-minute fallback eligibility, 5-minute recovery, and schedule update read-back.
265
284
  The schedule still reconciles author and review tasks, readiness, and release.
266
285
  When a PR merges or closes, or its watch is torn down, call `unwatch_pull_request`
267
286
  and keep its link.
@@ -38,6 +38,8 @@ or launched run completion under the runtime contract before settlement.
38
38
  After the driver accepts a launched writer's or delegated task's completion from terminal run evidence plus a verified receipt or candidate check, it settles the matching thread with `t3_thread_organize` as metadata only.
39
39
  Settling never removes, archives or abandons the thread or worktree.
40
40
  Retain the author worktree and thread unarchived until the PR merges or closes, with repairs returning to the same author.
41
+ On forge-confirmed merge or closure, follow [Native PR links and watches](t3-runtime.md#native-pr-links-and-watches)
42
+ for same-turn author settlement and its required readback.
41
43
  A repair turn automatically un-settles the thread, making it visible while working.
42
44
  The driver settles the thread again after the next accepted repair completion.
43
45
  Threads with unaccepted completion, FAILED or QUESTION markers, held, failed or interrupted runs, or anything needing the user stay unsettled and visible.
@@ -78,7 +78,8 @@ load. When the watch needs a new owner or automated observation, first read
78
78
  [T3 runtime](../axstack/references/t3-runtime.md). Reconcile before creating
79
79
  anything. Task-owned observations use their recorded wakes and expiry.
80
80
  `axstack-monitor` stays an optional read-only observer for standalone watch
81
- that never sends. For own open PRs in chat-run mode, wake the driver chat every 5 minutes by default;
81
+ that never sends. For own open PRs in chat-run mode, use the 30-minute fallback when eligible under
82
+ [Chat-run watch runtime](references/watch-runtime.md#chat-run-watch);
82
83
  the bound T3 schedule resumes the original driver thread. One read-only PR observation needs
83
84
  neither. Start no automation for a read-only check.
84
85
 
@@ -33,7 +33,7 @@ merge-ready. An own PR published after the watch stops arms a new watch under
33
33
  after verified readback, subject to the user's explicit publication boundary.
34
34
 
35
35
  The initiating T3 thread remains the sole driver and `progress.md` writer.
36
- Use the bound run watch from [T3 runtime](../../axstack/references/t3-runtime.md):
36
+ Initially use the bound run watch from [T3 runtime](../../axstack/references/t3-runtime.md):
37
37
  `schedule_task` with `bindToCurrentThread:true`, `everyMs:300000`, a stable
38
38
  `clientRequestId`, and the authorized watch prompt. Record the schedule ID,
39
39
  driver thread, chosen mechanism and native schedule lifetime; the watch inherits the driver binding at creation.
@@ -47,8 +47,16 @@ user merge, with no unsettled worker and no PR needing watch events, change
47
47
  the run watch cadence to 60 minutes at once.
48
48
  When work restarts, restore the normal 5-minute cadence.
49
49
  Keep native PR watches.
50
- On the next event on a watched PR, restore the wake cadence to 5 minutes.
51
- If launched work becomes unsettled, restore the 5-minute cadence.
50
+ Only while every open watched PR has an armed native `watch_pull_request`, all
51
+ launched work is settled, and the release step is settled or inapplicable, use
52
+ the bound chat-run schedule as a 30-minute fallback (`everyMs:1800000`).
53
+ If native `watch_pull_request` is unavailable or unarmed for any open member,
54
+ or re-arming fails, restore the bound chat-run schedule to 5 minutes (`everyMs:300000`).
55
+ On the next event on a watched PR, re-evaluate the wake cadence against the
56
+ fallback conditions in the same turn.
57
+ If launched work or the release step becomes unsettled, restore the 5-minute cadence (`everyMs:300000`).
58
+ Apply these conditions before ending each driver turn, including after initial
59
+ arming or a work restart; the 60-minute human-only wait rule above still applies.
52
60
  Read back each schedule update and record its receipt; an uncertain update holds affected work.
53
61
  Each wake reconciles all unsettled runs before running the authorized maintenance loop.
54
62
  A failed run holds incomplete work even when its writer sent no receipt.