ffdd36aa1d4f0a04034d832200fd003bc9d2bb63
Every cache these providers keep is a prefix cache, and the working directory of a terminal is the most volatile value the app has. Putting one inside the other meant a single `cd` between turns changed byte zero of the request and missed the entire replayed conversation — on a BYOK key, in an app whose whole purpose is moving around a filesystem. Nothing sets `cache_control` yet, so Anthropic was unaffected, but OpenAI and Google cache prefixes automatically: this was already costing money, and it was a trap laid for the day explicit caching lands. The context now rides the tail of the message list, immediately before the turn it describes. History the model has already seen is immutable, so `[system + history]` keeps hitting and the divergence is the newest turn, which was never cacheable anyway. The system prompt goes back to being byte-identical across every run, conversation, and user. It is sent but not kept. `snapshot.messages` is the durable transcript, and a block added there would be persisted, replayed, and — since restore projects user rows into the visible list — eventually shown in the user's own chat bubble. Leaving it out costs the next run one uncached message at the tail and nothing before it. Two consecutive user messages are already routine here: `.tool` rows become `user` rows on all three adapters, so any parallel tool call produces them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Description
AI-driven remote workspace for Mac, iPhone, and iPad.
https://termind.akinokaede.com
23 MiB
0 Stars
1 Watchers
0 Forks
Languages
Swift
98.9%
Python
0.8%
Ruby
0.3%