claude-memory-layer 1.0.27 → 1.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +7 -0
- package/AGENTS.md +11 -0
- package/README.md +374 -49
- package/benchmarks/replay/anonymized-real-sessions.json +48 -0
- package/dist/cli/index.js +10097 -6003
- package/dist/cli/index.js.map +4 -4
- package/dist/core/index.js +9745 -5587
- package/dist/core/index.js.map +4 -4
- package/dist/hooks/post-tool-use.js +6545 -5270
- package/dist/hooks/post-tool-use.js.map +4 -4
- package/dist/hooks/semantic-daemon.js +6646 -5354
- package/dist/hooks/semantic-daemon.js.map +4 -4
- package/dist/hooks/session-end.js +6618 -5347
- package/dist/hooks/session-end.js.map +4 -4
- package/dist/hooks/session-start.js +6619 -5354
- package/dist/hooks/session-start.js.map +4 -4
- package/dist/hooks/stop.js +6614 -5325
- package/dist/hooks/stop.js.map +4 -4
- package/dist/hooks/user-prompt-submit.js +6702 -5356
- package/dist/hooks/user-prompt-submit.js.map +4 -4
- package/dist/index.js +13537 -0
- package/dist/index.js.map +7 -0
- package/dist/mcp/index.js +20770 -0
- package/dist/mcp/index.js.map +7 -0
- package/dist/server/api/index.js +6632 -5319
- package/dist/server/api/index.js.map +4 -4
- package/dist/server/index.js +6667 -5340
- package/dist/server/index.js.map +4 -4
- package/dist/services/memory-service.js +6568 -5350
- package/dist/services/memory-service.js.map +4 -4
- package/dist/ui/assets/js/bootstrap.js +244 -0
- package/dist/ui/assets/js/chat.js +373 -0
- package/dist/ui/assets/js/disclosure.js +232 -0
- package/dist/ui/assets/js/modals.js +298 -0
- package/dist/ui/assets/js/overview.js +655 -0
- package/dist/ui/assets/js/state.js +72 -0
- package/dist/ui/assets/js/views.js +468 -0
- package/dist/ui/index.html +43 -1
- package/dist/ui/index.ts +3 -0
- package/dist/ui/style.css +222 -0
- package/docs/ARCHITECTURE_COMPARISON_AND_RECOMMENDATIONS.md +627 -0
- package/docs/HERMES_MEMORY_INGESTION_ANALYSIS.md +440 -0
- package/docs/MEMORY_USEFULNESS_AUDIT.md +371 -0
- package/docs/MEMORY_USEFULNESS_AUDIT_RAW.json +80 -0
- package/docs/MEMSEARCH_PROJECT_STRUCTURE_ANALYSIS.md +333 -0
- package/docs/PRODUCT_VALIDATION_MATRIX.md +82 -0
- package/docs/PROJECT_STRUCTURE_ANALYSIS.md +421 -0
- package/docs/REFACTORING_MILESTONES_AND_ISSUES.md +501 -0
- package/docs/REFACTORING_PLAN_THIN_CORE.md +414 -0
- package/docs/REFERENCE_PROJECT_ANALYSES.md +25 -0
- package/docs/SUPERLOCALMEMORY_PROJECT_STRUCTURE_ANALYSIS.md +452 -0
- package/docs/TARGET_ARCHITECTURE_AND_FOLDER_STRUCTURE.md +446 -0
- package/docs/architecture/comparison-index.md +47 -0
- package/docs/reports/codex-real-data-validation-20260505T040447Z.md +46 -0
- package/package.json +12 -5
- package/scripts/build.ts +25 -8
- package/scripts/generate-session-qrels.ts +126 -0
- package/scripts/postinstall-embedding-backend.cjs +142 -0
- package/scripts/replay-retrieval-benchmark.ts +69 -0
- package/specs/thin-core-refactor/context.md +275 -0
- package/specs/thin-core-refactor/plan.md +536 -0
- package/specs/thin-core-refactor/spec.md +465 -0
- package/src/adapters/claude/capture/index.ts +3 -0
- package/src/adapters/claude/context/index.ts +3 -0
- package/src/adapters/claude/hooks/index.ts +21 -0
- package/src/adapters/claude/hooks/post-tool-use.ts +239 -0
- package/src/adapters/claude/hooks/prompt-injection-policy.ts +104 -0
- package/src/adapters/claude/hooks/semantic-daemon-client.ts +209 -0
- package/src/adapters/claude/hooks/semantic-daemon.ts +283 -0
- package/src/adapters/claude/hooks/session-end.ts +59 -0
- package/src/adapters/claude/hooks/session-start.ts +73 -0
- package/src/adapters/claude/hooks/stop.ts +128 -0
- package/src/adapters/claude/hooks/user-prompt-submit.ts +361 -0
- package/src/adapters/claude/index.ts +4 -0
- package/src/adapters/claude/transcript/index.ts +4 -0
- package/src/adapters/claude/transcript/transcript-reader.ts +57 -0
- package/src/adapters/claude/transcript/turn-reconstructor.ts +65 -0
- package/src/apps/cli/claude-settings-hooks.ts +138 -0
- package/src/apps/cli/codex-import-runner.ts +125 -0
- package/src/apps/cli/codex-validation-output.ts +95 -0
- package/src/apps/cli/hermes-import-runner.ts +130 -0
- package/src/apps/cli/hermes-validation-output.ts +91 -0
- package/src/apps/cli/index.ts +1731 -0
- package/src/apps/cli/mcp-install.ts +106 -0
- package/src/apps/cli/retrieval-disclosure-output.ts +196 -0
- package/src/apps/dashboard/assets/js/bootstrap.js +244 -0
- package/src/apps/dashboard/assets/js/chat.js +373 -0
- package/src/apps/dashboard/assets/js/disclosure.js +232 -0
- package/src/apps/dashboard/assets/js/modals.js +298 -0
- package/src/apps/dashboard/assets/js/overview.js +655 -0
- package/src/apps/dashboard/assets/js/state.js +72 -0
- package/src/apps/dashboard/assets/js/views.js +468 -0
- package/src/{ui → apps/dashboard}/index.html +43 -1
- package/src/apps/dashboard/index.ts +3 -0
- package/src/{ui → apps/dashboard}/style.css +222 -0
- package/src/apps/index.ts +5 -0
- package/src/apps/server/api/chat.ts +244 -0
- package/src/apps/server/api/citations.ts +105 -0
- package/src/apps/server/api/events.ts +137 -0
- package/src/apps/server/api/health.ts +53 -0
- package/src/apps/server/api/index.ts +26 -0
- package/src/apps/server/api/projects.ts +74 -0
- package/src/apps/server/api/search.ts +184 -0
- package/src/apps/server/api/sessions.ts +115 -0
- package/src/apps/server/api/stats.ts +723 -0
- package/src/apps/server/api/turns.ts +143 -0
- package/src/apps/server/api/utils.ts +65 -0
- package/src/apps/server/index.ts +111 -0
- package/src/cli/index.ts +2 -1311
- package/src/cli/retrieval-disclosure-output.ts +2 -0
- package/src/compat/index.ts +5 -0
- package/src/core/derive/fact-deriver.ts +170 -0
- package/src/core/derive/index.ts +2 -0
- package/src/core/derive/summary-deriver.ts +76 -0
- package/src/core/embedder.ts +4 -152
- package/src/core/engine/embedding-maintenance-service.ts +187 -0
- package/src/core/engine/endless-memory-services.ts +4 -0
- package/src/core/engine/index.ts +19 -0
- package/src/core/engine/memory-engine-services.ts +170 -0
- package/src/core/engine/memory-ingest-service.ts +317 -0
- package/src/core/engine/memory-query-service.ts +173 -0
- package/src/core/engine/memory-runtime-service.ts +162 -0
- package/src/core/engine/memory-service-composition.ts +231 -0
- package/src/core/engine/retrieval-analytics-service.ts +181 -0
- package/src/core/engine/retrieval-disclosure-service.ts +420 -0
- package/src/core/engine/retrieval-orchestrator.ts +377 -0
- package/src/core/engine/retrieval-services.ts +176 -0
- package/src/core/engine/shared-memory-services.ts +4 -0
- package/src/core/entity-repo.ts +1 -3
- package/src/core/event-store.ts +3 -3
- package/src/core/evidence-aligner.ts +2 -2
- package/src/core/external-market-context.ts +582 -0
- package/src/core/graduation.ts +2 -3
- package/src/core/index.ts +21 -0
- package/src/core/matcher.ts +2 -4
- package/src/core/model/memory-fact.ts +30 -0
- package/src/core/model/memory-rule.ts +14 -0
- package/src/core/model/memory-summary.ts +21 -0
- package/src/core/model/raw-event.ts +28 -0
- package/src/core/model/retrieval-result.ts +35 -0
- package/src/core/privacy/filter.ts +21 -10
- package/src/core/product-validation-matrix.ts +314 -0
- package/src/core/progressive-retriever.ts +1 -2
- package/src/core/registry/project-path.ts +54 -0
- package/src/core/registry/session-registry.ts +69 -0
- package/src/core/replay-evaluator.ts +625 -0
- package/src/core/retrieval-benchmark.ts +117 -0
- package/src/core/retrieval-quality.ts +109 -0
- package/src/core/retriever.ts +53 -15
- package/src/core/session-qrels.ts +360 -0
- package/src/core/shared-event-store.ts +1 -1
- package/src/core/sqlite-event-store.ts +35 -11
- package/src/core/task/blocker-resolver.ts +2 -2
- package/src/core/task/task-resolver.ts +0 -1
- package/src/core/vector-outbox.ts +1 -10
- package/src/core/vector-worker.ts +1 -1
- package/src/extensions/endless-memory/endless-memory-services.ts +350 -0
- package/src/extensions/endless-memory/index.ts +1 -0
- package/src/extensions/index.ts +5 -0
- package/src/extensions/mcp/handlers.ts +960 -0
- package/src/extensions/mcp/index.ts +48 -0
- package/src/extensions/mcp/tools.ts +252 -0
- package/src/extensions/shared-memory/index.ts +1 -0
- package/src/extensions/shared-memory/shared-memory-services.ts +211 -0
- package/src/extensions/vector/embedder.ts +197 -0
- package/src/extensions/vector/index.ts +1 -0
- package/src/hooks/post-tool-use.ts +3 -236
- package/src/hooks/semantic-daemon-client.ts +1 -208
- package/src/hooks/semantic-daemon.ts +6 -271
- package/src/hooks/session-end.ts +4 -79
- package/src/hooks/session-start.ts +4 -73
- package/src/hooks/stop.ts +3 -173
- package/src/hooks/user-prompt-submit.ts +3 -338
- package/src/index.ts +13 -0
- package/src/mcp/handlers.ts +2 -212
- package/src/mcp/index.ts +3 -46
- package/src/mcp/tools.ts +2 -78
- package/src/server/api/chat.ts +2 -244
- package/src/server/api/citations.ts +2 -105
- package/src/server/api/events.ts +2 -137
- package/src/server/api/health.ts +2 -53
- package/src/server/api/index.ts +2 -26
- package/src/server/api/projects.ts +2 -74
- package/src/server/api/search.ts +2 -102
- package/src/server/api/sessions.ts +2 -115
- package/src/server/api/stats.ts +2 -724
- package/src/server/api/turns.ts +2 -143
- package/src/server/api/utils.ts +2 -46
- package/src/server/index.ts +2 -100
- package/src/services/bootstrap-organizer.ts +46 -26
- package/src/services/codex-session-history-importer.ts +521 -29
- package/src/services/hermes-session-history-importer.ts +733 -0
- package/src/services/memory-service-config.ts +36 -0
- package/src/services/memory-service-registry.ts +150 -0
- package/src/services/memory-service.ts +211 -1325
- package/src/services/session-history-importer.ts +58 -14
- package/tests/README.md +23 -0
- package/tests/adapters/claude/claude-semantic-daemon-adapter.test.ts +54 -0
- package/tests/adapters/claude/claude-transcript-reconstructor.test.ts +98 -0
- package/tests/adapters/claude-hook-prompt-injection-policy.test.ts +99 -0
- package/tests/apps/app-layer-boundary.test.ts +48 -0
- package/tests/apps/claude-settings-hooks.test.ts +107 -0
- package/tests/apps/cli-disclosure-output.test.ts +212 -0
- package/tests/apps/codex-import-runner.test.ts +99 -0
- package/tests/apps/codex-validation-output.test.ts +100 -0
- package/tests/apps/hermes-import-runner.test.ts +99 -0
- package/tests/apps/mcp-install-command.test.ts +59 -0
- package/tests/apps/package-build-entrypoints.test.ts +30 -0
- package/tests/apps/postinstall-embedding-backend.test.ts +167 -0
- package/tests/apps/search-api-disclosure.test.ts +162 -0
- package/tests/apps/stats-api-lightweight.test.ts +67 -0
- package/tests/apps/ui-disclosure-output.test.ts +140 -0
- package/tests/{bootstrap-organizer.test.ts → core/bootstrap-organizer.test.ts} +1 -1
- package/tests/{canonical-key.test.ts → core/canonical-key.test.ts} +1 -1
- package/tests/core/codex-session-history-importer-validation.test.ts +185 -0
- package/tests/{consolidation-worker.test.ts → core/consolidation-worker.test.ts} +2 -2
- package/tests/core/embedding-maintenance-service.test.ts +282 -0
- package/tests/{evidence-aligner.test.ts → core/evidence-aligner.test.ts} +1 -1
- package/tests/core/external-market-context.test.ts +209 -0
- package/tests/core/fact-deriver.test.ts +79 -0
- package/tests/core/hermes-session-history-importer-validation.test.ts +609 -0
- package/tests/{ingest-interceptor.test.ts → core/ingest-interceptor.test.ts} +1 -1
- package/tests/{markdown-mirror.test.ts → core/markdown-mirror.test.ts} +2 -2
- package/tests/{matcher.test.ts → core/matcher.test.ts} +1 -1
- package/tests/{md-mirror.test.ts → core/md-mirror.test.ts} +2 -2
- package/tests/core/memory-engine-services.test.ts +240 -0
- package/tests/core/memory-ingest-service.test.ts +296 -0
- package/tests/core/memory-query-service.test.ts +129 -0
- package/tests/core/memory-runtime-service.test.ts +201 -0
- package/tests/core/memory-service-composition.test.ts +192 -0
- package/tests/core/memory-service-config.test.ts +41 -0
- package/tests/core/memory-service-facade.test.ts +30 -0
- package/tests/core/memory-service-registry.test.ts +206 -0
- package/tests/core/product-validation-matrix.test.ts +61 -0
- package/tests/core/project-registry.test.ts +78 -0
- package/tests/core/replay-evaluator.test.ts +181 -0
- package/tests/core/retrieval-analytics-service.test.ts +210 -0
- package/tests/core/retrieval-benchmark.test.ts +93 -0
- package/tests/core/retrieval-disclosure-service.test.ts +264 -0
- package/tests/core/retrieval-orchestrator.test.ts +403 -0
- package/tests/core/retrieval-quality.test.ts +31 -0
- package/tests/core/retrieval-services.test.ts +185 -0
- package/tests/{retriever-fallback-chain.test.ts → core/retriever-fallback-chain.test.ts} +3 -3
- package/tests/{retriever-strategy-scope.test.ts → core/retriever-strategy-scope.test.ts} +70 -3
- package/tests/{retriever.memu-adoption.test.ts → core/retriever.memu-adoption.test.ts} +3 -3
- package/tests/core/session-history-importer-filter.test.ts +78 -0
- package/tests/core/session-qrels.test.ts +250 -0
- package/tests/{sqlite-event-store-replication.test.ts → core/sqlite-event-store-replication.test.ts} +36 -1
- package/tests/core/summary-deriver.test.ts +66 -0
- package/tests/extensions/embedder-warning-suppression.test.ts +53 -0
- package/tests/extensions/endless-memory-extension-boundary.test.ts +17 -0
- package/tests/extensions/endless-memory-services.test.ts +325 -0
- package/tests/extensions/mcp-context-tools.test.ts +905 -0
- package/tests/extensions/mcp-extension-boundary.test.ts +21 -0
- package/tests/extensions/mcp-package-build.test.ts +22 -0
- package/tests/extensions/mcp-project-aware-tools.test.ts +102 -0
- package/tests/extensions/shared-memory-extension-boundary.test.ts +24 -0
- package/tests/extensions/shared-memory-services.test.ts +309 -0
- package/tests/extensions/vector-extension-boundary.test.ts +21 -0
- package/.claude/settings.local.json +0 -25
- package/.npm-cache/_cacache/content-v2/sha512/04/76/c098f88dfe584a2b80870bff7421b05d17d3d9ee1027f77772332a22d3f93a9a57101a2855107f6ad82077a818bba912b2bc317f2361b5ddb09ad284d9ce +0 -0
- package/.npm-cache/_cacache/content-v2/sha512/60/25/d2ecd39cfc7cab58351162814be77f935c6d6491c10c3745d456da7ddb2117ffd90c10e53fe3c0f1ed16b403307841543634504398b16ee4e6b6dd8e0c45 +0 -0
- package/.npm-cache/_cacache/index-v5/2b/9a/7f8f40206ed8a2e0a84efaa953ccaed1f5d001e14b931083f2e7a0738007 +0 -2
- package/.npm-cache/_cacache/index-v5/2e/d9/fcfa5c6a6abdc2a3644ab84a95936047298c465a2f47ee03db8f7fe1e946 +0 -3
- package/.npm-cache/_cacache/index-v5/a9/42/e519633356d12d3d2f19da66a8301016d496c8f5c3e0554124aaa62dc043 +0 -2
- package/.npm-cache/_logs/2026-02-26T12_04_52_729Z-debug-0.log +0 -256
- package/.npm-cache/_logs/2026-02-26T12_05_36_835Z-debug-0.log +0 -18
- package/.npm-cache/_logs/2026-02-26T12_05_45_982Z-debug-0.log +0 -32
- package/.npm-cache/_logs/2026-02-26T12_05_48_515Z-debug-0.log +0 -260
- package/.npm-cache/_logs/2026-02-26T12_05_53_567Z-debug-0.log +0 -69
- package/.npm-cache/_update-notifier-last-checked +0 -0
- package/bootstrap-kb/decisions/decisions.md +0 -244
- package/bootstrap-kb/glossary/glossary.md +0 -46
- package/bootstrap-kb/modules/.claude-plugin.md +0 -22
- package/bootstrap-kb/modules/agents.md.md +0 -15
- package/bootstrap-kb/modules/claude.md.md +0 -15
- package/bootstrap-kb/modules/context.md.md +0 -15
- package/bootstrap-kb/modules/docs.md +0 -18
- package/bootstrap-kb/modules/handoff.md.md +0 -15
- package/bootstrap-kb/modules/package-lock.json.md +0 -15
- package/bootstrap-kb/modules/package.json.md +0 -15
- package/bootstrap-kb/modules/plan.md.md +0 -15
- package/bootstrap-kb/modules/readme.md.md +0 -15
- package/bootstrap-kb/modules/scripts.md +0 -26
- package/bootstrap-kb/modules/spec.md.md +0 -15
- package/bootstrap-kb/modules/specs.md +0 -20
- package/bootstrap-kb/modules/src.md +0 -51
- package/bootstrap-kb/modules/tests.md +0 -42
- package/bootstrap-kb/modules/tsconfig.json.md +0 -15
- package/bootstrap-kb/modules/vitest.config.ts.md +0 -15
- package/bootstrap-kb/overview/overview.md +0 -40
- package/bootstrap-kb/sources/manifest.json +0 -950
- package/bootstrap-kb/sources/manifest.md +0 -227
- package/bootstrap-kb/timeline/timeline.md +0 -57
- package/claude-memory-layer-1.0.14.tgz +0 -0
- package/d.sh +0 -3
- package/deploy.sh +0 -3
- package/dist/ui/app.js +0 -2101
- package/memory/.claude-plugin/commands/2026-02-25.md +0 -263
- package/memory/_index.md +0 -419
- package/memory/agent_response/uncategorized/2026-02-26.md +0 -176
- package/memory/agent_response/uncategorized/2026-03-03.md +0 -14
- package/memory/agent_response/uncategorized/2026-03-04.md +0 -1421
- package/memory/agent_response/uncategorized/2026-03-05.md +0 -157
- package/memory/default/uncategorized/2026-02-25.md +0 -4839
- package/memory/session_summary/uncategorized/2026-02-26.md +0 -13
- package/memory/session_summary/uncategorized/2026-03-03.md +0 -5
- package/memory/session_summary/uncategorized/2026-03-04.md +0 -50
- package/memory/specs/20260207-dashboard-upgrade/2026-02-25.md +0 -142
- package/memory/specs/citations-system/2026-02-25.md +0 -1121
- package/memory/specs/endless-mode/2026-02-25.md +0 -1392
- package/memory/specs/entity-edge-model/2026-02-25.md +0 -1263
- package/memory/specs/evidence-aligner-v2/2026-02-25.md +0 -1028
- package/memory/specs/mcp-desktop-integration/2026-02-25.md +0 -1334
- package/memory/specs/post-tool-use-hook/2026-02-25.md +0 -1164
- package/memory/specs/private-tags/2026-02-25.md +0 -1057
- package/memory/specs/progressive-disclosure/2026-02-25.md +0 -1436
- package/memory/specs/task-entity-system/2026-02-25.md +0 -924
- package/memory/specs/vector-outbox-v2/2026-02-25.md +0 -1510
- package/memory/specs/web-viewer-ui/2026-02-25.md +0 -1709
- package/memory/tool_observation/uncategorized/2026-02-26.md +0 -209
- package/memory/tool_observation/uncategorized/2026-03-03.md +0 -21
- package/memory/tool_observation/uncategorized/2026-03-04.md +0 -1033
- package/memory/tool_observation/uncategorized/2026-03-05.md +0 -33
- package/memory/user_prompt/uncategorized/2026-02-26.md +0 -25
- package/memory/user_prompt/uncategorized/2026-03-04.md +0 -634
- package/memory/user_prompt/uncategorized/2026-03-05.md +0 -6
- package/specs/optional-duckdb/context.md +0 -77
- package/specs/optional-duckdb/plan.md +0 -142
- package/specs/optional-duckdb/spec.md +0 -35
- package/src/ui/app.js +0 -2101
|
@@ -0,0 +1,501 @@
|
|
|
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`는 지금보다 훨씬 강한 장기 구조를 갖게 된다.
|