akm-cli 0.8.4 → 0.8.5

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
@@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
+ ## [0.8.5] - 2026-06-09
8
+
9
+ ### Fixed
10
+
11
+ - **Consolidation starved merge recall; the memory pool grew unbounded.** Commit
12
+ `633ece41` made the `incrementalSince` narrowing unconditional, so every
13
+ consolidation run only judged memories changed since the last run plus their
14
+ immediate vector-neighbors. Stale-but-unmerged duplicate clusters were never
15
+ re-examined, so the eligible pool grew monotonically and never shrank, and
16
+ contradiction detection (which rides on the consolidation pass) went dark.
17
+ Consolidation only runs on the nightly default-profile pass (`quick`/`frequent`
18
+ disable it), so a full-pool sweep is correct and affordable; the override is
19
+ removed. `lastConsolidateTs` still gates whether the pass runs.
20
+
7
21
  ## [0.8.4] - 2026-06-08
8
22
 
9
23
  ### Fixed
@@ -2162,16 +2162,13 @@ async function runImprovePostLoopStage(args) {
2162
2162
  // Tie consolidate proposals back to this improve invocation so
2163
2163
  // accept-rate-per-run aggregation works. Mirrors reflect/propose/extract.
2164
2164
  sourceRun: `consolidate-${Date.now()}`,
2165
- // Incremental consolidation: pass the last-consolidation timestamp so
2166
- // akmConsolidate skips chunks with no memory changed since then. Converts
2167
- // consolidation cost from O(pool) to O(changed clusters) — the fix for
2168
- // the rising p95 tail where full-pool re-judging produced 5–10 min runs
2169
- // that promoted ~0. undefined full pass on first-ever run (bootstrap).
2170
- // volumeTriggered correctly forces the run past cooldown but must NOT
2171
- // override incrementalSince the stash has ~1400 eligible memories so
2172
- // volumeTriggered=true on every run, permanently forcing full 12-chunk
2173
- // scans (~264s) instead of the intended 1-2 chunk incremental path (~44s).
2174
- incrementalSince: lastConsolidateTs,
2165
+ // Full-pool sweep: consolidation only runs on the nightly default-profile
2166
+ // pass (quick/frequent disable it), so a complete re-cluster is correct and
2167
+ // affordable here. Do NOT pass incrementalSince — the time-window narrowing
2168
+ // it triggers permanently excludes stale-but-unmerged duplicate clusters,
2169
+ // starving merge recall and letting the pool grow unbounded. (The narrowing
2170
+ // was a band-aid for an every-30-min consolidation cadence that the profile
2171
+ // split has since eliminated.) lastConsolidateTs still gates whether we run.
2175
2172
  maxChunkSize: improveProfile?.processes?.consolidate?.maxChunkSize,
2176
2173
  // Honor profile.autoAccept (already merged into options.autoAccept at the
2177
2174
  // top of akmImprove). The CLI parser always supplies 90 when --auto-accept
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akm-cli",
3
- "version": "0.8.4",
3
+ "version": "0.8.5",
4
4
  "type": "module",
5
5
  "description": "akm (Agent Knowledge Management) — A package manager for AI agent skills, commands, tools, and knowledge. Works with Claude Code, OpenCode, Cursor, and any AI coding assistant.",
6
6
  "keywords": [