IYODA Atsushi
f82e65fdd1
docs(runtime-fallback): clarify timeout_seconds=0 disables auto-retry detection
2026-02-21 02:42:20 +09:00
Youngbin Kim
31f61078b1
docs(runtime-fallback): document retry classes and timeout behavior
2026-02-21 02:40:47 +09:00
um1ng
e9ec4f44e2
feat(runtime-fallback): automatic model switching on API errors
...
Implements runtime model fallback that automatically switches to backup models
when the primary model encounters transient errors (rate limits, overload, etc.).
Features:
- runtime_fallback configuration with customizable error codes, cooldown, notifications
- Runtime fallback hook intercepts API errors (429, 503, 529)
- Support for fallback_models from agent/category configuration
- Session-state TTL and periodic cleanup to prevent memory leaks
- Robust agent name detection with explicit AGENT_NAMES array
- Session category registry for category-specific fallback lookup
Schema changes:
- Add RuntimeFallbackConfigSchema with enabled, retry_on_errors, max_fallback_attempts,
cooldown_seconds, notify_on_fallback options
- Add fallback_models to AgentOverrideConfigSchema and CategoryConfigSchema
- Add runtime-fallback to HookNameSchema
Files added:
- src/hooks/runtime-fallback/index.ts - Main hook implementation
- src/hooks/runtime-fallback/types.ts - Type definitions
- src/hooks/runtime-fallback/constants.ts - Constants and defaults
- src/hooks/runtime-fallback/index.test.ts - Comprehensive tests
- src/config/schema/runtime-fallback.ts - Schema definition
- src/shared/session-category-registry.ts - Session category tracking
Files modified:
- src/hooks/index.ts - Export runtime-fallback hook
- src/plugin/hooks/create-session-hooks.ts - Register runtime-fallback hook
- src/config/schema.ts - Export runtime-fallback schema
- src/config/schema/oh-my-opencode-config.ts - Add runtime_fallback config
- src/config/schema/agent-overrides.ts - Add fallback_models to agent config
- src/config/schema/categories.ts - Add fallback_models to category config
- src/config/schema/hooks.ts - Add runtime-fallback to hook names
- src/shared/index.ts - Export session-category-registry
- docs/configurations.md - Add Runtime Fallback documentation
- docs/features.md - Add runtime-fallback to hooks list
Supersedes #1237 , #1408
Closes #1408
2026-02-21 02:36:56 +09:00
youming.tang
0ef17aa6c9
docs: add runtime-fallback and fallback_models documentation
2026-02-21 02:30:45 +09:00
YeonGyu-Kim
d4e7ddc9b9
update docs
2026-02-19 18:41:37 +09:00
YeonGyu-Kim
96ff1e00cc
chore: upgrade claude-sonnet-4-5 to claude-sonnet-4-6 across codebase
2026-02-18 15:51:24 +09:00
YeonGyu-Kim
c51994c791
docs: fix agent fallback chains, provider chains, and category tables to match model-requirements.ts
...
- features.md: update explore primary model (grok-code-fast-1), fix all agent fallback chains
- configurations.md: add missing deep category, fix all agent/category provider chains, add hephaestus to available agents, update model names to match actual code
2026-02-17 11:28:32 +09:00
YeonGyu-Kim
a691a3ac0a
refactor: migrate delegate_task to task tool with metadata fixes
...
- Rename delegate_task tool to task across codebase (100 files)
- Update model references: claude-opus-4-6 → 4-5, gpt-5.3-codex → 5.2-codex
- Add tool-metadata-store to restore metadata overwritten by fromPlugin()
- Add session ID polling for BackgroundManager task sessions
- Await async ctx.metadata() calls in tool executors
- Add ses_ prefix guard to getMessageDir for performance
- Harden BackgroundManager with idle deferral and error handling
- Fix duplicate task key in sisyphus-junior test object literals
- Fix unawaited showOutputToUser in ast_grep_replace
- Fix background=true → run_in_background=true in ultrawork prompt
- Fix duplicate task/task references in docs and comments
2026-02-06 21:35:30 +09:00
YeonGyu-Kim
1f64920453
chore: update claude-opus-4-5 references to claude-opus-4-6 (excludes antigravity models)
2026-02-06 15:09:07 +09:00
YeonGyu-Kim
4c7215404e
chore: update gpt-5.2-codex references to gpt-5.3-codex
2026-02-06 15:08:33 +09:00
YeonGyu-Kim
64825158a7
feat(agents): add Hephaestus - autonomous deep worker agent ( #1287 )
...
* refactor(keyword-detector): split constants into domain-specific modules
* feat(shared): add requiresAnyModel and isAnyFallbackModelAvailable
* feat(config): add hephaestus to agent schemas
* feat(agents): add Hephaestus autonomous deep worker
* feat(cli): update model-fallback for hephaestus support
* feat(plugin): add hephaestus to config handler with ordering
* test(delegate-task): update tests for hephaestus agent
* docs: update AGENTS.md files for hephaestus
* docs: add hephaestus to READMEs
* chore: regenerate config schema
* fix(delegate-task): bypass requiresModel check when user provides explicit config
* docs(hephaestus): add 4-part context structure for explore/librarian prompts
* docs: fix review comments from cubic (non-breaking changes)
- Move Hephaestus from Primary Agents to Subagents (uses own fallback chain)
- Fix Hephaestus fallback chain documentation (claude-opus-4-5 → gemini-3-pro)
- Add settings.local.json to claude-code-hooks config sources
- Fix delegate_task parameters in ultrawork prompt (agent→subagent_type, background→run_in_background, add load_skills)
- Update line counts in AGENTS.md (index.ts: 788, manager.ts: 1440)
* docs: fix additional documentation inconsistencies from oracle review
- Fix delegate_task parameters in Background Agents example (docs/features.md)
- Fix Hephaestus fallback chain in root AGENTS.md to match model-requirements.ts
* docs: clarify Hephaestus has no fallback (requires gpt-5.2-codex only)
Hephaestus uses requiresModel constraint - it only activates when gpt-5.2-codex
is available. The fallback chain in code is unreachable, so documentation
should not mention fallbacks.
* fix(hephaestus): remove unreachable fallback chain entries
Hephaestus has requiresModel: gpt-5.2-codex which means the agent only
activates when that specific model is available. The fallback entries
(claude-opus-4-5, gemini-3-pro) were unreachable and misleading.
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
2026-02-01 19:26:57 +09:00
justsisyphus
a73d806d4e
docs: update explore agent model and category descriptions
...
- Change explore agent from Grok Code to Claude Haiku 4.5
- Update deep category description for clarity
- Fix Momus fallback chain order
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-01-30 16:19:02 +09:00
justsisyphus
d2d8d1a782
feat: add kimi-k2.5 to agent fallback chains and update model catalog
...
- sisyphus: opus → kimi-k2.5 → glm-4.7 → gpt-5.2-codex → gemini-3-pro
- atlas: sonnet-4-5 → kimi-k2.5 → gpt-5.2 → gemini-3-pro
- prometheus/metis: opus → kimi-k2.5 → gpt-5.2 → gemini-3-pro
- multimodal-looker: gemini-flash → gpt-5.2 → glm-4.6v → kimi-k2.5 → haiku → gpt-5-nano
- visual-engineering: remove gpt-5.2 from chain
- ultrabrain: reorder to gpt-5.2-codex → gemini-3-pro → opus
- Add cross-provider fuzzy match for model resolution
- Update all documentation (AGENTS.md, features.md, configurations.md, category-skill-guide.md)
2026-01-30 14:53:50 +09:00
justsisyphus
67aeb9cb8c
chore: replace big-pickle model with glm-4.7-free
2026-01-30 13:44:04 +09:00
YeonGyu-Kim
dcda8769cc
feat(mcp-oauth): add full OAuth 2.1 authentication for MCP servers ( #1169 )
...
* feat(mcp-oauth): add oauth field to ClaudeCodeMcpServer schema
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
* feat(mcp-oauth): add RFC 7591 Dynamic Client Registration
* feat(mcp-oauth): add RFC 9728 PRM + RFC 8414 AS discovery
* feat(mcp-oauth): add secure token storage with {host}/{resource} key format
* feat(mcp-oauth): add dynamic port OAuth callback server
* feat(mcp-oauth): add RFC 8707 Resource Indicators
* feat(mcp-oauth): implement full-spec McpOAuthProvider
* feat(mcp-oauth): add step-up authorization handler
* feat(mcp-oauth): integrate authProvider into SkillMcpManager
* feat(doctor): add MCP OAuth token status check
* feat(cli): add mcp oauth subcommand structure
* feat(cli): implement mcp oauth login command
* fix(mcp-oauth): address cubic review — security, correctness, and test issues
- Remove @ts-nocheck from provider.ts, storage.ts, provider.test.ts
- Fix server resource leak on missing code/state (close + reject)
- Fix command injection in openBrowser (spawn array args, cross-platform)
- Mock McpOAuthProvider in login.test.ts for deterministic CI
- Recreate auth provider with merged scopes in step-up flow
- Add listAllTokens() for global status listing
- Fix logout to accept --server-url for correct token deletion
- Support both quoted and unquoted WWW-Authenticate params (RFC 2617)
- Save/restore OPENCODE_CONFIG_DIR in storage.test.ts
- Fix index.test.ts: vitest → bun:test
* fix(mcp-oauth): use explorer instead of cmd /c start on Windows to prevent shell injection
* fix(mcp-oauth): address remaining cubic review issues
- Add 5-minute timeout to provider callback server to prevent indefinite hangs
- Persist client registration from token storage across process restarts
- Require --server-url for logout to match token storage key format
- Use listTokensByHost for server-specific status lookups
- Fix callback-server test to handle promise rejection ordering
- Fix provider test port expectations (8912 → 19877)
- Fix cli-guide.md duplicate Section 7 numbering
- Fix manager test for login-on-missing-tokens behavior
* fix(mcp-oauth): address final review issues
- P1: Redact token values in status.ts output to prevent credential leakage
- P2: Read OAuth error response body before throwing in token exchange
- Test: Fix mcp-oauth doctor test to use epoch seconds (not milliseconds)
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-01-29 19:48:36 +09:00
YeonGyu-Kim
acc19fcd41
feat(hooks): auto-disable directory-agents-injector for OpenCode 1.1.37+ native support ( #1204 )
...
* feat(delegate-task): add prometheus self-delegation block and delegate_task permission
- Block prometheus from delegating to itself via delegate_task
- Grant delegate_task permission to prometheus when called as subagent
- Other subagents still have delegate_task disabled
* feat(version): add OPENCODE_NATIVE_AGENTS_INJECTION_VERSION constant
* docs: add deprecation notes for directory-agents-injector
* feat(hooks): auto-disable directory-agents-injector for OpenCode 1.1.37+
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
2026-01-28 18:46:51 +09:00
justsisyphus
601ea32a1c
docs: add tmux integration and interactive terminal documentation
...
- Add Tmux Integration section to configurations.md with all config options
- Add Visual Multi-Agent with Tmux subsection to features.md
- Add Interactive Terminal Tools section documenting interactive_bash tool
2026-01-26 16:02:34 +09:00
YeonGyu-Kim
3af30b0a21
feat(skills): add agent-browser option for browser automation ( #1090 )
...
Add configurable browser automation allowing users to choose between
Playwright MCP (default) and Vercel's agent-browser CLI.
Changes:
- Add browser_automation_engine.provider config option
- Dynamic skill loading based on provider selection
- Comprehensive agent-browser CLI reference (inline in skills.ts)
- Propagate browserProvider to delegate_task and buildAgent
- Update documentation with provider comparison
Co-authored-by: Suyeol Jeon <devxoul@gmail.com >
Co-authored-by: YeonGyu Kim <code.yeongyu@gmail.com >
2026-01-25 15:02:41 +09:00
YeonGyu-Kim
04633ba208
fix(models): update model names to match OpenCode Zen catalog ( #1048 )
...
* fix(models): update model names to match OpenCode Zen catalog
OpenCode Zen recently updated their official model catalog, deprecating
several preview and free model variants:
DEPRECATED → NEW (Official Zen Names):
- gemini-3-pro-preview → gemini-3-pro
- gemini-3-flash-preview → gemini-3-flash
- grok-code → gpt-5-nano (FREE tier maintained)
- glm-4.7-free → big-pickle (FREE tier maintained)
- glm-4.6v → glm-4.6
Changes:
- Updated 6 source files (model-requirements, delegate-task, think-mode, etc.)
- Updated 9 documentation files (installation, configurations, features, etc.)
- Updated 14 test files with new model references
- Regenerated snapshots to reflect catalog changes
- Removed duplicate think-mode entries for preview variants
Impact:
- FREE tier access preserved via gpt-5-nano and big-pickle
- All 55 model-related tests passing
- Zero breaking changes - pure string replacement
- Aligns codebase with official OpenCode Zen model catalog
Verified:
- Zero deprecated model names in codebase
- All model-related tests pass (55/55)
- Snapshots regenerated and validated
Affects: 30 files (6 source, 9 docs, 14 tests, 1 snapshot)
* fix(multimodal-looker): update fallback chain with glm-4.6v and gpt-5-nano
- Change glm-4.6 to glm-4.6v for zai-coding-plan provider
- Add opencode/gpt-5-nano as 4th fallback (FREE tier)
- Push gpt-5.2 to 5th position
Fallback chain now:
1. gemini-3-flash (google, github-copilot, opencode)
2. claude-haiku-4-5 (anthropic, github-copilot, opencode)
3. glm-4.6v (zai-coding-plan)
4. gpt-5-nano (opencode) - FREE
5. gpt-5.2 (openai, github-copilot, opencode)
* chore: update bun.lock
---------
Co-authored-by: justsisyphus <justsisyphus@users.noreply.github.com >
2026-01-24 15:30:35 +09:00
justsisyphus
fc47a7a490
docs: update multimodal-looker model name and fallback chain
2026-01-23 17:02:11 +09:00
Jonas Herrmansdsoerfer
1a4106120d
fix: use correct 'skills' directory path and respect OPENCODE_CONFIG_DIR
...
- Change skill directory from 'skill' (singular) to 'skills' (plural) to match OpenCode standard
- Use getOpenCodeConfigDir() to respect OPENCODE_CONFIG_DIR environment variable
- Update documentation and tests to reflect correct paths
Fixes #810
2026-01-21 13:12:27 +01:00
justsisyphus
c46d57f3aa
refactor(hooks): rename sisyphus-orchestrator to atlas
...
- Rename SisyphusOrchestratorHookOptions → AtlasHookOptions
- Rename createSisyphusOrchestratorHook → createAtlasHook
- Update hook name in schema: sisyphus-orchestrator → atlas
- Update all documentation references
- Rename image: orchestrator-sisyphus.png → orchestrator-atlas.png
2026-01-20 16:52:20 +09:00
justsisyphus
59d663dce7
docs: update atlas references
...
Update all documentation files to use 'atlas' instead of 'orchestrator-sisyphus'. AGENTS.md, src/agents/AGENTS.md, docs/features.md, docs/guide/overview.md all updated.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-01-20 15:57:14 +09:00
justsisyphus
e40e42eaec
docs: reorganize features.md with agents, skills, commands, hooks structure
2026-01-20 15:12:54 +09:00
justsisyphus
693c9e0daf
docs: extract Features section to docs/features.md
...
- Create docs/features.md with full Features documentation
- Update README.md with compact summary and link to docs
- Update README.ja.md with localized compact summary
- Update README.zh-cn.md with localized compact summary
- Remove 831 lines of duplicated content across READMEs
2026-01-19 14:58:13 +09:00