compound-agent 2.6.1 → 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.
Files changed (3) hide show
  1. package/CHANGELOG.md +29 -33
  2. package/README.md +14 -4
  3. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -7,7 +7,35 @@ 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
- ## [Unreleased]
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.
11
39
 
12
40
  ## [2.6.1] - 2026-04-03
13
41
 
@@ -245,38 +273,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
245
273
  - **Weekly npm token health check**: Scheduled workflow verifies `NPM_TOKEN` validity every Monday.
246
274
  - **Platform publish script**: `scripts/publish-platforms.cjs` handles creating and publishing `@syottos/*` packages during releases. Idempotent — safe to re-run.
247
275
 
248
- ## [Unreleased]
249
-
250
- ### Changed
251
-
252
- - **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).
253
- - **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).
254
- - **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.
255
- - **Stale cleanup refactored**: Removed hardcoded deprecation lists from upgrade logic, replaced with `cleanStaleArtifacts()` pattern that declaratively defines what to remove.
256
-
257
- ### Added
258
-
259
- - **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.
260
- - **`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.
261
- - **Architect decomposition spec**: Added specification for embedding memory pressure remediation (`embedding-memory-pressure-remediation.md`).
262
- - **Hypothesis validation protocol**: Added to spec-dev skill — specs can now define falsifiable hypotheses with validation criteria.
263
- - **`cleanStaleArtifacts` and `cleanStaleGeminiArtifacts`**: New setup utilities that remove deprecated files and directories during upgrades instead of relying on hardcoded deprecation lists.
264
- - **LinkedIn architecture diagrams**: Integrated visual architecture diagrams into README (`docs/assets/`).
265
- - **Independent reviews**: Added Opus and Sonnet independent review documents for embedding memory pressure analysis.
266
- - **Embedding memory pressure investigation**: Added root-cause analysis, measurement data, and proposal documents in `docs/research/`.
267
-
268
- ### Fixed
269
-
270
- - **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.
271
- - **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/`.
272
- - **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.
273
- - **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.
274
- - **Review phase resilience**: Fixed jq stdin pipe handling, added auth health checks, and improved error isolation in loop review templates.
275
- - **Quality-filter-before-storage test ordering**: Resolved flaky test ordering in compound skill tests.
276
- - **Merged worktree review findings**: Addressed Opus/Sonnet review findings for worktree merges (loop-review-templates, stale-cleanup tests).
277
- - **Knowledge index integration tests**: Fixed test configuration for embedding integration tests in vitest workspace.
278
-
279
-
280
276
  ## [1.8.0] - 2026-03-15
281
277
 
282
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 beads-def beads-ghi --max-retries 2
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 >= 20 (for `npx` wrapper — the CLI itself is a Go binary)
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 <ids...>` | Target specific epic IDs |
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.1",
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.1",
55
- "@syottos/darwin-x64": "2.6.1",
56
- "@syottos/linux-arm64": "2.6.1",
57
- "@syottos/linux-x64": "2.6.1",
58
- "@syottos/win32-x64": "2.6.1",
59
- "@syottos/win32-arm64": "2.6.1"
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",