compound-agent 2.6.0 → 2.6.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 +43 -33
- package/README.md +14 -4
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -7,7 +7,49 @@ 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
|
-
## [
|
|
10
|
+
## [2.6.2] - 2026-04-05
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Loop monitoring protocol**: Loop-launcher skill now includes a structured health check protocol (post-launch verification, stall detection, progress table with ETA), plus a log file map for all `agent_logs/` artifacts.
|
|
15
|
+
- **Windows loop support references**: WSL2+tmux setup guide (recommended path) and native PowerShell infinity-loop reference template under `loop-launcher/references/windows/`. PS1 template is a structural translation of the bash infinity loop with documented Windows gaps.
|
|
16
|
+
- **CLI documentation**: Added `ca info`, `ca health`, `ca polish`, `ca feedback` commands to CLI_REFERENCE.md, README, and shipped docs quick reference.
|
|
17
|
+
|
|
18
|
+
### Fixed
|
|
19
|
+
|
|
20
|
+
- **P0: `--epics` syntax in docs**: CLI_REFERENCE.md and epic-ordering.md incorrectly showed space-separated `--epics` syntax; fixed to comma-separated (`--epics "id1,id2,id3"`).
|
|
21
|
+
- **P0: Duplicate `setupTestRepo`**: Renamed duplicate function in `integration_test.go` to `setupEmptyTestRepo` to prevent build bomb with integration tag.
|
|
22
|
+
- **PruneEvents performance**: Added row count guard — telemetry pruning now skips the full-table DELETE when table has fewer rows than the threshold.
|
|
23
|
+
- **Lesson search DB reuse**: `makeLessonSearchFunc` now reuses the caller's DB handle instead of opening a new connection per search call.
|
|
24
|
+
- **`openURL` error handling**: Browser open command errors are now logged to stderr instead of silently discarded.
|
|
25
|
+
- **`outcomeToSuccess` default**: Unknown telemetry outcomes now map to failure (0) instead of success (1).
|
|
26
|
+
- **Phase state atomic writes**: `WritePhaseState` now uses temp+rename pattern to prevent JSON corruption on crash.
|
|
27
|
+
- **`knowledgeNeedsRebuild` locking**: Added `busy_timeout` pragma to prevent indefinite blocking when another process holds the write lock.
|
|
28
|
+
- **`HydrateChunks` performance**: Replaced O(n^2) string concatenation with `strings.Builder` for IN-clause placeholders.
|
|
29
|
+
- **`formatInfoPhase` display**: Fixed "phase 6/5" display in architect mode by clamping total to actual phase index.
|
|
30
|
+
- **`lockedOpenKnowledgeDB` DSN**: Now uses shared `buildDSN()` instead of hardcoded DSN string.
|
|
31
|
+
- **Redundant TOCTOU check**: Removed redundant `os.Stat` before `OpenRepoDB` in info command.
|
|
32
|
+
- **WSL2 guide**: Fixed credential helper backslash escaping, updated to modern Git path, added Claude Code auth step and `bd` prerequisite.
|
|
33
|
+
- **PS1 template**: Fixed 6-backtick comment, `Get-Command` resolution, crash handler variable, symlink HardLink fallback, added `-Encoding utf8`, optimized JSONL extraction with `switch -File`.
|
|
34
|
+
- **SKILL.md monitoring**: Fixed `readlink` basename path, replaced hardcoded session names with `.beads/loop-session-name`, added epoch delta calculation example and ETA disclaimer.
|
|
35
|
+
- **Stale docs**: Removed orphaned TypeScript-era CHANGELOG entries, fixed `npx ca` references in lessons-reviewer, removed stale TS path in lint-classifier, updated GOTCHA.md Windows statement.
|
|
36
|
+
- **README alignment**: Fixed `--review-model` default, Node.js version (>=18), `--epics` variadic notation.
|
|
37
|
+
- **Test improvements**: Removed duplicate `TestOpenDB_SchemaVersionIs7`, added error checking to PRAGMA test calls, added `testing.Short()` guard to telemetry overhead test (threshold raised to 100ms), added `t.Parallel()` to 13 storage tests, fixed `writePhaseState` test helper error handling.
|
|
38
|
+
- **`publish-platforms.cjs`**: Fixed Buffer-to-string coercion in error output handling.
|
|
39
|
+
|
|
40
|
+
## [2.6.1] - 2026-04-03
|
|
41
|
+
|
|
42
|
+
### Added
|
|
43
|
+
|
|
44
|
+
- **Architect phase state support**: Phase system now recognizes `architect` as phase index 6. `ca phase-check init <id> --phase architect` initializes architect-specific state, enabling phase guard and read tracker during architect sessions.
|
|
45
|
+
- **Loop script stale state cleanup**: Generated infinity loop scripts now run `ca phase-check clean` before each epic, preventing leftover architect or previous-epic state from blocking cook-it initialization.
|
|
46
|
+
|
|
47
|
+
### Fixed
|
|
48
|
+
|
|
49
|
+
- **Architect Phase 5 skipping loop-launcher skill**: Replaced inline "Quick summary" in architect SKILL.md Phase 5 with mandatory delegation to `/compound:launch-loop` command, which enforces reading loop-launcher/SKILL.md before generating scripts.
|
|
50
|
+
- **Stale TypeScript binary detection**: Loop-launcher pre-flight now verifies `ca loop --help` shows Cobra output and `ca polish --help` succeeds, catching stale TypeScript CLI binaries before they cause model validation or missing command errors.
|
|
51
|
+
- **Phase status display**: `ca phase-check status` no longer hardcodes `/5` denominator, correctly displaying architect phase index.
|
|
52
|
+
- **Phase guard message**: Warning no longer hardcodes `phase N/5` format, now shows phase name and index.
|
|
11
53
|
|
|
12
54
|
## [2.6.0] - 2026-04-01
|
|
13
55
|
|
|
@@ -231,38 +273,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
231
273
|
- **Weekly npm token health check**: Scheduled workflow verifies `NPM_TOKEN` validity every Monday.
|
|
232
274
|
- **Platform publish script**: `scripts/publish-platforms.cjs` handles creating and publishing `@syottos/*` packages during releases. Idempotent — safe to re-run.
|
|
233
275
|
|
|
234
|
-
## [Unreleased]
|
|
235
|
-
|
|
236
|
-
### Changed
|
|
237
|
-
|
|
238
|
-
- **Replace node-llama-cpp with Transformers.js**: Swap EmbeddingGemma-300M (node-llama-cpp, 431MB RSS) for nomic-embed-text-v1.5 (@huggingface/transformers, 23MB RSS) — 95% memory reduction (E5b).
|
|
239
|
-
- **Remove all node-llama-cpp residue**: Update setup templates, doctor diagnostics, comments, and vitest config to reference Transformers.js and onnxruntime-node instead of node-llama-cpp (E5c).
|
|
240
|
-
- **Gemini adapter is now opt-in**: `installGeminiAdapter()` no longer runs automatically during setup. Users enable it explicitly via `npx ca setup gemini` (sets `gemini: true` in `compound-agent.json`). Use `npx ca setup gemini --disable` / `cleanGeminiCompoundFiles()` for clean removal.
|
|
241
|
-
- **Stale cleanup refactored**: Removed hardcoded deprecation lists from upgrade logic, replaced with `cleanStaleArtifacts()` pattern that declaratively defines what to remove.
|
|
242
|
-
|
|
243
|
-
### Added
|
|
244
|
-
|
|
245
|
-
- **Research-specialist shipped agent**: New general-purpose research subagent (`research-specialist.md`) shipped via `npx ca init`. Has full tool access (Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch) so it can conduct deep PhD-level research, write survey papers, run experiments, and validate claims with code. Referenced by the `get-a-phd` workflow for parallel research execution.
|
|
246
|
-
- **`model-info.ts` module**: Extracted embedding model metadata (name, repo, dimensions, file) into a standalone module with zero native imports, decoupling the import graph so that CLI entry points no longer transitively load `node-llama-cpp` or `better-sqlite3` at parse time.
|
|
247
|
-
- **Architect decomposition spec**: Added specification for embedding memory pressure remediation (`embedding-memory-pressure-remediation.md`).
|
|
248
|
-
- **Hypothesis validation protocol**: Added to spec-dev skill — specs can now define falsifiable hypotheses with validation criteria.
|
|
249
|
-
- **`cleanStaleArtifacts` and `cleanStaleGeminiArtifacts`**: New setup utilities that remove deprecated files and directories during upgrades instead of relying on hardcoded deprecation lists.
|
|
250
|
-
- **LinkedIn architecture diagrams**: Integrated visual architecture diagrams into README (`docs/assets/`).
|
|
251
|
-
- **Independent reviews**: Added Opus and Sonnet independent review documents for embedding memory pressure analysis.
|
|
252
|
-
- **Embedding memory pressure investigation**: Added root-cause analysis, measurement data, and proposal documents in `docs/research/`.
|
|
253
|
-
|
|
254
|
-
### Fixed
|
|
255
|
-
|
|
256
|
-
- **Managed repo artifact upgrades**: `ca setup` now reconciles existing managed compound-agent files during upgrades instead of only creating missing files, so already-initialized repos receive updated templates and metadata.
|
|
257
|
-
- **Retired managed template cleanup**: Setup upgrades now remove stale files and directories that are no longer shipped from managed `compound/` directories under `.claude/commands/`, `.claude/skills/`, `.claude/agents/`, and `docs/`.
|
|
258
|
-
- **Nested phase reference cleanup**: Setup upgrades now prune retired nested files and directories inside phase skill `references/` trees, preventing removed or renamed reference docs from lingering after reruns.
|
|
259
|
-
- **Embedding memory pressure remediation**: Lazy-load native modules (@huggingface/transformers (onnxruntime-node), better-sqlite3) behind dynamic `import()`, reducing CLI cold-start RSS. Singleton embedding model uses explicit `dispose()`. Added RSS measurement script and integration tests for memory lifecycle.
|
|
260
|
-
- **Review phase resilience**: Fixed jq stdin pipe handling, added auth health checks, and improved error isolation in loop review templates.
|
|
261
|
-
- **Quality-filter-before-storage test ordering**: Resolved flaky test ordering in compound skill tests.
|
|
262
|
-
- **Merged worktree review findings**: Addressed Opus/Sonnet review findings for worktree merges (loop-review-templates, stale-cleanup tests).
|
|
263
|
-
- **Knowledge index integration tests**: Fixed test configuration for embedding integration tests in vitest workspace.
|
|
264
|
-
|
|
265
|
-
|
|
266
276
|
## [1.8.0] - 2026-03-15
|
|
267
277
|
|
|
268
278
|
### Added
|
package/README.md
CHANGED
|
@@ -151,7 +151,7 @@ ca loop
|
|
|
151
151
|
ca loop --reviewers claude-sonnet --review-every 3
|
|
152
152
|
|
|
153
153
|
# Target specific epics
|
|
154
|
-
ca loop --epics beads-abc
|
|
154
|
+
ca loop --epics "beads-abc,beads-def,beads-ghi" --max-retries 2
|
|
155
155
|
|
|
156
156
|
# Run it
|
|
157
157
|
./infinity-loop.sh
|
|
@@ -235,7 +235,7 @@ npx ca setup
|
|
|
235
235
|
|
|
236
236
|
### Requirements
|
|
237
237
|
|
|
238
|
-
- Node.js >=
|
|
238
|
+
- Node.js >= 18 (for `npx` wrapper — the CLI itself is a Go binary)
|
|
239
239
|
- ~278MB disk space for the embedding model (one-time download, shared across projects)
|
|
240
240
|
- Embedding runs via `ca-embed` Rust daemon (nomic-embed-text-v1.5 ONNX)
|
|
241
241
|
|
|
@@ -302,7 +302,7 @@ The CLI binary is `ca` (alias: `compound-agent`).
|
|
|
302
302
|
| Command | Description |
|
|
303
303
|
|---------|-------------|
|
|
304
304
|
| `ca loop` | Generate infinity loop script for autonomous epic processing |
|
|
305
|
-
| `ca loop --epics
|
|
305
|
+
| `ca loop --epics "id1,id2,id3"` | Target specific epic IDs (comma-separated) |
|
|
306
306
|
| `ca loop -o <path>` | Custom output path (default: `./infinity-loop.sh`) |
|
|
307
307
|
| `ca loop --max-retries <n>` | Max retries per epic on failure (default: 1) |
|
|
308
308
|
| `ca loop --force` | Overwrite existing script |
|
|
@@ -310,7 +310,7 @@ The CLI binary is `ca` (alias: `compound-agent`).
|
|
|
310
310
|
| `ca loop --review-every <n>` | Review every N completed epics (0 = end-only, default: 0) |
|
|
311
311
|
| `ca loop --max-review-cycles <n>` | Max review/fix iterations (default: 3) |
|
|
312
312
|
| `ca loop --review-blocking` | Fail loop if review not approved after max cycles |
|
|
313
|
-
| `ca loop --review-model <model>` | Model for implementer fix sessions (default: claude-opus-4-6) |
|
|
313
|
+
| `ca loop --review-model <model>` | Model for implementer fix sessions (default: claude-opus-4-6[1m]) |
|
|
314
314
|
| `ca improve` | Generate improvement loop script from `improve/*.md` programs |
|
|
315
315
|
| `ca improve --topics <names...>` | Run only specific topics |
|
|
316
316
|
| `ca improve --max-iters <n>` | Max iterations per topic (default: 5) |
|
|
@@ -322,6 +322,16 @@ The CLI binary is `ca` (alias: `compound-agent`).
|
|
|
322
322
|
| `ca watch --epic <id>` | Watch a specific epic trace |
|
|
323
323
|
| `ca watch --improve` | Watch improvement loop traces |
|
|
324
324
|
| `ca watch --no-follow` | Print existing trace and exit (no live tail) |
|
|
325
|
+
| `ca polish` | Generate polish loop script for iterative refinement |
|
|
326
|
+
| `ca polish --spec-file <path>` | Specify the spec file for polish review |
|
|
327
|
+
| `ca polish --reviewers <names>` | Comma-separated reviewer models |
|
|
328
|
+
| `ca polish --cycles <n>` | Number of polish cycles (default: 1) |
|
|
329
|
+
| `ca polish --force` | Overwrite existing script |
|
|
330
|
+
| `ca info` | Show project status, phase, and telemetry summary |
|
|
331
|
+
| `ca info --open` | Open project dashboard in browser |
|
|
332
|
+
| `ca info --json` | Output as JSON |
|
|
333
|
+
| `ca health` | Check project health and dependencies |
|
|
334
|
+
| `ca feedback` | Submit feedback about compound-agent |
|
|
325
335
|
|
|
326
336
|
### Knowledge
|
|
327
337
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "compound-agent",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Learning system for Claude Code — avoids repeating mistakes across sessions",
|
|
6
6
|
"bin": {
|
|
@@ -51,12 +51,12 @@
|
|
|
51
51
|
"knowledge-management"
|
|
52
52
|
],
|
|
53
53
|
"optionalDependencies": {
|
|
54
|
-
"@syottos/darwin-arm64": "2.6.
|
|
55
|
-
"@syottos/darwin-x64": "2.6.
|
|
56
|
-
"@syottos/linux-arm64": "2.6.
|
|
57
|
-
"@syottos/linux-x64": "2.6.
|
|
58
|
-
"@syottos/win32-x64": "2.6.
|
|
59
|
-
"@syottos/win32-arm64": "2.6.
|
|
54
|
+
"@syottos/darwin-arm64": "2.6.2",
|
|
55
|
+
"@syottos/darwin-x64": "2.6.2",
|
|
56
|
+
"@syottos/linux-arm64": "2.6.2",
|
|
57
|
+
"@syottos/linux-x64": "2.6.2",
|
|
58
|
+
"@syottos/win32-x64": "2.6.2",
|
|
59
|
+
"@syottos/win32-arm64": "2.6.2"
|
|
60
60
|
},
|
|
61
61
|
"author": "Nathan Delacrétaz",
|
|
62
62
|
"license": "MIT",
|