claude-memory-layer 1.0.31 → 1.0.32

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 (313) hide show
  1. package/README.md +9 -2
  2. package/dist/cli/index.js +1 -1
  3. package/package.json +11 -2
  4. package/scripts/postinstall-embedding-backend.cjs +16 -12
  5. package/AGENTS.md +0 -71
  6. package/CLAUDE.md +0 -30
  7. package/HANDOFF.md +0 -92
  8. package/Memo.txt +0 -558
  9. package/benchmarks/replay/anonymized-real-sessions.json +0 -48
  10. package/config/kpi-thresholds.json +0 -7
  11. package/context.md +0 -636
  12. package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +0 -627
  13. package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +0 -440
  14. package/docs/MCP_MEMORY_SERVICE_COMPARATIVE_REVIEW.md +0 -271
  15. package/docs/MEMORY_USEFULNESS_AUDIT.md +0 -371
  16. package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +0 -80
  17. package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +0 -333
  18. package/docs/MEMU_ADOPTION.md +0 -40
  19. package/docs/OPERATIONS.md +0 -18
  20. package/docs/PRODUCT_VALIDATION_MATRIX.md +0 -82
  21. package/docs/PROJECT_STRUCTURE_ANALYSIS.md +0 -421
  22. package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +0 -501
  23. package/docs/REFACTORING_PLAN_THIN_CORE.md +0 -414
  24. package/docs/REFERENCE_PROJECT_ANALYSES.md +0 -25
  25. package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +0 -452
  26. package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +0 -446
  27. package/docs/architecture/comparison-index.md +0 -47
  28. package/docs/reports/codex-real-data-validation-20260505T040447Z.md +0 -46
  29. package/plan.md +0 -1642
  30. package/scripts/build.ts +0 -159
  31. package/scripts/bump-patch-version.sh +0 -18
  32. package/scripts/delete-unknown-projects.js +0 -154
  33. package/scripts/fix-sync-gap.js +0 -32
  34. package/scripts/generate-session-qrels.ts +0 -126
  35. package/scripts/heartbeat-memory-orchestrator.sh +0 -28
  36. package/scripts/replay-retrieval-benchmark.ts +0 -69
  37. package/scripts/report-sync-gap.js +0 -26
  38. package/scripts/review-queue-auto-resolve.js +0 -21
  39. package/scripts/sync-gap-auto-heal.sh +0 -17
  40. package/spec.md +0 -624
  41. package/specs/20260207-dashboard-upgrade/context.md +0 -38
  42. package/specs/20260207-dashboard-upgrade/spec.md +0 -96
  43. package/specs/citations-system/context.md +0 -243
  44. package/specs/citations-system/plan.md +0 -495
  45. package/specs/citations-system/spec.md +0 -371
  46. package/specs/endless-mode/context.md +0 -305
  47. package/specs/endless-mode/plan.md +0 -620
  48. package/specs/endless-mode/spec.md +0 -455
  49. package/specs/entity-edge-model/context.md +0 -401
  50. package/specs/entity-edge-model/plan.md +0 -459
  51. package/specs/entity-edge-model/spec.md +0 -391
  52. package/specs/evidence-aligner-v2/context.md +0 -401
  53. package/specs/evidence-aligner-v2/plan.md +0 -303
  54. package/specs/evidence-aligner-v2/spec.md +0 -312
  55. package/specs/mcp-desktop-integration/context.md +0 -278
  56. package/specs/mcp-desktop-integration/plan.md +0 -550
  57. package/specs/mcp-desktop-integration/spec.md +0 -494
  58. package/specs/memory-utilization-improvements/context.md +0 -145
  59. package/specs/memory-utilization-improvements/plan.md +0 -361
  60. package/specs/memory-utilization-improvements/spec.md +0 -361
  61. package/specs/post-tool-use-hook/context.md +0 -319
  62. package/specs/post-tool-use-hook/plan.md +0 -469
  63. package/specs/post-tool-use-hook/spec.md +0 -364
  64. package/specs/private-tags/context.md +0 -288
  65. package/specs/private-tags/plan.md +0 -412
  66. package/specs/private-tags/spec.md +0 -345
  67. package/specs/progressive-disclosure/context.md +0 -346
  68. package/specs/progressive-disclosure/plan.md +0 -663
  69. package/specs/progressive-disclosure/spec.md +0 -415
  70. package/specs/selective-tool-observation/context.md +0 -100
  71. package/specs/selective-tool-observation/plan.md +0 -158
  72. package/specs/selective-tool-observation/spec.md +0 -127
  73. package/specs/task-entity-system/context.md +0 -297
  74. package/specs/task-entity-system/plan.md +0 -301
  75. package/specs/task-entity-system/spec.md +0 -314
  76. package/specs/thin-core-refactor/context.md +0 -275
  77. package/specs/thin-core-refactor/plan.md +0 -536
  78. package/specs/thin-core-refactor/spec.md +0 -465
  79. package/specs/vector-outbox-v2/context.md +0 -470
  80. package/specs/vector-outbox-v2/plan.md +0 -562
  81. package/specs/vector-outbox-v2/spec.md +0 -466
  82. package/specs/web-viewer-ui/context.md +0 -384
  83. package/specs/web-viewer-ui/plan.md +0 -797
  84. package/specs/web-viewer-ui/spec.md +0 -516
  85. package/src/adapters/claude/capture/index.ts +0 -3
  86. package/src/adapters/claude/context/index.ts +0 -3
  87. package/src/adapters/claude/hooks/index.ts +0 -21
  88. package/src/adapters/claude/hooks/post-tool-use.ts +0 -239
  89. package/src/adapters/claude/hooks/prompt-injection-policy.ts +0 -104
  90. package/src/adapters/claude/hooks/semantic-daemon-client.ts +0 -209
  91. package/src/adapters/claude/hooks/semantic-daemon.ts +0 -283
  92. package/src/adapters/claude/hooks/session-end.ts +0 -59
  93. package/src/adapters/claude/hooks/session-start.ts +0 -73
  94. package/src/adapters/claude/hooks/stop.ts +0 -128
  95. package/src/adapters/claude/hooks/user-prompt-submit.ts +0 -361
  96. package/src/adapters/claude/index.ts +0 -4
  97. package/src/adapters/claude/transcript/index.ts +0 -4
  98. package/src/adapters/claude/transcript/transcript-reader.ts +0 -57
  99. package/src/adapters/claude/transcript/turn-reconstructor.ts +0 -65
  100. package/src/apps/cli/claude-settings-hooks.ts +0 -138
  101. package/src/apps/cli/codex-import-runner.ts +0 -125
  102. package/src/apps/cli/codex-validation-output.ts +0 -95
  103. package/src/apps/cli/hermes-import-runner.ts +0 -130
  104. package/src/apps/cli/hermes-validation-output.ts +0 -91
  105. package/src/apps/cli/index.ts +0 -1735
  106. package/src/apps/cli/mcp-install.ts +0 -106
  107. package/src/apps/cli/retrieval-disclosure-output.ts +0 -196
  108. package/src/apps/dashboard/assets/js/bootstrap.js +0 -244
  109. package/src/apps/dashboard/assets/js/chat.js +0 -373
  110. package/src/apps/dashboard/assets/js/disclosure.js +0 -232
  111. package/src/apps/dashboard/assets/js/modals.js +0 -298
  112. package/src/apps/dashboard/assets/js/overview.js +0 -655
  113. package/src/apps/dashboard/assets/js/state.js +0 -72
  114. package/src/apps/dashboard/assets/js/views.js +0 -468
  115. package/src/apps/dashboard/index.html +0 -543
  116. package/src/apps/dashboard/index.ts +0 -3
  117. package/src/apps/dashboard/style.css +0 -1750
  118. package/src/apps/index.ts +0 -5
  119. package/src/apps/server/api/chat.ts +0 -244
  120. package/src/apps/server/api/citations.ts +0 -105
  121. package/src/apps/server/api/events.ts +0 -137
  122. package/src/apps/server/api/health.ts +0 -53
  123. package/src/apps/server/api/index.ts +0 -26
  124. package/src/apps/server/api/projects.ts +0 -74
  125. package/src/apps/server/api/search.ts +0 -184
  126. package/src/apps/server/api/sessions.ts +0 -115
  127. package/src/apps/server/api/stats.ts +0 -723
  128. package/src/apps/server/api/turns.ts +0 -143
  129. package/src/apps/server/api/utils.ts +0 -65
  130. package/src/apps/server/index.ts +0 -111
  131. package/src/cli/index.ts +0 -3
  132. package/src/cli/retrieval-disclosure-output.ts +0 -2
  133. package/src/compat/index.ts +0 -5
  134. package/src/core/canonical-key.ts +0 -186
  135. package/src/core/citation-generator.ts +0 -63
  136. package/src/core/consolidated-store.ts +0 -356
  137. package/src/core/consolidation-worker.ts +0 -493
  138. package/src/core/context-formatter.ts +0 -276
  139. package/src/core/continuity-manager.ts +0 -341
  140. package/src/core/db-wrapper.ts +0 -64
  141. package/src/core/derive/fact-deriver.ts +0 -170
  142. package/src/core/derive/index.ts +0 -2
  143. package/src/core/derive/summary-deriver.ts +0 -76
  144. package/src/core/edge-repo.ts +0 -333
  145. package/src/core/embedder.ts +0 -4
  146. package/src/core/engine/embedding-maintenance-service.ts +0 -187
  147. package/src/core/engine/endless-memory-services.ts +0 -4
  148. package/src/core/engine/index.ts +0 -19
  149. package/src/core/engine/memory-engine-services.ts +0 -170
  150. package/src/core/engine/memory-ingest-service.ts +0 -317
  151. package/src/core/engine/memory-query-service.ts +0 -173
  152. package/src/core/engine/memory-runtime-service.ts +0 -162
  153. package/src/core/engine/memory-service-composition.ts +0 -231
  154. package/src/core/engine/retrieval-analytics-service.ts +0 -181
  155. package/src/core/engine/retrieval-disclosure-service.ts +0 -420
  156. package/src/core/engine/retrieval-orchestrator.ts +0 -377
  157. package/src/core/engine/retrieval-services.ts +0 -176
  158. package/src/core/engine/shared-memory-services.ts +0 -4
  159. package/src/core/entity-repo.ts +0 -349
  160. package/src/core/event-store.ts +0 -779
  161. package/src/core/evidence-aligner.ts +0 -635
  162. package/src/core/external-market-context.ts +0 -582
  163. package/src/core/graduation-worker.ts +0 -171
  164. package/src/core/graduation.ts +0 -377
  165. package/src/core/index.ts +0 -64
  166. package/src/core/ingest-interceptor.ts +0 -80
  167. package/src/core/markdown-mirror.ts +0 -70
  168. package/src/core/matcher.ts +0 -208
  169. package/src/core/md-mirror.ts +0 -92
  170. package/src/core/metadata-extractor.ts +0 -203
  171. package/src/core/model/memory-fact.ts +0 -30
  172. package/src/core/model/memory-rule.ts +0 -14
  173. package/src/core/model/memory-summary.ts +0 -21
  174. package/src/core/model/raw-event.ts +0 -28
  175. package/src/core/model/retrieval-result.ts +0 -35
  176. package/src/core/mongo-sync-config.ts +0 -165
  177. package/src/core/mongo-sync-worker.ts +0 -381
  178. package/src/core/privacy/filter.ts +0 -190
  179. package/src/core/privacy/index.ts +0 -20
  180. package/src/core/privacy/tag-parser.ts +0 -145
  181. package/src/core/product-validation-matrix.ts +0 -314
  182. package/src/core/progressive-retriever.ts +0 -414
  183. package/src/core/registry/project-path.ts +0 -54
  184. package/src/core/registry/session-registry.ts +0 -69
  185. package/src/core/replay-evaluator.ts +0 -625
  186. package/src/core/retrieval-benchmark.ts +0 -117
  187. package/src/core/retrieval-quality.ts +0 -109
  188. package/src/core/retriever.ts +0 -800
  189. package/src/core/session-qrels.ts +0 -360
  190. package/src/core/shared-event-store.ts +0 -114
  191. package/src/core/shared-promoter.ts +0 -249
  192. package/src/core/shared-store.ts +0 -289
  193. package/src/core/shared-vector-store.ts +0 -203
  194. package/src/core/sqlite-event-store.ts +0 -1846
  195. package/src/core/sqlite-wrapper.ts +0 -116
  196. package/src/core/sync-worker.ts +0 -228
  197. package/src/core/tag-taxonomy.ts +0 -51
  198. package/src/core/task/blocker-resolver.ts +0 -333
  199. package/src/core/task/index.ts +0 -9
  200. package/src/core/task/task-matcher.ts +0 -240
  201. package/src/core/task/task-projector.ts +0 -358
  202. package/src/core/task/task-resolver.ts +0 -421
  203. package/src/core/turn-state.ts +0 -207
  204. package/src/core/types.ts +0 -952
  205. package/src/core/vector-outbox.ts +0 -299
  206. package/src/core/vector-store.ts +0 -231
  207. package/src/core/vector-worker.ts +0 -521
  208. package/src/core/working-set-store.ts +0 -257
  209. package/src/extensions/endless-memory/endless-memory-services.ts +0 -350
  210. package/src/extensions/endless-memory/index.ts +0 -1
  211. package/src/extensions/index.ts +0 -5
  212. package/src/extensions/mcp/handlers.ts +0 -960
  213. package/src/extensions/mcp/index.ts +0 -48
  214. package/src/extensions/mcp/tools.ts +0 -252
  215. package/src/extensions/shared-memory/index.ts +0 -1
  216. package/src/extensions/shared-memory/shared-memory-services.ts +0 -211
  217. package/src/extensions/vector/embedder.ts +0 -234
  218. package/src/extensions/vector/index.ts +0 -1
  219. package/src/hooks/post-tool-use.ts +0 -9
  220. package/src/hooks/semantic-daemon-client.ts +0 -1
  221. package/src/hooks/semantic-daemon.ts +0 -11
  222. package/src/hooks/session-end.ts +0 -9
  223. package/src/hooks/session-start.ts +0 -9
  224. package/src/hooks/stop.ts +0 -9
  225. package/src/hooks/user-prompt-submit.ts +0 -9
  226. package/src/index.ts +0 -13
  227. package/src/mcp/handlers.ts +0 -2
  228. package/src/mcp/index.ts +0 -4
  229. package/src/mcp/tools.ts +0 -2
  230. package/src/server/api/chat.ts +0 -2
  231. package/src/server/api/citations.ts +0 -2
  232. package/src/server/api/events.ts +0 -2
  233. package/src/server/api/health.ts +0 -2
  234. package/src/server/api/index.ts +0 -2
  235. package/src/server/api/projects.ts +0 -2
  236. package/src/server/api/search.ts +0 -2
  237. package/src/server/api/sessions.ts +0 -2
  238. package/src/server/api/stats.ts +0 -2
  239. package/src/server/api/turns.ts +0 -2
  240. package/src/server/api/utils.ts +0 -2
  241. package/src/server/index.ts +0 -2
  242. package/src/services/bootstrap-organizer.ts +0 -463
  243. package/src/services/codex-session-history-importer.ts +0 -966
  244. package/src/services/hermes-session-history-importer.ts +0 -733
  245. package/src/services/memory-service-config.ts +0 -36
  246. package/src/services/memory-service-registry.ts +0 -150
  247. package/src/services/memory-service.ts +0 -688
  248. package/src/services/session-history-importer.ts +0 -629
  249. package/tests/README.md +0 -23
  250. package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +0 -54
  251. package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +0 -98
  252. package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +0 -99
  253. package/tests/apps/app-layer-boundary.test.ts +0 -48
  254. package/tests/apps/claude-settings-hooks.test.ts +0 -107
  255. package/tests/apps/cli-disclosure-output.test.ts +0 -212
  256. package/tests/apps/codex-import-runner.test.ts +0 -99
  257. package/tests/apps/codex-validation-output.test.ts +0 -100
  258. package/tests/apps/hermes-import-runner.test.ts +0 -99
  259. package/tests/apps/mcp-install-command.test.ts +0 -59
  260. package/tests/apps/package-build-entrypoints.test.ts +0 -30
  261. package/tests/apps/postinstall-embedding-backend.test.ts +0 -185
  262. package/tests/apps/search-api-disclosure.test.ts +0 -162
  263. package/tests/apps/stats-api-lightweight.test.ts +0 -67
  264. package/tests/apps/ui-disclosure-output.test.ts +0 -140
  265. package/tests/core/bootstrap-organizer.test.ts +0 -111
  266. package/tests/core/canonical-key.test.ts +0 -101
  267. package/tests/core/codex-session-history-importer-validation.test.ts +0 -185
  268. package/tests/core/consolidation-worker.test.ts +0 -75
  269. package/tests/core/embedding-maintenance-service.test.ts +0 -282
  270. package/tests/core/evidence-aligner.test.ts +0 -152
  271. package/tests/core/external-market-context.test.ts +0 -209
  272. package/tests/core/fact-deriver.test.ts +0 -79
  273. package/tests/core/hermes-session-history-importer-validation.test.ts +0 -609
  274. package/tests/core/ingest-interceptor.test.ts +0 -38
  275. package/tests/core/markdown-mirror.test.ts +0 -85
  276. package/tests/core/matcher.test.ts +0 -112
  277. package/tests/core/md-mirror.test.ts +0 -50
  278. package/tests/core/memory-engine-services.test.ts +0 -240
  279. package/tests/core/memory-ingest-service.test.ts +0 -296
  280. package/tests/core/memory-query-service.test.ts +0 -129
  281. package/tests/core/memory-runtime-service.test.ts +0 -201
  282. package/tests/core/memory-service-composition.test.ts +0 -192
  283. package/tests/core/memory-service-config.test.ts +0 -41
  284. package/tests/core/memory-service-facade.test.ts +0 -30
  285. package/tests/core/memory-service-registry.test.ts +0 -206
  286. package/tests/core/product-validation-matrix.test.ts +0 -61
  287. package/tests/core/project-registry.test.ts +0 -78
  288. package/tests/core/replay-evaluator.test.ts +0 -181
  289. package/tests/core/retrieval-analytics-service.test.ts +0 -210
  290. package/tests/core/retrieval-benchmark.test.ts +0 -93
  291. package/tests/core/retrieval-disclosure-service.test.ts +0 -264
  292. package/tests/core/retrieval-orchestrator.test.ts +0 -403
  293. package/tests/core/retrieval-quality.test.ts +0 -31
  294. package/tests/core/retrieval-services.test.ts +0 -185
  295. package/tests/core/retriever-fallback-chain.test.ts +0 -223
  296. package/tests/core/retriever-strategy-scope.test.ts +0 -164
  297. package/tests/core/retriever.memu-adoption.test.ts +0 -122
  298. package/tests/core/session-history-importer-filter.test.ts +0 -78
  299. package/tests/core/session-qrels.test.ts +0 -250
  300. package/tests/core/sqlite-event-store-replication.test.ts +0 -127
  301. package/tests/core/summary-deriver.test.ts +0 -66
  302. package/tests/extensions/embedder-warning-suppression.test.ts +0 -84
  303. package/tests/extensions/endless-memory-extension-boundary.test.ts +0 -17
  304. package/tests/extensions/endless-memory-services.test.ts +0 -325
  305. package/tests/extensions/mcp-context-tools.test.ts +0 -905
  306. package/tests/extensions/mcp-extension-boundary.test.ts +0 -21
  307. package/tests/extensions/mcp-package-build.test.ts +0 -22
  308. package/tests/extensions/mcp-project-aware-tools.test.ts +0 -102
  309. package/tests/extensions/shared-memory-extension-boundary.test.ts +0 -24
  310. package/tests/extensions/shared-memory-services.test.ts +0 -309
  311. package/tests/extensions/vector-extension-boundary.test.ts +0 -21
  312. package/tsconfig.json +0 -24
  313. package/vitest.config.ts +0 -15
@@ -1,501 +0,0 @@
1
- # claude-memory-layer Refactoring Milestones & Issue Breakdown
2
-
3
- ## 목적
4
- 이 문서는 `claude-memory-layer`를 thin-core 구조로 리팩터링하기 위한 실행 가능한 milestone과 issue 단위 작업 목록이다.
5
-
6
- 핵심 목표:
7
- - 구조를 설명 가능하게 만든다
8
- - 코어를 얇게 만든다
9
- - Claude 통합은 유지한다
10
- - 무거운 기능은 확장 계층으로 밀어낸다
11
- - 완전 재작성이 아니라 단계적 이전을 한다
12
-
13
- ---
14
-
15
- # Milestone 0. Architecture Alignment
16
-
17
- ## 목표
18
- 문서/용어/현실 구현을 맞춘다. 코드 수정 전에 반드시 필요하다.
19
-
20
- ### Issue 0-1. Canonical storage 정의 문서화
21
- **내용**
22
- - SQLite / LanceDB / markdown mirror / shared / Mongo sync의 역할을 명시
23
- - canonical vs derived 레이어 정의
24
-
25
- **산출물**
26
- - 아키텍처 문서 업데이트
27
- - 저장 계층 표
28
-
29
- **완료 기준**
30
- - 신규 기여자가 어떤 데이터가 원본인지 1분 내 이해 가능
31
-
32
- ### Issue 0-2. README drift 정리
33
- **내용**
34
- - DuckDB/Bun/MCP 관련 설명을 실제 구현과 맞춤
35
- - 현재 shipped feature vs experimental feature 분리
36
-
37
- **완료 기준**
38
- - README와 실제 엔트리포인트/의존성이 일치
39
-
40
- ### Issue 0-3. 용어 정리
41
- **내용**
42
- - event / fact / summary / rule / shared memory / citation / retrieval trace 용어 정의
43
-
44
- **완료 기준**
45
- - 문서와 코드 naming이 서로 충돌하지 않음
46
-
47
- ---
48
-
49
- # Milestone 1. Domain Model Separation
50
-
51
- ## 목표
52
- 현재 혼합된 메모리 개념을 raw / fact / summary 계층으로 분리한다.
53
-
54
- ### Issue 1-1. `RawEvent` 타입 도입
55
- **내용**
56
- - prompt / assistant / tool output / session marker / imported records를 단일 raw event 모델로 정리
57
-
58
- **완료 기준**
59
- - 모든 ingest path가 raw event로 normalize 가능
60
-
61
- ### Issue 1-2. `MemoryFact` 타입 도입
62
- **내용**
63
- - 검색 단위로 쓸 작은 fact 모델 정의
64
- - source event reference 포함
65
-
66
- **완료 기준**
67
- - 최소 3개 ingest path(프롬프트/응답/툴 출력)에서 fact derivation 가능
68
-
69
- ### Issue 1-3. `MemorySummary` 타입 도입
70
- **내용**
71
- - turn/session/project/continuity summary 타입 정리
72
-
73
- **완료 기준**
74
- - 요약 결과가 raw event/fact와 분리 저장됨
75
-
76
- ### Issue 1-4. Retrieval result type 표준화
77
- **내용**
78
- - `fact`, `summary`, `tool_evidence`, `source`, `rule` 타입 도입
79
-
80
- **완료 기준**
81
- - search API 응답이 통일된 envelope를 사용
82
-
83
- ---
84
-
85
- # Milestone 2. Core Engine Extraction
86
-
87
- ## 목표
88
- `MemoryService`를 작은 조립층으로 축소하고 핵심 기능을 분리한다.
89
-
90
- ### Issue 2-1. `ProjectRegistryService` 추출
91
- **내용**
92
- - project path hash, storage path, session registry 관리 분리
93
-
94
- **완료 기준**
95
- - `memory-service.ts`에서 registry 관련 책임 제거
96
-
97
- ### Issue 2-2. `MemoryIngestService` 추출
98
- **내용**
99
- - raw event append 경로 분리
100
- - privacy filter / capture normalization 연결
101
-
102
- **완료 기준**
103
- - append 관련 코드가 별도 서비스에 위치
104
-
105
- ### Issue 2-3. `FactDeriver` 추출
106
- **내용**
107
- - raw event → fact 변환 책임 분리
108
-
109
- **완료 기준**
110
- - fact derivation이 독립 테스트 가능
111
-
112
- ### Issue 2-4. `SummaryDeriver` 추출
113
- **내용**
114
- - turn/session/project 요약 생성 로직 분리
115
-
116
- **완료 기준**
117
- - summary 로직이 retrieval/index 로직과 분리됨
118
-
119
- ### Issue 2-5. `RetrievalEngine` 추출
120
- **내용**
121
- - 검색/확장/소스해석 책임 분리
122
-
123
- **완료 기준**
124
- - `MemoryService`는 retrieval orchestration만 함
125
-
126
- ---
127
-
128
- # Milestone 3. Claude Adapter Isolation
129
-
130
- ## 목표
131
- Claude-specific lifecycle을 adapter 레이어로 분리한다.
132
-
133
- ### Issue 3-1. `src/adapters/claude/hooks` 생성
134
- **내용**
135
- - 기존 `src/hooks/*` 파일을 새 adapter 위치로 이동 또는 re-export
136
-
137
- **완료 기준**
138
- - hook entrypoint가 adapter layer 아래 존재
139
-
140
- ### Issue 3-2. transcript parsing 분리
141
- **내용**
142
- - stop/session-end에서 사용하는 transcript reconstruction 로직 분리
143
-
144
- **완료 기준**
145
- - transcript 관련 유틸이 hook handler와 분리됨
146
-
147
- ### Issue 3-3. capture policy 분리
148
- **내용**
149
- - 어떤 prompt/tool/response를 저장할지 정책 모듈화
150
-
151
- **완료 기준**
152
- - capture heuristics가 테스트 가능한 정책 모듈이 됨
153
-
154
- ### Issue 3-4. context injection formatter 분리
155
- **내용**
156
- - additionalContext 생성 로직을 retrieval engine과 분리
157
-
158
- **완료 기준**
159
- - 검색 결과와 Claude용 문자열 포맷팅이 분리됨
160
-
161
- ---
162
-
163
- # Milestone 4. Storage & Index Simplification
164
-
165
- ## 목표
166
- SQLite 중심 구조를 선명히 하고, vector 계층을 optional accelerator로 명확히 한다.
167
-
168
- ### Issue 4-1. storage role matrix 작성 및 코드 반영
169
- **내용**
170
- - SQLite canonical / LanceDB derived / markdown journal projection 규칙 반영
171
-
172
- **완료 기준**
173
- - 코드 주석과 문서가 같은 storage 역할을 설명
174
-
175
- ### Issue 4-2. SQLite-only fallback 공식화
176
- **내용**
177
- - vector index 없이도 최소 search / recent context 동작
178
-
179
- **완료 기준**
180
- - vector 미초기화 상태 테스트 통과
181
-
182
- ### Issue 4-3. vector 계층 네임스페이스 이동
183
- **내용**
184
- - `vector-store`, `vector-worker`, `embedder` 등을 `extensions/vector`로 이동
185
-
186
- **완료 기준**
187
- - core 모듈이 vector 구현 세부사항에 직접 의존하지 않음
188
-
189
- ### Issue 4-4. stable derived key 도입
190
- **내용**
191
- - fact / summary / imported transcript memory에 deterministic key 부여
192
-
193
- **완료 기준**
194
- - dedupe/rebuild가 key 기반으로 가능
195
-
196
- ---
197
-
198
- # Milestone 5. Retrieval UX Productization
199
-
200
- ## 목표
201
- 검색 품질보다 “검색 결과를 설명 가능하고 쓰기 쉽게” 만든다.
202
-
203
- ### Issue 5-1. `search -> expand -> source` API 설계
204
- **내용**
205
- - search 결과
206
- - expanded context
207
- - source drill-down을 별도 surface로 노출
208
-
209
- **완료 기준**
210
- - CLI/API/dashboard 모두 같은 mental model 사용
211
-
212
- ### Issue 5-2. retrieval reason 표준화
213
- **내용**
214
- - semantic / keyword / recent / continuity / entity / fallback reason taxonomy 도입
215
-
216
- **완료 기준**
217
- - 모든 search result에 최소 1개 reason 포함
218
-
219
- ### Issue 5-3. result type badge 추가
220
- **내용**
221
- - fact / summary / tool evidence / source 구분
222
-
223
- **완료 기준**
224
- - 사용자가 결과 종류를 즉시 이해 가능
225
-
226
- ### Issue 5-4. helpfulness minimal loop
227
- **내용**
228
- - shown / clicked / expanded / accepted / reused 등 최소 signal 수집
229
-
230
- **완료 기준**
231
- - retrieval trace와 연결된 lightweight feedback 저장 가능
232
-
233
- ---
234
-
235
- # Milestone 6. Extensions Isolation
236
-
237
- ## 목표
238
- 무거운 기능을 core 바깥으로 이동한다.
239
-
240
- ### Issue 6-1. shared memory 모듈 분리
241
- **내용**
242
- - shared event store / shared vector / promoter를 `extensions/shared-memory`로 이동
243
-
244
- **완료 기준**
245
- - shared 기능 OFF 상태에서 core 영향 최소
246
-
247
- ### Issue 6-2. Mongo sync 분리
248
- **내용**
249
- - sync 관련 설정/worker/ops 스크립트 경계 분리
250
-
251
- **완료 기준**
252
- - Mongo dependency가 core 실행 경로에서 제거됨
253
-
254
- ### Issue 6-3. MCP extension 분리
255
- **내용**
256
- - MCP server/tools/handlers를 `extensions/mcp`로 이동
257
-
258
- **완료 기준**
259
- - MCP 비활성 상태가 정상 기본 경로가 됨
260
-
261
- ### Issue 6-4. continuity/endless mode 분리
262
- **내용**
263
- - working set / consolidated / continuity 관련 기능을 `extensions/continuity`로 이동
264
-
265
- **완료 기준**
266
- - core search/ingest와 endless mode가 느슨하게 결합됨
267
-
268
- ---
269
-
270
- # Milestone 7. Apps Cleanup
271
-
272
- ## 목표
273
- CLI / server / dashboard를 app layer로 정리한다.
274
-
275
- ### Issue 7-1. CLI app 경계 정리
276
- **내용**
277
- - CLI는 parsing/composition만 담당
278
- - business logic 최소화
279
-
280
- ### Issue 7-2. server app 경계 정리
281
- **내용**
282
- - API route와 core service composition 분리
283
-
284
- ### Issue 7-3. dashboard asset modularization
285
- **내용**
286
- - `app.js` 단일 파일을 기능별 모듈로 분해
287
-
288
- **완료 기준**
289
- - Search / Sessions / Health / Projects 등 기능별 분리
290
-
291
- ---
292
-
293
- # Milestone 8. Code-Aware Memory Anchors (Optional, Recommended)
294
-
295
- ## 목표
296
- full code graph 대신 가벼운 code-aware memory를 도입한다.
297
-
298
- ### Issue 8-1. file path refs 도입
299
- **내용**
300
- - memory fact가 관련 파일 경로를 참조 가능하게 함
301
-
302
- ### Issue 8-2. symbol refs 도입
303
- **내용**
304
- - 함수/클래스/모듈명 anchor를 metadata에 저장
305
-
306
- ### Issue 8-3. commit/diff refs 도입
307
- **내용**
308
- - imported or observed coding actions에 git context 연결
309
-
310
- **완료 기준**
311
- - “이 기억이 어떤 코드와 관련 있는지”를 가볍게 설명 가능
312
-
313
- ---
314
-
315
- # Milestone 9. Hardening & Migration Finish
316
-
317
- ## 목표
318
- 새 구조를 기본 구조로 전환하고 legacy compatibility를 줄인다.
319
-
320
- ### Issue 9-1. compat layer 축소
321
- **내용**
322
- - re-export/legacy wrapper 단계적으로 제거
323
-
324
- ### Issue 9-2. test matrix 재정리
325
- **내용**
326
- - core
327
- - adapters/claude
328
- - extensions
329
- - apps
330
- 별로 테스트 층 구분
331
-
332
- ### Issue 9-3. docs refresh
333
- **내용**
334
- - architecture
335
- - operations
336
- - install
337
- - extension status 표기
338
-
339
- ### Issue 9-4. release checklist 업데이트
340
- **내용**
341
- - 어떤 extension이 stable/experimental인지 릴리즈 노트에 명시
342
-
343
- ---
344
-
345
- # 추천 우선순위
346
-
347
- ## 즉시 착수 권장
348
- 1. Milestone 0
349
- 2. Milestone 1
350
- 3. Milestone 2
351
- 4. Milestone 3
352
-
353
- ## 다음 단계
354
- 5. Milestone 4
355
- 6. Milestone 5
356
- 7. Milestone 6
357
-
358
- ## 선택적 후속
359
- 8. Milestone 7
360
- 9. Milestone 8
361
- 10. Milestone 9
362
-
363
- ---
364
-
365
- # 90일 추천 로드맵
366
-
367
- ## 1~2주
368
- - Milestone 0 완료
369
- - 핵심 용어 및 문서 정리
370
-
371
- ## 3~5주
372
- - Milestone 1~2 진행
373
- - 도메인 타입과 core service 분리
374
-
375
- ## 6~8주
376
- - Milestone 3~4 진행
377
- - Claude adapter와 vector/storage 경계 정리
378
-
379
- ## 9~10주
380
- - Milestone 5 진행
381
- - retrieval UX/API 정리
382
-
383
- ## 11~12주
384
- - Milestone 6 시작
385
- - shared/MCP/Mongo/continuity extension 분리
386
-
387
- ---
388
-
389
- # 현재 구현/검증 상태 (2026-05-04 KST)
390
-
391
- ## 이번 thin-core refactor에서 반영된 주요 항목
392
- - `src/core/registry/`와 `src/services/memory-service-registry.ts`로 project path/hash/session/default/lightweight service-locator 책임을 분리했다.
393
- - `src/services/memory-service-config.ts`가 disabled/enabled shared-store 기본값을 소유하고, `memory-service.ts`는 public compatibility export만 보존한다.
394
- - `src/core/model/`에 raw/fact/summary/rule/retrieval result 계층 타입을 추가했다.
395
- - `src/core/derive/fact-deriver.ts`와 summary derivation 흐름으로 deterministic derivation의 첫 slice를 분리했다.
396
- - `src/core/engine/` 아래로 `MemoryService`의 주요 책임을 분리했다.
397
- - `memory-engine-services.ts`: SQLite/vector/embedder/retrieval/ingest/query bundle construction
398
- - `retrieval-orchestrator.ts`, `retrieval-disclosure-service.ts`, `retrieval-analytics-service.ts`, `retrieval-services.ts`
399
- - `memory-ingest-service.ts`, `memory-query-service.ts`, `memory-runtime-service.ts`
400
- - `embedding-maintenance-service.ts`; `endless-memory-services.ts`와 `shared-memory-services.ts`는 현재 `src/extensions/*` 구현을 가리키는 compatibility shim
401
- - `memory-service-composition.ts`: constructor-time service graph wiring
402
- - `MemoryService`는 현재 대부분 public compatibility facade + project state + composition assignment + service delegation 역할만 남겼다.
403
- - Claude hook 구현은 `src/adapters/claude/hooks/`로 이동했고, `src/hooks/*`는 compatibility wrapper로 축소했다.
404
- - Progressive retrieval disclosure는 service/API/CLI/dashboard까지 `search -> expand -> source` mental model로 연결했다.
405
- - Shared disclosure drill-down은 `shared:<entryId>`를 local raw event처럼 위장하지 않고 shared provenance를 명시한다.
406
- - `Retriever`에 deep retrieval 품질 개선용 intent rewrite merge, keyword rerank, graph-hop expansion, project scope filtering을 추가했다.
407
- - `@modelcontextprotocol/sdk@1.29.0` 기준으로 MCP `CallToolResult` 타입을 명시해 full typecheck를 복구했다.
408
-
409
- ## 최근 완료 commit checkpoint
410
- ```text
411
- 2bd32b5 refactor(memory): centralize shared store defaults
412
- 4f6ccc8 test(memory): document project registry shared config caching
413
- 099dad1 [verified] Extract memory service registry
414
- ddea95e refactor(memory): extract service composition wiring
415
- 54c360e refactor(memory): route embedding model facade through maintenance service
416
- e776d57 refactor(memory): delegate graduation access through runtime service
417
- 36313a6 refactor(memory): move endless context formatting
418
- 28e144d refactor(memory): move ingest pipeline to ingest service
419
- 265899a refactor(memory): extract query service facades
420
- 53354e3 refactor(memory): extract memory runtime service
421
- 0b5bde4 refactor(memory): extract embedding maintenance service
422
- 95d2075 Extract endless memory services
423
- 6da4ddb refactor(memory): extract shared memory services
424
- c19757d refactor(memory): bundle engine service construction
425
- e186ee4 refactor(claude): move semantic daemon behind adapter boundary
426
- 8071313 refactor(claude): move hook implementations behind adapter boundary
427
- 50ff74e feat(dashboard): show shared retrieval provenance
428
- 518bdda feat(cli): show shared retrieval results
429
- c58f50f fix(retrieval): keep disclosure drill-down lightweight
430
- 81bbf70 refactor(retrieval): bundle retrieval services
431
- ```
432
-
433
- ## 현재 milestone status
434
- - **Milestone 0 — Architecture Alignment:** 부분 완료. 계획/비교 문서는 존재하지만 README drift와 extension stability 표시는 추가 정리가 필요하다.
435
- - **Milestone 1 — Domain Model Separation:** 부분 완료. raw/fact/summary/retrieval result 타입과 일부 derivation은 분리됐지만 fact/summary 저장 모델의 제품화는 남아 있다.
436
- - **Milestone 2 — Core Engine Extraction:** 큰 진전. `MemoryService`의 retrieval/ingest/query/runtime/shared/endless/embedding/composition/registry 책임이 대부분 별도 서비스로 이동했다.
437
- - **Milestone 3 — Claude Adapter Isolation:** 큰 진전. hooks/transcript/semantic-daemon adapter boundary가 생겼다. capture policy 추가 분리는 후속 후보다.
438
- - **Milestone 4 — Storage & Index Simplification:** 부분 완료. SQLite canonical / vector derived 관점은 구현에 반영됐고 Embedder implementation은 `src/extensions/vector/`로 이동했다. VectorStore/VectorWorker 물리 이동은 남아 있다.
439
- - **Milestone 5 — Retrieval UX Productization:** 큰 진전. service/API/CLI/dashboard disclosure surface가 있다. helpfulness feedback loop의 제품화는 후속이다.
440
- - **Milestone 6 — Extensions Isolation:** 진행 중. shared memory service implementation은 `src/extensions/shared-memory/`로, endless memory service implementation은 `src/extensions/endless-memory/`로, MCP implementation은 `src/extensions/mcp/`로, Embedder implementation은 `src/extensions/vector/`로 이동했고 각각 기존 core/engine 또는 app path compatibility shim을 남겼다. VectorStore/VectorWorker 물리 이동은 후속이다.
441
- - **Milestone 7~9:** 후속 hardening/release cleanup 단계.
442
-
443
- ## 통과한 검증
444
- ```bash
445
- npm test -- --run tests/memory-service-config.test.ts tests/memory-service-registry.test.ts tests/memory-service-composition.test.ts
446
- # 3 files / 12 tests passed
447
-
448
- npm run typecheck -- --pretty false
449
- # passed
450
-
451
- git diff --check
452
- # passed
453
-
454
- npm test -- --run
455
- # 39 files / 172 tests passed
456
-
457
- npm run build
458
- # Build complete
459
-
460
- graphify update .
461
- # graphify-out updated: 1263 nodes, 2613 edges, 48 communities
462
- ```
463
-
464
- ## 현재 known status
465
- - full typecheck, full vitest suite, build가 모두 통과한다.
466
- - full test에서 새 regressions는 발견되지 않았다.
467
- - `graphify-out/`는 현재 `git status --short`에 tracked 변경으로 나타나지 않는다.
468
- - `patch` 도구의 파일 단위 자동 lint는 tsconfig project mode가 아니라 단일 파일 컴파일 방식으로 동작해 `node_modules`/target 관련 false positive를 출력할 수 있다. authoritative check는 `npm run typecheck -- --pretty false`로 본다.
469
-
470
- ## 다음 권장 slice
471
-
472
- 1. **MemoryService facade audit 마무리**
473
- - `MemoryService`에 남은 직접 상태는 `projectHash`, `projectPath`, mode flags, service field assignment 정도다.
474
- - 더 뺄 후보는 `session-history-importer`, `codex-session-history-importer`, `mcp/handlers`처럼 아직 `MemoryService`에 직접 붙어 있는 adapter/app callsite다.
475
-
476
- 2. **남은 extension 물리 이동 여부 결정**
477
- - shared/endless/MCP/Embedder는 `src/extensions/*`로 이동했고 compatibility shim을 남겼다.
478
- - 다음 후보는 VectorStore/VectorWorker 계층이며, retrieval/runtime/LanceDB와 얽혀 있어 별도 사전 조사 후 진행한다.
479
-
480
- 3. **README / release docs refresh**
481
- - 현재 shipped feature와 experimental extension을 구분했다.
482
- - shared store, endless mode, MCP, disclosure API/CLI/dashboard, Embedder extension 상태를 README에 반영했다.
483
- - 남은 후속: 정식 MCP package bin / `mcp install` command wiring 여부 결정.
484
-
485
- 4. **Generated graph/code-map artifact 정책 결정**
486
- - `graphify-out/`를 버전 관리할지, 생성물로 유지할지 명확히 한다.
487
-
488
- ---
489
-
490
- # 최종 판단
491
-
492
- 이 계획에서 가장 중요한 것은 기능 삭제가 아니다.
493
- 오히려 **기능의 위치를 올바르게 재배치하는 것**이다.
494
-
495
- 즉:
496
- - 코어는 더 얇게
497
- - Claude 통합은 더 또렷하게
498
- - 확장은 더 안전하게
499
- - 문서는 더 정직하게
500
-
501
- 이 네 가지가 맞춰지면 `claude-memory-layer`는 지금보다 훨씬 강한 장기 구조를 갖게 된다.