Commit Graph

1288 Commits

Author SHA1 Message Date
Sisyphus 0a808de6a2 fix(auto-update-checker): trigger deferred startup on session.created with parentID guard 2026-04-18 17:23:50 +09:00
Sisyphus a8504be70c test(auto-update-checker): cover session.created trigger with parentID guard 2026-04-18 17:19:18 +09:00
Sisyphus e766354e22 test(auto-update-checker): align zauc-mocks-hook with deferred idle check
The zauc-mocks-hook variant previously asserted that session.created synchronously
ran the startup checks. After auto-update-checker was refactored to defer work to
the first session.idle via scheduleDeferredIdleCheck (5s timer), those assertions
never fired.

Mirror the mock+capture pattern from hook.test.ts so the test drives the deferred
callback synchronously, preserving the original invariants (hasChecked guard,
localDev toast, sisyphus wording) without waiting on real timers.
2026-04-18 15:05:30 +09:00
Sisyphus 14868430bc test(auto-update-checker): align test triggers with deferred idle check 2026-04-18 14:55:51 +09:00
Sisyphus 61675adbf1 test(slashcommand): isolate command-loader cache between tests 2026-04-18 14:53:14 +09:00
Sisyphus 0ca571e74d Merge branch 'fix/perf-d03' into fix/perf-omo-in-tree 2026-04-18 14:43:55 +09:00
Sisyphus 1fd678f5ad Merge branch 'fix/perf-d02' into fix/perf-omo-in-tree 2026-04-18 14:43:48 +09:00
Sisyphus 85e4f5ecab Merge branch 'fix/perf-q11' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus b60cad0eb0 Merge branch 'fix/perf-q09' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus d9cea93101 Merge branch 'fix/perf-q08' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 9f15a09595 Merge branch 'fix/perf-q06' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus c5268af087 Merge branch 'fix/perf-q05' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 4857666a89 Merge branch 'fix/perf-q04' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 5faba8d572 Merge branch 'fix/perf-q03' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus 56d2d2543b Merge branch 'fix/perf-d10' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
Sisyphus dc0d64d5f1 Merge branch 'fix/perf-d04' into fix/perf-omo-in-tree 2026-04-18 14:43:37 +09:00
YeonGyu-Kim edcc9a1e64 fix(todo-continuation-enforcer): defer prune interval to first idle event
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:16:40 +09:00
Sisyphus 52512f226a fix(rules-injector): cache directory scan results per session 2026-04-18 14:13:51 +09:00
Sisyphus ed6ac7ea96 fix(session-notification): defer platform detection and background checks 2026-04-18 14:13:12 +09:00
Sisyphus 439957c4cd test(session-notification): cover lazy platform detect and scheduler startup 2026-04-18 14:13:07 +09:00
YeonGyu-Kim 76e8508fa4 fix(runtime-fallback): inject pluginConfig and defer cleanup interval to first event
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:12:41 +09:00
YeonGyu-Kim 3d4299445e fix(auto-update-checker): defer npm registry check until first idle
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:12:37 +09:00
YeonGyu-Kim 4f59e91d2d test(todo-continuation-enforcer): cover lazy prune interval
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:50 +09:00
YeonGyu-Kim 443891fdfd test(rules-injector): cover per-session cache isolation and invalidation
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:39 +09:00
YeonGyu-Kim a03faaa278 test(auto-update-checker): cover deferred update check
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:17 +09:00
Sisyphus bcd7b8e348 fix(rules-injector): memoize project-root lookup per process lifecycle
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:14 +09:00
Sisyphus 886ef82494 perf(directory-readme-injector): migrate sync FS to fs.promises
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:03 +09:00
YeonGyu-Kim a4c45e2770 fix(write-existing-file-guard): defer realpath/existsSync to first tool call
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:11:03 +09:00
YeonGyu-Kim d8e00ebfbc test(runtime-fallback): cover pluginConfig DI and lazy interval
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:10:25 +09:00
YeonGyu-Kim 51f1fc1df3 perf(directory-agents-injector): migrate sync FS to fs.promises
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:10:18 +09:00
YeonGyu-Kim a6e3c6a5ed test(write-existing-file-guard): cover lazy canonical path init
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:10:12 +09:00
YeonGyu-Kim 9677c7daf3 test(directory-agents-injector): cover async migration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:10:12 +09:00
Sisyphus 3717121b0d test(directory-readme-injector): cover async migration
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:10:04 +09:00
Sisyphus e599840fba fix(comment-checker): defer CLI download and cleanup scheduler to first tool call 2026-04-18 14:09:43 +09:00
Sisyphus 493e37bb7d test(comment-checker): cover lazy CLI init and cleanup startup 2026-04-18 14:09:38 +09:00
Sisyphus 76945bf3c8 test(rules-injector): cover project-root-finder memoization
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 14:09:32 +09:00
Sisyphus c5b7aa8e4b test(rules-injector): cover per-session scan caching behavior 2026-04-18 14:09:07 +09:00
Sisyphus 578c49f9c2 fix(rules-injector): skip EXCLUDED_DIRS in recursive rule scanner 2026-04-18 14:08:52 +09:00
Sisyphus d566d69c37 test(rules-injector): add regression coverage for excluded-dir pruning 2026-04-18 14:07:58 +09:00
YeonGyu-Kim 1b5f3167eb Merge pull request #3492 from code-yeongyu/refactor/legacy-plugin-decoupling
refactor: modernize plugin entry to V1 format and decouple legacy/tightly-coupled code
2026-04-18 03:10:14 +09:00
YeonGyu-Kim 70ddc01e10 refactor: remove AI slop from refactored files
Behavior-preserving cleanup of AI-generated code smells in 5 files authored/moved by this PR:

- src/hooks/model-fallback/fallback-state-controller.ts (-47/+47 net reorganization, redundant defensiveness removed)
- src/shared/model-string-parser.ts (-4 LOC obvious-comment cleanup)
- src/shared/ripgrep-cli.ts (-13 LOC obvious comments + redundant defensive checks)
- src/tools/delegate-task/tool-description.ts (-6 LOC)
- src/tools/look-at/look-at-input-preparer.ts (-6 LOC)

Targets: obvious comments that restate code, over-defensive null checks on guaranteed values, redundant existence checks. No public API signatures changed, no type hints removed, no new abstractions introduced. Full test suite still passes.
2026-04-18 03:01:51 +09:00
YeonGyu-Kim 5e4102566c refactor(model-fallback): fully encapsulate session state in factory closure
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 02:35:46 +09:00
YeonGyu-Kim 81b68d828c refactor(model-fallback): move fallback state into factory closure and split hook.ts
Move the pending fallback, toast, and session-chain maps behind a shared controller initialized from the hook factory. This preserves the existing singleton semantics because exported helpers and hook instances still resolve the same lazily initialized controller while hook.ts stays under the 200-line limit.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 01:53:03 +09:00
YeonGyu-Kim 0d10498a11 refactor(hooks): split session-notification.ts to comply with 200 LOC module rule
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 01:52:26 +09:00
YeonGyu-Kim db056346d2 refactor(shared): move parseModelString out of delegate-task to break cross-tool coupling
Move parseModelString into src/shared so callers can depend on a neutral module instead of reaching into delegate-task internals.

Cross-tool coupling violates module boundaries, and this keeps call-omo-agent plus runtime-fallback from importing through a sibling tool.
2026-04-18 01:51:26 +09:00
YeonGyu-Kim 1aebf39d23 refactor(hooks): split preemptive-compaction.ts to comply with 200 LOC module rule
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 01:50:41 +09:00
YeonGyu-Kim cb8f44ed95 refactor(ralph-loop test): clarify race-condition predicate naming
Rename the local wait predicate to avoid confusion with deprecated auth-prompt condition fields.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-04-18 01:42:01 +09:00
YeonGyu-Kim 5759a9c503 docs(agents): refresh AGENTS.md hierarchy via /init-deep
Updated root + 14 core subdirectory AGENTS.md files to reflect current
state (commit 2892ca4a on dev). Added 4 new AGENTS.md files for gap
directories: hooks/comment-checker (AI slop blocker), features/claude-
code-plugin-loader (CC compat layer), features/claude-code-mcp-loader
(tier 2 MCP loader), cli/doctor (health diagnostics with 25 check files).
2026-04-18 01:21:20 +09:00
YeonGyu-Kim 5478bab457 refactor(models): preserve legacy claude-opus-4-6 aliases and category mapping
Addresses review feedback on #3486:

1. claude-thinking-legacy-alias now matches both claude-opus-4-6-thinking
   and claude-opus-4-7-thinking, canonicalizing both to claude-opus-4-7.
   The previous diff retargeted the regex to 4-7 only, which dropped
   backward compatibility for users still pinned to the 4-6 thinking
   suffix.

2. MODEL_TO_CATEGORY_MAP keeps the claude-opus-4-6 to unspecified-high
   entry alongside the new 4-7 entry. The map is order-independent from
   MODEL_VERSION_MAP, so preserving the 4-6 key avoids relying on a
   specific migration ordering for legacy agent configs.

3. Fix stale 'Claude Opus 4.6' labels and BDD test comments that the
   sed-based bump missed.
2026-04-17 15:35:11 +09:00
YeonGyu-Kim def44338ff refactor(models): bump claude-opus-4-6 to claude-opus-4-7 across fallback chains, categories, and hooks
Updates the canonical Anthropic Opus model in every fallback chain
(sisyphus, oracle, prometheus, metis, momus, visual-engineering,
ultrabrain, deep, artistry, unspecified-high), the unspecified-high
category default, the think-mode HIGH_VARIANT_MAP, the Claude Code
alias map, the claude-thinking legacy alias, the context-limit GA
regex, and event.ts fallback strings.

Widens supportsCachedAnthropicLimit to accept both claude-*-4-6 and
claude-*-4-7 so the 1M context cache still applies across the bump.

Regenerates the bundled model-capabilities snapshot from models.dev
and the model-fallback snapshot to match the new source output.
2026-04-17 14:51:52 +09:00