Skip to content

Releases: code-yeongyu/oh-my-opencode

v3.5.2

11 Feb 08:38

Choose a tag to compare

v3.5.2 is a stability patch with targeted fixes for auto-update reliability, subagent lifecycle, and MCP tool safety.

Highlights

Auto-Update Safety

  • Pinned plugin versions are now respected — auto-update skips when you've explicitly locked a version
  • If an update install fails, the config pin reverts to prevent version mismatch between config and disk

Subagent Lifecycle

  • Fixed zombie sessions caused by permission.question=deny override in subagent spawning
  • Added optional chaining guard on session_ids to prevent crashes in boulder state reads

MCP Tool Guard

  • Tool after-hooks now safely guard output.output for MCP tools that return non-standard shapes (#1720)

Atlas Intelligence

  • Boulder verification reminders now include a notepad reading step — Atlas checks its own notes before prompting

Category Control

  • New disable field in CategoryConfigSchema — turn off entire categories without removing their config

What's Changed

Features

  • categories: add disable field to CategoryConfigSchema
  • atlas: add notepad reading step to boulder verification reminders

Bug Fixes

  • guard output.output in tool after-hooks for MCP tools (#1720)
  • respect user-pinned plugin version, skip auto-update when explicitly pinned
  • auto-update: revert config pin on install failure to prevent version mismatch
  • subagent: remove permission.question=deny override that caused zombie sessions
  • guard session_ids with optional chaining to prevent crash
  • ci: add web-flow to CLA allowlist

Other Changes

  • Merge pull request #1754 from code-yeongyu/fix/issue-1745-auto-update-pin
  • Merge pull request #1756 from code-yeongyu/fix/mcp-tool-output-guard
  • @ojh102 has signed the CLA in #1750
  • Merge pull request #1683 from code-yeongyu/fix/issue-1672
  • @danpung2 has signed the CLA in #1741

Full Changelog: v3.5.1...v3.5.2

v3.5.1

11 Feb 01:02

Choose a tag to compare

Bug Fixes

  • 13d960f3 fix(look-at): revert to sync prompt to fix race condition with async polling
    • The look_at tool was not waiting for the multimodal-looker agent response before returning results. This was caused by df0b9f76 switching from synchronous session.prompt to async session.promptAsync + polling, which introduced a race condition where the poller would fire before the server registered the session as busy.

What's Changed

Full Changelog: v3.5.0...v3.5.1

v3.5.0 — Atlas Trusts No One

10 Feb 16:28

Choose a tag to compare

v3.5.0 — Atlas Trusts No One

Atlas was naive. A subagent said "done" — Atlas moved on. Tests failing, code half-baked, requirements missing entirely. Didn't matter. "Done" meant done.

Not anymore.

Atlas now enforces mandatory manual code review. You Read every file the subagent touched. You cross-check claims against reality. You verify imports, logic, edge cases — or you don't proceed. No rubber-stamping. No skipping Step 2.

But that wasn't the only thing Atlas got wrong.


What Changed in Atlas

Boulder continuation fired on any idle session. Yours wasn't even part of the boulder — didn't matter. Atlas injected continuation prompts into random sessions. Phantom continuations everywhere.

Now Atlas checks session_ids first. Not in the list? You don't get continued. Period.

injectBoulderContinuation wasn't being awaited. Fire-and-forget. When it failed — and it failed — errors were swallowed silently. Your boulder stalled. You stared at a frozen session wondering what went wrong. The answer: Atlas threw the error into the void.

Now it's awaited. Failures are tracked. Prompt failure count increments. Two strikes, continuation stops. No more hammering broken sessions.

Plan paths pointed to the wrong place. .sisyphus/tasks/*.yaml — a path that doesn't exist anymore. Atlas looked where there were no plans. Fixed to .sisyphus/plans/*.md.

Sisyphus sessions were blocked from boulder continuation. Atlas-agent only. But Sisyphus runs when the boulder defaults to Atlas — same intent, different name. Now Sisyphus gets through.

The continuation prompt itself improved. Before: just "continue working." Now: "Read the plan file FIRST." Check exact progress. Count the remaining - [ ] tasks. No more guessing where you left off.


Also Shipped

🔴 Background Task Interrupts

Background tasks that fail during promptAsync are now marked "interrupt" instead of generic "error". Notifications show INTERRUPTED — you know exactly what happened without digging into logs.

🧭 Session Idle Dedup

OpenCode fires both session.status {type:"idle"} and session.idle for the same event. Your hooks fired twice. Now there's a 500ms dedup window — one idle, one dispatch, zero duplicates.

📝 Comment Checker: apply_patch

AI slop detection now catches apply_patch edits. Previously only Write/Edit tools were checked — patches slipped through. Not anymore.

📂 Skill @path Auto-Resolution

@scripts/search.py in skill templates → /home/user/.config/opencode/skills/frontend/scripts/search.py. No more broken relative references when skills load from unexpected directories.

🐚 Prometheus: Bash Access

The planner agent can now execute bash commands. Previously restricted to read-only tools — now it actually inspects the environment it's planning for.


Fixes

Delegation System (Wave 1 + 2)

The entire sync delegation pipeline was overhauled:

  • Polling: Native finish-based completion detection. No more fragile message-count stability polling.
  • Resource cleanup: Subagent sessions cleaned up on ALL exit paths.
  • Tool restrictions: Sync tasks get their tools back.
  • CLI runner: Fixed hang caused by event processor promise missing .catch().
  • JSONC: Config writes use proper jsonc-parser — no more corruption from comments or trailing commas.

CLI & Config

  • run command: timeout 2min → 10min, handles "retry" status, error check before idle gates.
  • Config migration applies in-memory even if backup fails.
  • Auth-plugins: crash recovery restores previous config on write failure.
  • Sensitive query params redacted from skill-mcp error messages.

Agent System

  • useTaskSystem config flag actually wired into Sisyphus/Hephaestus now.
  • EXA websearch x-api-key header restored (accidentally removed).
  • promptAsync gets 120s timeout (was infinite).
  • Comment checker CLI spawn gets 30s hard timeout.
  • Session recovery returns success=false for unsupported prefill.
  • Sisyphus-Junior can use TaskCreate/Update/List without delegation tool block.
  • Todo continuation enforcer requires active boulder session.

The Great Split

645 files. 25+ god-files decomposed. 200 LOC hard limit enforced.

Module Before After
src/index.ts 1,004 lines 88 lines + 4 orchestration files
delegate-task/executor.ts 998 lines 16 lines + 15 modules
background-agent/manager.ts 1,646 lines Core manager + 20 modules
hooks/atlas/index.ts 700 lines 25 lines + 15 modules
hooks/todo-continuation-enforcer.ts 517 lines 58 lines + 11 modules
hooks/ralph-loop/index.ts 456 lines 53 lines + 9 modules
hooks/session-recovery/index.ts 451 lines 145 lines + 12 modules
hooks/claude-code-hooks/index.ts 422 lines 22 lines + 6 handlers
tools/lsp/client.ts 854 lines 129 lines + 12 modules
config/schema.ts 483 lines 21 schema component files
cli/install.ts 540 lines 189 lines + validators/prompts
cli/config-manager.ts 680 lines 82 lines + 18 modules

New architecture layer: src/plugin/ — 21 files composing the plugin interface.

Every utils.ts renamed to what it actually does: result-formatter.ts, session-formatter.ts, tmux-path-resolver.ts, source-detector.ts.

Not a single public API changed.


Stats

645 files changed
+34,507 additions
-21,492 deletions


Breaking Changes

None. Internal module boundaries only. All public APIs unchanged.


Upgrade

npm install -g [email protected]
# or
bun install -g [email protected]

Thank you to our community contributors:

Full Changelog: v3.4.0...v3.5.0

LFG ulw ulw!

v3.4.0

08 Feb 15:44

Choose a tag to compare

v3.4.0 — Context Continuity

What's New

🎯 Context Preservation: /handoff

The headline feature. Your subagent is deep in work. Compaction is coming. Context is about to vanish.

/handoff solves this. Synthetically transfer session context—programmatically—to a new session before compaction strikes. Preemptively preserve what matters. Continue where you left off.

// Preserve context before compaction
await handoff({
  targetSession: 'new-session-id',
  context: synthesizeContext(currentSession)
})

No more losing critical state mid-work.


Features

Claude Tasks Integration

  • CLAUDE_CODE_TASK_LIST_ID environment variable support
  • Direct integration with Claude Code task lists
  • Seamless workflow between oh-my-opencode and Claude Tasks

Anthropic Prefill Auto-Recovery

  • Automatically detects Anthropic assistant message prefill deprecation
  • Auto-bypasses the restriction
  • Zero manual intervention needed

Background Task Visibility

  • Background output now shows task titles
  • Know exactly which task just completed
  • Better multi-task workflow monitoring

Session Permission Management

  • CLI run command properly propagates permissions
  • Background agents receive correct session permissions
  • Consistent permission model across execution contexts

Git Diff Stats Utility

  • Infrastructure for collecting worktree changes
  • Foundation for better change tracking and reporting

Fixes

Critical Behavior Fixes

  • #1428: Prometheus now banned from bash execution (security)
  • #1295: Category delegation respects user model settings
  • #1357: Subagent type path respects user agent model settings
  • #1366: LSP safety blocks no longer persist after server restart
  • #1582: Background task parallel completion race condition eliminated
  • #1623: Custom agents visible to orchestrator + init deadlock resolved

Integration Fixes

  • #1627: Exa MCP API key config fixed (removed duplicate headers + proper URL encoding)
  • #1493: load_skills parameter now has proper defaults

Agent System Fixes

  • #1233: Ralph/ULW loop <promise>DONE</promise> tag detection restored
  • Prometheus/Plan mutual exclusion — prevents cross-delegation loops
  • Sync continuation preserves variant (thinking budget) correctly
  • Plan agent inherits Prometheus model settings properly

Refactoring

Module Size Reduction

Split 6 massive modules into <200 LOC each for maintainability:

  • background-task
  • call-omo-agent
  • interactive-bash-session
  • tmux-subagent
  • delegate-task
  • atlas

Code Organization

  • skill-resolver extracted as standalone module
  • config-handler type safety improvements
  • Better separation of concerns across codebase

Stats

102 files changed
+5,919 additions
-2,263 deletions


Breaking Changes

None. This release is backward-compatible.


Upgrade

npm install -g [email protected]
# or
bun install -g [email protected]

Full Changelog: v3.3.2...v3.4.0

LFG ulw ulw!

What's Changed

Full Changelog: v3.4.0...v3.4.0

v3.3.2

08 Feb 03:38

Choose a tag to compare

What's Changed

Full Changelog: v3.3.2...v3.3.2

v3.3.1

07 Feb 17:48

Choose a tag to compare

What's Changed

Full Changelog: v3.3.1...v3.3.1

v3.3.0

07 Feb 14:47

Choose a tag to compare

Hi Subagents! 👋

The headline: Subagents are no longer black boxes. Click on a task tool call in the UI and see exactly what you delegated — prompt, description, model, session ID, the whole story.

delegate_tasktask: From Mystery to Transparency

Before v3.3.0, spawning a subagent meant sending it off into the void. You gave it a prompt, crossed your fingers, and waited. Want to know what instructions you actually sent? Tough luck — delegate_task kept its secrets.

Now with task:

  • Click to inspect: Every task tool call is clickable in the UI. One click reveals the full context.
  • ctx.metadata(): Subagent tasks now store title, description, prompt, category, model — everything you need.
  • storeToolMetadata(): Tool calls aren't just executed; they're documented.

Delegation isn't a leap of faith anymore — it's observable, debuggable, transparent.

Also Shipped

CLI: --port, --attach, --session-id, --on-complete, --json flags for run
Opus 4.6: Auto effort=max via anthropic-effort hook
Plugin safety: plugin_load_timeout_ms, safe_hook_creation, safeCreateHook()
ACP (Zed): 18x session.promptpromptAsync fix
MCP config: Reads both ~/.claude.json and ~/.claude/.mcp.json
UserPromptSubmitHooks: Now fires on every prompt
Compaction: TODO preservation improved
Cascade cancel: Parent deletion cancels child subagents
Windows: Multiple crash fixes
Desktop app: Cross-platform path support
Migration: System modularization

LFG ulw ulw! 🔥


What's Changed

Features

  • cli: extend run command with port, attach, session-id, on-complete, and json options
  • config: add plugin_load_timeout_ms and safe_hook_creation experimental flags
  • shared: add safeCreateHook utility for error-safe hook creation
  • register anthropic-effort hook in plugin lifecycle
  • add anthropic-effort hook to inject effort=max for Opus 4.6

Bug Fixes

  • mcp-loader: also read ~/.claude/.mcp.json for CLI-managed user MCP config
  • look-at: remove isJsonParseError band-aid (root cause fixed)
  • tools: switch session.prompt to promptAsync in delegate-task and call-omo-agent
  • hooks: switch session.prompt to promptAsync in all hooks
  • background-agent: switch session.prompt to promptAsync
  • core: switch compatibility shim to promptAsync
  • shared: switch promptWithModelSuggestionRetry to use promptAsync
  • hooks: fire UserPromptSubmitHooks on every prompt, not just first (#594)
  • mcp-loader: read user-level MCP config from ~/.claude.json (#814)
  • skill-loader: filter discovered skills by browserProvider (#1563)
  • skip ultrawork injection for plan-like agents (#1501)
  • migration: stop task_system backup writes (#1561)
  • rewrite dedup recovery test to mock module instead of filesystem
  • use lazy storage dir resolution to fix CI test flakiness
  • wire deduplication into compaction recovery for prompt-too-long errors (#96)
  • register compaction todo preserver
  • add compaction todo preserver hook
  • avoid invented compaction constraints
  • ensure truncated result stays within maxLength limit
  • cascade cancel descendant tasks when parent session is deleted (#114)
  • update session-manager tests to use factory pattern
  • use character limit instead of sentence split for skill description (#358)
  • allow string values for commit_footer config (#919)
  • use ctx.directory instead of process.cwd() in tools for Desktop app support
  • normalize resolvedPath before startsWith check
  • expand ALLOWED_AGENTS to include all subagent-capable agents
  • boulder continuation now respects /stop-continuation guard
  • anchor .sisyphus path check to ctx.directory to prevent false positives
  • use platform-aware binary detection (where on Windows, which on Unix)
  • allow dash-prefixed arguments in CLI run command
  • don't fallback to system 'sg' command for ast-grep
  • allow dash-prefixed arguments in CLI run command
  • make model migration run only once by storing history in _migrations field
  • explicitly pass encoding/callback args through stdout.write wrapper
  • test: remove shadowed consoleErrorSpy declarations in on-complete-hook tests
  • address cubic 4/5 review issues
  • test: mock SDK and port-utils in integration test to prevent CI failure
  • clear race timeout after plugin loading settles
  • index: wrap hook creation with safeCreateHook + add defensive optional chaining (#1559)
  • config-handler: add timeout + error boundary around loadAllPluginComponents (#1559)
  • trim whitespace from tool names to prevent invalid tool calls
  • allow Prometheus to overwrite .sisyphus/*.md plan files
  • hooks: add defensive null check for matcher.hooks to prevent Windows crash (#441)
  • respect user-configured agent models over system defaults
  • respect user-configured agent models over system defaults
  • guard against undefined modelID in anthropic-effort hook

Refactoring

  • migration: split model and category helpers (#1561)
  • migration: extract agent and hook maps (#1561)
  • extract context window recovery hook
  • migrate delegate_task to task tool with metadata fixes

Documentation

  • add comprehensive local testing guide for acp-json-error branch

Other Changes

  • Merge pull request #1620 from potb/acp-json-error
  • Merge pull request #1621 from code-yeongyu/fix/814-mcp-config-both-paths
  • Merge pull request #1616 from code-yeongyu/fix/814-user-mcp-config
  • Merge pull request #1618 from code-yeongyu/fix/594-user-prompt-submit-fires-once
  • Merge pull request #1615 from code-yeongyu/fix/1563-browser-provider-gating
  • Merge pull request #1584 from code-yeongyu/fix/441-matcher-hooks-undefined
  • Merge pull request #1614 from code-yeongyu/fix/1501-ulw-plan-loop
  • Merge pull request #1613 from code-yeongyu/fix/1561-dead-migration
  • Merge pull request #1610 from code-yeongyu/fix/96-compaction-dedup-recovery
  • Merge pull request #1611 from code-yeongyu/fix/1481-1483-compaction
  • Merge pull request #1607 from code-yeongyu/fix/358-skill-description-truncation
  • Merge pull request #1608 from code-yeongyu/fix/114-cascade-cancel
  • Merge pull request #1606 from code-yeongyu/fix/658-tools-ctx-directory
  • Merge pull request #1605 from code-yeongyu/fix/919-commit-footer-v2
  • Merge pull request #1593 from code-yeongyu/fix/prometheus-plan-overwrite
  • Merge pull request #1604 from code-yeongyu/fix/957-allowed-agents-dynamic
  • Merge pull request #1594 from code-yeongyu/fix/boulder-stop-continuation
  • Merge pull request #1603 from code-yeongyu/fix/1269-windows-which-detection
  • Merge pull request #1601 from code-yeongyu/fix/899-cli-run-dash-args
  • Merge pull request #1602 from code-yeongyu/fix/1365-sg-cli-path-fallback
  • Merge pull request #1597 from code-yeongyu/fix/899-cli-run-dash-args
  • Merge pull request #1595 from code-yeongyu/fix/tool-name-whitespace
  • Merge pull request #1592 from code-yeongyu/fix/issue-1570-onetime-migration
  • Merge pull request #1590 from code-yeongyu/feat/run-cli-extensions
  • Merge pull request #1585 from code-yeongyu/fix/1559-crash-boundary
  • Revert "Merge pull request #1578 from code-yeongyu/fix/user-configured-model-override"
  • Merge pull request #1578 from code-yeongyu/fix/user-configured-model-override
  • Merge pull request #1564 from code-yeongyu/feat/anthropic-effort-hook
  • Merge pull request #1543 from code-yeongyu/feat/task-tool-refactor

Full Changelog: v3.2.4...v3.3.0

v3.2.4

06 Feb 12:06

Choose a tag to compare

What a wild day.

GPT 5.3 Codex and Claude Opus 4.6 dropped on the same day. That's not a coincidence — that's the universe telling us we're living through something historic. Two frontier model providers, shipping simultaneously. Monumental.

And we adopted both the same day they shipped.

108 files changed. +4,666/-4,625 lines. A same-day sweep from one end of the codebase to the other. When the frontier moves, we move with it.


Hephaestus: The Legitimate Craftsman Evolves 🔨

New mindset: "KEEP GOING. SOLVE PROBLEMS."

Autonomous recovery got smarter. Hephaestus now tries 3 different approaches before bothering you. Stuck on a bug? He'll pivot, retry, adapt — all on his own. This is what autonomous execution should feel like.

Plus: provider-based activation. Got OpenAI, Copilot, or OpenCode connected? Hephaestus is ready. No exact model matching gymnastics required.

Custom Skills: First-Class Citizens

User-installed skills now get HIGH PRIORITY treatment in prompts. No more blending in with builtins — they're clearly separated, emphasized, and respected. Your custom workflows matter.

Safety First: Write Guard

New hook blocks agents from silently overwriting existing files. The write tool now checks before clobbering. Peace of mind.


What's New

Models

  • Claude Opus 4.5 → 4.6, GPT 5.2 Codex → 5.3 Codex across 108 files
  • Auto-migration: MODEL_VERSION_MAP upgrades your configs on load automatically
  • Claude Opus 4.6 prioritized in anthropic fallback chains

Hephaestus

  • "KEEP GOING. SOLVE PROBLEMS." mindset upgrade
  • 3-approach-first recovery rule before escalating to user
  • Provider-based gating: activates by connectivity, not exact model match

Skills

  • Dynamic skill priority: user-installed skills emphasized with HIGH PRIORITY
  • formatCustomSkillsBlock() extracted as shared DRY function

Safety & UX

  • Write existing file guard: blocks overwrite of existing files
  • Auto port selection: finds next available when 4096 is busy
  • look_at image_data support: paste/clipboard images now work

Task System

  • Task global storage with ULTRAWORK_TASK_LIST_ID support

Fixes

  • Atlas continuation guard: stops infinite retry loops
  • Compaction model-agnostic: removed hardcoded Claude model prefix
  • Sisyphus-Junior: uses category model instead of UI-selected model
  • Plan agent: dynamic categories/skills (not hardcoded)
  • Schema sync: Zod schemas aligned
  • Regex special chars escaped in pattern matcher
  • Disabled tools actually enforced now
  • Glob/Grep uses process.cwd() correctly
  • Background agent abort handled gracefully
  • Custom skills env var restoration fixed
  • Provider cache handles both string[] and object[] formats
  • LSP Windows: uses Node.js child_process (avoid Bun segfault)
  • Boulder state agent tracking fixed
  • Model availability honors connected providers
  • Auto-update uses correct config dir
  • Duplicate fallback entries cleaned

Refactoring

  • Dead code removal: ollama-ndjson-parser.ts, plugin-state.ts, unused types
  • Schema build: z.toJSONSchemazodToJsonSchema
  • formatCustomSkillsBlock DRY extraction

Docs

  • AGENTS.md regenerated across all directories
  • Config/feature docs updated

This is what shipping looks like when the frontier moves. Two models, one day, immediate adoption.

LFG 🔥 ulw ulw


Full Changelog: v3.2.3...v3.2.4

v3.2.3

04 Feb 06:38

Choose a tag to compare

What's Changed

✨ Features

  • Multi-provider websearch support - Choose between Exa (default) and Tavily for web search (#1371 by @YanzheL)
  • Nested skill directories - Skills can now be organized in subdirectories for better organization (#1254 by @LeekJay)
  • Disabled skills support - Add disabledSkills config to selectively disable skills

🐛 Bug Fixes

Authentication & Server

  • Fix OpenCode Desktop server unauthorized error on subagent spawn (#1399 by @ualtinok, @boguan)
  • Add graceful fallback for server auth injection

Model & Provider

  • Prefer exact model ID match in fuzzyMatchModel - fixes wrong model selection (#1460)
  • Use supported variant for gemini-3-pro (#1463)
  • Avoid propertyNames in skill-mcp for Gemini compatibility (#1465)
  • Honor explicit category model over sisyphus-junior default

Skill Loader

  • Respect disabledSkills in async skill resolution (caching bug)
  • Deterministic collision handling for duplicate skill names (#1370 by @misyuari)

LSP & Tools

  • Prevent stale diagnostics by syncing didChange before fetching (#1280 by @Zacks-Zhang)
  • Fix overridden tools (glob, grep) path resolution for OpenCode Desktop

Agents & Hooks

  • Deduplicate settings paths to prevent double hook execution (#1297 by @khduy)
  • Honor tools overrides via permission migration (#1289 by @KonaEspresso94)
  • Block bash commands in Prometheus mode to respect permission config (#1449 by @kaizen403)
  • Abort session on model suggestion retry failure
  • Add read-only restrictions for Metis and Momus agents

Shell & Environment

  • Use detectShellType() instead of hardcoded 'unix' for cross-platform support (#1459)
  • Force unix export syntax for bash env prefix in non-interactive environments

CI/CD

  • Use regex variables for bash 5.2+ compatibility in changelog generation

🎨 Style

  • Update Hephaestus and Prometheus agent colors

📚 Documentation

  • Clarify Prometheus invocation workflow (#1466)
  • Instruct curl over WebFetch for installation (#1461)
  • Document websearch provider configuration
  • Fix broken TOC links in translated READMEs (#1384 by @devxoul)

🔧 Other

  • Respect user-configured agent variant in doctor command (#1464)
  • Lazy evaluation prevents crash when websearch disabled

Full Changelog: v3.2.2...v3.2.3

v3.2.2

03 Feb 08:01

Choose a tag to compare

v3.2.2

🚀 GPT-5.2 Prompt Optimization

  • Atlas, Sisyphus-Junior, Oracle: Model-based prompt routing with GPT-5.2 optimized prompts (XML structure, verbosity constraints, explicit decision criteria)

🧪 Experimental: Claude Code-style Task System

  • New Tools: TaskCreate, TaskGet, TaskList, TaskUpdate for structured task management
  • File-based Storage: Tasks stored in .sisyphus/tasks/ with Claude Code compatible schema
  • ⚠️ Important Limitation: This is experimental and does NOT sync with OpenCode's Todo UI. Enabling this will disable TodoWrite - todos won't appear in TUI. This is a known UX downgrade. We're exploring SDK integration solutions.
  • Enable: Set experimental.task_system: true in config

✨ Agent & Hook Improvements

  • Faster Exploration: grok-code-fast-1 as default explore agent model
  • Preemptive Compaction: Auto-summarizes session at 78% context usage (Anthropic models)
  • Agent Fallback: First-run without cache now works properly
  • CLI: Added default_run_agent config and OPENCODE_DEFAULT_AGENT env var

🐞 Bug Fixes

  • config: Plan agent no longer inherits Prometheus prompt on demote
  • background-cancel: Skip notification when user explicitly cancels tasks
  • delegate-task: Fixed sisyphus-junior model override precedence
  • prompts: Added missing run_in_background, load_skills params in examples

🛠 New Skills

  • github-pr-triage: Streaming PR analysis with background tasks
  • github-issue-triage: Streaming issue analysis

What's Changed

Features

  • delegate-task: add actionable TODO list template to plan agent prompt
  • auto-slash-command: add builtin commands support and improve part extraction
  • agents: add GPT-5.2 optimized prompt for sisyphus-junior
  • tasks-todowrite-disabler: improve error message with actionable workflow guidance
  • agents: add useTaskSystem flag for conditional todo/task discipline prompts
  • agents: add Todo Discipline section to Hephaestus prompt
  • task-system: add experimental task system with Claude Code spec alignment
  • agents: respect uiSelectedModel in Atlas model resolution
  • add agent fallback and preemptive-compaction restoration
  • agents: add grok-code-fast-1 as primary model for explore agent
  • skills: add streaming mode and todo tracking to triage skills
  • agents: restructure atlas agent into modular directory with model-based routing
  • task: add real-time single-task todo sync via OpenCode API
  • task: refactor to Claude Code style individual tools
  • cli: implement default agent priority in run command
  • config: add default_run_agent schema option
  • skills: add github-pr-triage skill and update github-issue-triage
  • config: disable todowrite/todoread tools when new_task_system_enabled

Bug Fixes

  • config: prevent plan agent from inheriting prometheus prompt on demote
  • background-cancel: skip notification when user explicitly cancels tasks
  • config-handler: preserve plan prompt when demoted
  • prometheus: enforce path constraints and atomic write protocol
  • prompts: add missing run_in_background and load_skills params to examples
  • delegate-task: honor sisyphus-junior model override precedence
  • honor agent variant overrides
  • task-tool: add task ID validation and improve lock acquisition safety

Refactoring

  • ultrawork: simplify workflow and apply parallel context gathering
  • config-handler: separate plan prompt into dedicated configuration
  • background-agent: optimize lifecycle and simplify tools
  • oracle: optimize prompt for GPT-5.2 with XML structure and verbosity constraints
  • prometheus: replace binary verification with layered agent-executed QA
  • task: update schema to Claude Code field names

Full Changelog: v3.2.1...v3.2.2