@dikolab/kbdb 0.5.0 → 0.6.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.
Files changed (224) hide show
  1. package/CLA.md +68 -0
  2. package/LICENSE +676 -12
  3. package/LICENSING.md +58 -0
  4. package/README.md +47 -24
  5. package/README.md.bak +320 -0
  6. package/dist/README.md +320 -0
  7. package/dist/{chunk-BJXEVALU.mjs → chunk-QLJ33C74.mjs} +44 -44
  8. package/dist/chunk-QLJ33C74.mjs.map +7 -0
  9. package/dist/cli.cjs +550 -232
  10. package/dist/cli.cjs.map +4 -4
  11. package/dist/cli.d.ts +0 -8
  12. package/dist/cli.mjs +483 -154
  13. package/dist/cli.mjs.map +4 -4
  14. package/dist/kbdb-worker.cjs +36 -5
  15. package/dist/kbdb-worker.cjs.map +3 -3
  16. package/dist/mod.cjs +89 -30
  17. package/dist/mod.cjs.map +4 -4
  18. package/dist/mod.mjs +88 -30
  19. package/dist/mod.mjs.map +4 -4
  20. package/dist/src/cli.d.ts +0 -8
  21. package/dist/src/shared/cli/constants/defaults.constant.d.ts +1 -1
  22. package/dist/src/shared/cli/constants/recfile-command-field-map.constant.d.ts +8 -0
  23. package/dist/src/shared/cli/constants/recfile-field-maps.constant.d.ts +21 -0
  24. package/dist/src/shared/cli/functions/compute-directory-level.function.d.ts +14 -0
  25. package/dist/src/shared/cli/functions/dispatch-command.function.d.ts +2 -28
  26. package/dist/src/shared/cli/functions/format-command-output.function.d.ts +14 -0
  27. package/dist/src/shared/cli/functions/format-db-not-found.function.d.ts +20 -0
  28. package/dist/src/shared/cli/functions/format-output.function.d.ts +1 -0
  29. package/dist/src/shared/cli/functions/format-recfile-output.function.d.ts +11 -0
  30. package/dist/src/shared/cli/functions/render-recfile-value.function.d.ts +11 -0
  31. package/dist/src/shared/cli/functions/resolve-db-dir.function.d.ts +24 -0
  32. package/dist/src/shared/cli/functions/resolve-recfile-key.function.d.ts +9 -0
  33. package/dist/src/shared/cli/functions/run-db-path.function.d.ts +10 -0
  34. package/dist/src/shared/cli/functions/run-export.function.d.ts +8 -4
  35. package/dist/src/shared/cli/functions/run-import.function.d.ts +4 -0
  36. package/dist/src/shared/cli/functions/run-learn.function.d.ts +12 -0
  37. package/dist/src/shared/cli/index.d.ts +4 -1
  38. package/dist/src/shared/cli/typings/cli-options.interface.d.ts +9 -2
  39. package/dist/src/shared/cli/typings/db-resolution.interface.d.ts +9 -0
  40. package/dist/src/shared/cli/typings/recfile-field-map.type.d.ts +10 -0
  41. package/dist/src/shared/version/constants/version.constant.d.ts +1 -1
  42. package/dist/src/shared/wasm-codec/functions/decode-option-u8.function.d.ts +9 -0
  43. package/dist/src/shared/wasm-codec/functions/decode-section-records.function.d.ts +4 -0
  44. package/dist/src/shared/wasm-codec/functions/encode-add-section-params.function.d.ts +2 -45
  45. package/dist/src/shared/wasm-codec/functions/encode-update-section-params.function.d.ts +10 -1
  46. package/dist/src/shared/wasm-codec/index.d.ts +1 -1
  47. package/dist/src/shared/wasm-codec/typings/add-section-input.model.d.ts +6 -0
  48. package/dist/src/shared/wasm-codec/typings/section-record-trailing.model.d.ts +5 -0
  49. package/dist/src/shared/wasm-codec/typings/section-record.model.d.ts +5 -0
  50. package/dist/src/shared/worker-client/functions/build-deno-permissions.function.d.ts +11 -0
  51. package/dist/src/shared/worker-client/functions/read-crash-reason.function.d.ts +9 -0
  52. package/dist/src/shared/worker-client/functions/resolve-spawn-script.function.d.ts +6 -0
  53. package/dist/src/shared/worker-client/functions/spawn-daemon.function.d.ts +1 -1
  54. package/dist/src/shared/worker-client/typings/section.model.d.ts +5 -0
  55. package/dist/src/shared/worker-client/typings/worker-client-options.interface.d.ts +0 -6
  56. package/dist/src/shared/worker-daemon/functions/count-files.function.d.ts +12 -0
  57. package/dist/src/shared/worker-daemon/functions/handle-import.function.d.ts +2 -0
  58. package/dist/src/shared/worker-daemon/functions/handle-read-ops.function.d.ts +8 -0
  59. package/dist/src/shared/worker-daemon/functions/validate-daemon-path.function.d.ts +15 -0
  60. package/dist/src/worker.d.ts +0 -7
  61. package/dist/wasm/default-embedding/kbdb_default_embedding_bg.wasm +0 -0
  62. package/dist/wasm/default-embedding/package.json +1 -1
  63. package/dist/wasm/fs-database/kbdb_fs_database_bg.wasm +0 -0
  64. package/dist/wasm/fs-database/package.json +1 -1
  65. package/dist/wasm/fs-migration/package.json +1 -1
  66. package/dist/wasm/kb-worker/kbdb_worker_bg.wasm +0 -0
  67. package/dist/wasm/kb-worker/package.json +1 -1
  68. package/dist/wasm/query-parser/kbdb_query_parser_bg.wasm +0 -0
  69. package/dist/wasm/query-parser/package.json +1 -1
  70. package/dist/worker.d.ts +0 -7
  71. package/dist/worker.mjs +37 -6
  72. package/dist/worker.mjs.map +3 -3
  73. package/package.json +10 -9
  74. package/dist/chunk-BJXEVALU.mjs.map +0 -7
  75. package/dist/src/shared/cli/functions/resolve-raw-db-path.function.d.ts +0 -10
  76. package/docs/details/README.md +0 -30
  77. package/docs/details/agent-tooling.md +0 -132
  78. package/docs/details/cli.md +0 -777
  79. package/docs/details/knowledge-base.md +0 -180
  80. package/docs/details/library-api.md +0 -495
  81. package/docs/details/mcp-server.md +0 -482
  82. package/docs/details/search-and-ranking.md +0 -575
  83. package/docs/details/storage.md +0 -531
  84. package/docs/goals/agents.md +0 -751
  85. package/docs/goals/architecture.svg +0 -198
  86. package/docs/goals/auto-capture.md +0 -378
  87. package/docs/goals/benchmarking.md +0 -296
  88. package/docs/goals/cli.md +0 -2654
  89. package/docs/goals/concurrency.md +0 -259
  90. package/docs/goals/content-composer.md +0 -609
  91. package/docs/goals/content-parser.md +0 -279
  92. package/docs/goals/database.md +0 -1679
  93. package/docs/goals/document.md +0 -368
  94. package/docs/goals/hybrid-search.md +0 -465
  95. package/docs/goals/mcp.md +0 -1541
  96. package/docs/goals/overview.md +0 -124
  97. package/docs/goals/query-parser.md +0 -373
  98. package/docs/goals/query-result.md +0 -860
  99. package/docs/goals/semantic-dedup.md +0 -233
  100. package/docs/goals/skills.md +0 -810
  101. package/docs/goals/sync.md +0 -217
  102. package/docs/goals/worker-client.md +0 -1005
  103. package/docs/goals/worker-daemon.md +0 -1547
  104. package/docs/modules/overview.md +0 -319
  105. package/docs/modules/rust/embedding/module.md +0 -91
  106. package/docs/modules/rust/fs-database/functions/document.md +0 -48
  107. package/docs/modules/rust/fs-database/functions/integrity.md +0 -79
  108. package/docs/modules/rust/fs-database/functions/io.md +0 -87
  109. package/docs/modules/rust/fs-database/functions/module.md +0 -22
  110. package/docs/modules/rust/fs-database/functions/query-exec.md +0 -44
  111. package/docs/modules/rust/fs-database/functions/section.md +0 -76
  112. package/docs/modules/rust/fs-database/indexes/btree.md +0 -35
  113. package/docs/modules/rust/fs-database/indexes/corpus.md +0 -61
  114. package/docs/modules/rust/fs-database/indexes/inverted.md +0 -60
  115. package/docs/modules/rust/fs-database/indexes/module.md +0 -64
  116. package/docs/modules/rust/fs-database/indexes/positional.md +0 -39
  117. package/docs/modules/rust/fs-database/indexes/vectors.md +0 -110
  118. package/docs/modules/rust/fs-database/module.md +0 -150
  119. package/docs/modules/rust/fs-database/types/catalog.md +0 -53
  120. package/docs/modules/rust/fs-database/types/module.md +0 -12
  121. package/docs/modules/rust/fs-database/types/section.md +0 -127
  122. package/docs/modules/rust/kb-worker/functions/compose.md +0 -57
  123. package/docs/modules/rust/kb-worker/functions/module.md +0 -20
  124. package/docs/modules/rust/kb-worker/functions/retrieve.md +0 -194
  125. package/docs/modules/rust/kb-worker/functions/search.md +0 -173
  126. package/docs/modules/rust/kb-worker/functions/write.md +0 -172
  127. package/docs/modules/rust/kb-worker/module.md +0 -171
  128. package/docs/modules/rust/kb-worker/types/cache.md +0 -90
  129. package/docs/modules/rust/kb-worker/types/context.md +0 -26
  130. package/docs/modules/rust/kb-worker/types/module.md +0 -16
  131. package/docs/modules/rust/kb-worker/types/status.md +0 -29
  132. package/docs/modules/rust/kb-worker/types/token.md +0 -50
  133. package/docs/modules/rust/overview.md +0 -531
  134. package/docs/modules/rust/query-parser/functions/extract.md +0 -56
  135. package/docs/modules/rust/query-parser/functions/module.md +0 -18
  136. package/docs/modules/rust/query-parser/functions/parse.md +0 -33
  137. package/docs/modules/rust/query-parser/functions/pipeline.md +0 -9
  138. package/docs/modules/rust/query-parser/functions/rank.md +0 -85
  139. package/docs/modules/rust/query-parser/module.md +0 -131
  140. package/docs/modules/rust/query-parser/types/cache.md +0 -39
  141. package/docs/modules/rust/query-parser/types/keyphrase.md +0 -71
  142. package/docs/modules/rust/query-parser/types/module.md +0 -18
  143. package/docs/modules/rust/query-parser/types/token.md +0 -46
  144. package/docs/modules/rust/shared/content-composer/functions.md +0 -114
  145. package/docs/modules/rust/shared/content-composer/module.md +0 -147
  146. package/docs/modules/rust/shared/content-composer/types.md +0 -93
  147. package/docs/modules/rust/shared/content-parser/functions.md +0 -72
  148. package/docs/modules/rust/shared/content-parser/module.md +0 -99
  149. package/docs/modules/rust/shared/content-parser/types.md +0 -71
  150. package/docs/modules/rust/shared/corpus/module.md +0 -24
  151. package/docs/modules/rust/shared/corpus/types.md +0 -141
  152. package/docs/modules/rust/shared/document/module.md +0 -25
  153. package/docs/modules/rust/shared/document/types.md +0 -154
  154. package/docs/modules/rust/shared/encode/module.md +0 -22
  155. package/docs/modules/rust/shared/encode/traits.md +0 -304
  156. package/docs/modules/rust/shared/error/module.md +0 -28
  157. package/docs/modules/rust/shared/error/types.md +0 -302
  158. package/docs/modules/rust/shared/kbid/module.md +0 -24
  159. package/docs/modules/rust/shared/kbid/types.md +0 -147
  160. package/docs/modules/rust/shared/memory/functions.md +0 -209
  161. package/docs/modules/rust/shared/memory/module.md +0 -24
  162. package/docs/modules/rust/shared/module.md +0 -196
  163. package/docs/modules/rust/shared/pipeline/functions.md +0 -141
  164. package/docs/modules/rust/shared/pipeline/module.md +0 -62
  165. package/docs/modules/rust/shared/pipeline/types.md +0 -43
  166. package/docs/modules/rust/shared/query/module.md +0 -27
  167. package/docs/modules/rust/shared/query/types.md +0 -236
  168. package/docs/modules/rust/shared/section/module.md +0 -25
  169. package/docs/modules/rust/shared/section/types.md +0 -294
  170. package/docs/modules/rust/shared/term/module.md +0 -25
  171. package/docs/modules/rust/shared/term/types.md +0 -139
  172. package/docs/modules/typescript/cli.md +0 -131
  173. package/docs/modules/typescript/kbdb-worker.md +0 -150
  174. package/docs/modules/typescript/overview.md +0 -400
  175. package/docs/modules/typescript/shared/auto-capture/module.md +0 -73
  176. package/docs/modules/typescript/shared/cli/constants.md +0 -23
  177. package/docs/modules/typescript/shared/cli/functions.md +0 -809
  178. package/docs/modules/typescript/shared/cli/module.md +0 -138
  179. package/docs/modules/typescript/shared/cli/typings.md +0 -197
  180. package/docs/modules/typescript/shared/embedding/functions.md +0 -200
  181. package/docs/modules/typescript/shared/embedding/module.md +0 -77
  182. package/docs/modules/typescript/shared/embedding/typings.md +0 -124
  183. package/docs/modules/typescript/shared/hash/functions.md +0 -20
  184. package/docs/modules/typescript/shared/hash/module.md +0 -21
  185. package/docs/modules/typescript/shared/log/constants.md +0 -82
  186. package/docs/modules/typescript/shared/log/functions.md +0 -131
  187. package/docs/modules/typescript/shared/log/module.md +0 -153
  188. package/docs/modules/typescript/shared/log/typings.md +0 -82
  189. package/docs/modules/typescript/shared/mcp/classes.md +0 -179
  190. package/docs/modules/typescript/shared/mcp/functions.md +0 -386
  191. package/docs/modules/typescript/shared/mcp/module.md +0 -160
  192. package/docs/modules/typescript/shared/mcp/typings.md +0 -529
  193. package/docs/modules/typescript/shared/module.md +0 -110
  194. package/docs/modules/typescript/shared/platform/functions.md +0 -42
  195. package/docs/modules/typescript/shared/platform/module.md +0 -25
  196. package/docs/modules/typescript/shared/runtime/functions.md +0 -26
  197. package/docs/modules/typescript/shared/runtime/module.md +0 -27
  198. package/docs/modules/typescript/shared/runtime/typings.md +0 -13
  199. package/docs/modules/typescript/shared/version/module.md +0 -27
  200. package/docs/modules/typescript/shared/wasm-codec/functions.md +0 -391
  201. package/docs/modules/typescript/shared/wasm-codec/module.md +0 -98
  202. package/docs/modules/typescript/shared/worker-client/classes.md +0 -264
  203. package/docs/modules/typescript/shared/worker-client/functions.md +0 -175
  204. package/docs/modules/typescript/shared/worker-client/module.md +0 -92
  205. package/docs/modules/typescript/shared/worker-client/typings.md +0 -511
  206. package/docs/modules/typescript/shared/worker-daemon/classes.md +0 -239
  207. package/docs/modules/typescript/shared/worker-daemon/constants.md +0 -37
  208. package/docs/modules/typescript/shared/worker-daemon/functions.md +0 -234
  209. package/docs/modules/typescript/shared/worker-daemon/module.md +0 -118
  210. package/docs/modules/typescript/shared/worker-daemon/typings.md +0 -132
  211. package/docs/overview.md +0 -191
  212. package/docs/release-notes/0.1.0.md +0 -189
  213. package/docs/release-notes/0.1.1.md +0 -46
  214. package/docs/release-notes/0.1.2.md +0 -38
  215. package/docs/release-notes/0.1.3.md +0 -42
  216. package/docs/release-notes/0.2.0.md +0 -147
  217. package/docs/release-notes/0.3.0.md +0 -89
  218. package/docs/release-notes/0.3.1.md +0 -121
  219. package/docs/release-notes/0.3.2.md +0 -64
  220. package/docs/release-notes/0.4.0.md +0 -80
  221. package/docs/release-notes/0.4.1.md +0 -149
  222. package/docs/release-notes/0.4.3.md +0 -60
  223. package/docs/release-notes/0.5.0.md +0 -41
  224. package/docs/release-notes/README.md +0 -16
@@ -1,147 +0,0 @@
1
- # 0.2.0
2
-
3
- *Minor release -- 2026-06-21*
4
-
5
- Adds progressive context recall, paginated search
6
- results with rich metadata, and a bidirectional
7
- reference graph. These features give AI agents
8
- the ability to explore related content across
9
- sections and documents without loading everything
10
- at once.
11
-
12
- ---
13
-
14
- ## New Features
15
-
16
- - **Recall with layered context (depths 0--3)** --
17
- New `recall` command (CLI), MCP tool, and IPC
18
- method. Accepts a `kbid` (or `kbids` for batch)
19
- and a `depth` parameter that controls how much
20
- context is returned:
21
- - Depth 0: section content, heading, type, docids
22
- - Depth 1: adds parent documents and
23
- back-references
24
- - Depth 2: adds sibling sections and forward
25
- references
26
- - Depth 3: referenced sections include full
27
- content
28
-
29
- - **Paginated search results** -- Search now
30
- returns a `PagedSearchResult` envelope:
31
- `{ items, total, offset, limit, has_more }`.
32
- New `--offset` / `-o` CLI flag. The `offset`
33
- parameter is available in MCP and IPC as well.
34
-
35
- - **Rich search result metadata** -- Each search
36
- result item now includes `heading`, `type`,
37
- `snippet` (KWIC ~150 chars around matched terms),
38
- `matched_terms`, and `docids`. Replaces the
39
- previous `matches: [{term, frequency}]` format.
40
-
41
- - **Bidirectional reference graph** -- New
42
- `references.idx` tracks content-marker references
43
- (`$(link: ...)`, `$(doclink: ...)`, etc.) between
44
- sections. New WASM exports `db_get_forward_refs`
45
- and `db_get_back_refs`. Built automatically on
46
- `learn`/`update`, cleaned on `unlearn`,
47
- regenerated on `rebuild`.
48
-
49
- ---
50
-
51
- ## Improvements
52
-
53
- - **KWIC snippet generation** -- New
54
- `extract_kwic_snippet()` in the Rust engine
55
- produces ~150-character context windows around
56
- matched terms with case-insensitive matching,
57
- Unicode-safe boundaries, and ellipsis markers.
58
-
59
- - **MCP search strips score** -- The MCP layer
60
- omits the `score` field from search results.
61
- Rank order is the signal for AI agents; raw
62
- scores are kept in CLI and IPC output for
63
- debugging.
64
-
65
- - **Tool annotations** -- All 20 MCP tool
66
- definitions now include `openWorldHint: false`,
67
- `readOnlyHint`, `destructiveHint`, and
68
- `idempotentHint` annotations per the MCP spec.
69
-
70
- - **Text format paging** -- CLI text output now
71
- shows a paging footer:
72
- `Showing 1--20 of 42 results. Use --offset 20 to see more.`
73
-
74
- - **MCP tool descriptions** -- `search` guides
75
- agents to use `recall` for full content.
76
- `retrieve` updated to prefer `recall`.
77
-
78
- - **Documentation included in package** -- Both
79
- npm and JSR packages now ship `docs/details/`,
80
- `docs/goals/`, `docs/modules/`,
81
- `docs/release-notes/`, and `docs/overview.md`.
82
-
83
- ---
84
-
85
- ## Testing
86
-
87
- - **548 e2e assertions** on both Node.js and Deno --
88
- all passing with 0 failures and 0 skips.
89
-
90
- - **Recall depth testing** -- Cross-referenced
91
- test data (sections with `$(link: ...)` markers)
92
- validates depth 0--3 field presence across CLI,
93
- MCP, and worker IPC.
94
-
95
- - **Response shape validation** -- Every field in
96
- the public API is asserted: paged search envelope,
97
- search item metadata, recall depth fields, skill
98
- and agent CRUD responses, MCP prompts protocol,
99
- resource templates, and completions.
100
-
101
- - **Rust unit tests** -- 21+ new tests for KWIC
102
- snippet extraction, matched-terms ordering,
103
- paged result pagination, and section matching.
104
-
105
- ---
106
-
107
- ## Breaking Changes
108
-
109
- - **Search result shape changed** -- Results are
110
- now wrapped in a `PagedSearchResult` envelope.
111
- Code that expected a flat array of results must
112
- read `result.items` instead. Each item's
113
- `matches` array is replaced by `snippet`,
114
- `matched_terms`, `heading`, `type`, and `docids`.
115
-
116
- - **Codec exports renamed** -- `decodeScoredResults`
117
- is now `decodePagedSearchResult`. `ScoredResult`
118
- is now `SectionMatch`.
119
-
120
- ---
121
-
122
- ## Internal
123
-
124
- - Rust engine: reference tracking wired into
125
- `db_add_section`, `db_update_section`, and
126
- `db_remove_section`. `worker_search` parses
127
- 4-part format (query/mode/limit/offset).
128
- `worker_recall` WASM export added.
129
- - `content-creator` renamed to `content-composer`
130
- across all code and docs.
131
- - WASM binaries rebuilt (~8KB and ~35KB larger).
132
-
133
- ---
134
-
135
- ## Upgrade
136
-
137
- ```sh
138
- # Node.js
139
- npm install -g @dikolab/kbdb@0.2.0
140
-
141
- # Deno
142
- deno install -Agf jsr:@dikolab/kbdb/cli
143
- ```
144
-
145
- Review the **Breaking Changes** section above if
146
- you use the library API or parse search results
147
- programmatically.
@@ -1,89 +0,0 @@
1
- # 0.3.0
2
-
3
- *Minor release -- 2026-06-23*
4
-
5
- Adds supersession, relaxed queries, database export,
6
- tags, and confidence scoring. The Rust engine gains
7
- source tracking, near-duplicate detection, and
8
- synonym expansion.
9
-
10
- ---
11
-
12
- ## New Features
13
-
14
- - **Supersession** -- Re-learning from the same
15
- source automatically replaces outdated sections
16
- instead of duplicating them. Source key identity
17
- tracked via SHA-256.
18
-
19
- - **Relaxed OR fallback** -- When an exact AND
20
- query returns no results, kbdb automatically
21
- retries with relaxed OR matching so you always
22
- get the best available results.
23
-
24
- - **Database export** -- New `export` CLI command
25
- and MCP tool. Copies sections, documents, and
26
- catalog as a self-contained directory snapshot.
27
-
28
- - **Tags and replace on learn** -- `--tags` attaches
29
- labels to imported sections for scoped queries.
30
- `--replace` supersedes existing sections from the
31
- same source in one step.
32
-
33
- - **Confidence scoring** -- Search results include
34
- a normalized BM25F confidence score and
35
- `matched_fields` (heading, body, code) so agents
36
- can tell strong matches from weak ones.
37
-
38
- - **Near-duplicate detection** -- Jaccard similarity
39
- warns when imported content closely matches an
40
- existing section, preventing silent drift.
41
-
42
- - **Default skills** -- `db init` installs
43
- `query-guidance` and `memory-protocol` skills
44
- that teach agents how to search and what to store.
45
-
46
- ---
47
-
48
- ## Improvements
49
-
50
- - **Synonym expansion pipeline** in the Rust engine
51
- broadens keyword coverage automatically.
52
-
53
- - **Matched field tracking** -- Results show which
54
- fields (heading, body, code) matched the query.
55
-
56
- - **`created_at` timestamps** in search results.
57
-
58
- - **Divergent content detection** via integrity
59
- check catches contradictions between versions.
60
-
61
- - **GC fix** -- Garbage collection now only removes
62
- superseded sections, not active ones.
63
-
64
- - **Reference graph rebuild** included in `rebuild`
65
- command.
66
-
67
- - **Writer lock** prevents concurrent WASM writes.
68
-
69
- - **Worker daemon startup health check** verifies
70
- WASM modules load correctly.
71
-
72
- ---
73
-
74
- ## Testing
75
-
76
- - **517 e2e assertions (Node.js), 514 (Deno)** --
77
- all pass with 0 failures.
78
-
79
- ---
80
-
81
- ## Upgrade
82
-
83
- ```sh
84
- # Node.js
85
- npm install -g @dikolab/kbdb@0.3.0
86
-
87
- # Deno
88
- deno install -Agf jsr:@dikolab/kbdb/cli
89
- ```
@@ -1,121 +0,0 @@
1
- # 0.3.1
2
-
3
- *Patch release -- 2026-06-23*
4
-
5
- Fixes MCP request processing reliability, agent
6
- document persistence, WASM memory safety, and
7
- eliminates all e2e test skips. Adds the 20th MCP
8
- tool (`auto-capture-review`).
9
-
10
- ---
11
-
12
- ## Bug Fixes
13
-
14
- - **MCP sequential request processing** -- The MCP
15
- server previously dispatched JSON-RPC requests
16
- concurrently (fire-and-forget). When multiple
17
- requests arrived in a batch, later requests could
18
- execute before earlier ones finished -- for
19
- example, reading an agent document before it was
20
- fully written. Requests are now processed
21
- sequentially via a promise chain, ensuring each
22
- completes before the next begins.
23
-
24
- - **Agent document type persistence** -- Agent
25
- documents created via `agent-create` were missing
26
- their `doc_type` field, so `listDocumentsByType`
27
- could not find them. `handleAgentCreate` now
28
- passes `'agent'` as the document type.
29
-
30
- - **Agent prompt lookup** -- `prompts/get` for
31
- agent prompts treated the agent title as a
32
- document ID, which failed because document IDs
33
- are content hashes. Now looks up agents by title
34
- via `listDocumentsByType('agent')`.
35
-
36
- - **WASM `worker_remove_grouping` double-free** --
37
- The WASM export returned success without calling
38
- `set_return`, leaving stale memory in the return
39
- slot. The next `readReturnSlot` call freed
40
- already-freed memory, causing a WASM trap. Now
41
- sets the return slot to null before returning.
42
-
43
- - **WASM defensive `set_return` calls** -- Added
44
- null return slot initialization to `worker_init`
45
- and `worker_init_directory` to prevent the same
46
- stale-memory pattern from surfacing in edge cases.
47
-
48
- ---
49
-
50
- ## New Features
51
-
52
- - **`auto-capture-review` MCP tool** -- Review and
53
- approve pending auto-captured knowledge before
54
- storage. Accepts `action` parameter with values
55
- `list`, `approve`, or `reject`. This brings the
56
- MCP server to 20 tools.
57
-
58
- - **Hybrid search infrastructure** -- New `--algo`
59
- flag (CLI) and `algo` parameter (MCP/IPC) with
60
- values `lexical`, `vector`, `hybrid`. Embedding
61
- module with pluggable provider interface, vector
62
- index binary format (KBVX), cosine similarity,
63
- and RRF score fusion. Defaults to `lexical`.
64
- Concrete embedding providers are deferred -- a
65
- `NullEmbeddingProvider` is used until one is
66
- configured.
67
-
68
- ---
69
-
70
- ## Testing
71
-
72
- - **548 e2e assertions** on both Node.js and Deno,
73
- all passing with **0 failures and 0 skips** (up
74
- from 517/514 with some skips in 0.3.0).
75
-
76
- - **E2E test restructuring** -- Test databases
77
- isolated by category (CLI, MCP, Worker) instead
78
- of sharing a flat directory. Worker recall tests
79
- now seed their own cross-reference data instead
80
- of depending on CLI test data.
81
-
82
- - **Pre-built WASM in Docker** -- E2E test
83
- container caches WASM binaries at build time,
84
- reducing test startup from ~30 seconds to
85
- sub-second.
86
-
87
- ---
88
-
89
- ## Documentation
90
-
91
- - **README.md** reorganized for clarity -- shorter
92
- intro, labeled paragraphs ("How search works",
93
- "Knowledge stays fresh"), accessible to both
94
- technical and non-technical readers.
95
-
96
- - **Architecture overview** rewritten -- simplified
97
- prose, ASCII architecture diagram, removed stale
98
- "Remaining" section (WASM host I/O is fully
99
- implemented).
100
-
101
- - **MCP server guide** updated with
102
- `auto-capture-review` tool in reference tables
103
- and annotations summary.
104
-
105
- - **Tool counts corrected** across all docs
106
- (19 -> 20).
107
-
108
- - **Assertion counts updated** across all docs
109
- (380+/383 -> 548).
110
-
111
- ---
112
-
113
- ## Upgrade
114
-
115
- ```sh
116
- # Node.js
117
- npm install -g @dikolab/kbdb@0.3.1
118
-
119
- # Deno
120
- deno install -Agf jsr:@dikolab/kbdb/cli
121
- ```
@@ -1,64 +0,0 @@
1
- # 0.3.2
2
-
3
- *Patch release -- 2026-06-23*
4
-
5
- Documentation alignment, hybrid search highlight,
6
- and readability improvements for non-technical users.
7
-
8
- ---
9
-
10
- ## Documentation
11
-
12
- - **Internal doc links use relative paths** --
13
- README.md links to CLI reference, MCP guide,
14
- library API, Makefile, release notes, overview,
15
- and LICENSE now use relative paths instead of
16
- absolute GitLab URLs. External links (NPM, JSR,
17
- GitLab homepage) remain absolute.
18
-
19
- - **Fixed repository URL in overview.md** --
20
- Corrected `tech-slaves-internal` to `tech-slaves`.
21
-
22
- - **`--algo` added to CLI reference** -- Search
23
- Options table now documents the `--algo` flag with
24
- values `lexical`, `vector`, `hybrid` and a new
25
- Search Algorithms subsection.
26
-
27
- - **Hybrid search section in search-and-ranking.md**
28
- -- New section explains lexical, vector, and hybrid
29
- algorithms with plain-language descriptions of
30
- how each works and when to use it.
31
-
32
- - **Beginner summary in search-and-ranking.md** --
33
- Three-sentence intro at the top so non-technical
34
- readers know what the page covers without reading
35
- the full technical deep-dive.
36
-
37
- - **Feature lists updated** -- README and overview
38
- now include auto-capture, sync/export, and
39
- near-duplicate detection. Design Documents section
40
- in overview now links to hybrid search,
41
- auto-capture, and sync goal docs.
42
-
43
- - **Readability pass** -- Simplified jargon across
44
- README and overview. "RRF score fusion" becomes
45
- "blends keyword matching with AI-powered
46
- similarity". Technology stack table simplified.
47
- MCP setup examples consolidated from three
48
- nearly-identical blocks into one with platform
49
- notes.
50
-
51
- - **"Vibe coders" added to audience list** in
52
- overview.md.
53
-
54
- ---
55
-
56
- ## Upgrade
57
-
58
- ```sh
59
- # Node.js
60
- npm install -g @dikolab/kbdb@0.3.2
61
-
62
- # Deno
63
- deno install -Agf jsr:@dikolab/kbdb/cli
64
- ```
@@ -1,80 +0,0 @@
1
- # 0.4.0
2
-
3
- *Minor release -- 2026-06-25*
4
-
5
- Rust engine refactor, daemon reliability, publishing
6
- fixes, and documentation accuracy audit.
7
-
8
- ---
9
-
10
- ## Engine
11
-
12
- - **Rust engine refactor** -- extracted specs into
13
- separate files, split large modules across all
14
- four crates for readability and maintainability.
15
-
16
- ## Daemon
17
-
18
- - **Reliability fixes** -- improved daemon startup,
19
- error handling, and shutdown behaviour.
20
- - **UX improvements** -- clearer error messages and
21
- exit codes from the worker daemon.
22
-
23
- ## CLI
24
-
25
- - **Optional `--db`** -- the `--db` flag is now
26
- optional. kbdb walks up from the current directory
27
- to find `.kbdb`. Set `KBDB_DB_DIR` as an
28
- alternative. Resolution order: `--db` flag >
29
- `KBDB_DB_DIR` env var > upward traversal from cwd.
30
- - **Request timeout** -- per-request timeout via
31
- `--timeout-ms` flag or `KBDB_DAEMON_TIMEOUT` env
32
- var (default 30 000 ms).
33
- - **Automatic retry** -- on timeout, the CLI
34
- respawns the daemon and retries. Configurable via
35
- `--retry` flag or `KBDB_RETRY` env var (default 5).
36
- - **Breaking: `KBDB_DIR` renamed to `KBDB_DB_DIR`**
37
- -- update MCP server configs and scripts that
38
- reference the old variable name.
39
-
40
- ## MCP Server
41
-
42
- - **Version reports package version** -- the MCP
43
- `initialize` response now uses the `VERSION`
44
- constant instead of a hardcoded `'0.1.0'` string.
45
- Clients see the real server version.
46
- - **Retry on timeout** -- tool calls and resource
47
- reads automatically retry with a fresh daemon
48
- connection when the worker times out.
49
-
50
- ## Packaging
51
-
52
- - **Trimmed npm package** -- removed raw TypeScript
53
- source files from the npm tarball. Package dropped
54
- from 908 files / 6.7 MB to 545 files / 4.5 MB.
55
- JSR still includes sources as required.
56
-
57
- ## Documentation
58
-
59
- - **README accuracy audit** -- removed overstated
60
- claims about reStructuredText/AsciiDoc parsing
61
- and sync feature. Added npm/JSR/license badges
62
- and a beta status line.
63
- - **CLAUDE.md updated** -- corrected outdated
64
- statement about the WASM-to-host bridge being
65
- stubbed. The bridge is fully implemented and
66
- tested.
67
- - **Docs alignment** -- knowledge-base guide updated
68
- to match README on supported file formats.
69
-
70
- ---
71
-
72
- ## Upgrade
73
-
74
- ```sh
75
- # Node.js
76
- npm install -g @dikolab/kbdb@0.4.0
77
-
78
- # Deno
79
- deno install -Agf jsr:@dikolab/kbdb/cli
80
- ```
@@ -1,149 +0,0 @@
1
- # 0.4.1
2
-
3
- *Patch release -- 2026-06-26*
4
-
5
- Built-in TF-IDF embedding provider so hybrid search
6
- works out of the box with zero configuration.
7
- Structured logging across the entire TypeScript
8
- layer with configurable verbosity. Daemon lifecycle
9
- fixes for reliable shutdown on bare Linux TTY.
10
- Non-interactive mode for scripts, CI, and automated
11
- testing.
12
-
13
- ---
14
-
15
- ## Engine
16
-
17
- - **New WASM crate: `kbdb-default-embedding`** --
18
- computes 256-dimensional feature-hashed sublinear
19
- TF vectors using FNV-1a with the sign trick
20
- (Weinberger et al., 2009). Pure computation, no
21
- host imports.
22
- - **Pipeline moved to `kbdb-shared`** -- the 9-stage
23
- tokenization pipeline (NFC normalization, Unicode
24
- segmentation, camelCase splitting, stop-word
25
- removal, synonym expansion, Snowball stemming)
26
- moved from `kbdb-query-parser` to `kbdb-shared`.
27
- Both `kbdb-query-parser` and
28
- `kbdb-default-embedding` now share a single source
29
- of truth, keeping TF-IDF vectors token-consistent
30
- with the lexical index.
31
-
32
- ## Daemon
33
-
34
- - **Loads `default-embedding.wasm` at startup** --
35
- the worker daemon loads the new standalone WASM
36
- module alongside the existing `kb-worker.wasm`.
37
- If the module is missing, the daemon gracefully
38
- falls back to `NullEmbeddingProvider`.
39
- - **Daemon lifecycle fixes** -- socket-level
40
- connection tracking replaces the broken
41
- server-level `close` handler, so the idle timer
42
- fires correctly. `stop()` force-closes lingering
43
- sockets. `worker stop` polls until the daemon
44
- actually exits (5 s cap) instead of fire-and-forget
45
- SIGTERM. `retryOnTimeout` kills a stuck daemon
46
- before spawning a fresh one.
47
- - **Accepts `--log-level`** -- the daemon parses an
48
- optional `--log-level <level>` argument forwarded
49
- by the spawner from the `KBDB_LOG_LEVEL` env var.
50
-
51
- ## CLI
52
-
53
- - **`--non-interactive` flag** -- suppresses
54
- interactive prompts and uses default values.
55
- When set, data commands that find no `.kbdb`
56
- directory return an error instead of prompting
57
- to create one.
58
- - **`KBDB_NON_INTERACTIVE` env var** -- same effect
59
- as `--non-interactive`. Accepts `1` or `true`.
60
- CLI flag takes priority.
61
- - **Deprecation warnings fixed** -- `--init` and
62
- `--migrate` deprecation messages now emit at all
63
- log levels. Previously they fired before log
64
- configuration and were suppressed.
65
-
66
- ## Embedding
67
-
68
- - **`TfidfEmbeddingProvider`** -- new provider backed
69
- by the `kbdb-default-embedding` WASM module.
70
- Returns 256-dimensional L2-normalized vectors.
71
- Model name: `tfidf-v1`.
72
- - **New factory default** -- when no `[embedding]`
73
- section is present in `worker.toml`, the factory
74
- returns `TfidfEmbeddingProvider` instead of
75
- `NullEmbeddingProvider`. Hybrid and vector search
76
- work without configuration.
77
- - **Explicit disable** -- setting `provider = "none"`
78
- in `worker.toml` still returns
79
- `NullEmbeddingProvider`, which rejects hybrid and
80
- vector search with a structured error.
81
-
82
- ## Logging
83
-
84
- - **New `log` module** (`src/shared/log/`) --
85
- structured logging with four levels (`DEBUG`,
86
- `INFO`, `WARNING`, `ERROR`), per-level Unicode
87
- icons (▸ℹ⚠✖), per-level ANSI colors, and
88
- configurable output targets. Default level is
89
- `ERROR` (errors only).
90
- - **CLI verbose flags** -- `-v` (warnings), `-vv`
91
- (info), `-vvv` (debug). `-v` is reassigned from
92
- `--version` to `--verbose`; `--version` has no
93
- short alias.
94
- - **`KBDB_LOG_LEVEL` env var** -- accepts `debug`,
95
- `info`, `warning`, `error` (case-insensitive).
96
- CLI flags take priority over the env var.
97
- - **Comprehensive lifecycle logging** -- milestone
98
- logging at key process points across CLI command
99
- runners, MCP server lifecycle, worker daemon IPC
100
- dispatch, embedding providers, worker client
101
- discovery, and auto-capture. Full IPC lifecycle
102
- coverage: daemon startup/shutdown, socket
103
- connections, request dispatch, retry logic,
104
- daemon discovery, write lock events, and idle
105
- timer. Pre-throw error logging at all throw
106
- sites. All `console.error` calls replaced with
107
- `log()`.
108
-
109
- ## Documentation
110
-
111
- - **Hybrid search docs aligned** -- updated
112
- architecture, CLI/MCP surface, and design
113
- constraint sections to reflect the new WASM crate
114
- and `--algo` flag.
115
- - **Worker daemon docs updated** -- WASM module
116
- count, loading diagram, and distribution section
117
- now describe four modules.
118
- - **Factory docs corrected** -- `type:` references
119
- fixed to `provider:`, factory mapping table
120
- updated for the new default.
121
- - **Log module docs added** -- module overview,
122
- functions reference, typings reference, and
123
- constants reference under
124
- `docs/modules/typescript/shared/log/`.
125
- - **CLI and worker daemon docs updated** -- verbose
126
- flags (`-v`/`-vv`/`-vvv`), `--log-level` arg,
127
- `KBDB_LOG_LEVEL` env var documented across CLI,
128
- worker daemon, and shared module pages.
129
- - **E2E test harness hardened** -- `run_kbdb`
130
- wrapper wraps all `kbdb` calls in `timeout -k 5`
131
- with SIGKILL fallback. Timeouts report as test
132
- failures. GNU `coreutils` added to Docker image.
133
- Non-interactive mode enabled for all E2E tests.
134
- - **Completed todos and issues archived** -- three
135
- todo docs (pipeline move, TF-IDF provider, default
136
- wiring) and two issue docs (daemon lifecycle hang,
137
- hybrid search errors) moved to `archived/`.
138
-
139
- ---
140
-
141
- ## Upgrade
142
-
143
- ```sh
144
- # Node.js
145
- npm install -g @dikolab/kbdb@0.4.1
146
-
147
- # Deno
148
- deno install -Agf jsr:@dikolab/kbdb/cli
149
- ```