v0.24.1
v0.24.1
Patch release: a fix for session titles never generating, fewer cache busts, embedding-endpoint safety, calmer reduction reminders, and a persistent TUI sidebar.
Fixes
-
Session titles generate again. With the plugin enabled, a new session could keep the default
New session - <timestamp>title forever (most visibly in non-git directories). Magic Context injects its compacted history as synthetic context messages, and those weren't flagged correctly, so OpenCode's auto-title step counted them as real user turns and skipped titling. The injected history is now marked synthetic — it still reaches the model, but no longer blocks the title. (#129) -
No embedding under the wrong model. When a local OpenAI-compatible endpoint (LM Studio, Ollama) serves a different embedding model than the one you configured — e.g. a shared endpoint where another tool keeps a smaller model loaded — the returned vectors have a different dimensionality and don't belong in your index. Magic Context now checks the model the endpoint reports and refuses mismatched vectors instead of silently corrupting the store. A clear log line names what was requested vs. served.
-
Embedded history chunks no longer get truncated. Chunks are now sized with a safety margin below the endpoint's input limit, so cross-tokenizer rounding can't push a chunk slightly over the limit and clip its tail.
-
Two more prompt-cache busts removed. (1) A stuck overflow-recovery flag could keep forcing a session to behave as if it were at the emergency ceiling — re-running cleanup every turn — after a
/ctx-recomphad already relieved the pressure; the flag now clears when there's nothing left to compact and on a successful recomp. (2) A dropped older message could flip between two equivalent placeholder forms across passes, changing one block of the prompt prefix and re-billing the tail; the two placeholder paths now agree byte-for-byte.
Improvements
-
Quieter, better-calibrated reduction reminders. The reminder that nudges the agent to drop spent tool output was over-firing — it measured against the wrong budget, so a modest pile triggered "urgent" on a large-context model. It now scales against the agent's actual working window, ignores output that can't be dropped yet (the protected recent window), and is worded as advisory rather than a directive. If the agent has already reduced enough, approaching the threshold no longer nags it.
-
Persistent TUI sidebar preferences. The Magic Context sidebar can now remember its collapsed/expanded state across restarts, and you can reorder it, rename its header, or hide individual sections — via a shared
~/.config/opencode/tui-preferences.jsoncfile (onemagic-contextkey). See the TUI sidebar reference.
Also in this release
- New documentation: why your token count can stay high after the execute threshold — the execute threshold compresses older conversation; tool outputs are reclaimed by
ctx_reduceor the 85% safety net, not by the threshold itself.