YeonGyu-Kim
e303feefd2
feat(team-mode): add team-layout-tmux for focus+grid pane visualization
...
Introduce a dedicated module that builds the two-window tmux layout team-mode relies on:
- "focus" window uses main-vertical for the lead-centric view
- "grid" window uses tiled so every member pane is visible at once
createTeamLayout spawns omo-team-<teamRunId>, registers pane titles with
color-coded labels, and returns the focus/grid window IDs plus a
pane-by-member map. removeTeamLayout tears the session down idempotently.
canVisualize short-circuits when TMUX is unset so callers degrade
gracefully outside a tmux context.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 18:33:58 +09:00
YeonGyu-Kim
bf7fd7ce67
Merge pull request #3501 from code-yeongyu/fix/perf-omo-in-tree
...
perf(plugin-init): de-slop in-tree launch — cold init 1.2s → 29ms (43× faster)
2026-04-18 17:35:09 +09:00
Sisyphus
0a808de6a2
fix(auto-update-checker): trigger deferred startup on session.created with parentID guard
2026-04-18 17:23:50 +09:00
YeonGyu-Kim
91848057ea
fix(background-agent): fire promptAsync before tmux callback
...
Awaiting the tmux callback blocked the prompt for up to 10s (waitForSessionReady downstream). During that window the spawned pane ran 'opencode attach' against an empty session and rendered a blank TUI. Users saw 'pane created but attach not working'.
Start promptWithModelSuggestionRetry immediately after session.create, then invoke the tmux callback as fire-and-forget. The session becomes active before the attach client connects.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 17:22:11 +09:00
YeonGyu-Kim
c9c1c58c2c
fix(tmux-subagent): track pane without blocking on session readiness
...
waitForSessionReady polled session.status for up to 10s before the pane was registered, but session.status only becomes visible after promptAsync starts. Blocking pane tracking on that signal caused the attach client to see an empty session and render a blank TUI.
Track the pane immediately after spawn, and run the readiness probe in the background purely for observability.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 17:22:01 +09:00
Sisyphus
a6a5a08b56
fix(tools/skill): invalidate skill cache at session boundary
2026-04-18 17:21:09 +09:00
Sisyphus
a8504be70c
test(auto-update-checker): cover session.created trigger with parentID guard
2026-04-18 17:19:18 +09:00
Sisyphus
1d187097f3
test(tools/skill): cover per-session skill cache invalidation
2026-04-18 17:17:23 +09:00
YeonGyu-Kim
bd1529825c
fix(test): isolate skill factory discovery in ci
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 15:24:19 +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
8e3f4cc63c
fix(tools/skill): harden description pipeline against empty skill list after lazy factory
2026-04-18 14:57:44 +09:00
Sisyphus
0e1a946c1d
test(skill-tool): isolate skill discovery spies from other suites
2026-04-18 14:57:30 +09:00
Sisyphus
10b1905f60
test(skill-loader): reset shared skill cache in async resolver tests
2026-04-18 14:57:23 +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
e47a6aa7f6
Merge branch 'fix/perf-q10' 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
38990ec76f
Merge branch 'fix/perf-q02' 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
5a20e4060f
Merge branch 'fix/perf-d09' into fix/perf-omo-in-tree
2026-04-18 14:43:37 +09:00
Sisyphus
36ebafda8c
Merge branch 'fix/perf-d08' into fix/perf-omo-in-tree
2026-04-18 14:43:37 +09:00
Sisyphus
82ddc9c6f7
Merge branch 'fix/perf-d07' into fix/perf-omo-in-tree
2026-04-18 14:43:37 +09:00
Sisyphus
1db481eb9c
Merge branch 'fix/perf-d06' into fix/perf-omo-in-tree
2026-04-18 14:43:37 +09:00
Sisyphus
a227821d27
Merge branch 'fix/perf-d05' 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
Sisyphus
b6b898d061
Merge branch 'fix/perf-d01' 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
YeonGyu-Kim
1be1cd6e53
fix(tools/skill): make factory pure and stop defeating skill-loader cache
2026-04-18 14:15:14 +09:00
YeonGyu-Kim
a068915dc4
test(perf): add plugin init regression budget
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 14:14:55 +09:00
YeonGyu-Kim
40bd3e02d2
test(tools/skill): cover factory laziness and skill-cache invariants
2026-04-18 14:14:00 +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
YeonGyu-Kim
89d394ed3e
fix(claude-code-command-loader): skip EXCLUDED_DIRS and memoize per directory
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
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
6dc2234d89
fix(shared): memoize detectPluginConfigFile per process
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 14:12:55 +09:00
YeonGyu-Kim
948343ab66
test(shared): cover detectPluginConfigFile memoization
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-18 14:12:50 +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
Sisyphus
79eb6c738f
fix(shared/project-discovery-dirs): memoize detectWorktreePath per process
2026-04-18 14:11:24 +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