Patch release — first-turn fix, docs refresh, CI hardening.
Fixes
- First-turn message loss — SDK can deliver
content_block_startbeforemessage_starton the first turn. Server now auto-initializes message context, so the first response and tool calls render correctly. - Multi-turn message loss —
forceFlushPendingMessage()runs at turn boundaries, preventing silent drops whenmessage_startresets state. - SDK field names —
file_pathnotpath,contentnotcontents,patternnotglob_pattern. Tool pills now show actual file paths and inputs. - Session end ordering — force-flush before
session_end. FrontendSESSION_ENDandMESSAGE_STARTforce-finalize orphaned messages.
Docs
- README rewritten — same information, half the lines, no AI slop
- CLAUDE.md updated with v2 protocol details and SDK field name gotchas
- Design docs marked Implemented with post-implementation notes
- Enterprise plan v1.3 with current LOC baselines (chat.ts 468, ChatView 337)
CI
- Test count guard — fails if tests drop below 200 (currently 209)
- Bundle size reporting in job summary