Christian Gick
|
e04a8ab524
|
feat(CF-580): Implement transcript-based session recovery for MCP
Add direct transcript ingestion and orphan recovery using Claude Code's JSONL
transcripts instead of relying on daemon-based note synchronization.
Changes:
1. **Database migration** (027_session_transcript_storage.sql):
- Add transcript_jsonl, transcript_ingested_at, transcript_file_path columns
- Add indexes for efficient ingestion tracking
2. **Transcript parser utility** (src/utils/transcript-parser.ts):
- parseTranscriptFile(): Parse JSONL line-by-line, handle corrupt lines
- encodeWorkingDir(): Convert paths to Claude Code directory encoding
- findOrphanedTranscripts(): Scan for stale transcript files
- ingestTranscriptToDatabase(): Main ingestion function for Node.js
3. **Orphan recovery enhancement** (src/tools/sessions.ts):
- sessionRecoverOrphaned() now tries transcript ingestion first
- Finds most recently modified JSONL in project directory
- Falls back to legacy notes.md recovery for backward compatibility
- Properly handles path encoding (/ and . → -)
Benefits:
- No daemon needed for recovery (Phase 2 will remove LaunchAgent)
- Full transcript audit trail stored in database
- Immediate recovery capability for orphaned sessions
- Cleaner architecture (no markdown parsing complexity)
- Compatible with Claude Code's UUID-based session files
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
|
2026-01-29 17:53:37 +02:00 |
|