claude-memory-layer 1.0.31 → 1.0.33

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 (343) hide show
  1. package/README.md +9 -2
  2. package/dist/cli/index.js +1110 -72
  3. package/dist/cli/index.js.map +4 -4
  4. package/dist/core/index.js +414 -25
  5. package/dist/core/index.js.map +2 -2
  6. package/dist/hooks/post-tool-use.js +416 -27
  7. package/dist/hooks/post-tool-use.js.map +2 -2
  8. package/dist/hooks/semantic-daemon.js +416 -27
  9. package/dist/hooks/semantic-daemon.js.map +2 -2
  10. package/dist/hooks/session-end.js +416 -27
  11. package/dist/hooks/session-end.js.map +2 -2
  12. package/dist/hooks/session-start.js +416 -27
  13. package/dist/hooks/session-start.js.map +2 -2
  14. package/dist/hooks/stop.js +416 -27
  15. package/dist/hooks/stop.js.map +2 -2
  16. package/dist/hooks/user-prompt-submit.js +504 -34
  17. package/dist/hooks/user-prompt-submit.js.map +2 -2
  18. package/dist/index.js +416 -27
  19. package/dist/index.js.map +2 -2
  20. package/dist/mcp/index.js +407 -32
  21. package/dist/mcp/index.js.map +2 -2
  22. package/dist/server/api/index.js +850 -44
  23. package/dist/server/api/index.js.map +3 -3
  24. package/dist/server/index.js +1073 -64
  25. package/dist/server/index.js.map +3 -3
  26. package/dist/services/memory-service.js +416 -27
  27. package/dist/services/memory-service.js.map +2 -2
  28. package/dist/ui/assets/js/bootstrap.js +2 -0
  29. package/dist/ui/assets/js/overview.js +166 -3
  30. package/dist/ui/assets/js/state.js +3 -0
  31. package/dist/ui/index.html +20 -0
  32. package/dist/ui/style.css +193 -0
  33. package/package.json +15 -2
  34. package/scripts/postinstall-embedding-backend.cjs +16 -12
  35. package/AGENTS.md +0 -71
  36. package/CLAUDE.md +0 -30
  37. package/HANDOFF.md +0 -92
  38. package/Memo.txt +0 -558
  39. package/benchmarks/replay/anonymized-real-sessions.json +0 -48
  40. package/config/kpi-thresholds.json +0 -7
  41. package/context.md +0 -636
  42. package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +0 -627
  43. package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +0 -440
  44. package/docs/MCP_MEMORY_SERVICE_COMPARATIVE_REVIEW.md +0 -271
  45. package/docs/MEMORY_USEFULNESS_AUDIT.md +0 -371
  46. package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +0 -80
  47. package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +0 -333
  48. package/docs/MEMU_ADOPTION.md +0 -40
  49. package/docs/OPERATIONS.md +0 -18
  50. package/docs/PRODUCT_VALIDATION_MATRIX.md +0 -82
  51. package/docs/PROJECT_STRUCTURE_ANALYSIS.md +0 -421
  52. package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +0 -501
  53. package/docs/REFACTORING_PLAN_THIN_CORE.md +0 -414
  54. package/docs/REFERENCE_PROJECT_ANALYSES.md +0 -25
  55. package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +0 -452
  56. package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +0 -446
  57. package/docs/architecture/comparison-index.md +0 -47
  58. package/docs/reports/codex-real-data-validation-20260505T040447Z.md +0 -46
  59. package/plan.md +0 -1642
  60. package/scripts/build.ts +0 -159
  61. package/scripts/bump-patch-version.sh +0 -18
  62. package/scripts/delete-unknown-projects.js +0 -154
  63. package/scripts/fix-sync-gap.js +0 -32
  64. package/scripts/generate-session-qrels.ts +0 -126
  65. package/scripts/heartbeat-memory-orchestrator.sh +0 -28
  66. package/scripts/replay-retrieval-benchmark.ts +0 -69
  67. package/scripts/report-sync-gap.js +0 -26
  68. package/scripts/review-queue-auto-resolve.js +0 -21
  69. package/scripts/sync-gap-auto-heal.sh +0 -17
  70. package/spec.md +0 -624
  71. package/specs/20260207-dashboard-upgrade/context.md +0 -38
  72. package/specs/20260207-dashboard-upgrade/spec.md +0 -96
  73. package/specs/citations-system/context.md +0 -243
  74. package/specs/citations-system/plan.md +0 -495
  75. package/specs/citations-system/spec.md +0 -371
  76. package/specs/endless-mode/context.md +0 -305
  77. package/specs/endless-mode/plan.md +0 -620
  78. package/specs/endless-mode/spec.md +0 -455
  79. package/specs/entity-edge-model/context.md +0 -401
  80. package/specs/entity-edge-model/plan.md +0 -459
  81. package/specs/entity-edge-model/spec.md +0 -391
  82. package/specs/evidence-aligner-v2/context.md +0 -401
  83. package/specs/evidence-aligner-v2/plan.md +0 -303
  84. package/specs/evidence-aligner-v2/spec.md +0 -312
  85. package/specs/mcp-desktop-integration/context.md +0 -278
  86. package/specs/mcp-desktop-integration/plan.md +0 -550
  87. package/specs/mcp-desktop-integration/spec.md +0 -494
  88. package/specs/memory-utilization-improvements/context.md +0 -145
  89. package/specs/memory-utilization-improvements/plan.md +0 -361
  90. package/specs/memory-utilization-improvements/spec.md +0 -361
  91. package/specs/post-tool-use-hook/context.md +0 -319
  92. package/specs/post-tool-use-hook/plan.md +0 -469
  93. package/specs/post-tool-use-hook/spec.md +0 -364
  94. package/specs/private-tags/context.md +0 -288
  95. package/specs/private-tags/plan.md +0 -412
  96. package/specs/private-tags/spec.md +0 -345
  97. package/specs/progressive-disclosure/context.md +0 -346
  98. package/specs/progressive-disclosure/plan.md +0 -663
  99. package/specs/progressive-disclosure/spec.md +0 -415
  100. package/specs/selective-tool-observation/context.md +0 -100
  101. package/specs/selective-tool-observation/plan.md +0 -158
  102. package/specs/selective-tool-observation/spec.md +0 -127
  103. package/specs/task-entity-system/context.md +0 -297
  104. package/specs/task-entity-system/plan.md +0 -301
  105. package/specs/task-entity-system/spec.md +0 -314
  106. package/specs/thin-core-refactor/context.md +0 -275
  107. package/specs/thin-core-refactor/plan.md +0 -536
  108. package/specs/thin-core-refactor/spec.md +0 -465
  109. package/specs/vector-outbox-v2/context.md +0 -470
  110. package/specs/vector-outbox-v2/plan.md +0 -562
  111. package/specs/vector-outbox-v2/spec.md +0 -466
  112. package/specs/web-viewer-ui/context.md +0 -384
  113. package/specs/web-viewer-ui/plan.md +0 -797
  114. package/specs/web-viewer-ui/spec.md +0 -516
  115. package/src/adapters/claude/capture/index.ts +0 -3
  116. package/src/adapters/claude/context/index.ts +0 -3
  117. package/src/adapters/claude/hooks/index.ts +0 -21
  118. package/src/adapters/claude/hooks/post-tool-use.ts +0 -239
  119. package/src/adapters/claude/hooks/prompt-injection-policy.ts +0 -104
  120. package/src/adapters/claude/hooks/semantic-daemon-client.ts +0 -209
  121. package/src/adapters/claude/hooks/semantic-daemon.ts +0 -283
  122. package/src/adapters/claude/hooks/session-end.ts +0 -59
  123. package/src/adapters/claude/hooks/session-start.ts +0 -73
  124. package/src/adapters/claude/hooks/stop.ts +0 -128
  125. package/src/adapters/claude/hooks/user-prompt-submit.ts +0 -361
  126. package/src/adapters/claude/index.ts +0 -4
  127. package/src/adapters/claude/transcript/index.ts +0 -4
  128. package/src/adapters/claude/transcript/transcript-reader.ts +0 -57
  129. package/src/adapters/claude/transcript/turn-reconstructor.ts +0 -65
  130. package/src/apps/cli/claude-settings-hooks.ts +0 -138
  131. package/src/apps/cli/codex-import-runner.ts +0 -125
  132. package/src/apps/cli/codex-validation-output.ts +0 -95
  133. package/src/apps/cli/hermes-import-runner.ts +0 -130
  134. package/src/apps/cli/hermes-validation-output.ts +0 -91
  135. package/src/apps/cli/index.ts +0 -1735
  136. package/src/apps/cli/mcp-install.ts +0 -106
  137. package/src/apps/cli/retrieval-disclosure-output.ts +0 -196
  138. package/src/apps/dashboard/assets/js/bootstrap.js +0 -244
  139. package/src/apps/dashboard/assets/js/chat.js +0 -373
  140. package/src/apps/dashboard/assets/js/disclosure.js +0 -232
  141. package/src/apps/dashboard/assets/js/modals.js +0 -298
  142. package/src/apps/dashboard/assets/js/overview.js +0 -655
  143. package/src/apps/dashboard/assets/js/state.js +0 -72
  144. package/src/apps/dashboard/assets/js/views.js +0 -468
  145. package/src/apps/dashboard/index.html +0 -543
  146. package/src/apps/dashboard/index.ts +0 -3
  147. package/src/apps/dashboard/style.css +0 -1750
  148. package/src/apps/index.ts +0 -5
  149. package/src/apps/server/api/chat.ts +0 -244
  150. package/src/apps/server/api/citations.ts +0 -105
  151. package/src/apps/server/api/events.ts +0 -137
  152. package/src/apps/server/api/health.ts +0 -53
  153. package/src/apps/server/api/index.ts +0 -26
  154. package/src/apps/server/api/projects.ts +0 -74
  155. package/src/apps/server/api/search.ts +0 -184
  156. package/src/apps/server/api/sessions.ts +0 -115
  157. package/src/apps/server/api/stats.ts +0 -723
  158. package/src/apps/server/api/turns.ts +0 -143
  159. package/src/apps/server/api/utils.ts +0 -65
  160. package/src/apps/server/index.ts +0 -111
  161. package/src/cli/index.ts +0 -3
  162. package/src/cli/retrieval-disclosure-output.ts +0 -2
  163. package/src/compat/index.ts +0 -5
  164. package/src/core/canonical-key.ts +0 -186
  165. package/src/core/citation-generator.ts +0 -63
  166. package/src/core/consolidated-store.ts +0 -356
  167. package/src/core/consolidation-worker.ts +0 -493
  168. package/src/core/context-formatter.ts +0 -276
  169. package/src/core/continuity-manager.ts +0 -341
  170. package/src/core/db-wrapper.ts +0 -64
  171. package/src/core/derive/fact-deriver.ts +0 -170
  172. package/src/core/derive/index.ts +0 -2
  173. package/src/core/derive/summary-deriver.ts +0 -76
  174. package/src/core/edge-repo.ts +0 -333
  175. package/src/core/embedder.ts +0 -4
  176. package/src/core/engine/embedding-maintenance-service.ts +0 -187
  177. package/src/core/engine/endless-memory-services.ts +0 -4
  178. package/src/core/engine/index.ts +0 -19
  179. package/src/core/engine/memory-engine-services.ts +0 -170
  180. package/src/core/engine/memory-ingest-service.ts +0 -317
  181. package/src/core/engine/memory-query-service.ts +0 -173
  182. package/src/core/engine/memory-runtime-service.ts +0 -162
  183. package/src/core/engine/memory-service-composition.ts +0 -231
  184. package/src/core/engine/retrieval-analytics-service.ts +0 -181
  185. package/src/core/engine/retrieval-disclosure-service.ts +0 -420
  186. package/src/core/engine/retrieval-orchestrator.ts +0 -377
  187. package/src/core/engine/retrieval-services.ts +0 -176
  188. package/src/core/engine/shared-memory-services.ts +0 -4
  189. package/src/core/entity-repo.ts +0 -349
  190. package/src/core/event-store.ts +0 -779
  191. package/src/core/evidence-aligner.ts +0 -635
  192. package/src/core/external-market-context.ts +0 -582
  193. package/src/core/graduation-worker.ts +0 -171
  194. package/src/core/graduation.ts +0 -377
  195. package/src/core/index.ts +0 -64
  196. package/src/core/ingest-interceptor.ts +0 -80
  197. package/src/core/markdown-mirror.ts +0 -70
  198. package/src/core/matcher.ts +0 -208
  199. package/src/core/md-mirror.ts +0 -92
  200. package/src/core/metadata-extractor.ts +0 -203
  201. package/src/core/model/memory-fact.ts +0 -30
  202. package/src/core/model/memory-rule.ts +0 -14
  203. package/src/core/model/memory-summary.ts +0 -21
  204. package/src/core/model/raw-event.ts +0 -28
  205. package/src/core/model/retrieval-result.ts +0 -35
  206. package/src/core/mongo-sync-config.ts +0 -165
  207. package/src/core/mongo-sync-worker.ts +0 -381
  208. package/src/core/privacy/filter.ts +0 -190
  209. package/src/core/privacy/index.ts +0 -20
  210. package/src/core/privacy/tag-parser.ts +0 -145
  211. package/src/core/product-validation-matrix.ts +0 -314
  212. package/src/core/progressive-retriever.ts +0 -414
  213. package/src/core/registry/project-path.ts +0 -54
  214. package/src/core/registry/session-registry.ts +0 -69
  215. package/src/core/replay-evaluator.ts +0 -625
  216. package/src/core/retrieval-benchmark.ts +0 -117
  217. package/src/core/retrieval-quality.ts +0 -109
  218. package/src/core/retriever.ts +0 -800
  219. package/src/core/session-qrels.ts +0 -360
  220. package/src/core/shared-event-store.ts +0 -114
  221. package/src/core/shared-promoter.ts +0 -249
  222. package/src/core/shared-store.ts +0 -289
  223. package/src/core/shared-vector-store.ts +0 -203
  224. package/src/core/sqlite-event-store.ts +0 -1846
  225. package/src/core/sqlite-wrapper.ts +0 -116
  226. package/src/core/sync-worker.ts +0 -228
  227. package/src/core/tag-taxonomy.ts +0 -51
  228. package/src/core/task/blocker-resolver.ts +0 -333
  229. package/src/core/task/index.ts +0 -9
  230. package/src/core/task/task-matcher.ts +0 -240
  231. package/src/core/task/task-projector.ts +0 -358
  232. package/src/core/task/task-resolver.ts +0 -421
  233. package/src/core/turn-state.ts +0 -207
  234. package/src/core/types.ts +0 -952
  235. package/src/core/vector-outbox.ts +0 -299
  236. package/src/core/vector-store.ts +0 -231
  237. package/src/core/vector-worker.ts +0 -521
  238. package/src/core/working-set-store.ts +0 -257
  239. package/src/extensions/endless-memory/endless-memory-services.ts +0 -350
  240. package/src/extensions/endless-memory/index.ts +0 -1
  241. package/src/extensions/index.ts +0 -5
  242. package/src/extensions/mcp/handlers.ts +0 -960
  243. package/src/extensions/mcp/index.ts +0 -48
  244. package/src/extensions/mcp/tools.ts +0 -252
  245. package/src/extensions/shared-memory/index.ts +0 -1
  246. package/src/extensions/shared-memory/shared-memory-services.ts +0 -211
  247. package/src/extensions/vector/embedder.ts +0 -234
  248. package/src/extensions/vector/index.ts +0 -1
  249. package/src/hooks/post-tool-use.ts +0 -9
  250. package/src/hooks/semantic-daemon-client.ts +0 -1
  251. package/src/hooks/semantic-daemon.ts +0 -11
  252. package/src/hooks/session-end.ts +0 -9
  253. package/src/hooks/session-start.ts +0 -9
  254. package/src/hooks/stop.ts +0 -9
  255. package/src/hooks/user-prompt-submit.ts +0 -9
  256. package/src/index.ts +0 -13
  257. package/src/mcp/handlers.ts +0 -2
  258. package/src/mcp/index.ts +0 -4
  259. package/src/mcp/tools.ts +0 -2
  260. package/src/server/api/chat.ts +0 -2
  261. package/src/server/api/citations.ts +0 -2
  262. package/src/server/api/events.ts +0 -2
  263. package/src/server/api/health.ts +0 -2
  264. package/src/server/api/index.ts +0 -2
  265. package/src/server/api/projects.ts +0 -2
  266. package/src/server/api/search.ts +0 -2
  267. package/src/server/api/sessions.ts +0 -2
  268. package/src/server/api/stats.ts +0 -2
  269. package/src/server/api/turns.ts +0 -2
  270. package/src/server/api/utils.ts +0 -2
  271. package/src/server/index.ts +0 -2
  272. package/src/services/bootstrap-organizer.ts +0 -463
  273. package/src/services/codex-session-history-importer.ts +0 -966
  274. package/src/services/hermes-session-history-importer.ts +0 -733
  275. package/src/services/memory-service-config.ts +0 -36
  276. package/src/services/memory-service-registry.ts +0 -150
  277. package/src/services/memory-service.ts +0 -688
  278. package/src/services/session-history-importer.ts +0 -629
  279. package/tests/README.md +0 -23
  280. package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +0 -54
  281. package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +0 -98
  282. package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +0 -99
  283. package/tests/apps/app-layer-boundary.test.ts +0 -48
  284. package/tests/apps/claude-settings-hooks.test.ts +0 -107
  285. package/tests/apps/cli-disclosure-output.test.ts +0 -212
  286. package/tests/apps/codex-import-runner.test.ts +0 -99
  287. package/tests/apps/codex-validation-output.test.ts +0 -100
  288. package/tests/apps/hermes-import-runner.test.ts +0 -99
  289. package/tests/apps/mcp-install-command.test.ts +0 -59
  290. package/tests/apps/package-build-entrypoints.test.ts +0 -30
  291. package/tests/apps/postinstall-embedding-backend.test.ts +0 -185
  292. package/tests/apps/search-api-disclosure.test.ts +0 -162
  293. package/tests/apps/stats-api-lightweight.test.ts +0 -67
  294. package/tests/apps/ui-disclosure-output.test.ts +0 -140
  295. package/tests/core/bootstrap-organizer.test.ts +0 -111
  296. package/tests/core/canonical-key.test.ts +0 -101
  297. package/tests/core/codex-session-history-importer-validation.test.ts +0 -185
  298. package/tests/core/consolidation-worker.test.ts +0 -75
  299. package/tests/core/embedding-maintenance-service.test.ts +0 -282
  300. package/tests/core/evidence-aligner.test.ts +0 -152
  301. package/tests/core/external-market-context.test.ts +0 -209
  302. package/tests/core/fact-deriver.test.ts +0 -79
  303. package/tests/core/hermes-session-history-importer-validation.test.ts +0 -609
  304. package/tests/core/ingest-interceptor.test.ts +0 -38
  305. package/tests/core/markdown-mirror.test.ts +0 -85
  306. package/tests/core/matcher.test.ts +0 -112
  307. package/tests/core/md-mirror.test.ts +0 -50
  308. package/tests/core/memory-engine-services.test.ts +0 -240
  309. package/tests/core/memory-ingest-service.test.ts +0 -296
  310. package/tests/core/memory-query-service.test.ts +0 -129
  311. package/tests/core/memory-runtime-service.test.ts +0 -201
  312. package/tests/core/memory-service-composition.test.ts +0 -192
  313. package/tests/core/memory-service-config.test.ts +0 -41
  314. package/tests/core/memory-service-facade.test.ts +0 -30
  315. package/tests/core/memory-service-registry.test.ts +0 -206
  316. package/tests/core/product-validation-matrix.test.ts +0 -61
  317. package/tests/core/project-registry.test.ts +0 -78
  318. package/tests/core/replay-evaluator.test.ts +0 -181
  319. package/tests/core/retrieval-analytics-service.test.ts +0 -210
  320. package/tests/core/retrieval-benchmark.test.ts +0 -93
  321. package/tests/core/retrieval-disclosure-service.test.ts +0 -264
  322. package/tests/core/retrieval-orchestrator.test.ts +0 -403
  323. package/tests/core/retrieval-quality.test.ts +0 -31
  324. package/tests/core/retrieval-services.test.ts +0 -185
  325. package/tests/core/retriever-fallback-chain.test.ts +0 -223
  326. package/tests/core/retriever-strategy-scope.test.ts +0 -164
  327. package/tests/core/retriever.memu-adoption.test.ts +0 -122
  328. package/tests/core/session-history-importer-filter.test.ts +0 -78
  329. package/tests/core/session-qrels.test.ts +0 -250
  330. package/tests/core/sqlite-event-store-replication.test.ts +0 -127
  331. package/tests/core/summary-deriver.test.ts +0 -66
  332. package/tests/extensions/embedder-warning-suppression.test.ts +0 -84
  333. package/tests/extensions/endless-memory-extension-boundary.test.ts +0 -17
  334. package/tests/extensions/endless-memory-services.test.ts +0 -325
  335. package/tests/extensions/mcp-context-tools.test.ts +0 -905
  336. package/tests/extensions/mcp-extension-boundary.test.ts +0 -21
  337. package/tests/extensions/mcp-package-build.test.ts +0 -22
  338. package/tests/extensions/mcp-project-aware-tools.test.ts +0 -102
  339. package/tests/extensions/shared-memory-extension-boundary.test.ts +0 -24
  340. package/tests/extensions/shared-memory-services.test.ts +0 -309
  341. package/tests/extensions/vector-extension-boundary.test.ts +0 -21
  342. package/tsconfig.json +0 -24
  343. package/vitest.config.ts +0 -15
@@ -1,627 +0,0 @@
1
- # claude-memory-layer vs memsearch vs superlocalmemory
2
-
3
- ## 목적
4
- 이 문서는 다음 3개 프로젝트를 비교해,
5
-
6
- - `claude-memory-layer`
7
- - `memsearch`
8
- - `superlocalmemory`
9
-
10
- 현재 `claude-memory-layer`에 **도입하면 좋은 구조/기능/운영 패턴**을 정리하고,
11
- 동시에 이 프로젝트가 너무 무거워지지 않도록 **더 가볍고 강력한 방향**을 제안하기 위한 문서다.
12
-
13
- 관련 원문/스냅샷 문서:
14
-
15
- - [`PROJECT_STRUCTURE_ANALYSIS.md`](./PROJECT_STRUCTURE_ANALYSIS.md) — target repo 현재 구조
16
- - [`MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md`](./MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md) — memsearch 구조 분석 스냅샷
17
- - [`SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md`](./SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md) — superlocalmemory 구조 분석 스냅샷
18
- - [`REFERENCE_PROJECT_ANALYSES.md`](./REFERENCE_PROJECT_ANALYSES.md) — 비교 문서 인덱스
19
-
20
- ---
21
-
22
- # 1. 세 프로젝트를 한 문장으로 요약하면
23
-
24
- ## claude-memory-layer
25
- **Claude Code에 깊게 결합된 훅 기반 로컬 메모리 플랫폼**.
26
- 강점은 실제 workflow에 밀착된 capture/retrieval/telemetry이고, 약점은 확장 기능이 한 저장소에 많이 쌓이며 구조가 무거워지고 있다는 점이다.
27
-
28
- ## memsearch
29
- **Markdown source-of-truth + Milvus hybrid search** 중심의 가볍고 선명한 memory engine.
30
- 강점은 코어의 단순함과 UX 패턴이고, 약점은 integration edge에서 운영 복잡도가 올라간다는 점이다.
31
-
32
- ## superlocalmemory
33
- **SQLite 기반의 거대한 로컬 memory OS / agent platform**.
34
- 강점은 breadth와 retrieval sophistication이고, 약점은 범위가 너무 넓어서 유지보수 discipline이 없으면 쉽게 비대화된다는 점이다.
35
-
36
- ---
37
-
38
- # 2. 구조 비교
39
-
40
- ## 2.1 코어 철학 비교
41
-
42
- ### claude-memory-layer
43
- - 이벤트 중심 수집
44
- - 프로젝트 격리 저장
45
- - hook-driven capture
46
- - vector + keyword retrieval
47
- - dashboard/telemetry 강함
48
- - 확장 기능이 코어 내부로 많이 들어와 있음
49
-
50
- ### memsearch
51
- - markdown 원본 우선
52
- - vector index는 파생물
53
- - 코어는 작은 indexing/search engine
54
- - agent별 통합은 plugin으로 분리
55
- - progressive disclosure UX 강함
56
-
57
- ### superlocalmemory
58
- - local-first memory engine + retrieval + learning + graph + mesh
59
- - atomic facts 기반 구조화 기억
60
- - 도구/대시보드/학습/에이전트 coordination까지 모두 포함
61
- - 사실상 memory platform + agent operating substrate
62
-
63
- ### 핵심 인사이트
64
- 현재 `claude-memory-layer`는 방향상 **memsearch보다 superlocalmemory 쪽으로 끌려가는 중**이다.
65
- 즉,
66
- - 시작점은 “좋은 메모리 플러그인”이었을 수 있지만
67
- - 이미 “작은 플랫폼”이 되었고
68
- - 계속 놔두면 “큰 플랫폼”이 될 가능성이 높다.
69
-
70
- 이건 나쁜 게 아니라, **의도적 분리 없이 커지면 위험하다**는 뜻이다.
71
-
72
- ---
73
-
74
- ## 2.2 저장 모델 비교
75
-
76
- ### claude-memory-layer
77
- - SQLite primary store
78
- - LanceDB vector store
79
- - markdown mirror
80
- - shared store
81
- - optional Mongo sync
82
- - telemetry/helpfulness/retrieval traces
83
-
84
- 장점:
85
- - 기능 강함
86
- - 분석 가능성 높음
87
-
88
- 약점:
89
- - source of truth가 무엇인지 흐려질 수 있음
90
- - 저장 계층이 많음
91
-
92
- ### memsearch
93
- - markdown source of truth
94
- - Milvus derived index
95
- - 단순하고 설명 가능
96
-
97
- 장점:
98
- - 구조 명확
99
- - 복구/백업/버전관리 쉬움
100
-
101
- 약점:
102
- - 구조화 메타모델은 얇음
103
-
104
- ### superlocalmemory
105
- - SQLite primary store
106
- - raw memory + atomic facts 분리
107
- - FTS + embeddings + graph + learning metadata + code graph schema
108
-
109
- 장점:
110
- - 표현력 매우 높음
111
-
112
- 약점:
113
- - 스키마가 비대하고 migration 비용 큼
114
-
115
- ### 핵심 인사이트
116
- `claude-memory-layer`는 지금 상태에서 **memsearch의 source-of-truth 단순성**과 **superlocalmemory의 fact 분리 아이디어**를 동시에 참고하는 것이 좋다.
117
-
118
- 추천 방향:
119
- - source of truth를 다시 명확히 정의
120
- - raw event와 derived memory를 명시적으로 분리
121
- - derived 계층은 재생성 가능하게 유지
122
-
123
- ---
124
-
125
- ## 2.3 검색 구조 비교
126
-
127
- ### claude-memory-layer
128
- - vector + keyword
129
- - fallback chain
130
- - progressive retriever
131
- - semantic daemon
132
- - helpfulness/retrieval trace 기록
133
-
134
- ### memsearch
135
- - dense + BM25 + RRF
136
- - search → expand → transcript drill-down
137
- - retrieval UX가 선명함
138
-
139
- ### superlocalmemory
140
- - semantic / BM25 / entity graph / temporal / spreading activation / hopfield
141
- - 고급 fusion / rerank / diversity
142
-
143
- ### 핵심 인사이트
144
- `claude-memory-layer`는 검색 품질 측면에서 이미 꽤 좋다.
145
- 문제는 “더 많은 채널”이 아니라 **검색 구조를 얼마나 명확하게 제품화하느냐**다.
146
-
147
- 즉, 지금 바로 필요한 것은:
148
- - superlocalmemory처럼 채널을 6개, 8개로 늘리는 것보다
149
- - memsearch처럼 **사용자 입장에서 이해되는 retrieval UX**를 만드는 것
150
-
151
- 예:
152
- - quick hits
153
- - expanded context
154
- - original transcript/source
155
- - why this was retrieved
156
-
157
- ---
158
-
159
- ## 2.4 통합 구조 비교
160
-
161
- ### claude-memory-layer
162
- - Claude Code 특화가 강함
163
- - 훅 통합이 깊고 강력함
164
- - 하지만 Claude 바깥 확장 경로(MCP 등)는 아직 덜 닫힘
165
-
166
- ### memsearch
167
- - core와 plugin이 비교적 잘 분리됨
168
- - Claude/Codex/OpenClaw/OpenCode 각각 적응
169
- - cross-platform portability 좋음
170
-
171
- ### superlocalmemory
172
- - MCP/CLI/hooks/IDE integrations가 매우 넓음
173
- - 거의 모든 surface를 제공하려 함
174
-
175
- ### 핵심 인사이트
176
- `claude-memory-layer`는 당장 superlocalmemory처럼 모든 플랫폼을 다 품으려 하기보다,
177
- **memsearch처럼 “코어 엔진”과 “Claude adapter”를 더 분리**하는 편이 낫다.
178
-
179
- ---
180
-
181
- # 3. claude-memory-layer에 바로 도입하면 좋은 아이디어
182
-
183
- ## 3.1 memsearch에서 가져오면 좋은 것
184
-
185
- ### A. Markdown source-of-truth 또는 적어도 “사람이 읽는 canonical layer” 강화
186
- 현재도 markdown mirror가 있지만 보조 레이어처럼 보인다.
187
-
188
- 추천:
189
- - markdown mirror를 단순 로그가 아니라 **canonical human-readable memory journal**로 승격 검토
190
- - 또는 최소한 “event store는 machine canonical, markdown journal은 human canonical”처럼 역할을 명확히 정의
191
-
192
- 왜 좋은가:
193
- - 디버깅 쉬움
194
- - 백업/내보내기 쉬움
195
- - 사용자 신뢰도 상승
196
- - 다른 시스템과 상호운용 쉬움
197
-
198
- ### B. Search → Expand → Transcript drill-down UX
199
- 이건 매우 좋다.
200
-
201
- 현재 `claude-memory-layer`에도 progressive retrieval이 있지만,
202
- 사용자-facing UX로 더 분명하게 드러내면 좋다.
203
-
204
- 추천 기능:
205
- 1. `memory search` → 요약 후보
206
- 2. `memory expand` → 해당 기억의 더 넓은 컨텍스트
207
- 3. `memory transcript` 또는 `memory source` → 원문/근거
208
-
209
- ### C. Core와 plugin integration의 경계 명확화
210
- `memsearch`는 코어가 작다.
211
- 이 점이 매우 중요하다.
212
-
213
- `claude-memory-layer`도 다음처럼 나누는 것이 좋다.
214
- - `core-memory-engine`
215
- - `claude-adapter`
216
- - `dashboard`
217
- - `experimental extensions`
218
-
219
- ### D. Chunk identity / incremental reindex 사고방식
220
- `memsearch`의 composite ID 전략은 매우 실용적이다.
221
-
222
- `claude-memory-layer`에서도:
223
- - event-derived memory
224
- - summary memory
225
- - tool-derived memory
226
- - imported transcript memory
227
-
228
- 각 타입에 대해 stable derived key를 더 엄밀히 두면 dedupe/reindex/rebuild가 쉬워진다.
229
-
230
- ---
231
-
232
- ## 3.2 superlocalmemory에서 가져오면 좋은 것
233
-
234
- ### A. Raw memory vs atomic facts 분리
235
- 이건 가장 가치 있는 아이디어 중 하나다.
236
-
237
- 현재 `claude-memory-layer`는 event/entry/entity/edge가 있지만,
238
- 개념적으로는 다소 혼합되어 보인다.
239
-
240
- 추천:
241
- - **Raw events**: 원본 대화/툴 결과/세션 정보
242
- - **Derived facts**: 검색에 최적화된 작은 사실 단위
243
- - **Higher-order memory**: summaries / rules / working set / continuity
244
-
245
- 이 3층을 더 명시적으로 나누자.
246
-
247
- 효과:
248
- - retrieval 품질 향상
249
- - consolidation 설계 명확화
250
- - feature 추가 시 어디에 넣어야 하는지 분명해짐
251
-
252
- ### B. SQLite one-engine 철학
253
- superlocalmemory의 장점 중 하나는 “기본 중심축이 SQLite 하나”라는 점이다.
254
-
255
- `claude-memory-layer`는 지금 SQLite + LanceDB + markdown + shared + optional Mongo로 축이 많다.
256
-
257
- 추천:
258
- - 코어 운영 모드는 최대한 **SQLite-only 기본값**으로 재정의
259
- - LanceDB는 optional acceleration layer로 격하 검토
260
- - shared/Mongo는 플러그인/extension으로 분리
261
-
262
- ### C. Retrieval channel metadata
263
- superlocalmemory처럼 채널을 많이 늘리라는 뜻은 아니다.
264
- 대신 검색 결과에 “어떤 이유로 나왔는지”를 구조적으로 남기는 것은 좋다.
265
-
266
- 예:
267
- - matched by: semantic / keyword / entity / recency / continuity
268
- - evidence strength
269
- - source type: prompt / assistant / tool / summary / imported
270
-
271
- 이건 explainability를 높인다.
272
-
273
- ### D. Code graph bridge (선택적)
274
- 이건 매우 강력할 수 있다.
275
- 다만 그대로 가져오면 과체중이다.
276
-
277
- 추천은 full code graph가 아니라 **lightweight code-link layer**다.
278
-
279
- 예:
280
- - memory item ↔ file path
281
- - memory item ↔ symbol name
282
- - memory item ↔ git commit / diff chunk
283
-
284
- 즉, graph DB를 만들기 전에 먼저 **code-aware memory anchors** 부터 도입하는 게 좋다.
285
-
286
- ### E. Learning/feedback 루프의 최소형 버전
287
- superlocalmemory의 전체 learning 시스템은 무겁다.
288
- 하지만 그 핵심 문제의식은 좋다.
289
-
290
- 추천 최소 버전:
291
- - retrieval shown count
292
- - retrieval accepted/used count
293
- - user helpfulness feedback
294
- - implicit signals:
295
- - retrieved memory 인용 후 성공적으로 작업 완료
296
- - retrieved memory 직후 같은 검색 반복 여부
297
-
298
- 이 정도만 있어도 rank 개선/cleanup에 충분히 유용하다.
299
-
300
- ---
301
-
302
- # 4. claude-memory-layer에 도입하지 않는 게 좋은 것
303
-
304
- ## 4.1 superlocalmemory식 “모든 것 다 포함” 접근
305
- 지금 상태의 `claude-memory-layer`는 이미 무거워질 조짐이 있다.
306
- 여기에 아래를 한 번에 넣으면 위험하다.
307
-
308
- - full learning platform
309
- - full mesh multi-agent broker
310
- - full code graph platform
311
- - huge dashboard surface
312
- - massive MCP tool surface
313
-
314
- 이건 제품 초점을 흐릴 수 있다.
315
-
316
- ## 4.2 너무 이른 구조화 과잉
317
- 엔티티/엣지/태스크/연속성/요약/공유 메모리까지 이미 있는 상태에서,
318
- 더 많은 추상화를 곧바로 넣으면 “좋아 보이지만 관리되지 않는 복잡성”이 된다.
319
-
320
- ## 4.3 source-of-truth 다중화
321
- SQLite, Markdown, Shared, Mongo, Vector가 모두 서로 경쟁하는 canonical layer가 되면 안 된다.
322
-
323
- 반드시 정리해야 한다.
324
-
325
- ---
326
-
327
- # 5. claude-memory-layer를 더 가볍고 강하게 만드는 리팩터링 방향
328
-
329
- ## 핵심 원칙
330
- > **작은 코어를 먼저 명확히 만들고, 실험 기능은 모듈로 밀어낸다.**
331
-
332
- ---
333
-
334
- ## 5.1 목표 아키텍처
335
-
336
- ### Layer 1: Core Memory Engine
337
- 반드시 항상 필요한 것만 둔다.
338
-
339
- 포함:
340
- - session/project registry
341
- - raw event store
342
- - derived fact store
343
- - retrieval engine
344
- - minimal citations/source tracing
345
- - import/export
346
-
347
- ### Layer 2: Claude Adapter
348
- Claude Code 훅 통합만 담당한다.
349
-
350
- 포함:
351
- - session lifecycle hooks
352
- - transcript extraction
353
- - tool capture policy
354
- - context injection
355
-
356
- ### Layer 3: Optional Accelerators
357
- 선택 기능이다.
358
-
359
- 포함 예:
360
- - semantic daemon
361
- - LanceDB vector index
362
- - reranking
363
- - helpfulness analytics
364
- - dashboard advanced panels
365
-
366
- ### Layer 4: Experimental Extensions
367
- 코어 밖 실험장이다.
368
-
369
- 포함 예:
370
- - shared memory
371
- - Mongo sync
372
- - MCP
373
- - task/entity graph 고도화
374
- - endless/consolidation 실험
375
- - code-aware memory
376
-
377
- 이렇게 나누면,
378
- 사용자는 “가볍게 쓸 수 있고”,
379
- 개발자는 “무거운 기능을 버리지 않으면서도 분리”할 수 있다.
380
-
381
- ---
382
-
383
- ## 5.2 저장 구조 단순화 제안
384
-
385
- ### 현재 문제
386
- 저장 계층이 많고 책임이 흐릴 수 있다.
387
-
388
- ### 제안
389
-
390
- #### Option A: SQLite canonical + markdown export
391
- - SQLite를 machine canonical로 유지
392
- - markdown은 human-readable projection
393
- - vector index는 disposable
394
-
395
- #### Option B: SQLite raw + facts, markdown journal as user-facing memory ledger
396
- - raw event와 derived facts는 SQLite
397
- - 사람이 보는 memory book은 markdown
398
- - dashboard/API는 둘 다 사용
399
-
400
- 둘 중 하나를 명확히 선택하는 게 중요하다.
401
-
402
- 개인적으로는 현재 프로젝트엔 **Option A 또는 B 둘 다 가능**하지만,
403
- 최소한 “LanceDB는 canonical이 아니다”는 확실히 해야 한다.
404
-
405
- ---
406
-
407
- ## 5.3 도메인 모델 정리 제안
408
-
409
- 현재의 핵심 도메인을 아래처럼 재정의하면 좋다.
410
-
411
- ### 1) RawEvent
412
- - prompt
413
- - assistant response
414
- - tool output
415
- - session marker
416
- - import record
417
-
418
- ### 2) MemoryFact
419
- 검색/회상에 최적화된 작은 단위
420
- - fact text
421
- - source event ids
422
- - scope (project/shared)
423
- - tags
424
- - confidence
425
- - source type
426
- - privacy level
427
- - timestamps
428
-
429
- ### 3) MemorySummary
430
- - turn summary
431
- - session summary
432
- - project summary
433
- - continuity summary
434
-
435
- ### 4) MemoryRule / Preference
436
- - recurring pattern
437
- - user/project preference
438
- - stable conventions
439
-
440
- ### 5) RetrievalTrace
441
- - query
442
- - selected facts
443
- - why matched
444
- - whether used/helpful
445
-
446
- 이렇게 나누면 현재 있는 여러 테이블/개념이 훨씬 읽기 쉬워진다.
447
-
448
- ---
449
-
450
- ## 5.4 검색 계층 고도화 제안
451
-
452
- ### 바로 적용할 것
453
- - result type 분리: `fact`, `summary`, `tool evidence`, `session memory`
454
- - retrieval reason 표준화
455
- - `search -> expand -> source` 3단 UX
456
- - recency와 semantic score 분리 표기
457
-
458
- ### 나중에 선택적으로 적용할 것
459
- - entity-aware rerank
460
- - code-anchor aware rerank
461
- - task-aware continuity recall
462
-
463
- 즉, 먼저 **설명 가능한 retrieval product**를 만들고,
464
- 그 후에 더 복잡한 채널을 넣는 것이 좋다.
465
-
466
- ---
467
-
468
- ## 5.5 대시보드 축소/재구성 제안
469
-
470
- 대시보드는 기능이 많아질수록 개발비가 크게 든다.
471
-
472
- 추천 기본 탭:
473
- 1. Search
474
- 2. Sessions
475
- 3. Facts
476
- 4. Summaries
477
- 5. Sources / Citations
478
- 6. Health / Queue
479
-
480
- 추천 고급 탭(옵션):
481
- - Helpfulness
482
- - Shared memory
483
- - Graph
484
- - Experiments
485
-
486
- 즉, 제품의 중심을 “운영 콘솔”이 아니라 **memory inspectability**에 두는 것이 좋다.
487
-
488
- ---
489
-
490
- # 6. 추천 기능 우선순위
491
-
492
- ## 가장 먼저 하면 좋은 것
493
-
494
- ### Priority 1. 도메인/저장 계층 재정의
495
- - raw event vs derived fact 분리
496
- - canonical source 명확화
497
- - 문서 drift 해소
498
-
499
- ### Priority 2. Retrieval UX 명확화
500
- - search / expand / source drill-down
501
- - retrieval reasons 표준화
502
- - helpfulness minimal feedback
503
-
504
- ### Priority 3. Core / Adapter / Extensions 분리
505
- - `core`
506
- - `adapters/claude`
507
- - `extensions/*`
508
- - `apps/dashboard`
509
-
510
- 이건 장기 유지보수성에 가장 큰 효과가 있다.
511
-
512
- ---
513
-
514
- ## 그다음 하면 좋은 것
515
-
516
- ### Priority 4. Lightweight code-aware memory
517
- full graph 말고 먼저:
518
- - file path links
519
- - symbol links
520
- - commit/diff links
521
-
522
- ### Priority 5. Minimal learning loop
523
- - helpful / not helpful
524
- - auto-promote / auto-demote candidates
525
- - stale memory cleanup signals
526
-
527
- ### Priority 6. Shared memory를 extension으로 재배치
528
- Mongo/shared를 기본 코어가 아니라 옵션 패키지로 다루기
529
-
530
- ---
531
-
532
- # 7. 아주 구체적인 제안: “thin-core rewrite without rewrite”
533
-
534
- 전체 재작성 대신 내부 구조만 단계적으로 바꾸는 방법이다.
535
-
536
- ## Phase 1: 개념 정리
537
- - README와 실제 구현을 맞춘다
538
- - 현재 저장계층의 canonical/derived 관계를 문서화
539
- - `MemoryService` 내부에서 raw/fact/summary 경계를 명확히 분리
540
-
541
- ## Phase 2: 패키지/폴더 재구성
542
- 예시:
543
- - `src/core/engine/*`
544
- - `src/core/model/*`
545
- - `src/core/retrieval/*`
546
- - `src/adapters/claude/*`
547
- - `src/extensions/shared/*`
548
- - `src/extensions/mcp/*`
549
- - `src/apps/dashboard/*`
550
-
551
- ## Phase 3: 결과 타입 정리
552
- - fact
553
- - summary
554
- - source
555
- - tool evidence
556
- - continuity item
557
-
558
- ## Phase 4: vector와 daemon을 가속 계층으로 격하
559
- - 코어는 SQLite만으로도 최소 동작
560
- - vector/daemon은 성능 향상 옵션
561
-
562
- ## Phase 5: shared/Mongo/MCP 실험 격리
563
- - 기본 설치에서 빠질 수 있게
564
- - 별도 feature flag / package boundary 제공
565
-
566
- 이렇게 하면 “지금 자산을 버리지 않고” 점진적으로 가벼워질 수 있다.
567
-
568
- ---
569
-
570
- # 8. 최종 제안
571
-
572
- ## 결론 1
573
- `claude-memory-layer`는 **memsearch처럼 더 얇고 선명한 코어**를 배워야 한다.
574
-
575
- ## 결론 2
576
- 동시에 `superlocalmemory`에서 **raw vs fact 분리, explainable retrieval, lightweight feedback loop** 같은 좋은 개념은 선택적으로 가져오면 된다.
577
-
578
- ## 결론 3
579
- 하지만 `superlocalmemory`식의 전체 플랫폼 범위를 그대로 따라가면,
580
- 현재 프로젝트는 빠르게 과체중이 될 가능성이 높다.
581
-
582
- ---
583
-
584
- # 9. 추천하는 최종 방향 한 문장
585
-
586
- > `claude-memory-layer`는 앞으로 **“Claude 특화 메모리 플랫폼”** 이 아니라, **“얇은 코어 메모리 엔진 + 강한 Claude 어댑터 + 선택형 확장 모듈”** 구조로 재정의되는 것이 가장 유리하다.
587
-
588
- 이 방향이면:
589
- - 지금의 강점은 유지하고
590
- - 유지보수성은 높이고
591
- - 다른 플랫폼으로도 확장 가능하며
592
- - 기능이 늘어도 코어는 작게 지킬 수 있다.
593
-
594
- ---
595
-
596
- # 10. 추천 액션 아이템
597
-
598
- ## 바로 할 일
599
- 1. README/문서 drift 정리
600
- 2. canonical storage 정의 문서 추가
601
- 3. raw event / fact / summary 모델 재정의
602
- 4. search / expand / source UX 추가 또는 정리
603
-
604
- ## 다음 단계
605
- 5. `core / adapters / extensions / apps` 구조 분리
606
- 6. vector/daemon을 optional acceleration layer로 정리
607
- 7. lightweight code-aware memory anchor 추가
608
- 8. minimal helpfulness feedback loop 추가
609
-
610
- ## 보류 권장
611
- 9. full code graph platform
612
- 10. full learning platform
613
- 11. full mesh / multi-agent substrate
614
- 12. 너무 넓은 MCP surface 확장
615
-
616
- ---
617
-
618
- # 11. 최종 판단
619
-
620
- `claude-memory-layer`는 이미 꽤 좋은 위치에 있다.
621
-
622
- - `memsearch`보다 richer하고,
623
- - `superlocalmemory`보다 아직 더 집중된 상태이며,
624
- - 적절히 정리만 잘하면 **가볍고 강하면서도 확장 가능한 memory architecture**로 발전할 수 있다.
625
-
626
- 핵심은 더 많은 기능 추가가 아니라,
627
- **코어를 다시 가볍게 만드는 구조적 결단**이다.