YeonGyu-Kim
4f127ed104
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
2d17a2b8d1
fix(todo-continuation-enforcer): expose prune interval for cleanup
...
Prune interval created inside hook was not exposed for disposal,
preventing cleanup on plugin unload.
- Add dispose() method that clears the prune interval
- Export dispose in hook return type
Tests: 2 pass, 6 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
1e29bf8b50
fix(runtime-fallback): clear monitoring interval on dispose
...
setInterval for model availability monitoring was never cleared,
keeping the hook alive indefinitely with no dispose mechanism.
- Add dispose() method to RuntimeFallbackHook that clears interval
- Track intervalId in hook state for cleanup
- Export dispose in hook return type
Tests: 3 pass, 10 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
1833fdb74a
fix(call-omo-agent): add finally cleanup for sync executor session Sets
...
Sync call_omo_agent leaked entries in global activeSessionMessages
and activeSessionToolResults Sets when execution threw errors,
since cleanup only ran on success path.
- Wrap session Set operations in try/finally blocks
- Ensure Set.delete() runs regardless of success/failure
- Add guard against double-cleanup
Tests: 2 pass, 14 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
9faeec16a7
fix(auto-slash-command): bound Set growth with TTL eviction and session cleanup
...
processedCommands and recentResults Sets grew infinitely because
Date.now() in dedup keys made deduplication impossible and no
session.deleted cleanup existed.
- Extract ProcessedCommandStore with maxSize cap and TTL-based eviction
- Add session cleanup on session.deleted event
- Remove Date.now() from dedup keys for effective deduplication
- Add dispose() for interval cleanup
Tests: 3 pass, 9 expects
2026-03-12 01:37:02 +09:00
YeonGyu-Kim
81357acfd9
Merge pull request #2482 from code-yeongyu/fix/issue-2407-binary-version-embed
...
fix: sync root package.json version before binary compile
2026-03-12 01:34:33 +09:00
YeonGyu-Kim
fd1aed079a
Merge pull request #2481 from code-yeongyu/fix/issue-2185-lsp-notification-params
...
fix: use rest params in LSP sendNotification to avoid undefined serialization
2026-03-12 01:34:29 +09:00
YeonGyu-Kim
846b3fd7f4
Merge pull request #2480 from code-yeongyu/fix/issue-2356-preemptive-compaction-limit
...
fix: skip preemptive compaction when model context limit is unknown
2026-03-12 01:34:25 +09:00
YeonGyu-Kim
e84a1d6dde
Merge pull request #2425 from MoerAI/fix/issue-2408-gemini-vertex-edit-schema
...
fix(hashline-edit): remove array type from lines union to fix Gemini Vertex schema validation
2026-03-12 01:32:37 +09:00
YeonGyu-Kim
f6225934b2
Merge pull request #2424 from MoerAI/fix/issue-2386-custom-agent-summaries
...
fix(agents): pass custom agent summaries instead of client object to createBuiltinAgents
2026-03-12 01:32:35 +09:00
YeonGyu-Kim
e7e271a1a0
Merge pull request #2422 from MoerAI/fix/issue-2393-model-fallback-defaults
...
fix(model-fallback): enable by default and add missing error patterns for usage limits
2026-03-12 01:32:34 +09:00
YeonGyu-Kim
f946cd7d81
Merge pull request #2420 from MoerAI/fix/issue-2375-run-in-background-default
...
fix(delegate-task): default run_in_background to false when orchestrator intent is detected
2026-03-12 01:32:31 +09:00
YeonGyu-Kim
9e903a1fd8
Merge pull request #2476 from code-yeongyu/fix/issue-2441-session-id-pending
...
fix: omit sessionId from metadata when not yet assigned
2026-03-12 01:32:30 +09:00
YeonGyu-Kim
0e2b89f957
Merge pull request #2475 from code-yeongyu/fix/issue-2300-compaction-event-dispatch
...
fix: register preemptive-compaction event handler in dispatchToHooks
2026-03-12 01:32:29 +09:00
YeonGyu-Kim
062882bd2d
fix: use rest params in LSP sendNotification to avoid undefined serialization ( #2185 )
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:24:42 +09:00
YeonGyu-Kim
1ebb284c40
fix: skip preemptive compaction when model context limit is unknown ( #2356 )
2026-03-12 01:24:16 +09:00
YeonGyu-Kim
f394d980bb
docs(config): correct background task default timeout description
...
Keep the background_task schema comment aligned with the runtime default so timeout guidance stays accurate.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:14:43 +09:00
YeonGyu-Kim
cec880b681
fix(background-agent): extend default no-progress stale timeout to 30 minutes
...
Give never-updated background tasks a longer default window and keep the default-threshold regression coverage aligned with that behavior.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:14:35 +09:00
YeonGyu-Kim
e04f180dbb
fix(delegate-task): extend default sync poll timeout to 30 minutes
...
Keep synchronous subagent runs from timing out after 10 minutes when no explicit override is configured.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:14:26 +09:00
YeonGyu-Kim
7bdaa40032
docs: refresh category model variant references
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:08:07 +09:00
YeonGyu-Kim
e50997e7a8
fix(agents): keep oracle available on first run without cache
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:07:57 +09:00
YeonGyu-Kim
70f7a9386a
test(ralph-loop): remove volatile tool result timestamp
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:07:50 +09:00
YeonGyu-Kim
35acfd9751
fix(config): preserve disabled arrays during partial parsing
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:07:43 +09:00
YeonGyu-Kim
c226f959c0
fix: sync root package.json version before binary compile ( #2407 )
2026-03-12 01:06:30 +09:00
YeonGyu-Kim
d94c1b5b3a
fix: omit sessionId from metadata when not yet assigned ( #2441 )
2026-03-12 01:02:12 +09:00
YeonGyu-Kim
eb5ed3173f
docs: sync category model defaults
...
Update the public and internal docs to describe the new ultrabrain and unspecified-high defaults so the documented routing matches runtime behavior.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:00:41 +09:00
YeonGyu-Kim
8f326a4a78
fix(delegate-task): refresh built-in category defaults
...
Keep delegate-task category defaults in sync with the new routing policy so ultrabrain and unspecified-high resolve to the intended primary models.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:00:41 +09:00
YeonGyu-Kim
3ce79aa328
fix(shared): update category fallback priorities
...
Align ultrabrain with GPT-5.4 xhigh and move unspecified-high to Opus-first fallback order so category routing reflects the new model policy.
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-12 01:00:41 +09:00
YeonGyu-Kim
44fa4d5ee3
fix: register preemptive-compaction event handler in dispatchToHooks ( #2300 )
2026-03-12 00:55:15 +09:00
YeonGyu-Kim
55867240e2
Merge pull request #2474 from code-yeongyu/fix/regression-check-cleanup
...
fix: tighten Anthropic provider matching and fix look-at test isolation
2026-03-12 00:37:25 +09:00
YeonGyu-Kim
f5b77e62d5
fix: tighten Anthropic provider matching and fix look-at test isolation
...
- Replace overly broad .includes('anthropic') with exact provider ID
matching against known Anthropic providers (anthropic, google-vertex-
anthropic, aws-bedrock-anthropic) in context-limit-resolver
- Add afterEach cleanup for vision-capable-models cache in look-at
tool tests to prevent cross-test state leakage
2026-03-12 00:31:02 +09:00
YeonGyu-Kim
c5c31873a2
Merge pull request #2472 from code-yeongyu/fix/stagnation-detection-accuracy
...
fix(todo-continuation): improve stagnation detection accuracy
2026-03-11 22:05:58 +09:00
YeonGyu-Kim
e6b5b0102f
Merge pull request #2471 from code-yeongyu/fix/compaction-model-filter
...
fix(compaction): guard model update during compaction
2026-03-11 22:01:53 +09:00
YeonGyu-Kim
25ed1e658e
fix(todo-continuation): improve stagnation detection accuracy
2026-03-11 21:59:59 +09:00
YeonGyu-Kim
4f361b117d
Merge pull request #2469 from code-yeongyu/fix/multimodal-variant-metadata
...
fix(look-at): preserve variant metadata and block non-vision models
2026-03-11 21:58:51 +09:00
YeonGyu-Kim
9496d09126
Merge pull request #2470 from code-yeongyu/fix/terminal-task-retention-ttl
...
fix(background-agent): add TTL for terminal task retention
2026-03-11 21:57:33 +09:00
YeonGyu-Kim
e5009efce5
Merge pull request #2468 from code-yeongyu/fix/shared-context-limit-resolver
...
fix(shared): extract shared context limit resolver to eliminate drift
2026-03-11 21:57:32 +09:00
YeonGyu-Kim
2e358d6b4c
Merge pull request #2467 from code-yeongyu/fix/spawn-sdk-error-fail-closed
...
fix(background-agent): handle SDK error response in spawn lineage lookup
2026-03-11 21:57:30 +09:00
YeonGyu-Kim
7fb62f1904
Merge pull request #2466 from code-yeongyu/fix/anti-dup-prometheus-metis
...
fix(agents): add anti-duplication rules to Prometheus and Metis
2026-03-11 21:57:28 +09:00
YeonGyu-Kim
f95e64ab45
Merge pull request #2465 from code-yeongyu/fix/tmux-strict-parse
...
fix(tmux): strict integer parsing and isActive validation
2026-03-11 21:57:27 +09:00
YeonGyu-Kim
b635cdd31d
fix(compaction): guard model update during compaction and validate checkpoint model
2026-03-11 21:57:06 +09:00
YeonGyu-Kim
ac0e14059d
fix: adjust vision capability check to not block when no model resolved
...
- Only block when a resolved model is explicitly not vision-capable
- Set up vision cache in model passthrough test for proper isolation
2026-03-11 21:56:19 +09:00
YeonGyu-Kim
04aea6941c
fix(background-agent): add TTL for terminal task retention to prevent unbounded growth
...
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent )
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-11 21:52:48 +09:00
YeonGyu-Kim
44be3b9935
fix: correct import path for buildAntiDuplicationSection in metis.ts
2026-03-11 21:48:08 +09:00
YeonGyu-Kim
fee414fd61
fix(look-at): preserve variant metadata in fallback chain and block non-vision models
...
- fallback-chain.ts: cache-derived entries inherit variant from matching hardcoded entries
- agent-metadata.ts: new isVisionCapableAgentModel() guard blocks non-vision registered models
- tools.ts: early vision-capability check before session creation
- Added regression tests for variant preservation and non-vision model rejection
2026-03-11 21:45:49 +09:00
YeonGyu-Kim
7003000c33
fix(shared): extract shared context limit resolver to eliminate monitor/truncator drift
...
- New context-limit-resolver.ts with resolveActualContextLimit() shared helper
- Anthropic provider detection now uses .includes('anthropic') instead of hard-coded IDs
- Both context-window-monitor and dynamic-truncator use the shared resolver
- Added missing test cases: Anthropic+1M disabled+cached limit, non-Anthropic without cache
2026-03-11 21:45:45 +09:00
YeonGyu-Kim
e5a273afa9
fix(background-agent): handle SDK error response in spawn limit lineage lookup
...
- Check response.error and !response.data after session.get() to fail closed
- Prevents unlimited spawning when SDK returns non-throwing error responses
- Added regression tests for SDK error and missing data scenarios
2026-03-11 21:45:40 +09:00
YeonGyu-Kim
114841173c
fix(agents): add anti-duplication rules to Prometheus and Metis agents
...
- Import and inject buildAntiDuplicationSection() in all 3 Prometheus variants (interview-mode, gpt, gemini) and Metis
- Added tests verifying anti-dup section presence in all prompt variants
- Completes anti-duplication coverage for all delegating agents
2026-03-11 21:45:35 +09:00
YeonGyu-Kim
d1f41d6cc9
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
b40de091b4
Merge pull request #2464 from code-yeongyu/feat/gpt-last-message-continuation
...
Auto-continue GPT permission-seeking replies
2026-03-11 21:37:31 +09:00