You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11Lines changed: 11 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,16 @@
1
1
# Changelog
2
2
3
+
## [Unreleased]
4
+
5
+
### Changed
6
+
7
+
-**`axme_decisions` and `axme_memories` now adapt their output to `config.context.mode`.** In `full` mode (default) both tools return full bodies grouped by enforce / type, exactly as before. In `search` mode they return a compact catalog (id/slug + title + 1-line description, ≤200 chars) and instruct the agent to fetch full bodies via `axme_get_decision` / `axme_get_memory` / `axme_search_kb`. This closes a regression in v0.5.0 where the catalog was loaded by `axme_context` but a subsequent agent call to `axme_decisions` or `axme_memories` would silently re-load every body, defeating search mode's ~10× token saving. `axme_oracle` is unaffected — it always returns the full stack/structure/patterns/glossary because those are connected documents, not catalog entries.
8
+
-**`buildSearchModeInstructions` (rendered by `axme_context` in search mode) gained an "Active KB usage" block** with concrete trigger predicates ("how did we…", touching git/safety/hooks/storage/release subsystems, mentioning a library by name, before architectural recommendation, before saving a new decision/memory). Replaces a generic "use search for fuzzy lookups" line with imperative MUSTs tied to recognizable situations in the user's task. Designed to make the agent call `axme_search_kb` proactively instead of relying on session-start memory of past KBs.
9
+
10
+
### Fixed
11
+
12
+
-**Stale memory `transformers-js-install-size-is-102mb` removed** (Q-003). The original v0.2.x memory cited 102 MB for `@huggingface/transformers`; the v0.5.0 release session measured 773 MB on Linux because `onnxruntime-node` pulls prebuilt binaries for 5 platforms (linux-x64, linux-arm64, darwin-x64, darwin-arm64, windows-x64). Since B-005 is shipped and the lazy-install pattern is now embedded in the product (not future guidance), the memory was deleted rather than amended. The auditor's intermediate stub `transformers-js-actual-install-size-is-773-mb-not-102-mb-on-` was also removed. KB reindexed (198 entries).
13
+
3
14
## [0.5.0] - 2026-04-29
4
15
5
16
Skips 0.3.0 / 0.4.0 — combined release for native Windows support, multi-client docs surfacing, and the semantic-search MCP tools (B-005).
? "- `axme_search_kb(query, type?, k?)` — semantic search across both"
297
355
: "- `axme_search_kb(query, ...)` — currently UNAVAILABLE (transformers runtime not installed; falls back to a hint message)";
298
-
return[
356
+
constlines=[
299
357
"## Search mode active — bodies fetched on demand",
300
358
"",
301
359
"You have a catalog of every memory and decision above (titles + descriptions only).",
@@ -308,10 +366,27 @@ function buildSearchModeInstructions(runtimeInstalled: boolean): string {
308
366
"- `axme_get_decision(id_or_slug)` — full body of one decision",
309
367
searchAvailable,
310
368
"",
311
-
runtimeInstalled
312
-
? "Use `axme_search_kb` for fuzzy lookups (\"how did we handle X?\"). Use `axme_get_*` when you already know the slug from the catalog."
313
-
: "Without the runtime, navigate the catalog above by topic and fetch bodies via `axme_get_*`. To enable semantic search: `axme-code config set context.mode search` (re-runs install).",
314
-
].join("\n");
369
+
"## Active KB usage (when to call search/get)",
370
+
"",
371
+
"**MUST** call `axme_search_kb` (or `axme_get_*` when slug is known) when ANY of these triggers fire:",
372
+
"",
373
+
"- User asks \"how did we…\", \"why did we…\", \"что мы решили про…\", \"why is X this way?\" → search the topic.",
374
+
"- About to write or modify code that touches: git, safety hooks, storage, agent SDK, build, release, telemetry, auth, MCP tools → search the area first.",
375
+
"- About to suggest a fix for a bug → search similar past failures (memory type=feedback) before proposing.",
376
+
"- User mentions a library, platform, tool, or error message by name → search that name.",
377
+
"- A catalog title looks partially relevant but its 1-line description is too short to decide → fetch the body.",
378
+
"- Before any architectural recommendation or new pattern → search decisions for that subsystem to avoid contradiction or duplication.",
379
+
"- Before saving a new decision/memory → search to check if a similar one already exists (avoids dupes).",
380
+
"",
381
+
"Skipping search has caused real regressions in this project (force-pushing main, missing #!axme gate suffix,",
382
+
"duplicating an existing decision). The catalog scan is free; semantic search is sub-second and uses zero",
383
+
"API tokens (runs locally on CPU). When in doubt, search.",
384
+
];
385
+
lines.push("");
386
+
lines.push(runtimeInstalled
387
+
? "Use `axme_search_kb` for fuzzy lookups. Use `axme_get_*` when you already know the slug from the catalog."
388
+
: "Runtime not installed: navigate the catalog above by topic and fetch bodies via `axme_get_*`. To enable semantic search: `axme-code config set context.mode search` (re-runs install).");
389
+
returnlines.join("\n");
315
390
}
316
391
317
392
/** Legacy joined output (for backward compat where needed). */
`---\nslug: test-memo\ntype: feedback\ntitle: Test memo\nsource: manual\ndate: "2026-04-01"\nkeywords: [test]\n---\n\n# Test memo\n\nA short description that should appear in the catalog row.\n\n## Details\n\nLong body that must NOT appear in the catalog string.\n`);
108
+
}
109
+
110
+
it("buildDecisionsCatalogString renders id + title + short description, no body",()=>{
0 commit comments