Commit Graph

3284 Commits

Author SHA1 Message Date
YeonGyu-Kim 0cc263bcd1 fix(test): isolate auto-update-checker hook.test.ts to prevent checker mock leak
hook.test.ts mocks ./checker at module load time, which contaminates
checker.test.ts and invalidate-package.test.ts running in parallel in
the same CI batch. Move to hook-integration/ subdirectory for CI batch
isolation.
2026-04-04 17:24:15 +09:00
YeonGyu-Kim c91c3e6164 fix(test): move auto-slash-command-leak test to isolated subdirectory
mock.module('./executor') leaks across all files in the same batch because
Bun runs test files in a directory in parallel. The afterAll restore trick
doesn't work when other files load the module concurrently at startup.

Moving the leak test to its own subdirectory (leak/) ensures CI's batch
runner isolates it in a separate bun test invocation, preventing executor
mock contamination in executor-resolution.test.ts and index.test.ts.
2026-04-04 17:08:53 +09:00
YeonGyu-Kim 8fb22b89cf fix(test): restore real executor module in auto-slash-command-leak afterAll
mock.module('./executor') in auto-slash-command-leak.test.ts was leaking
into executor-resolution.test.ts in the same CI batch run, causing
executeSlashCommand to return the mock's raw replacement instead of the
real resolution result.

Fix: re-register the real executor exports via mock.module() in afterAll
so subsequent test files in the batch get the real implementation.
2026-04-04 17:04:26 +09:00
YeonGyu-Kim eb4060d739 fix(test): narrow mock.module() targets in background-agent tests to prevent barrel corruption
Three test files were mocking the entire '../../shared' barrel, which
corrupted exports for subsequent test files in the same batch run.
Narrow mocks to specific submodules (logger, connected-providers-cache).

Also reverts Bun version pin since the root cause was mock scope, not Bun.
2026-04-04 16:56:39 +09:00
YeonGyu-Kim a6e783adc4 fix(test): improve execute-http-hook-security test isolation
Reset mocks and process.env copy in afterEach to prevent cross-test
contamination from mock.module() isolation.
2026-04-04 16:48:12 +09:00
YeonGyu-Kim 733b54865f fix(config): handle tuple-format plugin entries in opencode.json (fixes #3122)
OpenCode supports plugin entries as [string, object] tuples for passing
options, but loadOpencodePlugins assumed all entries were strings.
When a tuple entry hit matchesKnownPlugin, it called .toLowerCase()
on an array, crashing the plugin on startup.

Extract the string name from tuple entries and skip non-string values.
Add regression test covering the tuple plugin format.
2026-04-04 16:44:40 +09:00
YeonGyu-Kim e40d3fb37a fix(session-manager): fall back to file storage on SDK outages 2026-04-04 16:42:51 +09:00
YeonGyu-Kim 322a360b2e Merge pull request #3119 from code-yeongyu/fix/prepublish-delegate-sync
fix(sync): forward delegated model tuning params
2026-04-04 16:11:07 +09:00
YeonGyu-Kim 5000b18909 Merge pull request #3118 from code-yeongyu/fix/prepublish-skill-schema
fix(config): allow disabling new built-in skills
2026-04-04 16:11:04 +09:00
YeonGyu-Kim dbec902e9c Merge pull request #3117 from code-yeongyu/fix/prepublish-ralph-loop
fix(ralph-loop): remove dead semantic completion fallback
2026-04-04 16:11:01 +09:00
YeonGyu-Kim 6edf705e95 Merge pull request #3116 from code-yeongyu/fix/prepublish-hook-recovery
fix(anthropic-recovery): add dispose path and fix test isolation
2026-04-04 16:10:59 +09:00
YeonGyu-Kim 69c9ad4449 test(ralph-loop): add transcript detector coverage
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:41:50 +09:00
YeonGyu-Kim 2da5f12c1f test(ralph-loop): split session completion detector coverage
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:41:42 +09:00
YeonGyu-Kim 617abbe864 fix(ralph-loop): remove dead semantic completion fallback
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:41:36 +09:00
YeonGyu-Kim 1fae073009 fix(sync): forward delegated model tuning params
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:40:37 +09:00
YeonGyu-Kim 5d735372a4 fix(tmux): unify isolated cleanup across close paths
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:40:26 +09:00
YeonGyu-Kim b31dfa6928 fix(background-agent): clean tmux cancel bookkeeping
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:40:21 +09:00
YeonGyu-Kim 42ac82a94a test(anthropic-recovery): isolate summarize retry timer assertion
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:39:44 +09:00
YeonGyu-Kim 5e8a0ccf84 test(anthropic-recovery): cover recovery hook timer disposal
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:39:28 +09:00
YeonGyu-Kim 2b55f65c36 fix(hooks): dispose anthropic recovery hook on shutdown
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:39:12 +09:00
YeonGyu-Kim 268946d117 fix(anthropic-recovery): dispose recovery hook timers
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:39:00 +09:00
YeonGyu-Kim 0a7daa5d10 fix(anthropic-recovery): add session timeout cleanup helpers
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:38:46 +09:00
YeonGyu-Kim 8199adcb15 fix(config): allow disabling new built-in skills
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 15:37:43 +09:00
YeonGyu-Kim fd476fe9a1 Merge pull request #3112 from code-yeongyu/fix/prepublish-code-quality
refactor: replace em dashes with hyphens in test files and docs
2026-04-04 14:56:54 +09:00
YeonGyu-Kim cba9c25543 Merge pull request #3111 from code-yeongyu/fix/prepublish-config-regression
fix(config): use canonical path after legacy migration and make writes atomic
2026-04-04 14:56:52 +09:00
YeonGyu-Kim c4a5ba10cc Merge pull request #3110 from code-yeongyu/fix/prepublish-bg-race
fix(background-agent): prevent cancelled task from being revived after tmux callback
2026-04-04 14:56:49 +09:00
YeonGyu-Kim ba98be9375 Merge pull request #3109 from code-yeongyu/fix/prepublish-mcp-env
fix(security): block cloud credential env vars in MCP env cleaner
2026-04-04 14:56:47 +09:00
YeonGyu-Kim 4301e5e724 Merge pull request #3108 from code-yeongyu/fix/prepublish-tar-failopen
fix(security): make tar archive preflight fail-closed on unparsed entries
2026-04-04 14:56:44 +09:00
YeonGyu-Kim 726d19c3cc fix(security): make tar parser strictly fail-closed on any unparsed line 2026-04-04 14:48:44 +09:00
YeonGyu-Kim 0c6907adc3 fix(config): use canonical path after legacy migration and make writes atomic 2026-04-04 14:46:29 +09:00
YeonGyu-Kim e860108b60 refactor: replace em dashes with hyphens in test files and docs
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 14:35:49 +09:00
YeonGyu-Kim d368f77fcd fix(security): make tar archive preflight fail-closed on unparsed entries 2026-04-04 14:27:46 +09:00
YeonGyu-Kim 7f1497fc43 fix(background-agent): prevent cancelled task from being revived after tmux callback 2026-04-04 14:19:18 +09:00
YeonGyu-Kim 4fa3d0331a fix(security): block cloud credential env vars in MCP env cleaner
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 14:16:39 +09:00
YeonGyu-Kim 32ec80b347 plugin: skip tmux startup checks when integration is disabled 2026-04-04 14:14:32 +09:00
YeonGyu-Kim 731c3f1109 plugin: honor tmux disablement for interactive tmux features 2026-04-04 14:14:19 +09:00
YeonGyu-Kim 141881aa2d fix(tmux): re-attempt isolated container on deferred session retry 2026-04-04 02:38:15 +09:00
YeonGyu-Kim cab84518de fix(hooks): replace empty catch blocks with debug logging in transcript 2026-04-04 02:37:53 +09:00
YeonGyu-Kim 6acca09bd0 fix(ci): resolve mock.module() cross-file leakage in test suite
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 02:35:23 +09:00
YeonGyu-Kim 673b107f53 test: isolate auto-update checker modules 2026-04-04 02:35:20 +09:00
YeonGyu-Kim f547cd013d refactor(shared): consolidate plugin entry migration and detection utilities 2026-04-04 02:10:27 +09:00
YeonGyu-Kim fd252ea82e refactor: remove AI-generated code smells from prepublish changes
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 02:02:12 +09:00
YeonGyu-Kim e4d7fdb7e9 Merge pull request #3092 from code-yeongyu/fix/prepublish-legacy-config
fix(shared): close legacy config migration gaps
2026-04-04 01:46:52 +09:00
YeonGyu-Kim bda0f55196 Merge pull request #3091 from code-yeongyu/fix/prepublish-quality-checks
fix: address pre-publish quality checks
2026-04-04 01:46:49 +09:00
YeonGyu-Kim 1f2b69ed56 Merge pull request #3090 from code-yeongyu/fix/prepublish-tmux-regressions
fix(tmux): recover isolated session regressions
2026-04-04 01:46:46 +09:00
YeonGyu-Kim 565cf42c10 Merge pull request #3089 from code-yeongyu/fix/prepublish-background-regressions
fix(background-agent): bound abort waits and remove dead worktree sync
2026-04-04 01:46:43 +09:00
YeonGyu-Kim 551d906116 Merge pull request #3088 from code-yeongyu/fix/prepublish-security-hardening
fix(shared): harden archive preflight for zip and tar links
2026-04-04 01:46:39 +09:00
YeonGyu-Kim f03c6700d4 fix(hooks): reuse shared legacy plugin migration helper
Replace the legacy toast regex writer with the shared atomic helper and route legacy plugin call sites through small wrappers so existing mock.module tests stop leaking across the suite.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 01:32:59 +09:00
YeonGyu-Kim 290f7f9543 fix(shared): merge project and user opencode plugin detection
Stop dropping user-level plugin conflicts when an empty project config exists by collecting plugin entries from every supported OpenCode config path.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 01:32:42 +09:00
YeonGyu-Kim fedb73c736 fix(shared): migrate legacy config files atomically
Write the canonical config through a temp file and remove the legacy dual-file trap by archiving or deleting the old basename after migration.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-04 01:32:31 +09:00