axstack 0.27.1 → 0.27.3

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.1",
3
+ "version": "0.27.3",
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
@@ -1,9 +1,10 @@
1
1
  # Performance loop
2
2
 
3
+ The change loop is the ordered steps in this reference, run by `axstack-implement`.
3
4
  Keep one writer per candidate.
4
5
  The change steps (revert, commit and implement receipt) run only in `axstack-implement`.
5
6
 
6
- Follow this ordered loop:
7
+ Follow these ordered steps:
7
8
 
8
9
  1. **Freeze and prove sensitivity.**
9
10
  Freeze the workload, command and environment before the baseline.
@@ -266,18 +266,21 @@ For every watched own PR in chat-run or standalone adopted maintenance, when
266
266
  available the driver calls `watch_pull_request` for T3 wakes on check completion,
267
267
  new comments from others, or branch conflicts, then ends the turn.
268
268
  Never poll or keep a model active between native PR wake events.
269
- When T3 reports it stopped watching a PR, the next wake re-checks the PR and
270
- 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.
271
271
  This includes a stop after T3 could not read the PR for 15 minutes.
272
272
  Route native PR wake events through watch §4 and the unchanged §5 readiness predicate.
273
273
 
274
274
  If `watch_pull_request` is unavailable, fall back to the bound 5-minute schedule
275
275
  and `scripts/pr-digest.js` without a hold.
276
+ If re-arming fails, restore the bound 5-minute schedule.
276
277
  When the run waits only on a user decision or a human-only step, including a
277
278
  user merge, with no unsettled worker and no PR needing watch events, change
278
279
  the run watch cadence to 60 minutes at once.
279
280
  When work restarts, restore the normal 5-minute cadence.
280
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.
281
284
  The schedule still reconciles author and review tasks, readiness, and release.
282
285
  When a PR merges or closes, or its watch is torn down, call `unwatch_pull_request`
283
286
  and keep its link.
@@ -87,9 +87,10 @@ Size alone never requires user approval.
87
87
  ## 3. Establish test-first evidence
88
88
 
89
89
  For performance work only, load [Performance loop](../axstack/references/perf-loop.md).
90
- For performance work, run the change loop.
90
+ For performance work, run the change loop defined in [Performance loop](../axstack/references/perf-loop.md).
91
91
  For an accepted optimization scope without new behavior explicitly marked structure-preserving, use the structure-preserving path with the same checks green before and after plus the measured delta.
92
92
  For performance work with new behavior, run a failing check first.
93
+ For an optimization not explicitly marked structure-preserving, use the normal behavior path with real red-to-green evidence.
93
94
 
94
95
  Use the normal behavior path unless the accepted improvement scope is
95
96
  explicitly marked **structure-preserving**, or the accepted scope explicitly
@@ -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.