baro-ai 0.22.5 → 0.23.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
@@ -8,6 +8,17 @@ Give it a goal, it breaks it into stories, builds a dependency DAG, and runs the
8
8
 
9
9
  ![baro screenshot](assets/screenshot.png)
10
10
 
11
+ > 📖 **Deep dive:** [Getting the Maximum Out of My Claude Code Subscription](https://jigjoy.ai/blog/getting-the-maximum-out-of-claude-code) — the story of why baro exists, how it pairs with Mozaik, and what it looks like in practice.
12
+
13
+ ## What's new (0.22–0.23)
14
+
15
+ - **Opus as the default executor** — richer reasoning per story, still with routed Sonnet/Haiku available via `--model` or `.barorc`.
16
+ - **Smaller-stories planner** — the planner now biases toward narrower, more independent stories that parallelize better on the DAG.
17
+ - **Branch dedup** — reruns on the same goal reuse the existing `baro/<name>` branch instead of piling up duplicates.
18
+ - **TUI: terminal-clear on tab switch** — cleaner transitions between story logs, DAG view, and stats.
19
+ - **Audit log survives project resets** — JSONL event logs now live in `~/.baro/runs/` by default, so a wiped `node_modules` or a fresh clone doesn't lose history.
20
+ - **Always-on audit + abnormal-exit banner** — every run is recorded, and the TUI surfaces an explicit banner when the orchestrator exits unexpectedly.
21
+
11
22
  ## Install
12
23
 
13
24
  ```
@@ -54,7 +65,7 @@ baro --cwd ~/projects/myapp "Add REST API"
54
65
 
55
66
  1. **Plan** — Claude (Opus) explores your codebase and generates a dependency graph of user stories
56
67
  2. **Review** — You review the plan, refine with feedback, accept or quit
57
- 3. **Execute** — Stories run in parallel on a feature branch, each with its own Claude agent (Sonnet)
68
+ 3. **Execute** — Stories run in parallel on a feature branch, each with its own Claude agent (Opus by default in 0.23+; Sonnet/Haiku available via `--model` or `.barorc`)
58
69
  4. **Review Agent** — After each level, a review agent (Haiku) checks work against acceptance criteria and creates fix stories if needed
59
70
  5. **Finalize** — Runs build verification and creates a GitHub PR with full summary
60
71
 
@@ -62,24 +73,25 @@ baro --cwd ~/projects/myapp "Add REST API"
62
73
 
63
74
  - **Parallel execution** — independent stories run simultaneously, respecting dependency order
64
75
  - **DAG engine** — topological sort with level grouping, cycle detection
65
- - **Model routing** — Opus for planning, Sonnet for execution, Haiku for review (configurable)
76
+ - **Model routing** — Opus for planning and execution (0.23+ default), Haiku for review (configurable)
66
77
  - **Live TUI** — dashboard with story status, live agent logs, DAG view, stats
67
78
  - **Review agent** — automated code review between levels with build detection and auto-fix
68
79
  - **Plan refinement** — press `r` on review screen to give feedback and regenerate the plan
69
80
  - **Build detection** — auto-detects project type (Cargo, npm, Go, Python, Make) and runs builds during review
70
81
  - **Git coordination** — mutex-protected commits, auto-push with retry, pull --rebase, conflict detection
71
- - **Branch per run** — creates `baro/<name>` branch, keeps main clean
82
+ - **Branch per run** — creates `baro/<name>` branch, keeps main clean, reuses existing branches on rerun (0.23+)
72
83
  - **Dry run** — `--dry-run` generates plan and saves to `prd.json` without executing, then `--resume` to run it
73
84
  - **Resume** — detects `prd.json` and resumes incomplete executions
74
85
  - **PR creation** — creates GitHub PR with stories table, stats, time saved, and review summary
75
86
  - **Configurable parallelism** — `--parallel N` to limit concurrent story execution
76
- - **Story timeout** — `--timeout SECONDS` kills stuck agents (default: 10 minutes)
87
+ - **Story timeout** — `--timeout SECONDS` kills stuck agents (default: 10 minutes, hard timeout disabled in 0.22+)
77
88
  - **Time saved** — shows parallel speedup vs sequential execution
78
89
  - **System notifications** — terminal bell + OS notification (macOS/Linux/Windows) when done
79
90
  - **Retry logic** — failed stories retry automatically (configurable per story)
80
91
  - **Interactive settings** — configure model, parallelism, timeout, context, and planner on the welcome screen with Tab/arrow keys
81
92
  - **Project config** — `.barorc` file in project root sets defaults (no CLI flags needed)
82
93
  - **Session lock** — prevents multiple baro instances from running in the same directory
94
+ - **Audit log** — every bus event written to `~/.baro/runs/<run-id>.jsonl`
83
95
 
84
96
  ## Config file
85
97
 
@@ -207,16 +219,28 @@ Ten participants share that bus:
207
219
  | `StoryAgent` | Runs one story via Claude CLI, with retries and timeout |
208
220
  | `Librarian` | Cross-agent memory — indexes outputs of exploration tools |
209
221
  | `Sentry` | Flags overlapping file writes across concurrent stories |
210
- | `Critic` | Per-turn acceptance-criteria evaluator (opt-in: `--with-critic`) |
211
- | `Surgeon` | Emits DAG replans when a story fails terminally (opt-in: `--with-surgeon`) |
222
+ | `Critic` | Per-turn acceptance-criteria evaluator (default ON, `--no-critic` to disable) |
223
+ | `Surgeon` | Emits DAG replans when a story fails terminally (default ON, `--no-surgeon` to disable) |
212
224
  | `Operator` | Bridges external user commands (TUI, web UI) into bus events |
213
- | `Auditor` | JSONL log of every event on the bus |
225
+ | `Auditor` | JSONL log of every event on the bus (written to `~/.baro/runs/`) |
214
226
  | `Cartographer` | Translates bus events into UI frames for the Rust TUI |
215
227
 
216
228
  The bus is open. New participants — CI deployers, Slack notifiers,
217
229
  external ticket triggers — are subscribers and emitters with no changes
218
230
  to the orchestrator.
219
231
 
232
+ ## Status & feedback
233
+
234
+ baro is a work in progress. I'm actively adding things, testing ideas,
235
+ and occasionally breaking them — if a run explodes, an [issue on
236
+ GitHub](https://github.com/Lotus015/baro/issues) with the run's audit
237
+ log from `~/.baro/runs/` is the fastest way to get it fixed.
238
+
239
+ If you like the idea and want to help shape where it goes, PRs are
240
+ welcome, and you can DM me on Twitter
241
+ [@lotus_sbc](https://twitter.com/lotus_sbc) with ideas, use cases, or
242
+ bug reports.
243
+
220
244
  ## License
221
245
 
222
246
  MIT
package/dist/cli.mjs CHANGED
@@ -7391,6 +7391,9 @@ async function getHeadSha(cwd) {
7391
7391
  }
7392
7392
  }
7393
7393
  async function createOrCheckoutBranch(cwd, branchName, onLog) {
7394
+ while (branchName.startsWith("baro/baro/")) {
7395
+ branchName = branchName.slice("baro/".length);
7396
+ }
7394
7397
  try {
7395
7398
  await exec("git", ["checkout", "-b", branchName], { cwd });
7396
7399
  } catch {
@@ -9861,7 +9864,7 @@ async function orchestrate(config) {
9861
9864
  parallel: config.parallel ?? 0,
9862
9865
  timeoutSecs: config.timeoutSecs ?? 600,
9863
9866
  overrideModel: config.overrideModel ?? void 0,
9864
- defaultModel: config.defaultModel ?? "sonnet",
9867
+ defaultModel: config.defaultModel ?? "opus",
9865
9868
  onRunStart: useGit ? async (prd) => {
9866
9869
  baseSha = await getHeadSha(config.cwd);
9867
9870
  if (prd.branchName) {