Skip to content

Decouple voice subsystem from Claude Code conversation files #237

@jpelaez-23blocks

Description

@jpelaez-23blocks

Problem

The Cerebellum voice subsystem hardcodes ~/.claude/projects/ to read recent conversation context for generating voice commentary. This blocks voice for any non-Claude agent.

Hardcoded location

File Line Usage
lib/cerebellum/voice-subsystem.ts ~256 readRecentConversation() reads raw JSONL from ~/.claude/projects/

Current behavior

readRecentConversation() directly reads Claude Code .jsonl files from disk to build context for the LLM-powered voice commentary. This means:

  • OpenClaw agents get no voice commentary (no Claude files to read)
  • Voice subsystem duplicates work already done by the memory subsystem
  • Tight coupling between voice and Claude Code's internal file format

Proposal

Replace direct JSONL reading with one of:

  1. CozoDB indexed data — already available via MemorySubsystem. The conversation entries are already indexed and searchable. Voice subsystem should query the existing database instead of re-reading raw files.

  2. ConversationSource interface — from Decouple conversation indexing from Claude Code file format #236. Once conversation indexing is abstracted, voice can use the same interface.

Option 1 is simpler and doesn't depend on #236.

Impact

  • Unblocks voice commentary for OpenClaw agents
  • Removes duplicate file reading (voice + memory both read same files)
  • Simplifies voice subsystem (query DB vs. parse raw JSONL)

Related

Labels

enhancement, cerebellum, voice

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions