Commit Graph

1320 Commits

Author SHA1 Message Date
YeonGyu-Kim bd41344c26 Merge pull request #3708 from mrosnerr/feat/cmux-notification-provider
feat(notification): add cmux as notification provider
2026-05-01 19:18:37 +09:00
YeonGyu-Kim 586bb3f551 Merge pull request #3711 from mrosnerr/fix/notification-scheduler-platform
fix(notification): session-idle notifications never fire due to stale platform
2026-05-01 19:18:34 +09:00
YeonGyu-Kim 0c39358ebe fix(keyword-detector): require skill evaluation in analyze mode
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-05-01 17:18:51 +09:00
Ivan Smetanin 5291ee7d3d fix(auto-update-checker): prefer loaded module's package.json over flat-install candidates
The startup toast and `omo --version` were reading from the legacy flat install
at <CACHE_DIR>/node_modules/<pkg>/package.json, but OpenCode actually loads
plugins from a per-plugin sandbox at <CACHE_DIR>/<plugin-entry>/node_modules/
<pkg>/package.json. The two install layers can drift independently when bun
re-resolves "latest" against the flat install while the sandbox's package.json
stays pinned to a literal version baked in at first install.

In practice this means the toast can announce a version the runtime is not
running. Concrete reproduction: with `"oh-my-openagent@latest"` in the plugin
list, the sandbox stayed on 3.17.5 while the parallel flat install advanced to
3.17.6, so the startup toast confidently reported v3.17.6 even though the
loaded plugin code was 3.17.5.

Walking up from `import.meta.url` always reflects the actually-loaded module,
so reorder `getCachedVersion()` to try that first and fall back to the flat-
install candidates and execPath walk-up as before. The fallback chain is
preserved for bundled environments where the module-relative lookup may fail.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-29 09:17:21 +01:00
YeonGyu-Kim 05a15f7598 Merge branch 'dev' into fix/retry-recovery-and-observability 2026-04-29 14:54:24 +09:00
YeonGyu-Kim 6850cb6d21 Merge branch 'dev' into fix/fallback-credit-exhaustion 2026-04-29 14:38:42 +09:00
Choi Kijin / 최 기진 / チョイ キジン 7adb725960 Merge remote-tracking branch 'origin/dev' into fix/retry-recovery-and-observability 2026-04-29 12:25:02 +09:00
mrosnerr 384bc53bfd fix(notification): resolve platform in scheduler callbacks instead of using stale init value
The idle notification scheduler was initialized with platform 'unsupported'
before platform detection had run. This stale value was passed to send/playSound
callbacks, causing sendSessionNotification to silently no-op (no switch case for
'unsupported'). Session-idle notifications never fired as a result.

Fix: remove platform from scheduler options entirely. Callbacks now resolve
platform via ensureNotificationPlatform() which is sync, cached, and already
called by each event handler before scheduling.
2026-04-28 10:34:29 -04:00
Choi Kijin / 최 기진 / チョイ キジン 185665707c fix(model-fallback): clone session fallback chains
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 21:43:10 +09:00
mrosnerr 763ff7e824 feat(notification): add cmux as notification provider
Add cmux as the highest-priority notification provider on macOS.
cmux delivers notifications via native UNUserNotificationCenter,
properly attributed to the cmux app instead of Script Editor.

Notification priority: cmux > terminal-notifier > osascript

Tests cover the full fallback chain:
- cmux available: uses cmux, skips others
- cmux fails: falls back to terminal-notifier
- cmux + terminal-notifier fail: falls back to osascript
- cmux not available: skips to terminal-notifier

Fixes #3628
2026-04-28 08:35:43 -04:00
YeonGyu-Kim fbaeb032c0 fix(todo-continuation): avoid duplicate progress reset
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 18:00:47 +09:00
YeonGyu-Kim ebcd6edf5a perf(hashline): use write metadata line counts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 18:00:21 +09:00
YeonGyu-Kim eb722aa977 perf(compaction): reuse message update parts for no-text tails
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 17:59:50 +09:00
Choi Kijin / 최 기진 / チョイ キジン 3fc9e6bafd Merge remote-tracking branch 'origin/dev' into opencode/mighty-wolf 2026-04-28 15:47:58 +09:00
Choi Kijin / 최 기진 / チョイ キジン cc3cca7cb7 fix(model-fallback): expose session fallback chains to background tasks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 15:27:34 +09:00
YeonGyu-Kim 84287f1da7 test(todo-continuation): make countdown toast test deterministic
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-28 13:59:52 +09:00
YeonGyu-Kim 557d66fc4c Merge pull request #3675 from code-yeongyu/fix/ralph-loop-remove-recovery-window
fix(ralph-loop): remove redundant recovery window that stalls loop after errors (fixes #3235)
2026-04-27 18:53:02 +09:00
YeonGyu-Kim bde2955f8c fix(ralph-loop): remove stale error recovery window
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 18:22:53 +09:00
YeonGyu-Kim 69c37e3965 test(ralph-loop): cover non-abort error continuation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 18:22:53 +09:00
YeonGyu-Kim c27d52e2b8 fix(atlas): replace single task refusal directive
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 18:18:40 +09:00
YeonGyu-Kim 2e6b3b7f76 Merge pull request #3669 from code-yeongyu/fix/ralph-loop-zwsp-agent
fix(ralph-loop): strip ZWSP from agent name before promptAsync (fixes #3253)
2026-04-27 18:09:35 +09:00
YeonGyu-Kim d0dee70f9d fix(ralph-loop): skip idle continuation during background tasks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 17:52:45 +09:00
YeonGyu-Kim f429e539fa test(ralph-loop): cover background task idle guard
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 17:52:45 +09:00
YeonGyu-Kim c92f841688 fix(ralph-loop): normalize continuation agent names
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 17:40:46 +09:00
YeonGyu-Kim a696c8a67c fix(hooks): apply Sisyphus GPT-5.5 variant
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 15:37:39 +09:00
YeonGyu-Kim a2c3804b5f test(slashcommand): isolate command discovery mocks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-27 13:24:50 +09:00
Jay1 f6b2ce7b6b feat(agents): add gpt-5.5 native sisyphus support
Route GPT-5.5 through the existing GPT-5.4-native Sisyphus and Hephaestus prompt family while keeping one shared model-family helper.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-23 20:49:11 -04:00
MoerAI 328df08162 fix(test): update provider-matrix tests to expect fallback on quota exhaustion 2026-04-22 19:10:49 +09:00
MoerAI 59493002e4 fix(error-classifier): match insufficient balance/funds as quota_exceeded 2026-04-22 18:47:16 +09:00
YeonGyu-Kim a941774e99 chore(cleanup): remove obsolete team-mode workspace artifacts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-22 12:56:20 +09:00
MoerAI fbf130ec3a fix(test): update integration tests to expect fallback on quota exhaustion 2026-04-21 18:30:04 +09:00
MoerAI 7488c527df fix(runtime-fallback): trigger fallback on quota/credit exhaustion (fixes #3519) 2026-04-21 18:17:22 +09:00
Sisyphus 0a808de6a2 fix(auto-update-checker): trigger deferred startup on session.created with parentID guard 2026-04-18 17:23:50 +09:00
Sisyphus a8504be70c test(auto-update-checker): cover session.created trigger with parentID guard 2026-04-18 17:19:18 +09:00
Sisyphus e766354e22 test(auto-update-checker): align zauc-mocks-hook with deferred idle check
The zauc-mocks-hook variant previously asserted that session.created synchronously
ran the startup checks. After auto-update-checker was refactored to defer work to
the first session.idle via scheduleDeferredIdleCheck (5s timer), those assertions
never fired.

Mirror the mock+capture pattern from hook.test.ts so the test drives the deferred
callback synchronously, preserving the original invariants (hasChecked guard,
localDev toast, sisyphus wording) without waiting on real timers.
2026-04-18 15:05:30 +09:00
Sisyphus 14868430bc test(auto-update-checker): align test triggers with deferred idle check 2026-04-18 14:55:51 +09:00
Sisyphus 61675adbf1 test(slashcommand): isolate command-loader cache between tests 2026-04-18 14:53:14 +09:00
Sisyphus 0ca571e74d Merge branch 'fix/perf-d03' into fix/perf-omo-in-tree 2026-04-18 14:43:55 +09:00
Sisyphus 1fd678f5ad Merge branch 'fix/perf-d02' into fix/perf-omo-in-tree 2026-04-18 14:43:48 +09:00
Sisyphus 85e4f5ecab Merge branch 'fix/perf-q11' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus b60cad0eb0 Merge branch 'fix/perf-q09' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus d9cea93101 Merge branch 'fix/perf-q08' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 9f15a09595 Merge branch 'fix/perf-q06' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus c5268af087 Merge branch 'fix/perf-q05' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 4857666a89 Merge branch 'fix/perf-q04' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 5faba8d572 Merge branch 'fix/perf-q03' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 56d2d2543b Merge branch 'fix/perf-d10' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus dc0d64d5f1 Merge branch 'fix/perf-d04' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
YeonGyu-Kim edcc9a1e64 fix(todo-continuation-enforcer): defer prune interval to first idle event
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:16:40 +09:00
Sisyphus 52512f226a fix(rules-injector): cache directory scan results per session 2026-04-18 14:13:51 +09:00