Skip to content

v0.49.12

Choose a tag to compare

@github-actions github-actions released this 18 Oct 11:08
· 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.db stays at schema 95 and store.db at 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_note tool 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: false now stops only the dreamer's memory tasks. With the dreamer enabled, smart-note evaluation follows smart_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-mc to 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_note hides 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, and memory.retrieval_count_promotion_threshold currently 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 .git files 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-After on 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_tokens setting. 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 doctor make the mismatch visible so you can check that the Magic Context data is included in your backups.