Skip to content

Latest commit

 

History

History
90 lines (65 loc) · 2.9 KB

File metadata and controls

90 lines (65 loc) · 2.9 KB

Roadmap: claude-mem → opencode-mem

Full feature parity with claude-mem.

Phase 1: Core Infrastructure ✅ DONE

  • Cargo workspace structure
  • Core types (Observation, Session, SessionSummary)
  • PostgreSQL storage with migrations
  • tsvector + GIN full-text search

Phase 2: Code Migration ✅ DONE

  • Migrate storage.rs → crates/storage (PostgreSQL-only)
  • Migrate llm.rs → crates/llm
  • Migrate http.rs → crates/http
  • Migrate mcp.rs → crates/mcp

Phase 3: Session Management ✅ DONE

  • Dual session IDs (content_session_id, memory_session_id)
  • Session status tracking (active, completed, failed)
  • Prompt counter per session
  • User prompts storage (separate table)

Phase 4: Session Summaries ✅ DONE

  • Structured summary (request, investigated, learned, completed, next_steps)
  • Auto-generate on session end (Stop hook)
  • FTS for summaries

Phase 5: Vector Search (Embeddings) ✅ DONE

  • pgvector integration
  • Local embedding model (BGE-M3 via fastembed/ort, 1024d, multilingual)
  • Hybrid search (tsvector BM25 50% + vector cosine similarity 50%)

Future (Vector Search)

  • Granular sync (each field → separate embedding)

Phase 6: 3-Layer Search Pattern ✅ DONE

  • Index layer (id, title, subtitle only — minimal tokens)
  • Timeline layer (anchor-based context retrieval)
  • Full layer (complete observation data)
  • __IMPORTANT tool (workflow documentation)

Phase 7: Context Injection ✅ DONE

  • SessionStart hook → inject memories
  • Configurable observation count (total, full)
  • Interleaved timeline (observations + summaries)
  • Token economics display

Phase 8: OpenCode Plugin

  • chat.message hook (capture user prompts)
  • experimental.chat.system.transform (inject context)
  • experimental.chat.messages.transform (enrich messages)
  • tool.execute.after (capture observations)
  • event hook (session lifecycle)

Phase 9: Privacy & Configuration ✅ DONE

  • <private> tag stripping
  • <opencode-mem-context> anti-recursion tags
  • settings.json configuration
  • Mode profiles (code, code--ru, etc.)

Phase 10: Web UI ✅ DONE

  • Axum + htmx viewer
  • Real-time observation stream (SSE)
  • Session timeline view
  • Search interface

Upstream Mapping

claude-mem file opencode-mem crate
src/services/sqlite/Database.ts crates/storage
src/services/sqlite/SessionStore.ts crates/storage
src/services/sqlite/SessionSearch.ts crates/search
src/services/sync/ChromaSync.ts crates/embeddings
src/services/context/ContextBuilder.ts crates/service
src/services/worker-service.ts crates/http
src/servers/mcp-server.ts crates/mcp
plugin/hooks/* crates/cli (hook subcommands)