YeonGyu-Kim
0c5cd3a1c4
chore(agents): update all AGENTS.md generation dates to 2026-04-11
...
🤖 Generated with OhMyOpenCode assistance
2026-04-11 22:33:22 +09:00
YeonGyu-Kim
4180a0ba0a
test(features): update background agent, MCP loader, and tmux tests
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-10 15:53:30 +09:00
GeonWoo Jeon (Jay)
ade57474be
fix(merge): resolve dev conflicts for openclaw branch
2026-04-09 12:23:38 +09:00
GeonWoo Jeon (Jay)
687e7bb243
fix(test): align zombie pane tmux mocks
2026-04-09 12:09:09 +09:00
YeonGyu-Kim
d53be83634
test(tmux): add missing tmux exports to zombie-pane mock module
2026-04-08 17:36:24 +09:00
GeonWoo Jeon (Jay)
9491bede5b
fix(tmux): expose tracked pane ids for openclaw routing
2026-04-07 22:54:03 +09:00
YeonGyu-Kim
7b7526e2f6
docs(src): update counts across tools, features, config, cli AGENTS.md
...
- tools: 15 -> 16 dirs, writing model kimi-k2p5 -> gemini-3-flash
- features: builtin skills 6 -> 8 (+review-work, +ai-slop-remover)
- config: schema files 24 -> 27 (+git-env-prefix, model-capabilities, openclaw)
- cli: commands 5 -> 6 (+refresh-model-capabilities)
- plugin-handlers: 13 -> 14 non-test files
- shared: 95+ -> 100+ utility files
2026-04-05 14:12:31 +09:00
YeonGyu-Kim
51d2f8b3e9
fix(tmux-subagent): avoid transcript fetches during idle stability checks
2026-04-04 18:48:03 +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
141881aa2d
fix(tmux): re-attempt isolated container on deferred session retry
2026-04-04 02:38:15 +09:00
YeonGyu-Kim
2731adde05
fix(tmux): add grace period before resetting isolation
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-04 01:21:47 +09:00
YeonGyu-Kim
3871c7d263
fix(tmux): defer failed isolated container spawns
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-04 01:21:26 +09:00
YeonGyu-Kim
b5f15f0371
test(tmux): add isolation regression coverage
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-04-04 01:21:04 +09:00
YeonGyu-Kim
53eeac3f31
fix(ci): simplify test runner to plain bun test by fixing mock.module() leakage
...
- Add afterAll(() => { mock.restore() }) to 52 test files missing cleanup
- Rewrite create-tool-guard-hooks.test.ts to use spyOn instead of barrel mock
- Fix skill-mcp-manager OAuth tests with missing mockTokens/mockLogin definitions
- Fix start-work hook: show worktree active block on resume with existing worktree_path
- Extract createWorktreeActiveBlock to worktree-block.ts to avoid circular import
- Replace 80-line isolated test runner CI config with single `bun test` command
2026-04-04 00:34:03 +09:00
YeonGyu-Kim
c7afc795be
refactor(features): fix empty catches and remove AI slop from manager modules
2026-04-03 21:42: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
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
db23533adf
fix(tmux): properly cleanup isolated container 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-01 18:18:32 -07:00
YeonGyu-Kim
67429af358
fix(tmux): allow subsequent subagents to spawn in existing isolated container
2026-03-31 16:58:45 -07:00
Sami Jawhar
a3cc2d1c95
feat(tmux): add session isolation mode for subagent panes
2026-03-29 17:53:30 +00:00
YeonGyu-Kim
0810e37240
fix: validate serverUrl port before tmux pane spawn ( fixes #2729 )
2026-03-23 18:09:31 +09:00
acamq
9032eeaa68
Merge pull request #2419 from guazi04/fix/serverurl-throw-getter
...
fix(tmux): handle serverUrl throw getter from upstream opencode refactor
2026-03-11 20:32:38 -06:00
YeonGyu-Kim
f9c8392179
fix(tmux-subagent): cap stale close retries
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 02:24:35 +09:00
YeonGyu-Kim
03eaa429ce
fix: address 5 edge cases from review-work findings
...
- C3: include command args in auto-slash-command dedup key
- H2: track completed task summaries for ALL COMPLETE message
- H9: increment tmux close retry count on re-mark
- H8: detect stale MCP connections after disconnect+reconnect race
- H8: guard disconnectedSessions growth for non-MCP sessions
- C1: await tmux cleanup in plugin dispose lifecycle
2026-03-12 01:37:03 +09:00
YeonGyu-Kim
fed720dd11
fix(tmux-subagent): retry pending pane closes to prevent zombie panes
...
When queryWindowState returned null during session deletion, the
session mapping was deleted but the real tmux pane stayed alive,
creating zombie panes.
- Add closePending/closeRetryCount fields to TrackedSession
- Mark sessions closePending instead of deleting on close failure
- Add retryPendingCloses() called from onSessionCreated and cleanup
- Force-remove mappings after 3 failed retry attempts
- Extract TrackedSessionState helper for field initialization
Tests: 3 pass, 9 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
599ce0c283
fix(tmux): strict integer parsing and isActive validation in pane-state-parser
...
- parseInteger() now rejects malformed input like '120oops' using /^\d+$/ regex
- New parseActiveValue() validates active flag is exactly '0' or '1'
- Added regression tests for malformed integers, negative values, empty fields, non-binary active flags
2026-03-11 21:45:30 +09:00
YeonGyu-Kim
899d265cbf
fix(tmux): add barrel export for pane-state-parser and log parse failures
2026-03-11 20:36:57 +09:00
YeonGyu-Kim
e1b59e3d67
Use dedicated pane state parser
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 17:55:53 +09:00
YeonGyu-Kim
5168ae0f3b
Add pane state parser with test coverage
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 17:55:48 +09:00
guazi04
309a3e48ec
fix(tmux): handle serverUrl throw getter from upstream opencode refactor
2026-03-10 15:45:44 +08:00
acamq
5713106526
Merge pull request #2284 from MoerAI/fix/tmux-list-panes-parsing
...
fix(tmux): handle \r line endings and missing pane_title in list-panes
2026-03-08 18:18:31 -06:00
YeonGyu-Kim
23dcd99c9a
docs(agents): refresh generated AGENTS guides
...
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-03-06 17:59:05 +09:00
MoerAI
e1952d35e6
fix(tmux): handle \r line endings and missing pane_title in list-panes
...
Strip \r characters from list-panes output to handle Windows-style line
endings. Also relax field count check from 9 to 8 to handle cases where
pane_title is empty or missing, which caused the parser to drop pane
rows and fail to determine the main pane in single-pane sessions.
Fixes #2241
2026-03-04 12:24:22 +09:00
YeonGyu-Kim
33d39597ae
docs(agents): regenerate AGENTS.md hierarchy with updated metrics and model configs
...
- 1208→1243 TS files (+35), 143k→155k LOC (+12k)
- Update all agent models: Sisyphus, Hephaestus, Oracle, Librarian, Atlas, Metis, Momus
- Add 6 new hook directories (39→45 dirs): beast-mode-system, hashline-edit-diff-enhancer, anthropic-image-context, task-reminder, compaction-todo-preserver, runtime-fallback
- Update category models: visual-engineering/artistry gemini-3-pro→gemini-3.1-pro
- Add 2 config schema files: fallback-models.ts, runtime-fallback.ts
- Timestamp: 2026-03-02 | Commit: 1c2caa09
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-03-02 23:40:38 +09:00
YeonGyu-Kim
73453a7191
docs(agents): update hook counts 44→46, add hashline-edit documentation
...
- Update root AGENTS.md: hook count 44→46, commit fcb90d92 , generated 2026-02-24
- Update src/AGENTS.md: core hooks 35→37, session hooks 21→23
- Update src/hooks/AGENTS.md: 46 hooks total, add modelFallback/noSisyphusGpt/noHephaestusNonGpt/runtimeFallback, jsonErrorRecovery moved to tool-guard (tier 2)
- Create src/tools/hashline-edit/AGENTS.md (93 lines): documents three-op model, LINE#ID format, execution pipeline
- Refresh timestamps: 2026-02-21→2026-02-24 on 28 files
- Update plugin/AGENTS.md hook composition counts
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-25 00:02:05 +09:00
YeonGyu-Kim
8623f58a38
fix: resolve 5 deployment blockers (runtime-fallback race, hashline legacy, tmux spawn, db open)
...
- runtime-fallback: guard session.error with sessionRetryInFlight to prevent
double-advance during active retry; expand session.stop abort to include
sessionAwaitingFallbackResult; remove premature pendingFallbackModel clearing
from auto-retry finally block
- hashline-edit: add HASHLINE_LEGACY_REF_PATTERN for backward-compatible
LINE:HEX dual-parse in parseLineRef and normalizeLineRef
- tmux-subagent: defer session on null queryWindowState; unconditionally
re-queue deferred session on spawn failure (not just close+spawn)
- ultrawork-db: wrap new Database(dbPath) in try/catch to handle corrupted DB
- event: add try/catch guards around model-fallback logic in message.updated,
session.status, and session.error handlers
2026-02-21 05:59:30 +09:00
YeonGyu-Kim
b1eccf7425
docs: update all 31 AGENTS.md files with current project state
2026-02-21 04:38:18 +09:00
YeonGyu-Kim
148687c7fe
fix: remove unused spawnFailed variable (dead code)
2026-02-21 02:43:24 +09:00
YeonGyu-Kim
52f62c3fda
fix(tmux-deferred): add TTL/max-size guards, null-state exit, and spawn atomicity
...
- BUG-3: Add DEFERRED_SESSION_TTL_MS (5min) and MAX_DEFERRED_QUEUE_SIZE (20) to prevent unbounded growth
- BUG-15: Track consecutive null window states, stop polling after 3 nulls to prevent immortal loop
- BUG-6: Track close+spawn failure and re-queue deferred session for retry
2026-02-21 02:43:24 +09:00
liu-qingyuan
5f78c07189
fix(tmux): align deferred attach behavior after rebase
2026-02-20 07:13:33 +08:00
liu-qingyuan
d2dc25e567
fix(tmux): address review feedback for split/defer reliability
2026-02-20 07:09:49 +08:00
liu-qingyuan
541f0d354d
fix(tmux): prefer split-or-defer with FIFO deferred attach
2026-02-20 07:09:49 +08:00
YeonGyu-Kim
bd2e23584b
docs: update AGENTS.md metadata
...
🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode )
2026-02-19 10:46:40 +09:00
YeonGyu-Kim
7b3a64b77e
test(tmux): add boundary tests for exact split threshold with 0 agent panes
2026-02-18 17:33:26 +09:00
YeonGyu-Kim
e2e89b1f57
fix(tmux): skip agent area width guard when 0 agent panes exist
...
When no agent panes exist, mainPane.width equals windowWidth, making
agentAreaWidth zero. The early return guard blocked initial pane creation
before the currentCount === 0 handler could execute.
Add currentCount > 0 condition so the guard only fires when agent panes
already exist, allowing the bootstrap handler to evaluate canSplitPane.
Closes #1939
2026-02-18 17:30:05 +09:00
YeonGyu-Kim
3313ec3e4f
chore: regenerate AGENTS.md knowledge base
...
🤖 Generated with [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode ) assistance
2026-02-18 01:26:19 +09:00
YeonGyu-Kim
744dee70e9
refactor: remove 3 orphaned files and unused import from tmux-subagent
2026-02-17 14:08:28 +09:00
YeonGyu-Kim
72fa2c7e65
fix(tmux): stop layout override after spawn, use configured main pane size
...
Remove applyLayout(select-layout main-vertical) call after spawn which
was destroying grid arrangements by forcing vertical stacking. Now only
enforceMainPaneWidth is called, preserving the grid created by manual
split directions. Also fix enforceMainPaneWidth to use config's
main_pane_size percentage instead of hardcoded 50%.
2026-02-17 09:50:17 +09:00
YeonGyu-Kim
b3c5f4caf5
fix(tmux): use actual pane dimensions and configured min width for grid calculation
...
Agent area width now uses real mainPane.width instead of hardcoded 50%
ratio. Grid planning, split availability, and spawn target finding now
respect user's agent_pane_min_width config instead of hardcoded
MIN_PANE_WIDTH=52, enabling 2-column grid layouts on narrower terminals.
2026-02-17 09:48:18 +09:00
YeonGyu-Kim
84a83922c3
fix: stop tracking sessions that never become ready
...
When session readiness times out, immediately close the spawned pane and skip tracking to prevent stale mappings from causing reopen and close anomalies.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-02-17 03:40:55 +09:00