Skip to content

Add retained-KV multi-turn chat to the Mac app - #160

Merged
drumih merged 2 commits into
mainfrom
feat/mac-app-retained-kv-chat
Aug 27, 2026
Merged

Add retained-KV multi-turn chat to the Mac app#160
drumih merged 2 commits into
mainfrom
feat/mac-app-retained-kv-chat

Conversation

@drumih

@drumih drumih commented Aug 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • retain one Mac app conversation and reuse its KV cache across text and image turns
  • guard run identity, service epoch, and KV lineage; fail closed when recovery or context accounting is uncertain
  • add New Chat, transcript copy controls, context reporting, and correct empty-state behavior
  • ship the Mac app as version 0.7.0

Set TURBO_FIELDFARE_APP_CONVERSATION=0 to restore the single-prompt path.

Review fixes

  • ignore terminal callbacks from older generation streams
  • report failed KV rewind and stop-string cleanup immediately
  • invalidate dead decode-service connections and release terminated routers
  • carry exact computed-prefill and committed-KV diagnostics
  • disable image attachments when the committed KV position is unknown
  • validate context values before image-budget arithmetic

Verification

  • Scripts/test.sh: 1,347 tests in 206 suites passed
  • swift build -c release: passed
  • Periphery 3.2.0: 115 existing findings, no new finding
  • Markdown links, tracked symlinks, app version, and staged diff checks: passed
  • tracked public/ and this branch: byte-identical
  • M2 8 GB acceptance for the original feature passed five-turn text and image conversations, Stop/Continue, context refusal, lifecycle invalidation, transcript menus, and New Chat cleanup
  • follow-up recovery paths are pinned by unit and pipe-backed integration tests

@drumih
drumih merged commit 19730f8 into main Aug 27, 2026
1 check passed
@drumih
drumih deleted the feat/mac-app-retained-kv-chat branch August 27, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant