Commit Graph

3829 Commits

Author SHA1 Message Date
YeonGyu-Kim 4a67044cd6 fix: register preemptive-compaction event handler in dispatchToHooks (#2300) 2026-03-12 00:55:15 +09:00
YeonGyu-Kim 1c09b9869c 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 f1b5b1023f 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
acamq c55603782c fix(auto-update): handle null JSON.parse and restore mocks on test failure 2026-03-11 08:08:30 -06:00
acamq 46a8ad279b Merge remote-tracking branch 'origin/dev' into fix/sync-package-json-to-opencode-intent 2026-03-11 08:04:16 -06:00
acamq 0764f0e563 fix(auto-update): sync cache package.json to opencode.json intent
When users switch from pinned version to tag in opencode.json (e.g.,
3.10.0 -> @latest), the cache package.json still contains the resolved
version. This causes bun install to reinstall the old version instead
of resolving the new tag.

This adds syncCachePackageJsonToIntent() which updates the cache
package.json to match user intent before running bun install. Uses
atomic writes (temp file + rename) with UUID-based temp names for
concurrent safety.

Critical changes:
- Treat all sync errors as abort conditions (file_not_found,
  plugin_not_in_deps, parse_error, write_error) to prevent corrupting
  a bad cache state further
- Remove dead code (unreachable revert branch for pinned versions)
- Add tests for all error paths and atomic write cleanup
2026-03-11 07:42:08 -06:00
YeonGyu-Kim 5ef391cb72 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 387e83e2fc 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 d22867db27 fix(todo-continuation): improve stagnation detection accuracy 2026-03-11 21:59:59 +09:00
YeonGyu-Kim b129cccc83 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 7dddf99d9a 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 6272e4321f 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 4956280042 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 f5a792778e 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 7cca563af8 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 f7085450f1 fix(compaction): guard model update during compaction and validate checkpoint model 2026-03-11 21:57:06 +09:00
YeonGyu-Kim a668860b86 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 0d9f001c11 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 ccfb5702ac fix: correct import path for buildAntiDuplicationSection in metis.ts 2026-03-11 21:48:08 +09:00
YeonGyu-Kim 85151f7dfd 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 59f0f06e71 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 cc1c23032f 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 11423c97a7 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 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 d4232c9eac 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
YeonGyu-Kim a6406c817f docs: document GPT permission continuation hook
Document the new continuation hook in the feature and configuration references so users can discover it and disable it through disabled_hooks.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 21:29:11 +09:00
YeonGyu-Kim a1b060841f fix(continuation): auto-continue GPT permission-seeking replies
Resume GPT sessions when the last assistant reply ends in a permission-seeking tail, while honoring stop-continuation and avoiding duplicate continuation across todo and atlas flows.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 21:20:59 +09:00
YeonGyu-Kim 3f364cc8df Merge pull request #2451 from code-yeongyu/fix/issue-2238-v2
fix: prevent terminal corruption during background bun install
2026-03-11 21:04:43 +09:00
YeonGyu-Kim de2b073fce test(auto-update-checker): type background update bun install mock
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 21:01:16 +09:00
YeonGyu-Kim 4b5c47172d Merge pull request #2449 from code-yeongyu/fix/issue-2330-v2
fix(background-agent): cap recursive subagent spawning
2026-03-11 21:00:34 +09:00
YeonGyu-Kim 594233183b fix(background-agent): fail closed on spawn lineage lookup errors
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:57:09 +09:00
YeonGyu-Kim 330def4539 Merge pull request #2456 from code-yeongyu/fix/issue-2292-v2
fix(background-agent): preserve terminal tasks until notification cleanup
2026-03-11 20:56:32 +09:00
YeonGyu-Kim 522ae81960 test(config-manager): add bun types reference for bun install test
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:56:22 +09:00
YeonGyu-Kim 9faff19b01 fix(auto-update-checker): suppress background bun install output
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:56:22 +09:00
YeonGyu-Kim e3b17da4bd fix(background-agent): preserve terminal tasks until notification cleanup
Route terminal task cleanup through parent notifications so cancelled and errored tasks stay visible until delayed cleanup finishes.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:50:49 +09:00
YeonGyu-Kim 8c5f9b8082 fix(background-agent): skip terminal tasks during stale pruning
Prevent TTL pruning from deleting terminal tasks before delayed notification cleanup runs.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:50:49 +09:00
YeonGyu-Kim 3ccf378b2d fix(config-manager): support silent bun install execution
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-11 20:50:25 +09:00
YeonGyu-Kim a179ebe0b9 Count sync subagent spawns against descendant limits 2026-03-11 20:50:11 +09:00
YeonGyu-Kim 4a39c83eb5 Limit recursive subagent spawning 2026-03-11 20:50:10 +09:00
YeonGyu-Kim 4ded281ee0 Merge pull request #2370 from code-yeongyu/fix/issue-2322
fix: stop stagnant todo continuation loops
2026-03-11 20:49:02 +09:00
YeonGyu-Kim 05c744da72 Merge pull request #2461 from code-yeongyu/fix/2448-regression
fix(agents): add anti-duplication rules to Atlas agent prompts
2026-03-11 20:44:46 +09:00
YeonGyu-Kim 404b8dcc0d Merge pull request #2460 from code-yeongyu/fix/2366-regression
fix: prioritize Anthropic 1M limits over cached context limits
2026-03-11 20:44:34 +09:00
YeonGyu-Kim e7bda1630a Merge pull request #2459 from code-yeongyu/fix/2453-regression
fix(tmux): add barrel export for pane-state-parser and log parse failures
2026-03-11 20:44:33 +09:00
YeonGyu-Kim 554392e639 fix(agents): add anti-duplication rules to Atlas agent prompts 2026-03-11 20:38:46 +09:00
YeonGyu-Kim 4516b2e484 fix: prioritize Anthropic 1M limits over cached context limits 2026-03-11 20:38:44 +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 d40d686014 Merge pull request #2378 from code-yeongyu/fix/issue-2232
fix(compaction): recover agent config after session compaction
2026-03-11 20:23:26 +09:00
YeonGyu-Kim 661def7f51 Merge pull request #2371 from code-yeongyu/fix/issue-2323
fix: respect multimodal provider vision capabilities
2026-03-11 20:22:35 +09:00
YeonGyu-Kim 3550305af8 Merge branch 'dev' into fix/issue-2232 2026-03-11 20:20:04 +09:00
YeonGyu-Kim adc927f422 Merge pull request #2448 from code-yeongyu/fix/subagent-self-execute-v2
fix: prevent agents from duplicating delegated subagent work
2026-03-11 20:19:47 +09:00