compound-agent 1.3.3 → 1.4.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 CHANGED
@@ -9,6 +9,69 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [1.4.0] - 2026-02-22
13
+
14
+ ### Fixed
15
+
16
+ - **Plugin manifest**: Corrected repository URL from `compound_agent` to `learning_agent`
17
+
18
+ ### Changed
19
+
20
+ - **Version consolidation**: Roll-up release of v1.3.7–v1.3.9 production readiness fixes (test pipeline hardening, data integrity, two-phase vector search, FTS5 sanitization)
21
+
22
+ ## [1.3.9] - 2026-02-22
23
+
24
+ ### Fixed
25
+
26
+ - **Integration test pipeline reliability**: Moved `pnpm build` from vitest globalSetup to npm script pre-step, eliminating EPERM errors from tsx/IPC conflicts inside vitest's process
27
+ - **Fail-fast globalSetup**: Missing `dist/cli.js` now throws a clear error instead of cascading 68+ test failures
28
+ - **Integration pool isolation**: Changed from `threads` to `forks` for integration tests — proper process isolation for subprocess-spawning tests
29
+ - **Timeout safety net**: Added `testTimeout: 30_000` to fallback vitest.config.ts, preventing 5s default under edge conditions
30
+
31
+ ## [1.3.8] - 2026-02-22
32
+
33
+ ### Fixed
34
+
35
+ - **Integration test reliability**: Dynamic assertion on workflow command count instead of hardcoded magic number; 30s test timeout for integration suite; conditional build in global-setup; 30s timeout on all bare `execSync` calls in init tests
36
+ - **Data integrity**: Indexing pipeline wraps delete/upsert/hash-set in a single transaction for atomic file re-indexing
37
+ - **FTS5 sanitization**: Extended regex to strip parentheses, colons, and braces in addition to existing special chars
38
+ - **Safe JSON.parse**: `rowToMemoryItem` now uses `safeJsonParse` with fallbacks instead of bare `JSON.parse`
39
+ - **ENOENT on schema migration**: `unlinkSync` in lessons DB wrapped in try/catch (matches knowledge DB pattern)
40
+ - **Worktree hook support**: `getGitHooksDir` resolves `.git` file (`gitdir:` reference) in worktrees
41
+
42
+ ### Changed
43
+
44
+ - **Two-phase vector search**: Knowledge vector search loads only IDs + embeddings in phase 1, hydrates full text for top-k only in phase 2 (reduces memory from O(n * text) to O(n * embedding) + O(k * text))
45
+ - **Deduplicated FTS5 search**: `searchKeyword` and `searchKeywordScored` share a single `executeFtsQuery` helper
46
+ - **Removed redundant COUNT pre-checks**: FTS5 naturally returns empty on empty tables
47
+ - **Extracted chunk count helpers**: `getChunkCount` / `getChunkCountByFilePath` replace raw SQL in `knowledge.ts` and `indexing.ts`
48
+ - **Immutable extension sets**: `SUPPORTED_EXTENSIONS` typed as `ReadonlySet`; new `CODE_EXTENSIONS` constant replaces hardcoded array in chunking
49
+ - **`test:all` builds first**: Script now runs `pnpm build` before model download and test run
50
+ - **Test describe label**: Fixed misleading `'when stop_hook_active is false'` to match actual test condition
51
+
52
+ ### Added
53
+
54
+ - `filesErrored` field in `IndexResult` to track file read failures during indexing
55
+ - `tsx` added to devDependencies (was used but not declared)
56
+
57
+ ## [1.3.7] - 2026-02-22
58
+
59
+ ### Fixed
60
+
61
+ - **Flaky tests**: Hardened auto-sync, init, and stop-audit tests with proper subprocess timeouts, guard assertions, and path resolution fixes
62
+ - **Conditional expects**: Replaced silent-pass `if (condition) { expect() }` patterns with explicit `it.runIf`/`it.skipIf` in model.test.ts
63
+ - **Singleton test timing**: Replaced `setTimeout(50)` with deterministic microtask yield in nomic-singleton.test.ts
64
+
65
+ ### Changed
66
+
67
+ - **Test pipeline**: Split vitest workspace into unit/integration/embedding projects; `test:fast` now runs in ~12s (was ~107s)
68
+ - **Export tests**: Consolidated 27 individual export-existence tests into 7 grouped assertions in index.test.ts
69
+
70
+ ### Added
71
+
72
+ - `pnpm test:unit` and `pnpm test:integration` scripts for targeted test execution
73
+ - Integration tags on 8 CLI test files outside `src/cli/`
74
+
12
75
  ## [1.3.3] - 2026-02-21
13
76
 
14
77
  ### Changed
@@ -638,7 +701,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
638
701
  - Vitest test suite
639
702
  - tsup build configuration
640
703
 
641
- [Unreleased]: https://github.com/Nathandela/learning_agent/compare/v1.3.0...HEAD
704
+ [Unreleased]: https://github.com/Nathandela/learning_agent/compare/v1.4.0...HEAD
705
+ [1.4.0]: https://github.com/Nathandela/learning_agent/compare/v1.3.9...v1.4.0
706
+ [1.3.9]: https://github.com/Nathandela/learning_agent/compare/v1.3.8...v1.3.9
707
+ [1.3.8]: https://github.com/Nathandela/learning_agent/compare/v1.3.3...v1.3.8
708
+ [1.3.7]: https://github.com/Nathandela/learning_agent/compare/v1.3.3...v1.3.7
709
+ [1.3.3]: https://github.com/Nathandela/learning_agent/compare/v1.3.2...v1.3.3
710
+ [1.3.2]: https://github.com/Nathandela/learning_agent/compare/v1.3.1...v1.3.2
711
+ [1.3.1]: https://github.com/Nathandela/learning_agent/compare/v1.3.0...v1.3.1
642
712
  [1.3.0]: https://github.com/Nathandela/learning_agent/compare/v1.2.11...v1.3.0
643
713
  [1.2.11]: https://github.com/Nathandela/learning_agent/compare/v1.2.10...v1.2.11
644
714
  [1.2.10]: https://github.com/Nathandela/learning_agent/compare/v1.2.9...v1.2.10