Commit Graph

4630 Commits

Author SHA1 Message Date
YeonGyu-Kim 0c6aa91fc8 Merge pull request #3049 from code-yeongyu/fix/p0-5-mcp-env-expansion
fix(mcp): warn on blocked env expansion
2026-04-03 18:52:32 +09:00
YeonGyu-Kim 1631509989 fix: reset hook state on abort so session recovers after user cancel
When a user cancels a generation (ESC x2), all three idle hooks could
enter a permanently broken state:

1. **todo-continuation-enforcer**: consecutiveFailures accumulated from
   abort-caused promptAsync failures, eventually hitting MAX_CONSECUTIVE_FAILURES
   and permanently stopping continuation injection.

2. **unstable-agent-babysitter**: no abort awareness at all — would keep
   firing reminders after user cancelled the session.

3. **runtime-fallback**: retry dedupe keys and pending fallback state
   persisted across cancellation, blocking legitimate error recovery.

Fix:
- Add shared `isAbortError()` utility for consistent abort detection
- Reset consecutiveFailures and clear stale state on AbortError in all hooks
- Track `lastCancelledAt` in todo-continuation-enforcer for abort window
- Add abort-awareness to unstable-agent-babysitter (skip if recently cancelled)
- Clear runtime-fallback retry state on abort errors

Tests: 61 pass, 0 fail across all 3 affected hook test suites.

Closes #2984
2026-04-03 18:51:10 +09:00
YeonGyu-Kim 8be39e558d fix(tmux): preserve isolated container cleanup after anchor reassignment 2026-04-03 18:42:58 +09:00
YeonGyu-Kim ac5e507155 Merge pull request #3060 from code-yeongyu/fix/p2-15-claude-code-hooks-rules
Fix Claude user rule skipping for disabled hooks
2026-04-03 18:41:09 +09:00
YeonGyu-Kim 9783fae351 Merge pull request #3057 from code-yeongyu/fix/p1-9-recovery-retry-timer-leak
fix: clear stale recovery retry state
2026-04-03 18:40:29 +09:00
YeonGyu-Kim 71b8110ff0 fix(zip): parse zipinfo file entries with preserved filenames
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:38:14 +09:00
github-actions[bot] d2a78cc137 @suyua9 has signed the CLA in code-yeongyu/oh-my-openagent#3064 2026-04-03 09:37:12 +00:00
YeonGyu-Kim e20b59cb29 fix(mcp): allow common Windows env vars by default
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:34:22 +09:00
YeonGyu-Kim 316d250465 fix(mcp): ignore project allowlist overrides for env expansion
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:34:22 +09:00
YeonGyu-Kim 2b43558349 fix(tar): surface traversal extraction failures as blocked entries
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:34:22 +09:00
YeonGyu-Kim a4f436c116 fix(tar): classify traversal tar listing errors as blocked entries
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:34:12 +09:00
YeonGyu-Kim 2288988f28 fix(zip): use zipinfo to preflight zip extraction on unix
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:34:12 +09:00
YeonGyu-Kim 2e6a7b4339 fix: update docs and barrel imports for task_system default 2026-04-03 18:32:12 +09:00
YeonGyu-Kim b931e309f4 fix(mcp): warn when MCP env expansion is blocked
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:29 +09:00
YeonGyu-Kim 4766891557 fix(mcp): expand builtin allowlist for benign env vars
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:29 +09:00
YeonGyu-Kim d65714eba0 fix(shared): avoid archive test batch regression
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim 760099eb03 fix(tasks-hook): update default task_system test
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim 47769d5f49 fix(tasks-hook): share task_system resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim 3b3520da90 fix(agent-config): share task_system resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim d65c7c0800 fix(tool-config): share task_system resolution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim c65baa80c8 fix(tool-registry): unify task_system default
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim 2ba2f8f5f7 fix(shared): add task_system resolver
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:31:26 +09:00
YeonGyu-Kim 83acafce48 Merge pull request #3058 from code-yeongyu/fix/p1-11-remove-as-any-tests
fix(tests): remove as any from new test files
2026-04-03 18:30:30 +09:00
YeonGyu-Kim 32b9235764 Merge pull request #3051 from code-yeongyu/fix/p0-2-https-enforcement-gaps
fix(security): enforce HTTPS for all non-loopback remote hooks
2026-04-03 18:30:29 +09:00
YeonGyu-Kim 071f6c334d Merge pull request #3055 from code-yeongyu/fix/p1-8-legacy-config-canonical-priority
fix: prefer canonical plugin config files
2026-04-03 18:30:19 +09:00
YeonGyu-Kim 72b3b15f78 Merge pull request #3050 from code-yeongyu/fix/p0-4-tmux-default-isolation
fix: revert tmux default isolation to inline
2026-04-03 18:30:18 +09:00
YeonGyu-Kim 92f4068c70 Merge pull request #3061 from code-yeongyu/feat/double-context-window-display
Double displayed context window counts
2026-04-03 18:29:16 +09:00
YeonGyu-Kim 8f449e1627 fix: respect user-configured category model over fallbackChain defaults
When a user configures a custom model for a category (e.g. quick.model),
the hardcoded CATEGORY_MODEL_REQUIREMENTS fallbackChain was overriding it.
This caused the user's model to be ignored and replaced with the default
(e.g. openai/gpt-5.4-mini).

Fix:
- Use userModelOverride directly instead of potentially stale actualModel
- Suppress hardcoded fallbackChain when explicitCategoryModel is provided
- Add regression test verifying user category model takes precedence

Closes #3040
2026-04-03 18:27:26 +09:00
YeonGyu-Kim 706640ace3 fix: use detectShellType() instead of hardcoded 'unix' in non-interactive-env hook
The non-interactive-env hook hardcoded shellType as 'unix', causing
'export' syntax to be used on Windows PowerShell where it doesn't work.
This caused sub-agent infinite loops on Windows as git commands would
fail with 'export: The term export is not recognized' and retry forever.

Fix: use the existing detectShellType() function which correctly detects
PowerShell (via PSModulePath), csh, cmd (win32 fallback), and unix shells.

Updated tests to verify platform-aware shell syntax selection.

Closes #3000
2026-04-03 18:26:24 +09:00
YeonGyu-Kim 5b3541f7aa Clarify doubled context display intent
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:25:42 +09:00
YeonGyu-Kim f34edf9957 Update cached limit monitor expectations
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:14:13 +09:00
YeonGyu-Kim 0e9dbbdc48 Double displayed context window counts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:14:13 +09:00
YeonGyu-Kim 6dc21b3b7f Fix Claude user rule skipping for disabled hooks
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:14:12 +09:00
YeonGyu-Kim 6cb7028ef7 fix(tmux): reassign anchor pane on first subagent deletion
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 18:12:33 +09:00
YeonGyu-Kim 243db8d0f5 fix: clear failed empty-content recovery state 2026-04-03 18:07:47 +09:00
YeonGyu-Kim ec9ed0a381 Merge pull request #3056 from code-yeongyu/fix/p2-12-notification-template-consolidation
Consolidate background task notification template
2026-04-03 18:03:36 +09:00
YeonGyu-Kim fe326ca79b fix: clear stale recovery retry state 2026-04-03 17:50:24 +09:00
YeonGyu-Kim 9fa1ea38e8 test: isolate recovery hook mocks from full suite 2026-04-03 17:50:24 +09:00
YeonGyu-Kim e4846fba6b Merge pull request #3053 from code-yeongyu/fix/p0-3-await-session-abort
fix(background-agent): await session abort completion paths
2026-04-03 17:48:07 +09:00
YeonGyu-Kim 9bcaddf732 Use shared background task notification template
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:43:33 +09:00
YeonGyu-Kim 833fb12331 Add background task notification template coverage
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:43:33 +09:00
YeonGyu-Kim 49ea082855 fix(background-agent): await shutdown aborts before cleanup
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:42:51 +09:00
YeonGyu-Kim 9b1d92d3a6 fix(background-agent): await retry abort before requeueing
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:42:51 +09:00
YeonGyu-Kim 4d40b44914 fix(background-agent): await stale task aborts before poller exits
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:42:51 +09:00
YeonGyu-Kim 6ca046c12b Derive tmux runtime fallback from schema defaults
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:37:51 +09:00
YeonGyu-Kim f369971db9 fix(tests): type tmux fetch mocks
Model the tmux fetch test doubles with the fetch shape Bun expects so the tests drop  without changing assertions.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:37:17 +09:00
YeonGyu-Kim e3f3bcc063 fix(tests): type cliproxy fallback test harness
Convert the cliproxy fallback matrix test to use typed harness helpers instead of  so fallback coverage remains unchanged without violating test constraints.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:37:17 +09:00
YeonGyu-Kim 4e435dac73 fix(tests): type event handler test harness
Replace broad  casts in event handler tests with typed harness helpers so the regression coverage stays intact while matching the test-file typing rules.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:37:17 +09:00
YeonGyu-Kim 3a2c4fd099 fix(tests): type config-handler test spy restore
Avoid  for the MCP env allowlist spy restore path so the config-handler test keeps the same behavior with specific typing.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-03 17:37:17 +09:00
YeonGyu-Kim f39a0182eb Merge pull request #3054 from code-yeongyu/fix/p0-6-mcp-local-scope-subdirectory
Fix local MCP scope loading in subdirectories
2026-04-03 17:32:11 +09:00