-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Claude Code Version
v2.1.79–v2.1.81 (2025-03-xx)
Change Description
Three changes across v2.1.79–v2.1.81 are worth tracking for parser compatibility:
1. v2.1.80 — --channels research preview (MCP server message push)
Added
--channels(research preview) — allow MCP servers to push messages into your session
MCP servers can now inject messages directly into an active session. When a channel message arrives, it is likely written to the session JSONL transcript. These externally-pushed messages may carry a new type value, a new source discriminator, or an unfamiliar message.role not yet handled by the parser. If the parser discards or panics on unrecognized type values, these entries will be silently dropped.
2. v2.1.80 — Fixed --resume dropping parallel tool results
Fixed
--resumedropping parallel tool results — sessions with parallel tool calls now restore all tool_use/tool_result pairs
While this is a bug-fix, it confirms that JSONL sessions can contain interleaved parallel tool_use/tool_result blocks. Parsers that assume sequential pairing (one tool_use always followed immediately by its tool_result) may misparse or skip entries in multi-tool-call assistant messages.
3. v2.1.81 — --bare mode for scripted -p calls
Added
--bareflag for scripted-pcalls — skips hooks, LSP, plugin sync, and skill directory walks; requiresANTHROPIC_API_KEYor anapiKeyHelpervia--settings(OAuth and keychain auth disabled); auto-memory fully disabled
In bare mode many fields that are normally populated (e.g. gitBranch, cwd, agentName, teamName, hook-generated progress entries) may be absent. If the parser treats those as mandatory (rather than optional) it may discard or fail on entries written during a bare session.
Impact on tail-claude-gui
| Finding | Severity | Impact |
|---|---|---|
--channels pushed messages may introduce new JSONL entry types |
Moderate | Parser may encounter type values it doesn't recognize; entries silently discarded |
| Parallel tool_use/tool_result interleaving confirmed present | Low | Parser must not assume 1-to-1 sequential pairing |
--bare mode may produce entries with missing optional fields |
Low | Parser should treat non-critical fields as Option<T>, not required |
Affected Parser Code
src-tauri/src/parser/entry.rs— Entry struct and type dispatch- Any deserialization logic that assumes sequential
tool_use/tool_resultordering - Any field access that panics or discards entries when
gitBranch,cwd,agentName, or hook-related fields are absent
Suggested Fix
--channels/ unknown types: Ensure the type discriminant arm includes a catch-all that logs but does not discard or panic. Log the raw JSON for inspection when an unknown type is encountered.- Parallel tool pairs: Collect all
tool_useblocks in an assistant message first, then matchtool_resultblocks bytool_use_id, rather than assuming positional ordering. --baremissing fields: Audit all struct fields that referencegitBranch,cwd,agentName,teamName, and hook-related fields; confirm they areOption<String>/Option<T>rather than required.
Source
Release notes v2.1.79–v2.1.81 at /Users/yang.liu/.claude/scheduler/.jsonl-compat-release-notes.tmp