YeonGyu-Kim
829c58ccb0
refactor(aliases): migrate to pattern-based model alias resolution
...
Move from hardcoded exact aliases to pattern-based canonicalization:
- Populate PATTERN_ALIAS_RULES with regex patterns for:
- Claude thinking variants (claude-opus-4-6-thinking → claude-opus-4-6)
- Gemini tier suffixes (gemini-3.1-pro-{high,low} → gemini-3.1-pro)
- Add stripProviderPrefixForAliasLookup() for provider-prefixed models
(anthropic/claude-sonnet-4-6 → claude-sonnet-4-6 for capability lookup)
- Preserve requestedModelID (with prefix) for API transport
- Reduce EXACT_ALIAS_RULES to exceptional cases only
(gemini-3-pro-{high,low} → gemini-3-pro-preview)
- Comprehensive test coverage for patterns, prefix stripping, negatives
Addresses Discussion #2835 (pattern matching architecture)
Related to PR #2834 (alias guardrails)
41 targeted tests pass, 4467 full suite tests pass, tsc clean.
2026-03-26 12:04:50 +09:00
YeonGyu-Kim
23df6bd255
Merge pull request #2841 from code-yeongyu/fix/model-fallback-test-isolation
...
fix(tests): resolve 5 cross-file test isolation failures
2026-03-26 09:31:09 +09:00
YeonGyu-Kim
7895361f42
fix(tests): resolve 5 cross-file test isolation failures
...
- model-fallback hook: mock selectFallbackProvider and add _resetForTesting()
to test-setup.ts to clear module-level state between files
- fallback-retry-handler: add afterAll(mock.restore) and use mockReturnValueOnce
to prevent connected-providers mock leaking to subsequent test files
- opencode-config-dir: use win32.join for Windows APPDATA path construction
so tests pass on macOS (path.join uses POSIX semantics regardless of
process.platform override)
- system-loaded-version: use resolveSymlink from file-utils instead of
realpathSync to handle macOS /var -> /private/var symlink consistently
All 4456 tests pass (0 failures) on full bun test suite.
2026-03-26 09:30:34 +09:00
YeonGyu-Kim
90919bf359
Merge pull request #2664 from kilhyeonjun/fix/anthropic-1m-ga-context-limit
...
fix(shared): respect cached model context limits for Anthropic providers post-GA
2026-03-26 08:55:04 +09:00
YeonGyu-Kim
32f2c688e7
Merge pull request #2707 from MoerAI/fix/windows-symlink-config
...
fix(windows): resolve symlinked config paths and plugin name parsing (fixes #2271 )
2026-03-26 08:54:45 +09:00
YeonGyu-Kim
e6d0484e57
Merge pull request #2710 from MoerAI/fix/rate-limit-hang
...
fix(runtime-fallback): detect bare 429 rate-limit signals (fixes #2677 )
2026-03-26 08:53:41 +09:00
YeonGyu-Kim
abd62472cf
Merge pull request #2752 from MoerAI/fix/quota-error-fallback-detection
...
fix(runtime-fallback): detect prettified quota errors without HTTP status codes (fixes #2747 )
2026-03-26 08:50:58 +09:00
YeonGyu-Kim
b1e099130a
Merge pull request #2756 from MoerAI/fix/plugin-display-name
...
fix(plugin): display friendly name in configuration UI instead of file path (fixes #2644 )
2026-03-26 08:50:29 +09:00
YeonGyu-Kim
09fb364bfb
Merge pull request #2833 from kuitos/feat/agent-order-support
...
feat(agent-priority): inject order field for deterministic agent Tab cycling
2026-03-26 08:49:58 +09:00
YeonGyu-Kim
d1ff8b1e3f
Merge pull request #2727 from octo-patch/feature/upgrade-minimax-m2.7
...
feat: upgrade MiniMax from M2.5 to M2.7 and expand to more agents/categories
2026-03-26 08:49:11 +09:00
YeonGyu-Kim
6e42b553cc
Merge origin/dev into feature/upgrade-minimax-m2.7 (resolve conflicts)
2026-03-26 08:48:53 +09:00
YeonGyu-Kim
02ab83f4d4
Merge pull request #2834 from RaviTharuma/feat/model-capabilities-canonical-guardrails
...
fix(model-capabilities): harden canonical alias guardrails
2026-03-26 08:46:43 +09:00
github-actions[bot]
ce1bffbc4d
@ventsislav-georgiev has signed the CLA in code-yeongyu/oh-my-openagent#2840
2026-03-25 23:11:43 +00:00
github-actions[bot]
4d4680be3c
@clansty has signed the CLA in code-yeongyu/oh-my-openagent#2839
2026-03-25 21:33:49 +00:00
Ravi Tharuma
ce877ec0d8
test(atlas): avoid shared barrel mock pollution
2026-03-25 22:27:26 +01:00
Ravi Tharuma
ec20a82b4e
fix(model-capabilities): align gemini aliases and alias lookup
2026-03-25 22:19:51 +01:00
Ravi Tharuma
5043cc21ac
fix(model-capabilities): harden canonical alias guardrails
2026-03-25 22:11:45 +01:00
github-actions[bot]
8df3a2876a
@anas-asghar4831 has signed the CLA in code-yeongyu/oh-my-openagent#2837
2026-03-25 18:48:32 +00:00
YeonGyu-Kim
087e33d086
Merge pull request #2832 from RaviTharuma/fix/todo-sync-priority-default
...
test(todo-sync): match required priority fallback
2026-03-26 01:30:50 +09:00
Ravi Tharuma
46c6e1dcf6
test(todo-sync): match required priority fallback
2026-03-25 16:38:21 +01:00
kuitos
5befb60229
feat(agent-priority): inject order field for deterministic agent Tab cycling
...
Inject an explicit `order` field (1-4) into the four core agents
(Sisyphus, Hephaestus, Prometheus, Atlas) via reorderAgentsByPriority().
This pre-empts OpenCode's alphabetical agent sorting so the intended
Tab cycle order is preserved once OpenCode merges order field support
(anomalyco/opencode#19127 ).
Refs anomalyco/opencode#7372
2026-03-25 23:35:40 +08:00
Ravi Tharuma
55df2179b8
fix(todo-sync): preserve missing task priority
2026-03-25 16:26:23 +01:00
YeonGyu-Kim
76420b36ab
Merge pull request #2829 from RaviTharuma/fix/model-capabilities-review-followup
...
fix(model-capabilities): harden runtime capability handling
2026-03-26 00:25:07 +09:00
Ravi Tharuma
a15f6076bc
feat(model-capabilities): add maintenance guardrails
2026-03-25 16:14:19 +01:00
Ravi Tharuma
7c0289d7bc
fix(model-capabilities): honor root thinking flags
2026-03-25 15:41:12 +01:00
YeonGyu-Kim
5e9231e251
Merge pull request #2828 from code-yeongyu/fix/content-based-thinking-gating-v2
...
fix(thinking-block-validator): replace model-name gating with content-based history detection
2026-03-25 23:26:52 +09:00
YeonGyu-Kim
f04cc0fa9c
fix(thinking-block-validator): replace model-name gating with content-based history detection
...
Replace isExtendedThinkingModel() model-name check with hasSignedThinkingBlocksInHistory()
which scans message history for real Anthropic-signed thinking blocks.
Content-based gating is more robust than model-name checks — works correctly
with custom model IDs, proxied models, and new model releases without code changes.
- Add isSignedThinkingPart() that matches type thinking/redacted_thinking with valid signature
- Skip synthetic parts (injected by previous hook runs)
- GPT reasoning blocks (type=reasoning, no signature) correctly excluded
- Add comprehensive tests: signed injection, redacted_thinking, reasoning negative case, synthetic skip
Inspired by PR #2653 content-based approach, combined with redacted_thinking support from 0732cb85 .
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai >
2026-03-25 23:23:46 +09:00
Ravi Tharuma
613ef8eee8
fix(model-capabilities): harden runtime capability handling
2026-03-25 15:09:25 +01:00
YeonGyu-Kim
99b398063c
Merge pull request #2826 from RaviTharuma/feat/model-capabilities-models-dev
...
feat(model-capabilities): add models.dev snapshot and runtime capability refresh
2026-03-25 23:08:17 +09:00
Ravi Tharuma
2af9324400
feat: add models.dev-backed model capabilities
2026-03-25 14:47:46 +01:00
YeonGyu-Kim
7a52639a1b
Merge pull request #2673 from sanoyphilippe/fix/oauth-discovery-root-fallback
...
fix(mcp-oauth): fall back to root well-known URL for non-root resource paths (fixes #2675 )
2026-03-25 21:48:13 +09:00
YeonGyu-Kim
5df54bced4
Merge pull request #2725 from cphoward/fix/spawn-budget-lifetime-semantics-clean
...
fix(background-agent): decrement spawn budget on task completion, cancellation, error, and interrupt
2026-03-25 21:46:51 +09:00
YeonGyu-Kim
cd04e6a19e
Merge pull request #2751 from sjawhar/fix/atlas-subagent-agent-guard
...
fix(atlas): restore agent mismatch guard for subagent boulder continuation
2026-03-25 21:46:37 +09:00
YeonGyu-Kim
e974b151c1
Merge pull request #2701 from tonymfer/fix/lsp-initialization-options
...
fix(lsp): wrap initialization config in initializationOptions field
2026-03-25 21:46:16 +09:00
YeonGyu-Kim
6f213a0ac9
Merge pull request #2686 from sjawhar/fix/look-at-respect-configured-model
...
fix(look-at): respect configured multimodal-looker model instead of overriding via dynamic fallback
2026-03-25 21:46:11 +09:00
YeonGyu-Kim
71004e88d3
Merge pull request #2583 from Jrakru/fix/start-work-atlas-handoff
...
fix: preserve Atlas handoff metadata on /start-work
2026-03-25 21:46:06 +09:00
YeonGyu-Kim
5898d36321
Merge pull request #2575 from apple-ouyang/fix/issue-2571-subagent-safeguards
...
fix(delegate-task): add subagent turn limit and model routing transparency
2026-03-25 21:46:01 +09:00
YeonGyu-Kim
90aa3e4489
Merge pull request #2589 from MoerAI/fix/plan-agent-continuation-loop
...
fix(todo-continuation-enforcer): add plan agent to DEFAULT_SKIP_AGENTS (fixes #2526 )
2026-03-25 21:45:58 +09:00
YeonGyu-Kim
2268ba45f9
Merge pull request #2262 from Stranmor/feat/prompt-file-uri-support
...
feat: support file:// URIs in agent prompt field
2026-03-25 21:45:53 +09:00
YeonGyu-Kim
aca9342722
Merge pull request #2345 from DarkFunct/fix/todo-sync-priority-null
...
fix(todo-sync): provide default priority to prevent SQLite NOT NULL violation
2026-03-25 21:45:48 +09:00
YeonGyu-Kim
a3519c3a14
Merge pull request #2544 from djdembeck/fix/quick-anti-loop-v2
...
fix(agents): add termination criteria to Sisyphus-Junior default
2026-03-25 21:45:43 +09:00
YeonGyu-Kim
e610d88558
Merge pull request #2594 from MoerAI/fix/subagent-fallback-model-v2
...
fix(agent-registration): always attempt fallback when model resolution fails (fixes #2427 , supersedes #2517 )
2026-03-25 21:45:40 +09:00
YeonGyu-Kim
ed09bf5462
Merge pull request #2674 from RaviTharuma/fix/dedup-delegated-model-config
...
refactor: deduplicate DelegatedModelConfig into shared module
2026-03-25 21:43:31 +09:00
YeonGyu-Kim
1d48518b41
Merge pull request #2643 from RaviTharuma/feat/model-settings-compatibility-resolver
...
feat(settings): add model settings compatibility resolver
2026-03-25 21:43:28 +09:00
YeonGyu-Kim
d6d4cece9d
Merge pull request #2622 from RaviTharuma/feat/object-style-fallback-models
...
feat(config): object-style fallback_models with per-model settings
2026-03-25 21:43:22 +09:00
Ravi Tharuma
9d930656da
test(restack): drop stale compatibility expectations
2026-03-25 11:14:04 +01:00
Ravi Tharuma
f86b8b3336
fix(review): align model compatibility and prompt param helpers
2026-03-25 11:14:04 +01:00
Ravi Tharuma
1f5d7702ff
refactor(delegate-task): deduplicate DelegatedModelConfig + registry refactor
...
- Move DelegatedModelConfig to src/shared/model-resolution-types.ts
- Re-export from delegate-task/types.ts (preserving import paths)
- Replace background-agent/types.ts local duplicate with shared import
- Consolidate model-settings-compatibility.ts registry patterns
2026-03-25 11:14:04 +01:00
Ravi Tharuma
1e70f64001
chore(schema): refresh generated fallback model schema
2026-03-25 11:13:53 +01:00
Ravi Tharuma
d4f962b55d
feat(model-settings-compat): add variant/reasoningEffort compatibility resolver
...
- Registry-based model family detection (provider-agnostic)
- Variant and reasoningEffort ladder downgrade logic
- Three-tier resolution: metadata override → family heuristic → unknown drop
- Comprehensive test suite covering all model families
2026-03-25 11:13:53 +01:00