claude-memory-layer 1.0.42 → 1.0.44

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/README.md CHANGED
@@ -1,14 +1,27 @@
1
1
  # Claude Memory Layer
2
2
 
3
- Claude Code 플러그인으로, 대화 내용을 기억하여 사용할수록 똑똑해지는 AI 어시스턴트를 만듭니다.
3
+ Claude Code, Codex, Hermes, MCP 클라이언트가 함께 쓰는 **프로젝트 스코프 메모리 레이어**입니다. 대화/세션 기록을 SQLite 이벤트 저장소와 LanceDB 벡터 인덱스로 관리하고, 작업 시작 시 필요한 기억·타임라인·액션 프런티어를 privacy-safe 컨텍스트로 제공합니다.
4
4
 
5
5
  ## 개요
6
6
 
7
- Claude Memory Layer는 Claude Code에서 사용자와 AI 간의 모든 대화를 저장하고, 새로운 질문을 관련된 과거 대화를 자동으로 검색하여 컨텍스트로 제공합니다. 이를 통해:
7
+ Claude Memory Layer는 AI 에이전트의 대화와 작업 이벤트를 프로젝트별로 저장하고, 새로운 작업을 시작할관련 기억을 자동 검색해 컨텍스트로 제공합니다. 최신 npm 패키지는 단순 Claude Code hook을 넘어 다음 용도로 사용할 수 있습니다:
8
8
 
9
- - **연속성 있는 대화**: 이전 세션에서 논의한 내용을 기억
10
- - **프로젝트 맥락 이해**: 프로젝트별로 축적된 지식 활용
11
- - **개인화된 응답**: 사용자의 선호도와 패턴 학습
9
+ - **연속성 있는 대화**: 이전 세션에서 논의한 결정, 오류, 검증 결과를 검색
10
+ - **프로젝트 맥락 이해**: 프로젝트별 isolated store와 `projectPath` 기반 MCP/CLI 조회
11
+ - **다중 에이전트 호환**: Claude Code hooks + Codex/Hermes session import + MCP stdio server
12
+ - **운영형 메모리**: actions/frontier/checkpoints/facets/lessons/retention audit로 다음 작업을 이어받기
13
+ - **Perspective Memory**: 사용자/어시스턴트/서브에이전트 관점의 actor card와 observation 관리
14
+ - **신뢰 가능한 벡터 동기화**: Vector Outbox V2, worker lock, dashboard/vector-status health로 누락 복구
15
+
16
+ ## 최신 릴리스 하이라이트
17
+
18
+ - **MCP Context Navigator**: `mem-context-pack`, `mem-project-timeline`, `mem-source-ref`, `mem-import-latest`로 Hermes/Codex/Claude Desktop이 같은 프로젝트 기억을 안전하게 조회합니다.
19
+ - **Memory Operations Layer**: facet/action/frontier/checkpoint/retention/graph/lesson 도구와 CLI가 추가되어 “무엇을 다음에 해야 하는가”를 메모리에서 바로 복원합니다.
20
+ - **Honcho-inspired Perspective Memory**: actor/session membership, actor cards, perspective observations, contradiction/derived observation, perspective context/query 도구를 제공합니다.
21
+ - **Vector Outbox V2**: SQLite source write와 vector enqueue를 같은 트랜잭션으로 묶고, versioned LanceDB upsert와 stuck-job recovery를 지원합니다.
22
+ - **Dashboard 운영성 강화**: local-only 기본 bind, 선택적 password gate, Vector Health 카드, Perspective Memory aggregate 카드, retrieval trace/score breakdown을 제공합니다.
23
+ - **Codex/Hermes history ingest**: 원본 세션은 read-only validate/replay로 먼저 확인하고, 명시적 import로만 프로젝트 메모리에 반영합니다.
24
+ - **npm 설치 안정화**: `@huggingface/transformers`는 optional dependency + postinstall repair로 설치하며, CUDA 11 환경에서는 CPU-only ONNX Runtime으로 자동 복구합니다.
12
25
 
13
26
  ## 빠른 시작 (신규 프로젝트 기준)
14
27
 
@@ -286,41 +299,43 @@ MCP client가 환경에 따라 PATH를 못 찾으면 `command -v claude-memory-l
286
299
 
287
300
  ### Core Features
288
301
 
289
- - **Conversation Memory**: 사용자 프롬프트와 AI 응답 저장
290
- - **Semantic Search**: 벡터 임베딩을 통한 의미 기반 검색
291
- - **AXIOMMIND Architecture**: 7가지 원칙 기반 안정적 메모리 관리
292
- - **Memory Graduation**: L0→L4 단계별 메모리 승격
293
- - **Evidence Alignment**: 응답이 실제 기억에 기반했는지 검증
294
- - **History Import**: 기존 Claude Code 세션 기록 임포트
302
+ - **Project-scoped Conversation Memory**: Claude Code, Codex, Hermes의 user/assistant turn을 프로젝트별 SQLite store에 저장
303
+ - **Hybrid Retrieval**: keyword/semantic/auto 전략, progressive disclosure, source/citation drill-down
304
+ - **MCP Context Navigator**: 작업 시작용 compact context pack + recent project timeline + privacy-safe source refs
305
+ - **Memory Operations**: facets, actions, frontier, checkpoints, retention audit, graph query, procedural lessons
306
+ - **Perspective Memory**: actor list, actor card, observer→observed observations, contradiction/derived lanes
307
+ - **Vector Outbox V2**: transactional enqueue, versioned vector upsert, worker lock, stuck recovery, aggregate health
308
+ - **Dashboard**: localhost dashboard, retrieval trace, Vector Health, Perspective Memory aggregate panels
309
+ - **External Context**: DART/FRED/Finnhub read-only market context snapshot for research/analysis workflows
295
310
 
296
311
  ### Advanced Features
297
312
 
298
- - **Citations System**: 메모리 출처 추적 (`[mem:abc123]` 형식)으로 검색 결과의 원본 확인 가능
299
- - **Endless Mode**: 세션 경계 없는 연속적 메모리 스트림, Biomimetic Memory Architecture 기반 *(experimental extension)*
300
- - **Entity-Edge Model**: entries/entities/edges 3-layer 모델로 데이터 관계 명시적 모델링
301
- - **Evidence Aligner V2**: Quote 기반 3단계 정렬 (exact normalized fuzzy)
302
- - **MCP Desktop Integration**: Claude Desktop용 MCP 서버로 CLI동일한 메모리 공유 *(stdio server bin: `claude-memory-layer-mcp`)*
303
- - **PostToolUse Hook**: 도구 실행 결과 (Read, Write, Bash 등) 캡처 및 저장
304
- - **Private Tags**: `<private>` 태그로 민감 정보를 명시적으로 제외
305
- - **Progressive Disclosure**: 3-Layer 검색 (인덱스 타임라인 상세)으로 토큰 효율화
306
- - **memU-inspired Retrieval**: fast/deep 전략 + 스코프 필터(session prefix, canonical key prefix, metadata path)
307
- - **Append-only Markdown Mirror**: 저장 이벤트를 `memory/<namespace>/<category...>/YYYY-MM-DD.md`에도 동기 append (기본값: `namespace=default`, `category=uncategorized`, 경로 세그먼트 sanitize)
308
- - `memory/_index.md` 인덱스를 자동 갱신
309
- - **Task Entity System**: Task를 Entity로 승격하여 세션 간 상태 추적
310
- - **Vector Outbox V2**: Transactional Outbox 패턴으로 SQLite-LanceDB 정합성 보장
311
- - **Web Viewer UI**: localhost:37777 대시보드로 실시간 메모리 모니터링
313
+ - **Citations System**: 검색 결과를 `[mem:abc123]` 형태로 추적하고 `source`/`mem-source-ref`로 근거 확인
314
+ - **Progressive Disclosure**: index timeline details 순서로 필요한 만큼만 확장해 토큰 비용 절감
315
+ - **Codex/Hermes Importers**: read-only validate/replay explicit import로만 mutation 수행
316
+ - **Perspective Query Agent**: 관점별 observation + raw memory를 읽기 전용으로 조합하고 source refs를 유지
317
+ - **Governance Audit**: facet/action/checkpoint/perspective mutation은 actor/evidence metadata함께 기록
318
+ - **Privacy Guardrails**: `<private>` 태그, credential/path redaction, aggregate-only dashboard/API/CLI 출력
319
+ - **Append-only Markdown Mirror**: 선택적으로 저장 이벤트를 `memory/<namespace>/.../YYYY-MM-DD.md`에 append
320
+ - **Mongo Sync**: 멀티 서버 협업을 위한 선택적 이벤트 push/pull sync
321
+ - **Endless Mode / Shared Memory**: 세션 경계 없는 연속 기억 공유 store 실험 기능
312
322
 
313
323
  ### 현재 feature status
314
324
 
315
325
  | 영역 | 상태 | 비고 |
316
326
  |------|------|------|
317
- | Claude Code hooks / CLI / Dashboard | Stable | `install`, `search`, `import`, `stats`, `dashboard` 중심 |
318
- | SQLite event store / project registry | Stable | canonical source of truth |
319
- | LanceDB vector index / Embedder | Stable accelerator | `src/extensions/vector/embedder.ts`; VectorStore/VectorWorker는 아직 core compatibility path 유지 |
320
- | Progressive disclosure search/API/CLI/dashboard | Implemented | `search --disclosure`, `expand`, `source` mental model |
321
- | Shared memory / Endless mode | Experimental extension | 구현은 `src/extensions/shared-memory`, `src/extensions/endless-memory` 아래에 있고 기존 path는 shim 유지 |
322
- | MCP Desktop integration | Implemented | 구현은 `src/extensions/mcp`; package bin `claude-memory-layer-mcp`; `claude-memory-layer mcp install`로 Claude Desktop config 자동 등록 |
323
- | Mongo sync / Entity graph / Task entity | Experimental | 고급/운영 옵션으로 취급 |
327
+ | Claude Code hooks / CLI | Stable | `install`, `search`, `import`, `stats`, `dashboard`, `process` |
328
+ | SQLite event store / project registry | Stable | 프로젝트별 canonical source of truth, WAL 기반 동시 읽기/쓰기 |
329
+ | LanceDB vector index / Embedder | Stable accelerator | `@huggingface/transformers` optional + postinstall repair, versioned vector tables |
330
+ | Vector Outbox V2 | Implemented | transactional enqueue, worker lock, stale recovery, `vector-status`, dashboard Vector Health |
331
+ | Progressive disclosure / retrieval traces | Implemented | `search --disclosure`, `expand`, `source`, score breakdown, privacy-safe lanes |
332
+ | MCP server | Implemented | package bin `claude-memory-layer-mcp`, project-aware read tools + audited operation tools |
333
+ | Codex/Hermes session ingestion | Implemented | validate/replay는 read-only, import는 명시적 mutation |
334
+ | Memory Operations layer | Implemented | facets/actions/frontier/checkpoints/retention/graph/lessons |
335
+ | Perspective Memory | Implemented P0/P1 | actors, actor cards, perspective observations, context-pack lanes, aggregate dashboard |
336
+ | Dashboard | Implemented | local-only default bind, optional password, vector/perspective/trace panels |
337
+ | External Market Context | Implemented | DART/FRED/Finnhub read-only snapshot + MCP tool |
338
+ | Mongo sync / Endless mode / shared memory | Experimental | 고급/운영 옵션으로 취급 |
324
339
 
325
340
  ## 설치 방법
326
341
 
@@ -426,47 +441,67 @@ claude-memory-layer organize-import /path/to/legacy-memory --bootstrap --repo /p
426
441
 
427
442
  ### CLI 명령어
428
443
 
429
- 터미널에서 직접 사용:
444
+ 전역 설치 후에는 `claude-memory-layer`를 그대로 쓰고, 로컬 checkout에서는 `npx claude-memory-layer` 또는 `node dist/cli/index.js`를 사용할 수 있습니다.
430
445
 
431
446
  ```bash
432
- # 메모리 검색
433
- npx claude-memory-layer search "React 컴포넌트 패턴"
434
- npx claude-memory-layer search "API 에러 처리" --top-k 10
435
-
436
- # 대화 기록 조회
437
- npx claude-memory-layer history
438
- npx claude-memory-layer history --limit 50 --type user_prompt
439
-
440
- # 통계 확인
441
- npx claude-memory-layer stats
442
-
443
- # 기존 세션 임포트
444
- npx claude-memory-layer import # 현재 프로젝트
445
- npx claude-memory-layer import --all # 모든 프로젝트
446
- npx claude-memory-layer import --all --verbose # 상세 로그
447
+ # 메모리 검색 / progressive disclosure
448
+ claude-memory-layer search "React 컴포넌트 패턴" --top-k 10
449
+ claude-memory-layer search "API 에러 처리" --disclosure
450
+ claude-memory-layer expand mem:abc123
451
+ claude-memory-layer source mem:abc123
452
+
453
+ # 대화 기록 / 통계
454
+ claude-memory-layer history --limit 50 --type user_prompt
455
+ claude-memory-layer stats --project /path/to/project
456
+
457
+ # Claude Code 세션 import
458
+ claude-memory-layer list --project /path/to/project
459
+ claude-memory-layer import --project /path/to/project --verbose
460
+
461
+ # Codex/Hermes 세션은 read-only 검증 명시적으로 import
462
+ claude-memory-layer codex validate --project /path/to/project --format markdown --anonymize-projects
463
+ claude-memory-layer codex import --project /path/to/project --verbose
464
+ claude-memory-layer hermes validate --project /path/to/project --format markdown
465
+ claude-memory-layer hermes import --project /path/to/project --verbose
466
+
467
+ # 임베딩/벡터 outbox 처리와 상태 점검
468
+ claude-memory-layer process --project /path/to/project
469
+ claude-memory-layer process --project /path/to/project --dry-run-recovery
470
+ claude-memory-layer vector-status --project /path/to/project
471
+
472
+ # Perspective Memory actor/session membership backfill
473
+ claude-memory-layer actors repair --project /path/to/project --dry-run
474
+ claude-memory-layer actors repair --project /path/to/project --apply
475
+
476
+ # Memory Operations
477
+ claude-memory-layer facet query --project /path/to/project --dimension workflow
478
+ claude-memory-layer facet tag --project /path/to/project --target-type event --target-id <id> --dimension workflow --value release --actor <actor> --apply
479
+ claude-memory-layer action list --project /path/to/project
480
+ claude-memory-layer frontier --project /path/to/project --limit 20
481
+ claude-memory-layer checkpoint list --project /path/to/project
482
+ claude-memory-layer retention audit --project /path/to/project
483
+
484
+ # Dashboard
485
+ claude-memory-layer dashboard --no-open
486
+ claude-memory-layer dashboard --bind localhost --port 37777 --password "<local-password>" --no-open
447
487
 
448
- # 임포트 가능한 세션 목록
449
- npx claude-memory-layer list
450
- npx claude-memory-layer list --project /path/to/project
488
+ # External read-only market/company context
489
+ claude-memory-layer market-context --company 삼성전자 --dart-corp-code 00126380 --symbol 005930.KS --json
490
+ ```
451
491
 
452
- # 임베딩 수동 처리
453
- npx claude-memory-layer process
492
+ MongoDB 동기화는 선택 기능입니다. 여러 서버에서 같은 프로젝트를 개발할 때, 각 서버의 로컬 SQLite 이벤트를 하나의 MongoDB로 모아 push/pull할 수 있습니다. Pull된 이벤트를 바로 semantic search/context-pack에서 쓰고 싶다면 `--process-after-sync`를 함께 켜서 새 이벤트가 내려온 뒤 pending embedding/vector outbox를 처리하세요.
454
493
 
455
- # MongoDB 동기화 (옵션, 멀티 서버 협업)
456
- # - 여러 서버에서 같은 프로젝트를 개발할 때, 각 서버의 로컬 SQLite(events.sqlite) 이벤트를
457
- # 하나의 MongoDB로 모아 push/pull 동기화할 수 있습니다.
458
- # - 동일 프로젝트는 반드시 같은 project key로 실행해야 합니다.
459
- export CLAUDE_MEMORY_MONGO_URI="mongodb://USER:PASSWORD@HOST:PORT/"
494
+ ```bash
495
+ export CLAUDE_MEMORY_MONGO_URI="mongodb://USER:***@HOST:PORT/"
460
496
  export CLAUDE_MEMORY_MONGO_DB="claude_memory_layer"
461
497
  export CLAUDE_MEMORY_MONGO_PROJECT="my-project"
462
-
463
- # 1회 동기화 (push+pull)
464
- npx claude-memory-layer mongo-sync
465
-
466
- # 지속 동기화 (주기적으로 push+pull)
467
- npx claude-memory-layer mongo-sync --watch --interval 30000
498
+ claude-memory-layer mongo-sync
499
+ claude-memory-layer mongo-sync --watch --interval 30000
500
+ claude-memory-layer mongo-sync --watch --interval 30000 --process-after-sync --process-interval 120000
468
501
  ```
469
502
 
503
+ `--process-after-sync`는 pull된 이벤트가 있을 때만 실행되며, `--process-interval` 동안 debounce되어 매 sync tick마다 불필요하게 임베딩을 재처리하지 않습니다. 내부적으로 project-scoped `vector-worker.lock`을 사용하므로 별도 `process` worker가 이미 실행 중이면 skip합니다.
504
+
470
505
  ### memU-inspired Retrieval 사용 예시
471
506
 
472
507
  아래 예시는 SDK/서비스 레벨에서 `retrieveMemories()` 호출 시 적용되는 옵션입니다.
@@ -637,15 +672,30 @@ node dist/mcp/index.js
637
672
 
638
673
  ### 제공되는 MCP 도구
639
674
 
640
- | 도구 | 설명 |
641
- |------|------|
642
- | `mem-search` | 메모리 검색 (`projectPath`를 주면 프로젝트별 저장소 검색) |
643
- | `mem-timeline` | 특정 memory IDs 주변 chronological context 조회 (`projectPath` 지원) |
644
- | `mem-details` | 상세 정보 조회 (`projectPath` 지원) |
645
- | `mem-stats` | 통계 조회 (`projectPath` 지원) |
646
- | `mem-context-pack` | 작업 시작용 compact context pack. query 관련 memory + 최근 project timeline + follow-up refs를 번에 반환 |
647
- | `mem-project-timeline` | 최근 project memory를 session/source/event-count/safe-preview 기준으로 요약 |
648
- | `mem-source-ref` | `mem:<citation>` 또는 `event:<id>`를 privacy-safe source referenceredacted preview로 해석 |
675
+ | 범주 | 도구 | 설명 |
676
+ |------|------|------|
677
+ | Search | `mem-search` | 프로젝트/세션 스코프 메모리 검색 |
678
+ | Search | `mem-timeline` / `mem-details` | 검색 결과 주변 타임라인과 상세 내용 조회 |
679
+ | Search | `mem-stats` | aggregate memory/vector/outbox 통계 |
680
+ | Context | `mem-context-pack` | 작업 시작용 relevant memory + recent timeline + follow-up refs |
681
+ | Context | `mem-import-latest` | 최신 Claude/Codex/Hermes 세션을 bounded import context-pack freshness 확보 |
682
+ | Context | `mem-project-timeline` | 최근 프로젝트 메모리를 session/source/count/safe-preview 요약 |
683
+ | Context | `mem-source-ref` | `mem:`/`event:` ref를 redacted previewsafe metadata로 해석 |
684
+ | Operations | `mem-facet-query` / `mem-facet-tag` | project-scoped facet 조회/태깅 |
685
+ | Operations | `mem-action-list` / `mem-action-update` | 다음 작업/action 상태 조회·갱신 |
686
+ | Operations | `mem-frontier` | blocked/next action frontier와 safe resume hints |
687
+ | Operations | `mem-checkpoint-create` / `mem-checkpoint-list` | resumable action/session checkpoint 관리 |
688
+ | Operations | `mem-retention-audit` | dry-run retention governance audit |
689
+ | Operations | `mem-graph-query` | bounded graph expansion/query diagnostics |
690
+ | Operations | `mem-lesson-list` | procedural lesson/skill 후보 조회 |
691
+ | Perspective | `mem-actor-list` | project-scoped actor 목록 |
692
+ | Perspective | `mem-actor-card-get` / `mem-actor-card-upsert` | observer→observed actor card 조회/갱신 |
693
+ | Perspective | `mem-perspective-query` | observer→observed perspective observation 검색 |
694
+ | Perspective | `mem-perspective-context` | actor card + perspective observations context bundle |
695
+ | Perspective | `mem-perspective-observation-create` / `mem-perspective-observation-delete` | audited observation 생성/soft-delete |
696
+ | External | `external-market-context` | DART/FRED/Finnhub read-only MarketContextSnapshot |
697
+
698
+ 대부분의 project-scoped 도구는 `projectPath`를 지원하거나 요구합니다. mutating 도구는 audit용 `actor`와 evidence/source refs를 요구하고, raw transcript/path/secret 출력은 피합니다.
649
699
 
650
700
  예시 workflow:
651
701
 
@@ -670,14 +720,13 @@ claude-memory-layer dashboard
670
720
  ```
671
721
 
672
722
  ### 주요 기능
673
- - 실시간 이벤트 스트림
674
- - 세션/프로젝트별 탐색
675
- - 벡터 검색 인터페이스
676
- - 저장소 통계 대시보드
677
- - Outbox 상태 모니터링
678
- - Retrieval Trace (검색 질의 후보/채택 최종 context 채택 IDs) 1:1 확인
679
- - 채택된 event ID 클릭으로 상세 모달 확인 + score breakdown(semantic/lexical/recency) 확인
680
- - 후보(candidate) event ID 스냅샷도 함께 노출되어 검색→채택 전 과정을 추적 가능
723
+ - 실시간 이벤트 스트림과 세션/프로젝트별 탐색
724
+ - 벡터/키워드 검색 인터페이스와 저장소 통계
725
+ - Retrieval Trace: 질의 → 후보/채택 수 → 최종 context IDs, score breakdown(semantic/lexical/recency), lane debug
726
+ - Vector Health: embedding/vector queue pending/processing/failed/stuck, vector count, recovery action 결과
727
+ - Perspective Memory: actor/session membership, observer→observed graph, actor-card counts, observation/contradiction/source-evidence aggregate
728
+ - Dashboard auth hardening: 기본 `localhost` bind, 명시적 `0.0.0.0`, 선택적 password gate
729
+ - API errors/output은 aggregate 중심으로 렌더링하고 raw path, item id, error payload, memory content 노출을 피함
681
730
 
682
731
  ## 기존 대화 기록 임포트
683
732
 
@@ -816,28 +865,35 @@ Hermes import는 user/assistant turn만 저장하고 tool/system 메시지는
816
865
  ### System Overview
817
866
 
818
867
  ```
819
- ┌─────────────────────────────────────────────────────────────┐
820
- Claude Code Hooks
821
- SessionStartUserPromptSubmitStopPostToolUseEnd
822
- └──────────────────────────┬──────────────────────────────────┘
823
-
824
-
825
- ┌─────────────────────────────────────────────────────────────┐
826
- Memory Service
827
- ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
828
- Retriever │ Matcher │ │ Graduation
829
- │ │ Progressive│ │ Evidence │ │ L0 → L4 │ │
830
- └─────────────┘ └─────────────┘ └─────────────┘ │
831
- └──────────────────────────┬──────────────────────────────────┘
832
-
833
- ┌──────────────────┴──────────────────┐
834
- ▼ ▼
835
- ┌───────────────┐ ┌───────────────┐
836
- EventStore──── Outbox ────▶ │ VectorStore
837
- │ (SQLite/WAL) │ (V2 Pattern) (LanceDB) │
838
- └───────────────┘ └───────────────┘
868
+ ┌──────────────────────────────────────────────────────────────────────┐
869
+ Agent surfaces
870
+ Claude Code Hooks CLIDashboardMCP Clients Codex/Hermes import
871
+ └───────────────────────────────┬──────────────────────────────────────┘
872
+
873
+
874
+ ┌──────────────────────────────────────────────────────────────────────┐
875
+ Memory Service / Runtime
876
+ Retrieval Orchestrator Disclosure │ Operations │ Perspective Memory │
877
+ Evidence/Privacy filters Governance audit Context-pack assembler
878
+ └───────────────────────────────┬──────────────────────────────────────┘
879
+
880
+ ┌─────────────────────┼─────────────────────┐
881
+ ▼ ▼ ▼
882
+ ┌──────────────────┐ ┌──────────────────┐ ┌───────────────────────┐
883
+ │ SQLite EventStore│ │ Operations tables│ │ External read-only ctx │
884
+ │ events/sessions │ │ facets/actions/ │ │ DART/FRED/Finnhub │
885
+ actor/perspective│checkpoints/... │ │
886
+ └─────────┬────────┘ └──────────────────┘ └───────────────────────┘
887
+ │ same transaction
888
+
889
+ ┌──────────────────┐ worker lock/recovery ┌──────────────────┐
890
+ │ Vector Outbox V2 │ ─────────────────────────────▶ │ LanceDB vectors │
891
+ │ itemKind/id/ver │ versioned delete+add upsert │ per item/version │
892
+ └──────────────────┘ └──────────────────┘
839
893
  ```
840
894
 
895
+ 핵심 원칙은 SQLite가 canonical source of truth이고, LanceDB는 재생성 가능한 derived accelerator라는 점입니다. 모든 vector write는 outbox를 통해 idempotent하게 처리하며, MCP/dashboard/CLI 출력은 가능한 aggregate 또는 redacted preview만 제공합니다.
896
+
841
897
  ### Entity-Edge Model (3-Layer)
842
898
 
843
899
  ```
@@ -949,50 +1005,44 @@ npm run dev
949
1005
 
950
1006
  | 문서 | 설명 |
951
1007
  |------|------|
1008
+ | [agentmemory-inspired-memory-operations](specs/agentmemory-inspired-memory-operations/spec.md) | facets/actions/frontier/checkpoints/retention/lessons 운영형 메모리 |
1009
+ | [honcho-inspired-peer-context-memory](specs/honcho-inspired-peer-context-memory/spec.md) | actor card / perspective observation / multi-agent 관점 메모리 |
1010
+ | [vector-outbox-v2](specs/vector-outbox-v2/spec.md) | Transactional Outbox, versioned vector upsert, worker recovery |
1011
+ | [mcp-desktop-integration](specs/mcp-desktop-integration/spec.md) | MCP 서버 통합 |
1012
+ | [progressive-disclosure](specs/progressive-disclosure/spec.md) | 토큰 효율화 검색 |
952
1013
  | [citations-system](specs/citations-system/spec.md) | 메모리 인용 시스템 |
953
- | [endless-mode](specs/endless-mode/spec.md) | 연속 세션 모드 |
1014
+ | [private-tags](specs/private-tags/spec.md) | 프라이버시 태그 |
954
1015
  | [entity-edge-model](specs/entity-edge-model/spec.md) | 3-Layer 데이터 모델 |
1016
+ | [task-entity-system](specs/task-entity-system/spec.md) | Task Entity 관리 |
955
1017
  | [evidence-aligner-v2](specs/evidence-aligner-v2/spec.md) | 증거 정렬 시스템 |
956
- | [mcp-desktop-integration](specs/mcp-desktop-integration/spec.md) | MCP 서버 통합 |
957
1018
  | [post-tool-use-hook](specs/post-tool-use-hook/spec.md) | 도구 사용 기록 |
958
- | [private-tags](specs/private-tags/spec.md) | 프라이버시 태그 |
959
- | [progressive-disclosure](specs/progressive-disclosure/spec.md) | 토큰 효율화 검색 |
960
- | [task-entity-system](specs/task-entity-system/spec.md) | Task Entity 관리 |
961
- | [vector-outbox-v2](specs/vector-outbox-v2/spec.md) | Transactional Outbox |
1019
+ | [endless-mode](specs/endless-mode/spec.md) | 연속 세션 모드 |
962
1020
  | [web-viewer-ui](specs/web-viewer-ui/spec.md) | 웹 대시보드 |
963
1021
 
964
- ## Roadmap
965
-
966
- ### Phase 1: Core (완료)
967
- - [x] Event Store (SQLite/WAL)
968
- - [x] Vector Store (LanceDB)
969
- - [x] Memory Graduation (L0→L4)
970
- - [x] Evidence Alignment
971
- - [x] History Import
972
-
973
- ### Phase 2: Advanced Features (진행 중)
974
- - [x] Citations System
975
- - [x] Endless Mode service boundary *(experimental extension)*
976
- - [ ] Entity-Edge Model productization
977
- - [x] Evidence Aligner V2
978
- - [x] Private Tags
979
-
980
- ### Phase 3: Integration
981
- - [x] MCP Desktop Integration *(stdio server bin exists; auto install command pending)*
982
- - [x] Web Viewer UI
983
- - [x] PostToolUse Hook
984
- - [x] Progressive Disclosure
985
-
986
- ### Phase 4: Optimization / Extension Isolation
987
- - [x] Vector Outbox V2
988
- - [x] Embedder extension boundary
989
- - [ ] VectorStore / VectorWorker extension boundary
990
- - [ ] Task Entity System productization
991
- - [ ] Performance Tuning
1022
+ ## Roadmap / Current State
992
1023
 
993
- ## License
1024
+ ### Completed / shipped
994
1025
 
995
- MIT
1026
+ - [x] SQLite/WAL Event Store + project registry
1027
+ - [x] LanceDB vector store + local embedding backend
1028
+ - [x] Claude Code hooks, CLI, dashboard
1029
+ - [x] History import for Claude Code, Codex, Hermes
1030
+ - [x] Progressive disclosure, citations, source refs, retrieval traces
1031
+ - [x] MCP server with project-aware context/search/stat tools
1032
+ - [x] Memory Operations layer: facets/actions/frontier/checkpoints/retention/graph/lessons
1033
+ - [x] Perspective Memory P0/P1: actors, actor cards, observations, context lanes, dashboard aggregate stats
1034
+ - [x] Vector Outbox V2: transactional enqueue, versioned upsert, worker lock, stuck recovery, vector-status/dashboard health
1035
+ - [x] Dashboard hardening: localhost default bind, optional password auth, safe error rendering
1036
+ - [x] External Market Context: DART/FRED/Finnhub read-only snapshot + MCP tool
1037
+
1038
+ ### Active / experimental
1039
+
1040
+ - [ ] Entity-Edge Model productization beyond diagnostic graph expansion
1041
+ - [ ] Task Entity System broader productization and UX
1042
+ - [ ] Mongo sync operational hardening for multi-server teams
1043
+ - [ ] Endless/shared memory UX and default safety policy
1044
+ - [ ] Retrieval/replay benchmarks for ranking-changing features before default enablement
1045
+ - [ ] Perspective Memory LLM deriver/specialists broader production rollout (currently opt-in/guarded)
996
1046
 
997
1047
  ## External Market Context (DART/FRED/Finnhub)
998
1048
 
@@ -1033,3 +1083,7 @@ Security and behavior:
1033
1083
  - `watchlist` and `followUpQuestions`
1034
1084
 
1035
1085
  The Markdown report includes a `### MarketContextSnapshot` section with **Bull case**, **Bear case**, **Risks**, and **Catalysts**. DART analysis uses all fetched filings; only the rendered filing list is truncated. If `dartCorpCode` is omitted, company-name fallback is marked low-confidence, so exact DART corp codes are recommended for customer-facing analysis.
1086
+
1087
+ ## License
1088
+
1089
+ MIT