compound-agent 1.7.6 → 1.8.0
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 +15 -0
- package/README.md +40 -0
- package/dist/cli.js +555 -58
- package/dist/cli.js.map +1 -1
- package/dist/index.js +25 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ All notable changes to this project will be documented in this file.
|
|
|
7
7
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
8
8
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
9
|
|
|
10
|
+
## [1.8.0] - 2026-03-15
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **`ca improve` command**: Generates a bash script that autonomously improves the codebase using `improve/*.md` program files. Each program defines what to improve, how to find work, and how to validate changes. Options: `--topics` (filter specific topics), `--max-iters` (iterations per topic, default 5), `--time-budget` (total seconds, 0=unlimited), `--model`, `--force`, `--dry-run`. Includes `ca improve init` subcommand to scaffold an example program file.
|
|
15
|
+
- **`ca watch` command**: Tails and pretty-prints live trace JSONL from infinity loop and improvement loop sessions. Supports `--epic <id>` to watch a specific epic, `--improve` to watch improvement loop traces, and `--no-follow` to print existing trace and exit. Formats tool calls, thinking blocks, token usage, and result markers into a compact, color-coded stream.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **`git clean` scoping in improvement loop**: Bare `git clean -fd` on rollback was removing all untracked files including the script's own log directory, causing crashes. All three rollback paths now use `git clean -fd -e "$LOG_DIR/"` to exclude agent logs.
|
|
20
|
+
- **Embedded dirty-worktree guard fallthrough**: In embedded mode (when improvement loop runs inside `ca loop --improve`), setting `IMPROVE_RESULT=1` on a dirty worktree did not prevent the loop body from executing. Restructured to use `if/else` so the loop body only runs inside the `else` branch.
|
|
21
|
+
- **`ca watch --improve` ignoring `.latest` symlink**: The `--improve` code path had inline logic that only did reverse filename sort, bypassing the `.latest` symlink that the improvement loop maintains. Refactored `findLatestTraceFile()` with a `prefix` parameter to unify both code paths.
|
|
22
|
+
- **`--topics` flag ignored in `get_topics()`**: The `TOPIC_FILTER` variable from the CLI `--topics` flag was not used in the generated bash `get_topics()` function, causing all topics to run regardless of filtering.
|
|
23
|
+
- **Update-check hardening**: Switched to a lightweight npm registry endpoint, added CI environment guards, and corrected the update command shown to users.
|
|
24
|
+
|
|
10
25
|
## [1.7.6] - 2026-03-12
|
|
11
26
|
|
|
12
27
|
### Added
|
package/README.md
CHANGED
|
@@ -174,6 +174,35 @@ The loop respects beads dependency graphs — it only processes epics whose depe
|
|
|
174
174
|
|
|
175
175
|
**Current maturity**: the loop works and has been used to ship real projects, including compound-agent itself. Two things still required human involvement: specifications had to be written before the loop started, and a human applied fixes after the first review pass surfaced real problems (missing error handling, a migration gap, insufficient test coverage). Fully unattended long-duration runs across many epics are the current area of hardening.
|
|
176
176
|
|
|
177
|
+
## The improvement loop
|
|
178
|
+
|
|
179
|
+
`ca improve` generates a bash script that iterates over `improve/*.md` program files, spawning Claude Code sessions to make focused improvements. Each program file defines what to improve, how to find work, and how to validate changes.
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Scaffold an example program file
|
|
183
|
+
ca improve init
|
|
184
|
+
# Creates improve/example.md with a linting template
|
|
185
|
+
|
|
186
|
+
# Generate the improvement script
|
|
187
|
+
ca improve
|
|
188
|
+
|
|
189
|
+
# Filter to specific topics
|
|
190
|
+
ca improve --topics lint tests --max-iters 3
|
|
191
|
+
|
|
192
|
+
# Preview without generating
|
|
193
|
+
ca improve --dry-run
|
|
194
|
+
|
|
195
|
+
# Run the generated script
|
|
196
|
+
./improvement-loop.sh
|
|
197
|
+
|
|
198
|
+
# Preview without executing Claude sessions
|
|
199
|
+
IMPROVE_DRY_RUN=1 ./improvement-loop.sh
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Each iteration makes one focused improvement, commits it, and moves on. If an iteration finds nothing to improve or fails validation, it reverts cleanly and moves to the next topic. The loop tracks consecutive no-improvement results and stops early to avoid diminishing returns.
|
|
203
|
+
|
|
204
|
+
Monitor progress with `ca watch --improve` to see live trace output from improvement sessions.
|
|
205
|
+
|
|
177
206
|
## Automatic hooks
|
|
178
207
|
|
|
179
208
|
Once installed, seven Claude Code hooks fire without any commands:
|
|
@@ -303,6 +332,17 @@ The CLI binary is `ca` (alias: `compound-agent`).
|
|
|
303
332
|
| `ca loop --max-review-cycles <n>` | Max review/fix iterations (default: 3) |
|
|
304
333
|
| `ca loop --review-blocking` | Fail loop if review not approved after max cycles |
|
|
305
334
|
| `ca loop --review-model <model>` | Model for implementer fix sessions (default: claude-opus-4-6) |
|
|
335
|
+
| `ca improve` | Generate improvement loop script from `improve/*.md` programs |
|
|
336
|
+
| `ca improve --topics <names...>` | Run only specific topics |
|
|
337
|
+
| `ca improve --max-iters <n>` | Max iterations per topic (default: 5) |
|
|
338
|
+
| `ca improve --time-budget <seconds>` | Total time budget, 0=unlimited (default: 0) |
|
|
339
|
+
| `ca improve --dry-run` | Validate and print plan without generating |
|
|
340
|
+
| `ca improve --force` | Overwrite existing script |
|
|
341
|
+
| `ca improve init` | Scaffold an example `improve/*.md` program file |
|
|
342
|
+
| `ca watch` | Tail and pretty-print live trace from loop sessions |
|
|
343
|
+
| `ca watch --epic <id>` | Watch a specific epic trace |
|
|
344
|
+
| `ca watch --improve` | Watch improvement loop traces |
|
|
345
|
+
| `ca watch --no-follow` | Print existing trace and exit (no live tail) |
|
|
306
346
|
|
|
307
347
|
### Knowledge
|
|
308
348
|
|