a9412d7df8
`instructions = [...]` (the per-workspace config-driven block), the user memory file (`/memory`), and the current session goal (`/goal`) were being rendered at position 2.5 in the system prompt — inside the static prefix layer that DeepSeek's KV prefix cache hits. Any edit to those files invalidated every cached byte from that position onward. A `# foo` memory quick-add (or a `/goal` update) on turn 5 meant the engine had to re-tokenize and re-charge the full static suffix — skills block, context management, compact template, environment, ~thousands of tokens — on turn 6. Relocate the three blocks to position 6, immediately above the previous-session handoff block, where the volatile-content boundary already lives. The static prefix above the boundary (mode, project context, env, skills, context management, compact template) now stays cached across turns regardless of how often the user edits their memory file or shifts session goals. Resolved a 3-way merge against the v0.8.32 `translation_enabled` addition (PR #1462). The new translation-output instruction stays at position 2.3a (inside the static prefix layer) because it's a per-session flag — `/translate` is a session toggle, not a turn-by-turn knob, so the prompt-prefix bytes don't drift mid-session. Harvested from PR #1345 by @Duducoco Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>