The developer of a read-only replay and search tool for Claude Code's conversation logs has detailed patterns for handling its evolving JSONL schema. Since the schema changes frequently without documentation, the tool employs an explicit whitelist of known message types to parse successfully, while preserving unknown types for future re-parsing. To manage schema updates, derived data is versioned, allowing an indexer to automatically re-parse sessions when the parser is updated. The author also shares a war story about encountering unpaired UTF-16 surrogates in tool error messages due to older versions truncating long strings. AI
IMPACT Provides practical strategies for developers working with evolving AI tool outputs, ensuring data integrity and searchability.
RANK_REASON The item describes a tool for parsing and managing data from another tool (Claude Code), focusing on technical implementation details rather than a new release or significant industry event.
Read on dev.to — Claude Code tag →
- Claude Code
- Claude Projects
- command-line interface
- JSON Lines
- JSON.parse()
- KNOWN_MESSAGE_TYPES
- ParsedLine
- requestId
- Universally Unique Identifier
AI-generated summary · Google Gemini · from 1 sources. How we write summaries →