You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multilingual routing: the PreToolUse classifier now scores English AND Italian delegation
intent (delegate, subagent(s), fan out, delega, subagente/i, in parallelo, rifattorizza…) up, and quick-look intent (cerca, veloce, esplora…) down.
Free-model auto-detection in sync: models:sync prints NEW free models detected: …; --auto-free promotes them straight to tier 0 (curated default never stolen).
Per-account budget caps: budget.accounts.<name>.maxDailyCostUsd is enforced at delegate
time against that account's own daily spend (BUDGET_ACCOUNT_DAILY_MAX) on top of global
caps; computeSpend buckets today's spend per account.
Race winner reasoning: fanOut mode:"race" now returns the winner's reasoningTail
(last ~600 chars of chain-of-thought) for cross-model quality comparison.
Persistent activity buffer: the in-memory feed survives MCP server restarts via a
throttled snapshot (state/activity-buffer.json, 300 lines × 100 jobs), reloaded lazily.
Live activity visibility — zero files by default: every delegated session's
chain-of-thought reasoning, assistant output, tool-call state transitions
(bash (running) {command…}, deduped per status), permission asks and lifecycle notes are
captured in an in-memory per-job buffer inside the MCP server.
wait progress frames now stream a rich one-line feed (reasoning · latest tool · assistant
tail) into Claude Code's console under the running call — like watching a classic subagent.
New mcp__plugin_opencode_oc__logs {jobId?|sessionID?|lines?} tool tails that buffer
(latest delegate job by default) plus live assistantTail/reasoningTail for running
sessions; wired into the opencode-delegate agent and delegate/parallel commands.
Tool count is now twelve.
Opt-in disk mirror (OPENCODE_ACTIVITY_LOG=1) enables the terminal follower node plugins/opencode/scripts/oc-logs.mjs -f and the new /opencode:logs command.
Proactive routing skill (skills/opencode-routing/SKILL.md): trigger-rich description
("subagents, delegation, parallel workers, background tasks, fan-out") with an explicit
anti-overuse guard — routine single-file edits, exploration and quick questions stay local.
Delegation fires when the user asks for it, not on every task.
Changed
Docs: model catalog truth + "Adding models" guide. README gains a step-by-step section for
adding models (live-catalog prerequisite, model add flags, verify loop, error table,
free-only reality). Agent/skill tier guidance no longer advertises deepseek/kimi fallbacks —
tiers 1-3 are empty under the current excluded list and a failed free run must be reported
BLOCKED, not escalated to an excluded model.
Agent trigger phrases: opencode-delegate description now says "Use PROACTIVELY when the
user asks for subagents, delegation, parallel workers, background tasks or fan-out work" plus
explicit exclusions — this is the field Claude Code matches user wording against.
Part tracker captures reasoning parts alongside text; permission watcher exposes reasoningText() and an optional onEvent sink hook.
Catalog resync (2026-08-24): metadata refresh only — same 62 ids, contract/defaults/policies/
excluded untouched. Live catalog currently offers NO free model beyond the seven already
configured (big-pickle, hy3-free, mimo-v2.5-free, nemotron-3-ultra-free,
nemotron-3.5-lightning-free, ox-alpha-free, x-preview-f-free); addModel→validate→resolve
path re-verified for future additions (duplicate guard, tier-0 resolution).
Fixed
Router hook tier inconsistency: delegation advice no longer hardcodes tier:1 (a paid
tier under the current free-only policy) — it instructs delegate {task, autoRetry:true}
without tier/model so the resolver applies defaults.tier: 0.
Windows CI flake (windows-smoke): the smoke job could fail right after npm i -g
with "opencode not found on PATH" — a runner PATH-refresh race. Fixes: npm global prefix is
pinned to PATH via GITHUB_PATH, resolveOpencodeCommand() additionally probes the standard %APPDATA%\npm shim locations when where.exe misses, negative lookups are no longer cached
(so retries heal), and the smoke script retries doctor's binary check 3× before failing.