Repository navigation
v0.49.12
·
575 commits
to master
since this release
v0.49.12
This patch release fixes multi-second host freezes on very long OpenCode and Pi sessions. Removing old tool output in Pi no longer causes an extra prompt-cache rebuild, and turning memory off no longer stops unrelated background maintenance. It also fixes startup in new git repositories and improves embedding rate-limit handling. There is no database migration.
Upgrading
- No migration.
context.dbstays at schema 95 andstore.dbat schema 63. Restart OpenCode 1, OpenCode 2, Pi or Oh My Pi after updating. - Sessions without a dreamer section rebuild their cache once after the upgrade. The
ctx_notetool text changes because it no longer offers smart notes when no dreamer can evaluate them. Tool definitions stay unchanged for configurations with a working dreamer. memory.enabled: falsenow stops only the dreamer's memory tasks. With the dreamer enabled, smart-note evaluation followssmart_notes.enabled, user-memory review follows its own schedule, and docs maintenance follows its own schedule. These tasks keep running with memory off, both on schedule and through/ctx-dream.- Rust-mode installs should update
ck-mcto the version shipped with this release. The Rust module carries the new-repository identity fix and the user-observation collection gate.
Fixed
- Very long sessions no longer freeze the host for seconds during a fold. OpenCode no longer loads every dropped tool's stored content just to apply the fold. Pi and Oh My Pi now look up the recent tool window without loading old tool bodies, and combine pending-drop writes instead of rewriting the same state for every drop.
- Starting the history summarizer no longer freezes OpenCode for seconds on very long sessions. Reading the session's message order now runs off the main thread.
- Queued Pi and Oh My Pi tool drops only ride a real prefix rebuild. A retry of a deferred compaction marker could incorrectly count as a prefix rebuild and allow tools from earlier requests to be dropped, even though nothing else had changed at the head of the request. Drops now wait for evidence that the prefix is actually being rebuilt, rather than causing an extra cache rewrite themselves. Thanks to @Qiiks for reporting the extra cache rewrites in the issue 713 thread.
- On Claude models that keep signed thinking, tool output the agent removes during a turn now waits for the next real cache rebuild instead of forcing a rebuild on the next message, saving a near-full rewrite of the conversation's cache.
- Dreamer settings now describe and enforce their real dependencies. Turning memory off no longer stops unrelated dreamer tasks.
ctx_notehides smart-note options when the dreamer cannot run, and the historian no longer collects user observations that no dreamer can review. Startup log notes explain settings disabled by another setting. Existing configuration keys stay valid; the descriptions also clarify that auto-search and git commit indexing work with memory off, docs injection works with the dreamer off, andmemory.retrieval_count_promotion_thresholdcurrently has no effect. Thanks to @null-axiom for the report in issue 715. - A new git repository works before its first commit. Magic Context reads the
.gitfiles directly to give a repository with no commits a folder identity, without starting git. This avoids the Windows git timeout that could pause memory features in a freshly initialized repository. Thanks to @Mirrowel for the report in issue 717. - Embedding rate limits no longer trip the failure breaker. OpenAI-compatible embedding requests respect
Retry-Afteron HTTP 429 responses, or back off when no usable header is supplied, rather than treating rate limits as provider failures. - The log warns when an OpenAI-compatible embedding model has no
max_input_tokenssetting. The default is sized for the bundled local model and can split history into unnecessarily small pieces for other models. The warning explains how to set the model's input limit; changing it re-embeds stored chunks once. - Magic Context warns when its storage sits outside Engram's backup folder. The startup log and
doctormake the mismatch visible so you can check that the Magic Context data is included in your backups.