Commit Graph

2338 Commits

Author SHA1 Message Date
acamq b2f97dde55 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 39600617cb 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 f10500f97b Merge remote-tracking branch 'upstream/dev' into fix/toolcall-format 2026-03-08 17:02:21 -06:00
acamq c4112f80db 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 beb89faa0f 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 dc370f7fa8 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 f89cc969ec 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 9a44e29509 Merge upstream/dev into fix/auto-updater-paths 2026-03-07 16:01:28 -07:00
acamq a7d5e683c7 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 ba6fc35abd 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 4e352f9caf fix(session-notification): add grace period to prevent late events from cancelling idle notifications 2026-03-07 14:07:08 -07:00
acamq 621cad7268 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 ab5a713d2d 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 01efda454f 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 60bc9a7609 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 bf8d0ffcc0 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 532143c5f4 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 b3ef86c574 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 e193002775 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 f5f996983e 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 b717d26880 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 51de6f18ee 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 58d4f8b40a 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 8ec2c44615 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 fade6740ae 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 8a1352fc9b 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 d08bc04e67 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 fa460469f0 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 20b185b59f 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 898b628d3d 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 9778cc6c98 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 2e7b7c1f55 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 c17f7215f2 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 a010de1db2 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 c3f2198d34 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 a1ca658d76 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 23dcd99c9a 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 7718969317 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 7fe44024c0 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 901ddda09c 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 b062fc45cb 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 4eb38d99d2 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 cecb78e944 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 764ca0c51b 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 f4eba51388 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 17f11a5fa6 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
YeonGyu-Kim cde6566792 refactor(atlas): add Final Verification Wave to orchestration workflow
🤖 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:04 +09:00
YeonGyu-Kim 2e4fd5843c feat(model-requirements): update unspecified-high to gpt-5.4, add glm-5/k2p5/kimi-k2.5 fallbacks
🤖 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:25:47 +09:00
YeonGyu-Kim ae05e76ddf fix(start-work): remove worktree setup prompt when unspecified, add strong worktree active instructions
When no worktree is specified in boulder, stop injecting 'Worktree Setup Required'
instructions. When worktree IS present, inject emphatic instructions ensuring the
agent and all subagents operate exclusively within the worktree directory.
2026-03-06 14:20:32 +09:00
YeonGyu-Kim 381d7688ab refactor(ultrawork): rename gpt5.2.ts to gpt.ts and align with 5.4 style
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

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