Releases: devinoldenburg/opencode-goal-mode
Release list
v0.9.7
Patch release for documentation accuracy and small lint cleanups.
- Documented all plugin config keys in README and CUSTOMIZE
- Removed stale references to a missing test harness and slash-command files
- Deduplicated
publishConfigand cleared two Biome warnings
v0.9.6
Patch release for the release metadata refresh.
Thanks to @fengjikui for the installer fix and the careful review on PR #449.
v0.9.5
Patch release for the transcript truncation fix and the current dependency refresh.
v0.9.4
0.9.4 — Workflow smoke test
Same release scheme as 0.9.2 / 0.9.3.
- Tag
v0.9.4triggers.github/workflows/publish.yml - Runs lint + tests, then
npm publish - No code changes; purely to verify the npm pipeline
24 unit tests pass.
v0.9.3
0.9.3 — Easy global npm install + uninstall
What changed
postinstallnow prints a short, copy-pasteable one-liner when you runnpm install -g opencode-goal-mode.- README leads with the npm path and shows both install and uninstall commands.
install.mjsalso prints the uninstall command after a successful run.- Manual removal is trivial: delete the three symlinks/files under
~/.config/opencode/{agents,plugins}(or run the--uninstallcommand).
Install (one command after npm)
npm install -g opencode-goal-mode
opencode-goal-mode-install --global --link # recommended (symlinks)Uninstall
opencode-goal-mode-install --global --uninstall
npm uninstall -g opencode-goal-mode24 unit tests pass.
v0.9.2
0.9.2 — npm publish workflow + README npm installer
Added
.github/workflows/publish.yml— runs onvX.Y.Ztags, runs lint + tests, thennpm publish --provenance --access public.package.jsonalready exposesopencode-goal-modeandopencode-goal-mode-installbins.- README now documents the npm install path first:
npm install -g opencode-goal-mode
opencode-goal-mode-install --global --link24 unit tests pass.
v0.9.1
0.9.1 — Goal Completed UX fix (doc-only)
Problem
During implementation turns the Goal agent sometimes wrote Goal Completed or summary sections (What was implemented, Outcome, etc.) early. Goal Mode later sent its own synthetic completion-summary turn, resulting in a duplicate/broken banner in the UI.
Fix
- Continuation turns now explicitly forbid any summary text (
Goal Completed, banners, or the full summary sections). The system prompt says: "Write zero summary text on this turn". - Only the later synthetic
(goal-mode completion summary)turn may produce theGoal Completedbanner and full summary sections. - Goal agent instructions updated to match.
- Removed remaining "native" wording — Goal Mode is a plugin + Goal agent, not built into OpenCode core.
Result
Clean user experience: one normal implementation/proof message first, then exactly one Goal Completed banner + summary at the end.
24 unit tests pass.
v0.9.0
OpenCode Goal Mode 0.9.0
Simple native Goal Mode: goal agent + server plugin (opencode-goal-mode), three tools (goal_set, goal_clear, goal_status), idle evaluator, auto-continue until YES.
Highlights
- No TUI sidebar, no guard plugin, no
/goalslash command goal_set→ work → evaluator on idle → NO continues / YES clears + one Goal Completed summary turn- OpenCode ≥1.17: v2 SDK transport +
session.statusidle + TUI evaluator fallback - 24 unit tests
Install
git clone https://github.com/devinoldenburg/opencode-goal-mode.git
cd opencode-goal-mode
node scripts/install.mjs --global --link # dev: symlinks into ~/.config/opencode
# or
node scripts/install.mjs --global # copy installAdd to ~/.config/opencode/opencode.jsonc:
"plugin": [["./plugins/goal-mode.js", { "evaluatorModel": "provider/model" }]]Restart OpenCode. Use the Goal agent.
Docs
- GOAL.md — how it works
- README.md
- CUSTOMIZE.md
v0.8.5
Fix: subagents no longer prompt for permissions on every tool use
Goal workers and reviewers used bash: ask, external_directory: ask, and bash
"*": ask in agent frontmatter. Delegated task sessions are unattended — those
rules surfaced repeated permission dialogs (bash, external paths, webfetch).
Fix. Subagents now use explicit deny/allow bash lists (or bash: deny for
non-shell roles), workspace-wide external_directory allow (same pattern as goal.md),
and reviewers keep webfetch/websearch as deny where appropriate. Regression test
in agents.test.mjs.
v0.8.4
Fix: task delegation failing with invented task_id (not Goal Guard block)
OpenCode requires task_id to be an existing subagent session id (ses…). Models often
pass a random UUID on first delegation, which fails immediately with
Expected a string starting with "ses", got "…" — the Goal agent then reports
“subagent delegation failed” even though permissions and restrictSubagents were fine.
Fix. tool.execute.before strips invalid task_id values before the task runs.
goal.md and the live system injection tell the model not to pass task_id on new
delegations.