Skip to content

feat(memory): Init Memory Configuration #320

@acreeger

Description

@acreeger

Parent: #318

Requirements

  1. Detect Cipher availability during il init:
    • First check if Cipher executable exists (fast, local check)
    • Only if found, query claude mcp list for connection status
  2. Run detection in parallel with existing init checks (git remotes, gitignore, shell type)
  3. Inject detection results into init prompt template:
    • CIPHER_AVAILABLE: true/false
    • CIPHER_MCP_STATUS: connection status string
  4. Add new phase to init-prompt.txt for memory configuration:
    • If Cipher available and connected: offer to enable memory, explain benefits
    • If Cipher installed but not connected: guide user to configure Cipher first
    • If Cipher not installed: inform user, point to setup docs, skip phase
  5. Write memory.enabled and memory.provider to settings when configured

Cipher Configuration Requirements

Cipher itself requires configuration before it can work:

  • Embedding provider: OpenAI, Anthropic, Gemini, Qwen, or Ollama (local)
  • API key: For the chosen provider (unless using Ollama)
  • Vector store: Qdrant, Milvus, or in-memory (default)

iloom cannot configure Cipher directly, but the init prompt should:

  • Inform users that Cipher requires an embedding provider
  • Point to Cipher's embedding configuration docs
  • Only enable memory if Cipher MCP shows "Connected"

Risks

  • Cipher executable name needs to be researched (npm package: @byterover/cipher)
  • MCP query adds latency - mitigated by parallel execution and fast-fail on missing executable
  • Users may install Cipher but not configure embeddings - mitigated by checking MCP connection status

Acceptance Criteria

  • Cipher detection runs in parallel with other init checks
  • No MCP query if executable not found
  • Init prompt explains Cipher's embedding requirements
  • Only enables memory if Cipher MCP is connected
  • Settings correctly written with memory config

Metadata

Metadata

Assignees

No one assigned

    Labels

    local-memoryiloom Memory feature - persistent knowledge across projectslocal-memory-wave-1Wave 1: Foundation (parallel)

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions