YeonGyu-Kim
d53be83634
test(tmux): add missing tmux exports to zombie-pane mock module
2026-04-08 17:36:24 +09:00
YeonGyu-Kim
119c23342a
test(background): fix variant propagation test to match parent-context resolution
2026-04-08 17:25:54 +09:00
YeonGyu-Kim
80c74c8849
fix(background): prevent double-decrement of descendant quota in processKey error cleanup
2026-04-08 17:15:18 +09:00
YeonGyu-Kim
1cf4119dd4
fix(background): use parent session variant in notifyParentSession instead of child task variant
2026-04-08 17:15:02 +09:00
YeonGyu-Kim
ed16dc0608
fix(chat-params): complete maxOutputTokens migration in session prompt params
2026-04-08 17:14:17 +09:00
YeonGyu-Kim
06b825dd74
fix(start-work): reuse registered opencode agent names
2026-04-08 16:18:26 +09:00
YeonGyu-Kim
24629643f0
fix(start-work): use canonical display name for command routing
2026-04-08 16:09:09 +09:00
YeonGyu-Kim
8925ec3a16
fix(start-work): align command routing with exported agent keys
2026-04-08 16:00:47 +09:00
YeonGyu-Kim
4394129667
fix(compaction): harden continuation directive markers
2026-04-08 15:58:02 +09:00
YeonGyu-Kim
cd95172e42
fix(start-work): keep native command agents on config keys
2026-04-08 15:58:02 +09:00
YeonGyu-Kim
b28567251d
fix(plugin-loader): filter project-scoped plugins by cwd
...
discoverInstalledPlugins read scope from installed_plugins.json but
never filtered by it, so project/local scoped Claude Code plugins
leaked into every session regardless of process.cwd().
Add projectPath to PluginInstallation and InstalledPluginEntryV3,
propagate it through v3EntryToInstallation, and introduce
shouldLoadPluginForCwd which reuses shared/contains-path for safe
symlink- and ancestor-aware matching and expands a leading tilde.
user and managed scopes still always load; project and local without
a projectPath are skipped as a safe default.
Covered by 13 new shouldLoadPluginForCwd unit tests (including tilde
expansion against a mocked homedir) and 13 new discoverInstalledPlugins
integration tests spanning v1, v2, and v3 database formats plus the
existing enabledPluginsOverride path.
Fixes #3216
2026-04-08 15:28:17 +09:00
YeonGyu-Kim
d22c3f23db
test(plugin-interface): fix Atlas display name expectation
...
- Update expected value to match actual output after ZWSP prefix stripping
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:40:43 +09:00
YeonGyu-Kim
2c6a161441
test(runtime-fallback): fix OpenAI auto-retry test expectations
...
- Add timeout_seconds to mock config for auto-retry signal detection
- Add 'usage limit' pattern to quota_exceeded error classification
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:40:40 +09:00
YeonGyu-Kim
4d9652c028
test(start-work): update display name expectations for ZWSP fix
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:33:19 +09:00
YeonGyu-Kim
94449e0a24
test(delegate-task): update isPlanAgent test for exact match fix
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:33:18 +09:00
YeonGyu-Kim
1a04a6effb
test(ralph-loop): update iteration cap expectation to 500
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:33:09 +09:00
YeonGyu-Kim
ab0e1e3be0
fix(oauth): refresh-once handler for 401/403 responses
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:28:17 +09:00
YeonGyu-Kim
7ba41d388a
fix(oauth): atomic storage writes for token safety
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:28:14 +09:00
YeonGyu-Kim
7be285ef89
feat(oauth): add per-server refresh mutex
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:28:08 +09:00
YeonGyu-Kim
cdd6e88557
fix(installer): add upgrade path safety checks
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:26:33 +09:00
YeonGyu-Kim
01f7d5e2a8
feat(installer): export version compatibility and backup utilities
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:26:29 +09:00
YeonGyu-Kim
2f86a17516
feat(installer): add config backup utility for safe upgrades
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:26:27 +09:00
YeonGyu-Kim
7022a7e85d
feat(installer): add version compatibility checking utilities
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:26:26 +09:00
YeonGyu-Kim
a09b905b18
fix(installer): add installedVersion to DetectedConfig type
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:26:22 +09:00
YeonGyu-Kim
d490b4dc20
fix(ralph-loop): harden Oracle VERIFIED detection
...
Replace fragile regex text matching with structured detection for Oracle verification evidence.
- Add oracle-verification-detector.ts with parseOracleVerificationEvidence()
- Use structured parsing instead of multiple regex patterns
- Add comprehensive test coverage for edge cases
- Update completion-promise-detector.ts to use isOracleVerified()
- Update pending-verification-handler.ts to use structured extraction
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:24:50 +09:00
YeonGyu-Kim
0bf5dc2629
fix(token-limit): normalize detection across providers
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:24:14 +09:00
YeonGyu-Kim
c3fe0ae09e
fix(background): propagate variant in parent notifications
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:23:08 +09:00
YeonGyu-Kim
14f4390a34
fix(ultrawork): add iteration cap to prevent infinite loops
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:22:41 +09:00
YeonGyu-Kim
8090ee6afe
fix(compaction): persist recovery cap across cycles
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:20:01 +09:00
YeonGyu-Kim
f2fac9bc0b
test(runtime-fallback): update tests for quota STOP classification
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:14:54 +09:00
YeonGyu-Kim
8169dbec89
docs: update for v3.16.0 release
...
- Update AGENTS.md header with current date and commit
- Update runtime-fallback test to reflect quota STOP classification
- Release notes drafted in .sisyphus/drafts/release-notes-v3.16.0.md
2026-04-08 13:13:22 +09:00
YeonGyu-Kim
b7d9521a39
feat(installer): add opencode v1.4.0 minimum version check
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:13:03 +09:00
YeonGyu-Kim
35f778db2d
test(skill-mcp): add scope field to test fixtures
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:11:28 +09:00
YeonGyu-Kim
fa140b0375
fix(skill-loader): propagate scope to MCP connections
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:10:41 +09:00
YeonGyu-Kim
5e0bd87dea
test(runtime-fallback): add provider matrix quota tests
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:10:26 +09:00
YeonGyu-Kim
05efb20fda
feat(skill-mcp): add scope field to connection types
2026-04-08 13:10:20 +09:00
YeonGyu-Kim
b81fdef5d9
fix(skill-mcp): redact sensitive data from connection errors
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:10:06 +09:00
YeonGyu-Kim
7751402999
fix(runtime-fallback): classify quota exhaustion as STOP not retryable
...
Remove quota exhaustion patterns from RETRYABLE_ERROR_PATTERNS:
- 'usage limit reached' patterns (lines 30, 32)
- 'insufficient credits' pattern (line 37)
- 'credit balance too low' pattern (line 38)
These errors indicate permanent quota exhaustion, not temporary
rate limits. They are already handled by classifyErrorType() which returns
'quota_exceeded', and isRetryableError() properly stops on these
unless there's an explicit auto-retry signal.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:09:38 +09:00
YeonGyu-Kim
a419857b46
fix(delegate-task): use exact match for isPlanFamily to allow Metis/Momus
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:09:31 +09:00
YeonGyu-Kim
78e6d780eb
fix(plugin): verify event hook compatibility with v1.4.0
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:08:03 +09:00
YeonGyu-Kim
e52dd340c6
fix(plugin): migrate chat.params to maxOutputTokens for v1.4.0
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:02:51 +09:00
YeonGyu-Kim
e8d83b5f98
fix(zwsp): strip zero-width chars in delegate-task tools
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:02:05 +09:00
YeonGyu-Kim
317e2c6465
fix(zwsp): strip zero-width chars in start-work-hook
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:01:51 +09:00
YeonGyu-Kim
3724093618
fix(zwsp): strip zero-width chars from agent headers in command-config-handler
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:01:43 +09:00
YeonGyu-Kim
130e67a432
fix(zwsp): strip zero-width chars in boulder-continuation-injector
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:01:41 +09:00
YeonGyu-Kim
5188df903f
fix(types): revert task-tool type inference workarounds
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-08 13:00:17 +09:00
YeonGyu-Kim
8f129eb4ad
fix(test): update plugin tests to use getAgentListDisplayName for agent assertions
...
- Update plugin-interface.test.ts expectations to use getAgentListDisplayName
- Update chat-message.test.ts expectations for agent display names
- Add smoke test for quoted plan name resolution in chat-message.test.ts
- Aligns test expectations with proper agent name formatting
🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:05:14 +09:00
YeonGyu-Kim
0452343f2b
fix(start-work): use getAgentListDisplayName for Atlas agent selection
...
- Use getAgentListDisplayName instead of getAgentDisplayName for Atlas in start-work-hook.ts
- Update test expectations in index.test.ts to match the correct display name format
- Ensures Atlas agent name uses proper list format (e.g., "Atlas - Orchestrator")
🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:05:06 +09:00
YeonGyu-Kim
557c2db65a
feat(start-work): add plan name normalization and quote stripping
...
- Add WRAPPING_QUOTES_PATTERN to parse-user-request.ts to strip quotes from plan names
- Add normalizePlanLookupValue() to context-info-builder.ts for slug normalization
- Enhanced findPlanByName() with normalized exact and partial matching
- Allows human-readable plan names (e.g., "my feature plan") to match slugged filenames (e.g., my-feature-plan.md)
🤖 Generated with OhMyOpenCode assistance
2026-04-07 19:04:58 +09:00
YeonGyu-Kim
a00fe13122
fix(test): update normalizeAgentForPrompt expectations to dash format
...
Test expected legacy parenthesized names but display names now use
dash format (Sisyphus - Ultraworker, not Sisyphus (Ultraworker)).
This was the flaky CI failure on dev.
2026-04-07 16:09:37 +09:00