bullswarm 0.25.0 → 0.25.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # bullswarm changelog
2
2
 
3
+ ## 0.25.2 — event-based watch
4
+
5
+ - `workflow watch <run> --next` is safe to relaunch after every wake-up: each
6
+ such exit prints `next: bullswarm workflow watch <id> --next --after <seq>
7
+ --since <time>`; relaunching with those values replays notable events that
8
+ landed while no watcher was attached, reports a level at most once, and does
9
+ not repeat a stall already reported (its recovery line still prints). `--jsonl`
10
+ objects carry `sequence`.
11
+
12
+ - `workflow watch` for V2 runs is event-based by default: one attach line,
13
+ then one line per notable event (action finished/failed/blocked/cancelled,
14
+ evidence, stage completion, planner turn, stall/recovery, cancellation)
15
+ and silence while work is merely in progress. `--next` prints no attach
16
+ line and exits after the first notable event (0 while the run continues or
17
+ delivered, 1 when it ended without delivering or the kernel is not
18
+ running). `--stall-after <seconds>` (default 300) reports a silent running
19
+ agent; `--heartbeat <seconds>` is opt-in for V2 (legacy still defaults to
20
+ 60s). `--jsonl` emits one object per event with a stable `type`. Agent
21
+ starts, mechanical retries, and steering delivery remain `--verbose` only.
22
+ `--once` and legacy (non-V2) transition-plus-heartbeat output are
23
+ unchanged.
24
+
3
25
  ## 0.25.0 — shared programs that finish with the graph
4
26
 
5
27
  - New goal workflows share the target worktree by default. File territories
package/README.md CHANGED
@@ -302,7 +302,9 @@ The detached response includes a short ID and exact observation commands:
302
302
 
303
303
  ```bash
304
304
  bullswarm workflow runs show <shortId>
305
- bullswarm workflow watch <shortId> # low-noise live progress + terminal timing
305
+ bullswarm workflow watch <shortId> # V2: attach, then one line per notable event
306
+ bullswarm workflow watch <shortId> --next # print the next notable event and exit
307
+ # relaunch with the --after/--since it prints
306
308
  bullswarm workflow # unified human workflow home
307
309
  bullswarm workflow tui <shortId> # jump directly to one run timeline
308
310
  bullswarm workflow tui --json <shortId>
@@ -482,20 +484,45 @@ auditing completed runs.
482
484
 
483
485
  ### Live workflow dashboard
484
486
 
485
- For ordinary observation, use the non-interactive watcher. Human output is one
486
- compact aggregate line per semantic change and a 60-second heartbeat while
487
- otherwise quiet. Each line reports status/location, events and agent actions
488
- captured since the preceding sample, and quiet duration. It does not repeat
489
- command or response excerpts. Use `--verbose` for the detailed per-agent and
490
- last-action view. Compact terminal output reports the overall attempt count and
491
- elapsed time; `--verbose` includes every attempt's agent/model, outcome, and
492
- tokens. This keeps agent monitoring cheap while retaining a drill-down path.
487
+ For ordinary observation, use the non-interactive watcher. For V2 runs it
488
+ prints one attach line, then one line per notable event as it happens
489
+ (action finished/failed/blocked/cancelled, evidence, stage completion,
490
+ planner turn, stall/recovery, cancellation, and the existing pause and
491
+ terminal `outcome:` / `next:` lines) and stays silent while work is merely
492
+ in progress. Agent starts, mechanical retries, and steering delivery print
493
+ only with `--verbose`. The periodic heartbeat is off unless you pass
494
+ `--heartbeat <seconds>`; `--stall-after <seconds>` (default 300) reports a
495
+ running agent that has gone silent. `--next` prints no attach line and
496
+ exits after the first notable event so a background terminal can wake the
497
+ caller; relaunch until the outcome line reports a pause or a terminal
498
+ status (exit 0 while the run continues or delivered, 1 when it ended
499
+ without delivering or the kernel is not running). Every `--next` exit that
500
+ leaves the run going ends with a relaunch line —
501
+ `next: bullswarm workflow watch <shortId> --next --after <sequence> --since <iso>` —
502
+ and the relaunch should copy those two values verbatim: `--after` starts
503
+ from the durable event sequence the previous watcher consumed, so events
504
+ committed while nothing was attached are printed instead of skipped, and
505
+ `--since` is that watcher's exit time, so an agent whose silence it already
506
+ reported does not produce a duplicate stall line (its recovery still
507
+ prints). `--jsonl` emits one JSON object per notable event with a stable
508
+ `type` (`attach`, `action.finished`,
509
+ `evidence.recorded`, `stage.completed`, `planner.finished`, `agent.stalled`,
510
+ `agent.recovered`, `cancellation.requested`, `paused`, `finished`,
511
+ `interrupted`, and with `--verbose` `action.started`, `attempt.retrying`,
512
+ `steering.delivered`); in that mode the relaunch line is not printed and
513
+ every object instead carries the `sequence` it was emitted at, which is the
514
+ value to pass as `--after`. `--once` still prints one current snapshot. Legacy
515
+ (non-V2) runs keep the compact transition-plus-heartbeat stream unchanged.
493
516
 
494
517
  ```bash
495
518
  bullswarm workflow watch <shortId>
496
- bullswarm workflow watch <shortId> --jsonl # automation-friendly stream
519
+ bullswarm workflow watch <shortId> --next # next notable event, then exit
520
+ bullswarm workflow watch <shortId> --next --after 42 --since 2026-09-08T10:15:00.000Z
521
+ # the relaunch: values copied from the previous next: line
522
+ bullswarm workflow watch <shortId> --jsonl # one JSON object per event
497
523
  bullswarm workflow watch <shortId> --once # one current/terminal snapshot
498
- bullswarm workflow watch <shortId> --verbose # detailed agent/action view
524
+ bullswarm workflow watch <shortId> --verbose # started / retry / steering too
525
+ bullswarm workflow watch <shortId> --stall-after 120 --heartbeat 30
499
526
  ```
500
527
 
501
528
  `workflow tui` is the interactive, Claude-style `/workflows` view. For an