YeonGyu-Kim
1cb8f8bee6
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
f3540a9ea3
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
8280e45fe1
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
0eddd28a95
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
36e54acc51
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
817c593e12
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
3ccef5d9b3
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
ae4e113c7e
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
403457f9e4
fix: rewrite dedup recovery test to mock module instead of filesystem
2026-02-07 19:26:06 +09:00
YeonGyu-Kim
5e5c091356
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
1df025ad44
fix: use lazy storage dir resolution to fix CI test flakiness
2026-02-07 19:23:24 +09:00
YeonGyu-Kim
844ac26e2a
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
2727f0f429
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
89b1205ccf
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
d44f5db1e2
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
180fcc3e5d
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
3947084cc5
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
67f701cd9e
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
f94ae2032c
fix: ensure truncated result stays within maxLength limit
2026-02-07 19:13:35 +09:00
YeonGyu-Kim
c81384456c
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
9040383da7
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
c688e978fd
fix: update session-manager tests to use factory pattern
2026-02-07 19:10:14 +09:00
YeonGyu-Kim
a0201e17b9
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
dbbec868d5
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
6e2f3b1f50
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
e4bbd6bf15
fix: allow string values for commit_footer config ( #919 )
2026-02-07 19:04:34 +09:00
YeonGyu-Kim
476f154ef5
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
83519cae11
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
9a8f03462f
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
daf6c7a19e
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
2bb82c250c
fix: expand ALLOWED_AGENTS to include all subagent-capable agents
2026-02-07 18:57:47 +09:00
YeonGyu-Kim
8e92704316
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
f980e256dd
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
4d19a22679
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
e1010846c4
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
38169523c4
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
b98697238b
fix: use platform-aware binary detection (where on Windows, which on Unix)
2026-02-07 18:48:14 +09:00
YeonGyu-Kim
d5b6a7c575
fix: allow dash-prefixed arguments in CLI run command
2026-02-07 18:46:40 +09:00
YeonGyu-Kim
78a08959f6
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
db6a899297
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
7fdbabb264
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
b3ebf6c124
fix: allow dash-prefixed arguments in CLI run command
2026-02-07 18:41:53 +09:00
YeonGyu-Kim
8a1b398119
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
66419918f9
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
755a3a94c8
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
5e316499e5
fix: explicitly pass encoding/callback args through stdout.write wrapper
2026-02-07 18:01:33 +09:00
YeonGyu-Kim
266c045b69
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
eafcac1593
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
7927d3675d
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
4059d02047
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