Commit Graph

2344 Commits

Author SHA1 Message Date
YeonGyu-Kim 3ac2362197 fix(skill-context): gate discovered browser skills by provider
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-09 11:16:24 +09:00
YeonGyu-Kim fd2c01fad8 Allow registered atlas boulder sessions to continue on idle
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-09 10:45:12 +09:00
acamq 54e53a854b Merge pull request #2306 from Romanok2805/fix/builtin-agent-mode-override
fix(agents): prevent user/project .md agents from overriding builtin agent modes
2026-03-08 18:57:59 -06:00
acamq 46d08be561 Merge pull request #2284 from MoerAI/fix/tmux-list-panes-parsing
fix(tmux): handle \r line endings and missing pane_title in list-panes
2026-03-08 18:18:31 -06:00
acamq e8f4e1fe71 Merge pull request #2196 from acamq/fix/toolcall-format
fix(hephaestus): add tool call format instructions to prevent malformed output
2026-03-08 17:31:42 -06:00
acamq 4fc6cbaab5 Merge pull request #2380 from acamq/fix/auto-updater-paths
fix(auto-update-checker): use OpenCode cache paths for updates
2026-03-08 17:04:15 -06:00
acamq c9168d799b Merge remote-tracking branch 'upstream/dev' into fix/toolcall-format 2026-03-08 17:02:21 -06:00
acamq 8bceb12c86 fix(auto-updater): handle bun.lockb and add workspace validation
- Support binary bun.lockb format by deleting entire file (cannot parse)
- Add workspace check: verify package.json exists before bun install
- Quote paths in error messages for Windows/paths with spaces
2026-03-08 09:15:13 -06:00
YeonGyu-Kim 2e40b969ad Merge pull request #2388 from code-yeongyu/fix/background-output-undefined-status-2387
fix: handle undefined sessionStatus in pollRunningTasks (#2387)
2026-03-08 23:54:58 +09:00
YeonGyu-Kim 9a9da9217f fix: handle undefined sessionStatus in pollRunningTasks (#2387)
When a completed session is no longer returned by session.status(),
allStatuses[sessionID] is undefined. Previously this fell through to
a 'still running' log, leaving the task stuck as running forever.

Match the sync-session-poller pattern: only continue (skip completion
check) when sessionStatus EXISTS and is not idle. When undefined,
fall through to validateSessionHasOutput + checkSessionTodos +
tryCompleteTask, same as idle.
2026-03-08 23:42:11 +09:00
acamq d5c90b3399 test(auto-update-checker): stabilize cache invalidation module isolation
Mock constants directly in cache.test to avoid transitive module-cache reuse when importing cache.ts. This removes Date.now query cache-busting and makes the test deterministic across runs.
2026-03-07 16:13:51 -07:00
acamq aef67a600e Merge upstream/dev into fix/auto-updater-paths 2026-03-07 16:01:28 -07:00
acamq dfb258ed50 fix(auto-update-checker): use OpenCode cache paths for updates
Align version lookup, invalidation, and bun install with OpenCode's cache directory so updates target the loaded plugin location. Keep dependency declarations intact during invalidation so auto-update can reinstall instead of converging to uninstall.
2026-03-07 15:56:21 -07:00
acamq c5964d6a0d Merge pull request #2376 from acamq/fix/idle-notification-grace-period
fix(session-notification): add grace period to prevent late events from cancelling idle notifications
2026-03-07 14:46:25 -07:00
CrazyRabbit e718c3345f fix(session-notification): add grace period to prevent late events from cancelling idle notifications 2026-03-07 14:07:08 -07:00
acamq 4fe594d01b Merge pull request #2230 from Chocothin/fix/respect-config-question-permission
fix(tool-config): respect question permission from OPENCODE_CONFIG_CONTENT
2026-03-07 14:02:47 -07:00
acamq 81453ba797 Merge pull request #2291 from SeeYouCowboi/fix/cache-dir-invalidation-stale-version
fix: also invalidate plugin from CACHE_DIR in invalidatePackage
2026-03-07 13:10:15 -07:00
YeonGyu-Kim 07b79005d9 feat(model-requirements): set multimodal-looker primary model to gpt-5.4 medium
Change multimodal-looker's primary model from gpt-5.3-codex to gpt-5.4 medium
in both runtime and CLI fallback chains.

Changes:
- Runtime chain (src/shared/model-requirements.ts): primary now gpt-5.4
- CLI chain (src/cli/model-fallback-requirements.ts): primary now gpt-5.4
- Updated test expectations in model-requirements.test.ts
- Updated config-manager.test.ts assertion
- Updated model-fallback snapshots
2026-03-08 01:53:30 +09:00
YeonGyu-Kim 5583021518 feat(model-requirements): add k2p5, kimi-k2.5, gpt-5.4 medium to Sisyphus fallback chain
Sisyphus can now fall back through Kimi and OpenAI models when Claude
is unavailable, enabling OpenAI-only users to use Sisyphus directly
instead of being redirected to Hephaestus.

Runtime chain: claude-opus-4-6 max → k2p5 → kimi-k2.5 → gpt-5.4 medium → glm-5 → big-pickle
CLI chain: claude-opus-4-6 max → k2p5 → gpt-5.4 medium → glm-5
2026-03-08 01:41:45 +09:00
YeonGyu-Kim 98c7213942 fix(atlas): enforce checkbox completion before next task
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-08 01:41:45 +09:00
YeonGyu-Kim 77670cb46f feat(delegate-task): use explicit high variant for unspecified-high category
- Update DEFAULT_CATEGORIES to use 'openai/gpt-5.4-high' directly instead of separate model + variant
- Add helper functions (isExplicitHighModel, getExplicitHighBaseModel) to preserve explicit high models during fuzzy matching
- Update category resolver to avoid collapsing explicit high models to base model + variant pair
- Update tests to verify explicit high model handling in both background and sync modes
- Update documentation examples to reflect new configuration

🤖 Generated with OhMyOpenCode assistance
2026-03-08 01:41:45 +09:00
YeonGyu-Kim 34eb8cfd7d fix(atlas): skip compaction in last-agent recovery
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-07 15:39:25 +09:00
YeonGyu-Kim 4f3dcb043c fix(plugin): ignore compaction session agent updates
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-07 15:39:25 +09:00
acamq 92da22412c Merge pull request #2252 from acamq/fix/librarian-exa-name
fix: correct librarian agent tool name from websearch_exa_web_search_exa to websearch_web_search_exa
2026-03-06 22:11:42 -07:00
acamq c4e65854f1 Merge pull request #2278 from MoerAI/fix/tmux-health-check-url
fix(tmux): use correct health check endpoint /global/health
2026-03-06 21:37:09 -07:00
acamq a3b3751455 Merge pull request #2334 from devxoul/fix/flaky-background-task-test
fix(test): fix flaky late-session-id background task test
2026-03-06 20:48:50 -07:00
YeonGyu-Kim db3ef925a1 Revert "Merge pull request #2339 from JimMoen/fix/external-directory-default-ask"
This reverts commit 8a1352fc9b, reversing
changes made to d08bc04e67.
2026-03-07 06:40:19 +09:00
YeonGyu-Kim 2d0bb016b2 fix(ulw-loop): retry parent session after failed verification
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-07 05:46:05 +09:00
YeonGyu-Kim ea2585e01a chore: update GPT-5.2 references to GPT-5.4
Align runtime defaults, tests, docs, and generated artifacts with the newer GPT-5.4 baseline. Keep think-mode and prompt-routing expectations consistent after the model version bump.
2026-03-07 05:46:05 +09:00
acamq d6d1f998d4 Merge pull request #2339 from JimMoen/fix/external-directory-default-ask
fix(tool-config): stop overriding external_directory permission
2026-03-06 13:40:56 -07:00
YeonGyu-Kim 461efdfd1f feat(sisyphus): strengthen non-Claude parallel delegation guidance
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-07 00:47:55 +09:00
YeonGyu-Kim 01ab8fc2d3 feat(sisyphus): rewrite GPT-5.4 prompt with 8-block architecture
Restructure from 13 scattered XML blocks to 8 dense blocks with 9
named sub-anchors, following OpenAI GPT-5.4 prompting guidance and
Oracle-reviewed context preservation strategy.

Key changes:
- Merge think_first + intent_gate + autonomy into unified <intent>
  with domain_guess classification and <ask_gate> sub-anchor
- Add <execution_loop> as central workflow: EXPLORE -> PLAN -> ROUTE ->
  EXECUTE_OR_SUPERVISE -> VERIFY -> RETRY -> DONE
- Add mandatory manual QA in <verification_loop> (conditional on
  runnable behavior)
- Move <constraints> to position #2 for GPT-5.4 attention pattern
- Add <completeness_contract> as explicit loop exit gate
- Add <output_contract> and <verbosity_controls> per GPT-5.4 guidance
- Add domain_guess (provisional) in intent, finalized in ROUTE after
  exploration -- visual domain always routes to visual-engineering
- Preserve all named sub-anchors: ask_gate, tool_persistence,
  parallel_tools, tool_method, dependency_checks, verification_loop,
  failure_recovery, completeness_contract
- Add skill loading emphasis at intent/route/delegation layers
- Rename EXECUTE to EXECUTE_OR_SUPERVISE to preserve orchestrator
  identity with non-execution exits (answer/ask/challenge)
2026-03-07 00:43:01 +09:00
YeonGyu-Kim 316f2d5c2a fix(task): append plan delegation prompt requirements
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 22:56:51 +09:00
YeonGyu-Kim 9c829b81b3 fix(ulw-loop): track Oracle verification sessions explicitly
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-06 22:37:41 +09:00
YeonGyu-Kim 65b38d6fa1 feat(ultrawork): enforce manual QA execution and acceptance criteria workflow
Add MANUAL_QA_MANDATE sections to all three ultrawork prompts (default,
GPT, Gemini). Agents must now define acceptance criteria in TODO/Task items
before implementation, then execute manual QA themselves after completing
work. lsp_diagnostics alone is explicitly called out as insufficient since
it only catches type errors, not functional bugs.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 22:33:42 +09:00
YeonGyu-Kim 65d6ce99ee feat(prompts): enforce category domain matching and design-system-first workflow
Remove deep parallel delegation section from GPT-5.4 Sisyphus prompt since
it encouraged direct implementation over orchestration. Add zero-tolerance
category domain matching guide to all Sisyphus prompts with visual-engineering
examples. Rewrite visual-engineering category prompt with 4-phase mandatory
workflow (analyze design system, create if missing, build with system, verify)
targeting Gemini's tendency to skip foundational steps.
2026-03-06 22:19:18 +09:00
YeonGyu-Kim df94ffa9cd test(ulw-loop): cover Oracle verification flow
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 22:00:21 +09:00
YeonGyu-Kim bb34b15a89 feat(ulw-loop): require Oracle verification before completion
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 22:00:14 +09:00
YeonGyu-Kim b53ca84e08 feat(gpt-5.4): amplify parallel tool-calling with XML behavioral contracts
Add <parallel_tool_calling> and <tool_usage_rules> blocks that GPT-5.4
treats as first-class behavioral contracts. Add parallel-planning question
to <think_first>, strengthen Exploratory route in intent gate, and add
IN PARALLEL annotations to verification loop.
2026-03-06 21:09:30 +09:00
JimMoen c2c71e52a3 fix(tool-config): stop overriding external_directory permission
Remove the hardcoded external_directory: "allow" default from
applyToolConfig(). This was silently overriding OpenCode's built-in
default of "ask" and any user-configured external_directory permission.

With this change, external_directory permission is fully controlled by
OpenCode's defaults and user configuration, as intended.

Fixes #1973
Fixes #2194
2026-03-06 17:58:08 +08:00
YeonGyu-Kim d63579dcc6 docs(agents): refresh generated AGENTS guides
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-06 17:59:05 +09:00
YeonGyu-Kim 5fb289b0ea feat(model-requirements): prefer GPT-5.4 and glm-5 in agent fallback chains
Align Prometheus, Momus, and Atlas with newer GPT-5.4 fallback tiers and replace Sisyphus install-time GLM-4.7 fallbacks with GLM-5 only.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 17:43:48 +09:00
YeonGyu-Kim 748275512c feat(no-sisyphus-gpt): allow Sisyphus with GPT-5.4 model
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 17:35:31 +09:00
YeonGyu-Kim c636b69b7b refactor(sisyphus): extract prompt builders into subdirectory with GPT-5.4 variant
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 17:35:24 +09:00
YeonGyu-Kim 367efd79b7 fix: address Cubic P2 review - fake timers in tests, add opencode provider to glm-5
Replace real setTimeout(7000) with fake timer interception in atlas
retry tests (35s -> 227ms). Add missing opencode provider to glm-5
fallback in unspecified-high category.
2026-03-06 16:55:02 +09:00
YeonGyu-Kim 2b58bad0c0 fix(atlas): add full eligibility checks to delayed retry callback
Address Cubic P1 review: timer callback now re-checks failure backoff
count, boulder session membership, and running background tasks before
injecting continuation, matching the main idle handler's eligibility
gate.
2026-03-06 16:31:48 +09:00
YeonGyu-Kim 9d7b7850be fix(atlas): schedule delayed retry when cooldown blocks boulder continuation
When atlas injects a boulder continuation via promptAsync() and the
model's response is immediately aborted (MessageAbortedError), OpenCode
fires a burst of session.idle events within milliseconds. Atlas blocks
all of them due to the 5-second cooldown. After the burst, OpenCode
stops generating session.idle events (it's state-change based, not
periodic), leaving the session stuck forever.

Fix: When cooldown blocks an idle event for a boulder session with an
incomplete plan, schedule a one-shot setTimeout (cooldown + 1s) to
re-attempt injection. The timer callback re-checks boulder state, plan
progress, and continuation-stopped flag before injecting. Only one timer
per session is allowed (deduped via pendingRetryTimer field). Timers are
cleaned up on session.deleted and session.compacted events.
2026-03-06 16:14:24 +09:00
YeonGyu-Kim 0d6e76bbbe feat(hephaestus): add generic GPT prompt fallback with model-specific routing
Split monolithic hephaestus.ts into directory with model-specific prompt
variants (gpt-5-4.ts, gpt-5-3-codex.ts, gpt.ts) mirroring the
sisyphus-junior pattern. Generic gpt.ts uses pre-codex-tuning prompt as
fallback for non-specific GPT models.

Also adds isGpt5_4Model and isGpt5_3CodexModel helpers to types.ts.
2026-03-06 15:34:37 +09:00
YeonGyu-Kim c8aa9212d4 feat(sisyphus-junior): add model-specific GPT prompt routing (gpt-5-4, gpt-5-3-codex, generic gpt)
Split GPT prompt into three variants with model-based routing:
- gpt-5-4.ts: GPT-5.4 optimized (expert coding agent framing, prose-first)
- gpt-5-3-codex.ts: GPT-5.3-Codex optimized (Hephaestus-style Senior Engineer)
- gpt.ts: Generic GPT fallback (Hephaestus-style, for any other GPT model)

Routing: gpt-5.4 → gpt-5-4 | gpt-5.3-codex → gpt-5-3-codex | other GPT → gpt

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-03-06 14:50:01 +09:00
YeonGyu-Kim 613c60ab9c feat(metis,momus): add QA scenario executability checks
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-06 14:26:14 +09:00