v0.29.1
·
2490 commits
to master
since this release
v0.29.1
A small patch release: fixes a multi-project Desktop warning, a tool-call edge case for GPT-family models, and simplifies an internal nudge path.
Fixes
- No more
MaxListenersExceededWarningon OpenCode Desktop with several projects open. Each plugin instance was registering its own process-exit listener; past Node's 10-listener default this logged a warning. All instances now share a single exit listener. ctx_notedefaults to read correctly for GPT-family models. Models that fill every optional parameter (sendingcontent: ""for a read) madectx_noteinfer a write and reject the empty content. It now infers write only on non-empty content.- Pi resolves OpenAI and Google models from a shared OpenCode/Pi config. OpenCode and Pi name a few providers differently (
openaivsopenai-codex,googlevsgoogle-antigravity); a model configured in one harness' form is now translated automatically so the same shared config works on both. Anthropic and other providers were already identical. - Dreamer "last run" time is accurate again (#194). After upgrading to Dreamer V2, the sidebar and
/ctx-statusshowed a frozen timestamp from the old V1 dream cycle even though V2 tasks were running nightly. They now read the most recent task run, so the displayed time tracks real execution. Thanks to @wjiuxing for the precise report.
Internal
- Channel 2 ceiling nudges now deliver through the in-process client OpenCode hands the plugin instead of a separate live-server client + reachability probe (the upstream duplicate-runner bug the workaround guarded against is fixed in OpenCode ≥ 1.17.7). As a side effect they also work on plain TUI now.
- Removed dead code and a circular import (
storage-db↔migrations) surfaced while dogfooding our code-health tooling.