🎉 v4.0.0 — 마침내, 팀 모드
기다리셨습니다. 우리가 준비했습니다. 팀 모드가 오늘 출시됩니다.
이 릴리즈는 oh-my-opencode를 "서브에이전트가 있는 하나의 에이전트"에서 진정한 다중 에이전트 시스템으로 전환합니다 — 여러 에이전트, 실시간 조율, 나란히 표시되는 tmux 시각화, 모든 것이 포함됩니다.
👥 팀 모드
리드 에이전트가 카테고리별로 전문화된 팀 멤버들을 조율하며, 모두 병렬로 실행되고 전용 도구(team_create, team_send_message, team_task_create)를 통해 통신합니다. 전용 tmux 레이아웃에서 모든 멤버가 동시에 작동하는 것을 봅니다 — 포커스 및 그리드 윈도우를 통해 한 팀원에게 확대하면서도 전체 모습을 잃지 않습니다.
이 릴리즈의 모든 새로운 기능을 지원합니다:
hyperplan 스킬 — 5개의 적대적 에이전트가 코드 작성 전에 직교하는 각도에서 당신의 계획을 완전히 분석합니다
security-research 스킬 — 3개의 취약점 헌팅 에이전트 + 2개의 PoC 엔지니어가 병렬로 코드베이스를 감시하며, 실제 악용 가능성으로 심각도를 보정합니다
- 수동으로 조정된 멤버 프롬프트로 팀 계약이
delegate_task를 통해 실수로 우회되지 않습니다
옵트인: 설정에서 team_mode.enabled = true를 설정하고 opencode를 다시 시작합니다. 기본적으로 비활성화되어 있습니다 — 필요할 때 활성화하세요.
🧠 모델별 에이전트 프롬프트
GPT-5.2 및 GPT-5.3-codex는 이제 카테고리별 맞춤형 시스템 프롬프트와 함께 제공됩니다. Oracle, Momus, 및 deep 카테고리는 각각 해당 모델의 강점에 맞춰진 모델별 오버레이를 받습니다.
🛡️ 신뢰성 강화
- Ralph 루프는 연쇄 런타임 오류를 중지합니다 — 재시도는 보호되고, atlas는 boulder를 다시 시도하며, ultrawork는 전체 재시도 범위를 가집니다.
- 데스크톱 플러그인은 Electron에서 Bun 없이 깔끔하게 부팅됩니다 —
bun:sqlite는 Node ESM 로더에서 숨겨집니다.
- 에이전트 이름 새니타이제이션 — 백슬래시/따옴표는 더 이상 에이전트 실행을 손상시킬 수 없습니다.
- Doctor는 예상치 못한 실패를 실행 가능한 진단으로 포착하며 조용히 종료 137로 빠져나가지 않습니다.
- 크레딧 잔액 폴백 — 낮은 잔액이 올바르게
quota_exceeded로 분류되고 폴백 체인을 트리거합니다.
- PostHog 청구 간소화 — 기능 플래그 비활성화,
plugin_loaded 이벤트 제거됨.
📚 문서
팀 모드 및 tmux 서브에이전트 기능은 EN / KO / JA / RU / ZH-CN README 전반에 걸쳐 완전하게 문서화되었습니다. 팀 모드 및 tmux 서브에이전트 내부에 대한 새로운 AGENTS.md 섹션.
⚠️ 동작 변경
delegate_task (deep 카테고리): 호출당 하나의 목표가 이제 강제됩니다. 여러 목표를 하나의 번들 호출이 아닌 병렬 호출로 묶으세요.
- 팀 모드가 활성화되면, 멤버는
delegate_task가 아닌 team_* 도구를 통해 조율합니다.
경미한 호환성 및 안정성 릴리즈
이 릴리즈는 호환성 측면의 동작 변경 및 운영 강화를 포함합니다. 업그레이드 또는 발행 전에 아래 요약을 읽으세요.
- 패키지 감지, 플러그인/설정 호환성, 설치 영역 전반의 이름 변경 전환 업데이트.
- delegate-task 계약 및 런타임 등록 동작을 포함한 작업 및 도구 동작 업데이트.
- 생략된 설정이 런타임 경로 전반에서 일관되게 동작하도록 작업 시스템 기본 동작 정렬.
- 더 안전한 릴리즈 순서 지정 및 패키지/설치 수정을 포함한 설치 및 발행 워크플로우 강화.
커밋 요약
- 6b49e3b test agent runtime sort behavior
- ee938aa fix full-suite isolation regressions
- 102b5f9 fix(delegate-task): require one goal per
deep call
- 788fbec fix desktop plugin startup without Bun
- 4bcbbdd Merge pull request #3832 from herjarsa/fix/desktop-electron-bun-protocol-compat
- df48af3 Merge pull request #3830 from code-yeongyu/fix/posthog-billing-optimization
- 9861510 @herjarsa has signed the CLA in #3832
- 3a93a40 fix(desktop): hide bun:sqlite import from Node.js/Electron ESM loader
- 8586cb8 fix(posthog): disable feature flags, remove plugin_loaded event for billing optimization
- 10f9559 Merge pull request #3810 from code-yeongyu/fix/ralph-loop-retry-runtime-errors-v2
- dfc7dfa feat(delegate-task): add GPT-5.3-codex specialized deep category prompt
- 5eea702 feat(agents): add GPT-5.2 specialized prompts for oracle and momus
- ebe26ea fix(ralph-loop): guard runtime error retries
- 83ec352 merge dev into continuation runtime retry
- 2c70938 test(ralph-loop): cover ultrawork runtime retry
- 6a2d19d fix(atlas): retry boulder after runtime errors
- cd88e35 chore(gitignore): ignore session/debugging artifacts and tool caches
- 40ded42 chore(drafts): remove stale gpt-5.5 prompt drafts
- 5190805 @oyi77 has signed the CLA in #3823
- 1ad0fd4 Merge pull request #3748 from code-yeongyu/fix/simple-github-bugs-1948-3564
- ef66516 Merge pull request #3801 from code-yeongyu/fix/directory-agents-non-string-output
- 7bd863b Merge pull request #3813 from code-yeongyu/fix/agent-name-backslash-sanitize
- d9ef03f test(agent): guard queueItem assertion against empty queue race
- 25d183f fix(agent): sanitize backslash/quote from agent name in launch() and background-executor
- 66a6f42 fix(todo-continuation-enforcer): preserve overload countdown
- 89c9599 fix(team-mode): gate tmux layout cleanup by config
- b4791c8 fix(team-mode): keep tmux visualization in caller window
- 675f788 fix(team-mode): resolve caller tmux window target
- 9dd0e9f Merge pull request #3622 from MoerAI/fix/truncate-tool-error-output
- 4494887 Merge pull request #3612 from MoerAI/fix/doctor-exit-137-handling
- 462d774 Merge pull request #3610 from MoerAI/fix/credit-balance-too-low-fallback
- 2971322 fix(doctor): catch unexpected failures and provide actionable diagnostics (fixes #3345)
- a22416d fix(error-classifier): classify credit balance too low as quota_exceeded for fallback (fixes #3571)
- 7ac1109 Merge pull request #3636 from lucasyounger/codex/fix-3629-worktree-plan-path
- 37d981e Merge pull request #3634 from auyua9/fix/ast-grep-pattern-hints
- 0a7306c Merge pull request #3637 from ihoooohi/fix/claude-thinking-legacy-alias-collision
- 7e43bea Merge pull request #3620 from MoerAI/fix/sisyphus-prompt-plan-reference
- 62a7356 Merge pull request #3621 from MoerAI/fix/skill-tool-respects-plugins-config
- 9b87fd5 Merge pull request #3744 from Arcadi4/dev
- 6a341fc Merge pull request #3595 from samuele-ruffino96/feature/opencode-go-model-upgrade
- f31860b fix(docs): resolve model table inconsistencies in installation guide
- df7f64d fix(docs): correct Explore and Librarian fallback chains in installation guide
- 467a4a5 fix(test): use toContain instead of providers[0].toBe for multi-provider entries
- b7d77da fix(capabilities): add kimi-k2.6 to supplemental model entries
- 1e93d37 docs(opencode-go): update docs and fallback chain tables to reflect glm-5.1, kimi-k2.6, qwen3.5-plus
- 6cd40df feat(opencode-go): upgrade glm-5 → glm-5.1 and kimi-k2.5 → kimi-k2.6 in fallback chains
- 0727d9a fix(opencode-go): replace non-existent minimax-m2.7-highspeed with qwen3.5-plus
- ad2255e Merge pull request #2227 from DEAN-Cherry/docs/speed-up-fallback
- d1a7c8f Merge pull request #3096 from s2mr/fix/git-master-language-agnostic-support
- b0c7c9f Merge pull request #3811 from code-yeongyu/feat/readme-dori-image-update-v2
- abba70c Merge pull request #3691 from islee23520/chore/gpt-5.5-followup-cleanup
- 4deecdf Merge pull request #3358 from lrq3000/patch-1
- 5624393 Merge pull request #3783 from matchai/feat/walk-up-config-discovery
- c04f772 docs(readme): replace dated star-count copy in banner with timeless site catchphrases
- 2bdd912 docs(install): extend rebrand to all bunx/npx oh-my-* commands for consistency
- 766cdaf docs: align GPT-5.5 model references
- 3aa6ff9 Merge pull request #3741 from hashe
(이하 생략)