Commit Graph

3054 Commits

Author SHA1 Message Date
YeonGyu-Kim 62a46fbabd fix: normalize zero-width prefix in agent registration lookup 2026-03-31 16:58:15 -07:00
YeonGyu-Kim 9a0f2ff9a7 test(delegate-task): cover aborted concurrent background launches 2026-03-31 15:11:12 -07:00
YeonGyu-Kim 56cf16c4c5 refactor(background-task): stop cancelling launched tasks during session wait 2026-03-31 15:11:05 -07:00
YeonGyu-Kim e2e57bb2dd fix(agents): use list display names for ordered agent config 2026-03-31 15:11:00 -07:00
YeonGyu-Kim 1d0135b230 fix(delegate-task): reject stray backend-style categories
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-31 13:05:44 -07:00
YeonGyu-Kim 68ae9dca4b fix(agents): stop advertising custom agents to orchestrators
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-31 13:05:38 -07:00
YeonGyu-Kim 33c8b7f675 fix(tests): resolve 6 test isolation failures in full suite
3 failures in fallback.cliproxyapi-matrix.test.ts:
- Root cause: leaked spyOn(getMainSessionID) in
  tool-execute-before-session-notification.test.ts was never restored,
  poisoning module state for subsequent tests in the same worker
- Added mockRestore() call and _resetModelFallbackForTesting in afterEach

3 failures in background-agent/manager.test.ts:
- Root cause: connected-providers-cache memConnected/memProviderModels
  persisted across test files, making isReachable() skip fallback
  candidates in retry tests
- Added mock.module for connected-providers-cache at file level
- Added _resetMemCacheForTesting export and global beforeEach cleanup

Full suite: 4638/4638 pass, 0 fail
2026-04-01 04:30:34 +09:00
YeonGyu-Kim fd281deba7 fix(tests): resolve 25 pre-publish test failures
- Add providerModelsCache/fetchAvailableModels mocks to 20 utils.test.ts
  tests that broke when createBuiltinAgents started reading the cache
- Isolate ALL src/plugin and src/features/background-agent test files in CI
  (mock.module pollution crosses between files in the same bun process)
- Mirror CI isolation changes in publish.yml

25 failures → 0 in CI (all mock-pollution tests run individually)
2026-03-31 18:12:57 +09:00
YeonGyu-Kim 71c60e1be4 fix: skip thinking param injection for GLM models in sisyphus-junior (#2967)
GLM-5 has native reasoning built-in. Injecting thinking: {type: 'enabled'}
causes a param conflict (400 error). Add isGlmModel() check to return base
config without thinking/reasoningEffort for GLM models.

- Add isGlmModel() helper to types.ts
- Early return in createSisyphusJuniorAgentWithOverrides for GLM models
- Add tests for isGlmModel and GLM reasoning config behavior
2026-03-31 16:32:32 +09:00
YeonGyu-Kim 51194e9434 Merge pull request #2919 from ryandielhenn/feat/config_tdd
Add Configurable TDD To Sisyphus Agent Schema
2026-03-29 18:55:21 -07:00
YeonGyu-Kim 2d46a71da4 Merge pull request #2929 from quangtran88/fix/rules-injector-respect-claude-code-config
fix(rules-injector): respect claude_code config for user rule loading
2026-03-29 18:54:27 -07:00
YeonGyu-Kim 1998d5a35d Merge pull request #2936 from HOYALIM/fix-2696-skill-xml-names
fix: preserve nested async skill names in discovery
2026-03-29 18:53:35 -07:00
YeonGyu-Kim 59f11680a7 Merge pull request #2874 from sanoyphilippe/feat/plugin-tool-session-navigation
feat(atlas): support plugin tools with metadata.sessionId in orchestration hook
2026-03-29 18:45:43 -07:00
YeonGyu-Kim b12e32d855 Merge pull request #2912 from RaviTharuma/test/quotio-fallback-matrix-upstream
test(fallback): add CLIProxyAPI-only integration matrix
2026-03-29 18:45:34 -07:00
YeonGyu-Kim 44c6a2ad5c Merge pull request #2931 from sjawhar/feat/tmux-session-isolation
feat(tmux): add session isolation mode for subagent panes
2026-03-29 18:44:29 -07:00
YeonGyu-Kim 8b437ee1d9 Merge pull request #2930 from sjawhar/fix/agent-name-duplication
fix: permanently resolve agent name duplication yo-yo bug
2026-03-29 18:42:50 -07:00
YeonGyu-Kim aa6632a3b4 Merge pull request #2935 from HOYALIM/fix/issue-2903-timestamp-tests
fix: stabilize timestamp-output tests across timezones
2026-03-29 18:42:23 -07:00
YeonGyu-Kim 500f10b0bc Merge pull request #2939 from sjawhar/fix/delegate-task-category-override
fix(delegate-task): replace mutual exclusion throw with category-wins override (#2847)
2026-03-29 18:41:48 -07:00
YeonGyu-Kim 0f6c7a9ca0 fix(config): accept object-format fallback_models in Zod validation (fixes #2943)
FallbackModelsSchema now explicitly accepts string[], object[], and
mixed array formats, matching the JSON schema definition.

Verified: 15 config schema tests pass, typecheck clean
2026-03-30 10:35:06 +09:00
YeonGyu-Kim 67253447b7 fix(anthropic-effort): skip effort injection for internal agents (fixes #2940)
Internal agents (title, summary, compaction) no longer receive the
anthropic-beta effort header, preventing 400 errors on Google Vertex
Anthropic provider.

Verified: 12 tests pass, typecheck clean
2026-03-30 10:33:38 +09:00
Sami Jawhar a3cc2d1c95 feat(tmux): add session isolation mode for subagent panes 2026-03-29 17:53:30 +00:00
Sami Jawhar 4314a3e482 fix: permanently resolve agent name duplication yo-yo bug 2026-03-29 15:13:47 +00:00
Sami Jawhar 3905d07273 fix(delegate-task): replace mutual exclusion throw with category-wins override 2026-03-29 15:07:42 +00:00
Ryan Dielhenn f9e487f55a address bot review 2026-03-29 06:01:31 -07:00
Ryan Dielhenn 1d13250654 address bot review 2026-03-29 05:56:44 -07:00
Sisyphus e27f183b65 test: cover remaining nested async skill paths
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-29 01:16:10 -07:00
Sisyphus c132185d17 fix: preserve nested async skill names in discovery
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-29 00:35:59 -07:00
Ho Lim fa64c31ae2 fix: stabilize timestamp-output tests across timezones
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-29 00:25:29 -07:00
Tran Quang 738b045e9b fix: use strict equality for claude_code flag checks
Use `=== false` instead of falsy negation so that missing/undefined
fields are not treated as explicitly disabled. Only skip ~/.claude/rules
when all three flags are explicitly set to false.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 10:22:54 +07:00
Tran Quang a1a2bb4b07 fix(rules-injector): respect claude_code config for user rule loading
When claude_code integration is disabled in oh-my-opencode.json, the
rules-injector now skips loading rules from ~/.claude/rules/ to prevent
Claude Code-specific instructions from leaking into non-Claude agents
(e.g., GPT-5.4 Sisyphus), which causes agent hallucination.

Also adds ~/.sisyphus/rules/ and ~/.opencode/rules/ as OpenCode-native
user rule directories that are always searched regardless of config.

Fixes #2920

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 10:13:55 +07:00
YeonGyu-Kim b2497f1327 fix: resolve 3 community-reported bugs (#2915, #2917, #2918)
- background_output: snapshot read cursor before consuming, restore on
  /undo message removal so re-reads return data (fixes #2915)
- MCP loader: preserve oauth field in transformMcpServer, add scope/
  projectPath filtering so local-scoped MCPs only load in matching
  directories (fixes #2917)
- runtime-fallback: add 'reached your usage limit' to retryable error
  patterns so quota exhaustion triggers model fallback (fixes #2918)

Verified: bun test (4606 pass / 0 fail), tsc --noEmit clean
2026-03-29 04:53:43 +09:00
Ryan Dielhenn e9e0aef847 use optional instead of required for tdd config for backwards compatibility 2026-03-28 11:10:26 -07:00
Ryan Dielhenn 2b6a02ee97 nit 2026-03-28 09:37:13 -07:00
Ryan Dielhenn 571dfe23a4 add bool value: tdd to sisyphus_agent config 2026-03-28 09:34:58 -07:00
Ravi Tharuma 92069d2e7f test(fallback): rename quotio matrix to cliproxyapi 2026-03-28 09:11:41 +01:00
Ravi Tharuma 57fcc9e842 test(fallback): add quotio-only integration matrix 2026-03-28 08:58:17 +01:00
Ravi Tharuma 4e214cba4e fix(recovery): ignore empty summary-only assistant messages 2026-03-28 08:57:36 +01:00
YeonGyu-Kim 4a029258a4 fix: resolve 5 remaining pre-publish blockers (14, 15, 17, 21, 25c)
- completion-promise-detector: restrict to assistant text parts only,
  remove tool_result from completion detection (blocker 14)
- ralph-loop tests: flip tool_result completion expectations to negative
  coverage, add false-positive rejection tests (blocker 15)
- skill tools: merge nativeSkills into initial cachedDescription
  synchronously before any execute() call (blocker 17)
- skill tools test: add assertion for initial description including
  native skills before execute() (blocker 25c)
- docs: sync all 4 fallback-chain docs with model-requirements.ts
  runtime source of truth (blocker 21)

Verified: bun test (4599 pass / 0 fail), tsc --noEmit clean
2026-03-28 15:57:27 +09:00
YeonGyu-Kim d2c576c510 fix: resolve 25 pre-publish blockers
- postinstall.mjs: fix alias package detection
- migrate-legacy-plugin-entry: dedupe + regression tests
- task_system: default consistency across runtime paths
- task() contract: consistent tool behavior
- runtime model selection, tool cap, stale-task cancellation
- recovery sanitization, context-limit gating
- Ralph semantic DONE hardening, Atlas fallback persistence
- native-skill description/content, skill path traversal guard
- publish workflow: platform awaited via reusable workflow job
- release: version edits reapplied before commit/tag
- JSONC plugin migration: top-level plugin key safety
- cold-cache: user fallback models skip disconnected providers
- docs/version/release framing updates

Verified: bun test (4599 pass), tsc --noEmit clean, bun run build clean
2026-03-28 15:24:18 +09:00
YeonGyu-Kim 44b039bef6 Merge pull request #2705 from MoerAI/fix/sisyphus-premature-implementation
fix(sisyphus): block premature implementation before context is complete (fixes #2274)
2026-03-28 01:46:31 +09:00
YeonGyu-Kim aeec5ef98d Merge pull request #2773 from MoerAI/fix/ralph-loop-fuzzy-completion
fix(ralph-loop): add semantic completion detection as fallback for natural language (fixes #2489)
2026-03-28 01:44:56 +09:00
YeonGyu-Kim 7b2b8be181 Merge pull request #2771 from MoerAI/fix/bash-file-read-guard
fix(hooks): add bash-file-read-guard to warn agents against cat/head/tail (fixes #2096)
2026-03-28 01:44:44 +09:00
YeonGyu-Kim adc55138c8 Merge pull request #2850 from octo-patch/feature/upgrade-minimax-m2.7
feat: upgrade remaining MiniMax M2.5 fallbacks to M2.7-highspeed
2026-03-28 01:42:25 +09:00
YeonGyu-Kim 3715fb79b9 Merge pull request #2871 from Jholly2008/kkk/fix-on-complete-hook-shell
fix(cli): respect platform shell for --on-complete
2026-03-28 01:42:13 +09:00
YeonGyu-Kim b9ed0ca30b Merge pull request #2877 from WhiteGiverMa/fix/atlas-agent-not-found
fix: use getAgentDisplayName in injectBoulderContinuation
2026-03-28 01:40:38 +09:00
YeonGyu-Kim 45e9fcd776 Merge pull request #2894 from codivedev/fix/issue-2881
fix: detect and warn about opencode-skills conflict
2026-03-28 01:40:04 +09:00
YeonGyu-Kim 49687a654a Merge pull request #2895 from MoerAI/fix/session-recovery-missing-messageid
fix(session-recovery): fallback to fetching messageID from session messages (fixes #2046)
2026-03-28 01:39:44 +09:00
YeonGyu-Kim 364550038a Merge pull request #2892 from MoerAI/fix/subagent-model-config-ignored
fix(delegate-task): honor user model override in category-resolver cold cache (fixes #2712)
2026-03-28 01:39:33 +09:00
YeonGyu-Kim 9e6f2d9977 Merge pull request #2893 from MoerAI/fix/keyword-detector-silent-skips
fix(keyword-detector): add logging for silent skip paths (fixes #2058)
2026-03-28 01:39:20 +09:00
YeonGyu-Kim 4fa7d48c04 Merge pull request #2890 from MoerAI/fix/start-work-atlas-not-found
fix(start-work): gracefully handle missing Atlas agent (fixes #2132)
2026-03-28 01:38:53 +09:00