Skip to content

v0.49.29

Choose a tag to compare

@github-actions github-actions released this 29 Oct 01:29
· 62 commits to master since this release

v0.49.29

This patch fixes console windows flashing on Windows, OpenCode 2 sessions showing zero tokens, a small config mistake that silently turned memory off, and two cases where Magic Context could change bytes already sent to the model.

Upgrading

  • Restart OpenCode or Pi after updating. No database migration is needed.

Fixed

  • Console windows flashing on Windows (#804, #553, thanks @butterbrodskiy and @devsiac): the dreamer's verify step ran its git commands without hiding their window, so one verify pass could flash dozens of PowerShell or CMD windows and steal focus. Those commands now run hidden. A test now checks every place Magic Context starts a process, including the ones run through promisified helpers.
  • "Total tokens 0" in the OpenCode 2 sidebar (#805, thanks @maxbrunet): the sidebar read token totals from OpenCode 1's message table, which is empty on OpenCode 2. It now reads OpenCode 2's own messages.
  • OpenCode 2 dreamer tasks recording zero tokens (#810, thanks @iceteaSA): on OpenCode 2, the dreamer's tool-using tasks (memory mapping, verify, curate, retrospective) and smart-note evaluation recorded no token usage. They now record the usage their completions report. A memory-mapping batch that times out now keeps the mappings it already produced, instead of reading an empty transcript and losing them.
  • A small config mistake silently turned memory off (#811, thanks @Drynwhyl): an invalid value anywhere under memory, such as an out-of-range injection_budget_tokens, marked the whole config untrusted, which turns memory off for a project at its first start. The memory tool then only said "disabled for this project".
    • What happens now: an invalid value falls back to its default with a warning, and memory stays on. Only fields that decide which embeddings and which project a memory belongs to (the embedding provider, model and endpoint, the local runtime, the memory switches, home-project admission) still mark the config untrusted, because a wrong value there could delete stored embeddings.
    • An invalid git_commit_indexing.max_commits: commit indexing keeps working, but deleting old commits pauses until the value is fixed.
    • When memory is off for this reason: the memory tool now names the invalid fields.
  • A busy-database fallback could erase a served reminder: when the database is busy, Magic Context serves its last good request again. Applying newly committed drops to that request also erased reminder text already served on a dropped message, so the request changed and the provider cache rebuilt. Reminders already served now stay until a permitted rebuild. Normal passes still render every drop as the plain placeholder.
  • OpenCode 2.2.0 instruction updates: OpenCode 2.2.0 lets plugins post instruction updates mid-conversation as system rows.
    • The summarizer no longer reads those rows as something you said.
    • The busy-database fallback now works in sessions that contain them. An update that arrives right after such a fallback is no longer dropped, and an instruction edited after OpenCode's checkpoint now makes the fallback refuse instead of sending the old text.