OpenCode 1.2.x 준비 완료. 에이전트에 이름이 생겼습니다. 죽은 코드는 죽었습니다.
SQLite 백엔드가 완전한 플러그인 지원을 받았습니다. 모든 읽기, 모든 쓰기, 모든 복구 경로 — 새로운 스토리지 레이어를 위해 이중 연결되었습니다. 그리고 에이전트들이 마침내 자신들이 누구인지 알려줍니다.
87개 커밋. 186개 파일 변경. +4,723/−2,634 줄.
isSqliteBackend() OpenCode ≥ 1.1.53 자동 감지 (버전 + DB 파일 이중 확인)
JSON 파일 읽기에서 SDK 메시지 파인더로 37개 파일 마이그레이션
부분 조작을 위한 HTTP PATCH/DELETE — 주입, 제거, 앞에 추가, 교체
컨텍스트 윈도우 복구 완전 연결: 정리, 중복 제거, 자르기 모두 SDK를 통해
normalizeSDKResponse 모든 SDK 형태 처리 (배열, {data}, null)
시작 경쟁 조건을 위한 재시도 한 번
Sisyphus (Ultraworker), Hephaestus (Deep Agent), Prometheus (Plan Builder)
Atlas (Plan Executor), Metis (Plan Consultant), Momus (Plan Critic)
출력 경계에서 설정 키 ↔ 표시 이름 양방향 매핑
카테고리 위임 + 명령 라우팅 완전히 표시 이름 인식
full_session, include_thinking, include_tool_results 실행 중인 작업에 자동 활성화
최종 출력뿐만 아니라 백그라운드 에이전트가 실제로 무엇을 하고 있는지 확인
레거시 통합 작업 도구 — 제거됨
20개 이상 파일 정리: 사용하지 않는 임포트, 매개변수, 타입, 죽은 파일
message-storage-locator.ts, task-id-validator.ts, pollSessions — 모두 삭제됨
SDK 호환성을 위한 8라운드 Cubic 리뷰 강화
HTTP API 타임아웃 30초 → 10초
13개 중복된 getMessageDir 복사본 → 단일 공유 함수
sessionExists() 이제 비동기 + SQLite 인식
v1.2.x 준비 완료. 이름 켜짐. 죽은 코드 꺼짐.
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