YeonGyu-Kim
0c54ae39d4
Merge pull request #1584 from code-yeongyu/fix/441-matcher-hooks-undefined
...
fix(hooks): add defensive null check for matcher.hooks to prevent Windows crash (#441 )
2026-02-07 20:01:28 +09:00
YeonGyu-Kim
9e27752399
Merge pull request #1614 from code-yeongyu/fix/1501-ulw-plan-loop
...
fix(ultrawork): widen isPlannerAgent matching to prevent ULW infinite plan loop (#1501 )
2026-02-07 19:59:41 +09:00
YeonGyu-Kim
15bba86c4e
Merge pull request #1613 from code-yeongyu/fix/1561-dead-migration
...
fix(migration): remove task_system backup rewrite (#1561 )
2026-02-07 19:57:22 +09:00
YeonGyu-Kim
d0a245436b
fix: skip ultrawork injection for plan-like agents ( #1501 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:52:47 +09:00
YeonGyu-Kim
e602e41a34
fix(migration): stop task_system backup writes ( #1561 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:51:22 +09:00
YeonGyu-Kim
04c0e2390e
refactor(migration): split model and category helpers ( #1561 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:51:15 +09:00
YeonGyu-Kim
d174b8cff7
refactor(migration): extract agent and hook maps ( #1561 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:51:08 +09:00
YeonGyu-Kim
ea8615dcc2
Merge pull request #1610 from code-yeongyu/fix/96-compaction-dedup-recovery
...
fix: wire deduplication into compaction recovery for prompt-too-long errors (#96 )
2026-02-07 19:28:49 +09:00
YeonGyu-Kim
44e3180b62
fix: rewrite dedup recovery test to mock module instead of filesystem
2026-02-07 19:26:06 +09:00
YeonGyu-Kim
be07964918
Merge pull request #1611 from code-yeongyu/fix/1481-1483-compaction
...
fix: prevent compaction from inserting arbitrary constraints and preserve todo state (#1481 , #1483 )
2026-02-07 19:23:50 +09:00
YeonGyu-Kim
985bf8bbc9
fix: use lazy storage dir resolution to fix CI test flakiness
2026-02-07 19:23:24 +09:00
YeonGyu-Kim
c9af4f33e8
fix: wire deduplication into compaction recovery for prompt-too-long errors ( #96 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:18:12 +09:00
YeonGyu-Kim
42843013e2
refactor: extract context window recovery hook
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:17:55 +09:00
YeonGyu-Kim
1757be3757
Merge pull request #1607 from code-yeongyu/fix/358-skill-description-truncation
...
fix: use character limit instead of sentence split for skill description (#358 )
2026-02-07 19:17:27 +09:00
YeonGyu-Kim
dd6c076a80
Merge pull request #1608 from code-yeongyu/fix/114-cascade-cancel
...
fix: cascade cancel descendant tasks when parent session is deleted (#114 )
2026-02-07 19:16:18 +09:00
YeonGyu-Kim
faf8ac4eef
fix: register compaction todo preserver
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:15:52 +09:00
YeonGyu-Kim
194c0795af
fix: add compaction todo preserver hook
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:15:46 +09:00
YeonGyu-Kim
c52ed314a0
fix: avoid invented compaction constraints
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:15:41 +09:00
YeonGyu-Kim
380765f98e
fix: ensure truncated result stays within maxLength limit
2026-02-07 19:13:35 +09:00
YeonGyu-Kim
791fcba58b
Merge pull request #1606 from code-yeongyu/fix/658-tools-ctx-directory
...
fix: use ctx.directory instead of process.cwd() in tools for Desktop app support
2026-02-07 19:12:25 +09:00
YeonGyu-Kim
0c5a62a9f3
fix: cascade cancel descendant tasks when parent session is deleted ( #114 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:10:49 +09:00
YeonGyu-Kim
76b3414891
fix: update session-manager tests to use factory pattern
2026-02-07 19:10:14 +09:00
YeonGyu-Kim
95cbcf9c39
fix: use character limit instead of sentence split for skill description ( #358 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:08:08 +09:00
YeonGyu-Kim
c4b9820b06
Merge pull request #1605 from code-yeongyu/fix/919-commit-footer-v2
...
fix: allow string values for commit_footer config (#919 )
2026-02-07 19:07:15 +09:00
YeonGyu-Kim
2a64388db2
Merge pull request #1593 from code-yeongyu/fix/prometheus-plan-overwrite
...
fix: allow Prometheus to overwrite .sisyphus/*.md plan files
2026-02-07 19:04:47 +09:00
YeonGyu-Kim
ceab17c255
fix: allow string values for commit_footer config ( #919 )
2026-02-07 19:04:34 +09:00
YeonGyu-Kim
ad17f5eb0a
fix: use ctx.directory instead of process.cwd() in tools for Desktop app support
...
Convert grep, glob, ast-grep, and session-manager tools from static exports to factory functions that receive PluginInput context. This allows them to use ctx.directory instead of process.cwd(), fixing issue #658 where tools search from wrong directory in OpenCode Desktop app.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-07 19:04:31 +09:00
YeonGyu-Kim
b714b3082d
Merge pull request #1604 from code-yeongyu/fix/957-allowed-agents-dynamic
...
fix: expand ALLOWED_AGENTS to include all subagent-capable agents (#957 )
2026-02-07 19:01:43 +09:00
YeonGyu-Kim
0a3dba02a3
fix: normalize resolvedPath before startsWith check
...
Addresses cubic review feedback — resolvedPath may contain
non-canonical segments when filePath is absolute, causing
the startsWith check against sisyphusRoot to fail.
2026-02-07 19:01:28 +09:00
YeonGyu-Kim
9de11b3902
Merge pull request #1594 from code-yeongyu/fix/boulder-stop-continuation
...
fix: /stop-continuation now cancels boulder continuation
2026-02-07 19:00:57 +09:00
YeonGyu-Kim
4a48608088
fix: expand ALLOWED_AGENTS to include all subagent-capable agents
2026-02-07 18:57:47 +09:00
YeonGyu-Kim
4d7f85a7c3
Merge pull request #1603 from code-yeongyu/fix/1269-windows-which-detection
...
fix: use platform-aware binary detection on Windows (#1269 )
2026-02-07 18:51:28 +09:00
YeonGyu-Kim
66cbfe03b7
fix: boulder continuation now respects /stop-continuation guard
...
Add isContinuationStopped check to atlas hook's session.idle handler
so boulder continuation stops when user runs /stop-continuation.
Previously, todo continuation and session recovery checked the guard,
but boulder continuation did not — causing work to resume after stop.
Fixes #1575
2026-02-07 18:50:13 +09:00
YeonGyu-Kim
e69c57b370
Merge pull request #1601 from code-yeongyu/fix/899-cli-run-dash-args
...
fix: allow dash-prefixed arguments in CLI run command (#899 )
2026-02-07 18:49:26 +09:00
YeonGyu-Kim
f6c15931f8
Merge pull request #1602 from code-yeongyu/fix/1365-sg-cli-path-fallback
...
fix: don't fallback to system sg command for ast-grep (#1365 )
2026-02-07 18:49:19 +09:00
YeonGyu-Kim
31f03401b4
fix: anchor .sisyphus path check to ctx.directory to prevent false positives
...
- Uses path.join(ctx.directory, '.sisyphus') + sep as prefix instead of loose .includes()
- Prevents false positive when .sisyphus exists in parent directories outside project root
- Adds test for the false positive case (cubic review feedback)
2026-02-07 18:49:16 +09:00
YeonGyu-Kim
da363a447d
fix: use platform-aware binary detection (where on Windows, which on Unix)
2026-02-07 18:48:14 +09:00
YeonGyu-Kim
87db2a85cd
fix: allow dash-prefixed arguments in CLI run command
2026-02-07 18:46:40 +09:00
YeonGyu-Kim
fdde204cf8
Merge pull request #1597 from code-yeongyu/fix/899-cli-run-dash-args
...
fix: allow dash-prefixed arguments in CLI run command (#899 )
2026-02-07 18:46:33 +09:00
YeonGyu-Kim
bc9756a5f2
Merge pull request #1595 from code-yeongyu/fix/tool-name-whitespace
...
fix: trim whitespace from tool names before matching
2026-02-07 18:46:09 +09:00
YeonGyu-Kim
9419e28365
fix: don't fallback to system 'sg' command for ast-grep
...
On Linux systems, 'sg' is a mailutils command, not ast-grep. The previous
fallback would silently run the wrong binary when ast-grep wasn't found.
Changes:
- getSgCliPath() now returns string | null instead of string
- Fallback changed from 'sg' to null
- Call sites now check for null and return user-facing error with
installation instructions
- checkEnvironment() updated to handle null path
Fixes #1365
2026-02-07 18:46:01 +09:00
YeonGyu-Kim
bb19dc1485
fix: allow dash-prefixed arguments in CLI run command
2026-02-07 18:41:53 +09:00
YeonGyu-Kim
a408d24409
Merge pull request #1592 from code-yeongyu/fix/issue-1570-onetime-migration
...
fix: make model migration run only once by storing history
2026-02-07 18:29:31 +09:00
YeonGyu-Kim
3003877809
fix: make model migration run only once by storing history in _migrations field
...
- Add _migrations field to OhMyOpenCodeConfigSchema to track applied migrations
- Update migrateModelVersions() to accept appliedMigrations Set and return newMigrations array
- Skip migrations that are already in _migrations (preserves user reverts)
- Update migrateConfigFile() to read/write _migrations field
- Add 8 new tests for migration history tracking
Fixes #1570
2026-02-07 18:25:23 +09:00
YeonGyu-Kim
42434c88b0
Merge pull request #1590 from code-yeongyu/feat/run-cli-extensions
...
feat(cli): extend run command with port, attach, session-id, on-complete, and json options
2026-02-07 18:05:11 +09:00
YeonGyu-Kim
a6aa71ee95
fix: explicitly pass encoding/callback args through stdout.write wrapper
2026-02-07 18:01:33 +09:00
YeonGyu-Kim
a88c072abd
fix(test): remove shadowed consoleErrorSpy declarations in on-complete-hook tests
...
Remove duplicate consoleErrorSpy declarations in 'command failure' and
'spawn error' tests that shadowed the outer beforeEach/afterEach-managed
spy. The inner declarations created a second spy on the already-spied
console.error, causing restore confusion and potential test leakage.
2026-02-07 17:54:56 +09:00
YeonGyu-Kim
a78c84f88c
fix: address cubic 4/5 review issues
...
- Preserve encoding/callback args in stdout.write wrapper (json-output.ts)
- Restore global console spy in afterEach (server-connection.test.ts)
- Restore console.error spy in afterEach (on-complete-hook.test.ts)
2026-02-07 17:39:16 +09:00
YeonGyu-Kim
84b0969191
Merge pull request #1585 from code-yeongyu/fix/1559-crash-boundary
...
fix: add error boundaries for plugin loading and hook creation (#1559 )
2026-02-07 17:34:59 +09:00
YeonGyu-Kim
76856599a7
fix(test): mock SDK and port-utils in integration test to prevent CI failure
...
The 'port with available port starts server' test was calling
createOpencode from the SDK which spawns an actual opencode binary.
CI environments don't have opencode installed, causing ENOENT.
Mock @opencode-ai/sdk and port-utils (same pattern as
server-connection.test.ts) so the test verifies integration
logic without requiring the binary.
2026-02-07 17:34:29 +09:00