OpenCode 1.2.x ready. Agents got names. Dead code is dead.
Your SQLite backend just got full plugin support. Every read, every write, every recovery path — dual-wired for the new storage layer. Oh, and your agents finally tell you who they are.
https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v3.6.0
87 commits. 186 files changed. +4,723/−2,634 lines.
Highlights
SQLite Backend — Full Support
isSqliteBackend()auto-detects OpenCode ≥ 1.1.53 (version + DB file dual check)- 37 files migrated from JSON file reads to SDK message finders
- HTTP PATCH/DELETE for part manipulation — inject, strip, prepend, replace
- Context window recovery fully wired: pruning, deduplication, truncation all via SDK
normalizeSDKResponsehandles every SDK shape (array,{data}, null)- Retry-once for startup race conditions
Agent Display Names
- Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder)
- Atlas (Plan Executor), Metis (Plan Consultant), Momus (Plan Critic)
- Config key ↔ display name bidirectional mapping at output boundary
- Category delegation + command routing fully display-name-aware
Background Task Visibility
full_session,include_thinking,include_tool_resultsauto-enabled for running tasks- See what your background agents are actually doing, not just their final output
Dead Code Purge
- Legacy unified task tool — gone
- 20+ files cleaned: unused imports, params, types, dead files
message-storage-locator.ts,task-id-validator.ts,pollSessions— all deleted
Stability
- 8 rounds of Cubic review hardening for SDK compatibility
- HTTP API timeout 30s → 10s
- 13 duplicated
getMessageDircopies → single shared function sessionExists()now async + SQLite-aware
v1.2.x ready. Names on. Deadcode off.
LFG ulw ulw!
- 7e9b9ce Merge pull request #1721 from edxeth/fix/disable-mcps
- bad63b9 fix: force include_thinking and include_tool_results for running background tasks
- e624f98 feat: auto-enable full_session, thinking, and tool_results for running background tasks
- 2eb4251 refactor: rewrite remove-deadcode command for parallel deep agent batching
- a1086f2 refactor: remove dead file task-id-validator.ts and unused isModelAvailable from model-name-matcher
- 158ca3f refactor: remove unused params/imports/types from lsp-tools, task-tools, delegate-task, skill-loader, context-window-monitor, plugin-config
- 9dbb955 refactor: remove unused imports from auto-update-checker, claude-code-hooks, mcp
- bfabad7 refactor: remove unused imports from interactive-bash-session, session-recovery, start-work
- 1ba330f refactor: remove unused code from background-agent, background-task, call-omo-agent
- 169c07e refactor: remove unused imports from injector, tool-result-storage-sdk, session-notification-utils, model-resolver
- ec0833b refactor: remove unused constants and dead pollSessions from tmux-subagent
- 8dd3d07 refactor: remove unused hasIgnoredParts variables from context-window-limit-recovery
- 731a331 refactor: remove dead file message-storage-locator.ts
- ca0ca36 remove dead code: legacy unified task tool and its action handlers
- dd8f924 clarify task tool: emphasize category/subagent_type is required, remove inline examples
- cb601dd fix: resolve category delegation and command routing with display name agent keys
- 560d13d Normalize agent name comparisons to handle display name keys
- d94a739 Remap config.agent keys to display names at output boundary
- c71a80a Revert name fields from agent configs, add getAgentConfigKey reverse lookup
- 71df52f Add display names to all core agents via name field
- 91734de Update agent display names: add Hephaestus (Deep Agent), rename Atlas to (Plan Executor), rename Momus to (Plan Critic)
- e97f8ce Revert "Add display names to core agents: Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder), Atlas (Plan Executor)"
- 1670b4e Revert "Add display names to Metis (Plan Consultant) and Momus (Plan Critic)"
- 9a07227 Merge pull request #1886 from code-yeongyu/fix/oracle-review-findings
- 3018470 Add display names to Metis (Plan Consultant) and Momus (Plan Critic)
- 655899a Add display names to core agents: Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder), Atlas (Plan Executor)
- 65bca83 fix: resolve session-manager storage test mock pollution (pre-existing CI failure)
- 8e0d134 refactor: consolidate duplicated Promise.all dual reads into resolveMessageContext utility
- 1a68105 refactor: create normalizeSDKResponse helper and replace scattered patterns across 37 files
- 6d732fd fix: propagate sessionExists SDK errors instead of swallowing them
- ed84b43 fix: add retry-once logic to isSqliteBackend for startup race condition
- 49ed323 fix: reduce HTTP API timeout from 30s to 10s
- eb6067b fix: rename prompt_async to promptAsync for SDK compatibility
- 4fa234e Merge pull request #1837 from code-yeongyu/fuck-v1.2
- c1681ef fix: normalize SDK response shape in readMessagesFromSDK
- 9889ac0 fix: handle array-shaped SDK responses in getSdkMessages & dedup getMessageDir
- 5a6a9e9 fix: defensive SDK response handling & parts-reader normalization
- 8edf6ed fix: address 5 SDK compatibility issues from Cubic round 8
- cfb8164 docs: regenerate all 13 AGENTS.md files from deep codebase exploration
- c2012c6 fix: address 8-domain Oracle review findings (C1, C2, M1-M4)
- 106cd5c fix: re-read fresh messages before empty scan & dedup isRecord import
- c799584 fix: address Cubic round-6 P2/P3 issues
- 3fe9c1f fix: address Cubic round-5 P1/P2 issues
- 885c858 fix: revert messageHasContentFromSDK unknown type handling
- 8d82025 fix: address Cubic round-4 P2 issues
- 557340a fix: restore readMessagesFromSDK and its test
- d7b38d7 fix: address Cubic round-3 P2/P3 issues
- 5f97a58 fix(test): stabilize waitForEventProcessorShutdown timeout test for CI
- 880b53c fix: address Cubic round-2 P2 issues
- 1a74442 fix: address all Cubic P2 review issues
- aad0c36 fix(test): fix sync continuation test mock leaking across sessions
- 96a67e2 fix(test): increase timeouts for CI-flaky polling tests
- 1158644 fix: make sessionExists() async with SDK verification on SQLite
- 3bbe0cb feat: implement SDK/HTTP pruning for deduplication and tool-output truncation on SQLite
- a25b35c fix: make sessionExists() SQLite-aware for session_read tool
- 52161ef fix: add SDK readParts fallback for recoverToolResultMissing on SQLite
- 62e4e57 feat: wire context-window-recovery callers to async SDK/HTTP variants on SQLite
- dff3a55 feat: wire session-recovery callers to async SDK/HTTP variants on SQLite
- 0a085ad fix(test): rewrite SDK reader tests to use mock client objects instead of mock.module
- 291a3ed feat: migrate tool callers to SDK message finders on SQLite backend
- 553817c feat: migrate call-omo-agent tool callers to SDK message finders
- 2bf8b15 feat: migrate hook callers to SDK message finders on SQLite backend
- af8de2e feat: add SDK read paths for session-recovery parts/messages readers
- 1197f91 feat: add SDK/HTTP paths for tool-result-storage truncation
- 808de58 feat: implement SQLite backend for replaceEmptyTextParts via HTTP PATCH
- f69820e feat: implement SQLite backend for prependThinkingPart via HTTP PATCH
- c771eb5 feat: implement SQLite backend for injectTextPart via HTTP PATCH
- 049a259 feat: implement SQLite backend for stripThinkingParts via HTTP DELETE
- 3fe0e0c docs: clarify injectHookMessage degradation log on SQLite backend
- d414f6d fix: add explicit isSqliteBackend guards to pruning modules
- 0c6fe38 feat: add SDK path for getMessageIds in context-window recovery
- 450a5bf feat: add opencode HTTP API helpers for part PATCH/DELETE
- 7727e51 fix(test): eliminate mock.module pollution between shared test files
- 2a7535b fix(test): mock isSqliteBackend in prometheus-md-only tests for SQLite environments
- 4cf3bc4 refactor(shared): unify MESSAGE_STORAGE/PART_STORAGE constants into single source
- 068831f refactor: cleanup shared constants and add async SDK support for isCallerOrchestrator
- 1bb5a3a fix: prefer id matching when deleting todos (Cubic feedback)
- 02e0534 fix: handle deleted tasks in todo-sync (Cubic feedback)
- 4b2410d fix: address remaining Cubic review comments (P2 issues)
- 07da116 fix: address Cubic review comments (P2/P3 issues)
- 49dafd3 feat(storage): gate JSON write operations on OpenCode beta, document degraded features
- e34fbd0 feat(context-window-recovery): gate JSON writes on OpenCode beta
- b0944b7 feat(session-manager): add version-gated SDK read path for OpenCode beta
- 5eebef9 refactor(shared): unify MESSAGE_STORAGE/PART_STORAGE constants into single source
- c9c02e0 refactor(shared): consolidate 13+ getMessageDir copies into single shared function
- e90734d fix(todo): make Todo id field optional for OpenCode beta compatibility
- 3abc1d4 fix(mcp): preserve user's enabled:false and apply disabled_mcps to all MCP sources
Thank you to 1 community contributor:
- @edxeth:
- fix(mcp): preserve user's enabled:false and apply disabled_mcps to all MCP sources