compound-agent 2.1.2 → 2.2.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/README.md +16 -22
  3. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -7,6 +7,41 @@ 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
+ ## [2.2.1] - 2026-03-24
11
+
12
+ ### Added
13
+
14
+ - **Loop generator production parity**: Brought the Go `ca loop` script generator to full parity with the hardened production `infinity-loop.sh`. Ported crash handler (EXIT trap with status file logging), 3-layer memory safety (repo-scoped orphan cleanup, memory gate, background watchdog with PID tracking), `parse_json()` with jq/python3 fallback, dependency-aware epic ordering (`check_deps_closed()`), dual-file anchored marker detection, and CLI prerequisite checks.
15
+ - **Loop review and improve phases**: Implemented 8 missing flags from the former TS CLI: `--reviewers`, `--review-every`, `--max-review-cycles`, `--review-blocking`, `--review-model`, `--improve`, `--improve-max-iters`, `--improve-time-budget`. Review phase supports multi-model spawning, session management, and review cycles with implementer fix loop. Improve phase supports topic discovery, iteration with rollback, and time budget.
16
+ - **Field-tested enhancements**: Git status check after epic completion (auto-commits if dirty), git push at loop end (with remote availability check), reviewer availability summary logging.
17
+ - **Infinity-loop reference docs**: Added troubleshooting section and real-world example from compound-agent's own 6-epic loop run.
18
+
19
+ ### Fixed
20
+
21
+ - **Review triggers were dead code**: Review phase triggers were placed after an exit statement and never executed.
22
+ - **Undefined variable in periodic trigger**: `$RESULT` replaced with `$SUCCESS` in periodic review trigger.
23
+ - **Review base SHA reset in loop**: `REVIEW_BASE_SHA` was incorrectly reset inside the while loop on every iteration.
24
+ - **Improve phase stdin piping**: `extract_text` was using file args instead of stdin pipe.
25
+ - **Conditional exit**: Exit line now omitted when improve phase follows review phase.
26
+
27
+ ## [2.2.0] - 2026-03-23
28
+
29
+ ### Added
30
+
31
+ - **CLI flag parity with TypeScript**: Ported 5 missing flags from the former TS CLI to the Go implementation for full migration parity:
32
+ - `--quiet` / `-q` global flag — suppresses non-essential `[ok]`/status output in `init` and `setup`
33
+ - `init --skip-agents` — skips template installation (AGENTS.md, skills, commands, docs)
34
+ - `init --skip-claude` — skips Claude Code hooks installation (alias for `--skip-hooks`)
35
+ - `setup claude --dry-run` — previews what would be installed/upgraded/reconciled without writing
36
+ - `download-model --json` — outputs download result as JSON
37
+ - **Stack-aware quality gates**: `ca setup` now detects the project stack (Go, Rust, Python, Node, Make) and substitutes `{{QUALITY_GATE_TEST}}` / `{{QUALITY_GATE_LINT}}` placeholders in skill and doc templates with the correct commands. Non-JS codebases no longer see hardcoded `pnpm test` / `pnpm lint`.
38
+
39
+ ### Changed
40
+
41
+ - **Refactored `main.go`**: Extracted `buildHooksCmd()` helper from `main()` to stay within 50-line function limit.
42
+ - **Refactored `commands_setup.go`**: Extracted `setupClaudeOpts` struct and `runSetupClaude()` function from the `registerSetupClaudeCmd` inline closure.
43
+ - **Refactored `commands_advanced.go`**: Extracted `printDownloadModelResult()` helper from `downloadModelCmd`.
44
+
10
45
  ## [2.1.2] - 2026-03-23
11
46
 
12
47
  ### Fixed
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![npm version](https://img.shields.io/npm/v/compound-agent)](https://www.npmjs.com/package/compound-agent)
6
6
  [![license](https://img.shields.io/npm/l/compound-agent)](LICENSE)
7
- [![TypeScript](https://img.shields.io/badge/TypeScript-5.3+-blue)](https://www.typescriptlang.org/)
7
+ [![Go](https://img.shields.io/badge/Go-1.24+-00ADD8)](https://go.dev/)
8
8
 
9
9
  <p align="center">
10
10
  <img src="docs/assets/diagram-4.png" alt="Compound-agent ecosystem overview: Architect phase decomposes work via Socratic dialogue into a dependency graph. ca loop chains tasks with cross-model review, retry, and fresh sessions. Scenario evaluation validates changes with iterative refinement. All backed by persistent memory (lessons + knowledge across all sessions) and verification gates (tests, lint, type checks on every task)." width="700">
@@ -342,11 +342,14 @@ The CLI binary is `ca` (alias: `compound-agent`).
342
342
  | `ca setup` | One-shot setup (hooks + templates) |
343
343
  | `ca setup --skip-hooks` | Setup without installing hooks |
344
344
  | `ca setup --json` | Output result as JSON |
345
- | `ca setup --repo-root <path>` | Specify repository root |
346
345
  | `ca setup claude` | Install Claude Code hooks only |
347
346
  | `ca setup claude --status` | Check Claude Code integration health |
348
347
  | `ca setup claude --uninstall` | Remove Claude hooks only |
348
+ | `ca setup claude --dry-run` | Preview what would change without writing |
349
349
  | `ca init` | Initialize compound-agent in current repo |
350
+ | `ca init --skip-agents` | Skip AGENTS.md and template installation |
351
+ | `ca init --skip-claude` | Skip Claude Code hooks installation |
352
+ | `ca download-model --json` | Download embedding model with JSON output |
350
353
  | `ca about` | Show version, animation, and recent changelog |
351
354
  | `ca doctor` | Verify external dependencies and project health |
352
355
 
@@ -394,32 +397,23 @@ A: The loop works and has been used to ship real projects, including compound-ag
394
397
  ## Development
395
398
 
396
399
  ```bash
397
- pnpm install # Install dependencies
398
- pnpm build # Build with tsup
399
- pnpm dev # Watch mode (rebuild on changes)
400
- pnpm lint # Type check + ESLint
400
+ cd go && go build -tags sqlite_fts5 ./cmd/ca # Build CLI binary
401
+ cd go && go test -tags sqlite_fts5 ./... # Full test suite
402
+ cd go && go vet -tags sqlite_fts5 ./... # Static analysis
401
403
  ```
402
404
 
403
- | Script | Duration | Use Case |
404
- |--------|----------|----------|
405
- | `pnpm test:fast` | ~12s | Rapid feedback during development |
406
- | `pnpm test` | ~60s | Full suite before committing |
407
- | `pnpm test:changed` | varies | Only tests affected by recent changes |
408
- | `pnpm test:watch` | - | Watch mode for TDD workflow |
409
- | `pnpm test:all` | ~60s | Full suite with model download |
410
-
411
405
  ## Technology Stack
412
406
 
413
407
  | Component | Technology |
414
408
  |-----------|------------|
415
- | Language | TypeScript (ESM) |
416
- | Package Manager | pnpm |
417
- | Build | tsup |
418
- | Testing | Vitest + fast-check (property tests) |
419
- | Storage | better-sqlite3 + FTS5 |
420
- | Embeddings | @huggingface/transformers + nomic-embed-text-v1.5 (Q8 ONNX) |
421
- | CLI | Commander.js |
422
- | Schema | Zod |
409
+ | Language | Go |
410
+ | Package Manager | Go modules (+ pnpm for npm wrapper) |
411
+ | Build | go build with CGO + sqlite_fts5 tag |
412
+ | Testing | go test + table-driven tests |
413
+ | Storage | mattn/go-sqlite3 + FTS5 |
414
+ | Embeddings | ca-embed (Rust daemon via IPC) |
415
+ | CLI | Cobra |
416
+ | Release | GoReleaser |
423
417
  | Issue Tracking | Beads (bd) |
424
418
 
425
419
  ## Documentation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "compound-agent",
3
- "version": "2.1.2",
3
+ "version": "2.2.1",
4
4
  "type": "module",
5
5
  "description": "Learning system for Claude Code — avoids repeating mistakes across sessions",
6
6
  "bin": {
@@ -50,10 +50,10 @@
50
50
  "knowledge-management"
51
51
  ],
52
52
  "optionalDependencies": {
53
- "@syottos/darwin-arm64": "2.1.2",
54
- "@syottos/darwin-x64": "2.1.2",
55
- "@syottos/linux-arm64": "2.1.2",
56
- "@syottos/linux-x64": "2.1.2"
53
+ "@syottos/darwin-arm64": "2.2.1",
54
+ "@syottos/darwin-x64": "2.2.1",
55
+ "@syottos/linux-arm64": "2.2.1",
56
+ "@syottos/linux-x64": "2.2.1"
57
57
  },
58
58
  "author": "Nathan Delacrétaz",
59
59
  "license": "MIT",