v1.7.1 — Chat & Memory Correctness
Chat & Memory Correctness
A focused patch release hardening the chat, memory, and resume paths introduced in 1.7.0. No public exports, subpaths, or types changed.
Fixes
- Strict
chatIdmemory isolation. Chat-scopedget,search, andlistoperations now matchchatIdexactly in both the in-memory and Markdown stores, preventing memories from leaking across sibling chats. Markdown records also preservechatIdthrough frontmatter round-trips; broader legacy scopes remain compatible. - Conversation-safe
ChatStorepersistence. Stored chats now retain the caller’s original transcript plus real assistant/tool additions, never compaction summaries orprepareStepprompt rewrites. Durable resumes use a matching full chat record when available and skip writes after a load failure or scope mismatch, avoiding accidental history loss or cross-scope overwrites. - Complete resumed-tool lifecycle. Approval and client-tool settlement now emits the same v2 lifecycle ordering as initial execution: approved calls progress through
executing→tool-result→complete, while failures and denials terminate witherror. Negotiated v1 streams remain unchanged. - Buffered result parity. Suspended buffered runs now expose
result.memorywhen memory extraction is enabled, resolving safely to an empty mutation list. Final text-only assistant turns are included inresult.response.messagesexactly once, and memory extraction consumes the same additions exactly once.
Quality: 659 core tests and 20 React tests passed, along with type checks, package validation, runtime compatibility checks, bundle budgets, API-contract checks, and the full documentation build. Both packages were published through npm Trusted Publishing with SLSA provenance.
Docs: Core changelog · Documentation changelog
Full Changelog: v1.7.0...v1.7.1