Skip to content

feat: per-model timeout, permissions, fallback, and wildcard glob support#22055

Closed
tobias-weiss-ai-xr wants to merge 1 commit intoanomalyco:devfrom
tobias-weiss-ai-xr:feat/per-model-timeout
Closed

feat: per-model timeout, permissions, fallback, and wildcard glob support#22055
tobias-weiss-ai-xr wants to merge 1 commit intoanomalyco:devfrom
tobias-weiss-ai-xr:feat/per-model-timeout

Conversation

@tobias-weiss-ai-xr
Copy link
Copy Markdown

Summary

  • Per-model timeout configuration: Adds a timeout field on Config.Model and Provider.Model, allowing each model to have its own execution timeout. Used by the bash tool to enforce model-specific limits.
  • Per-model permission overrides: Adds a permission field on Config.Model with a three-tier merge priority: model-level > agent-level > global. This allows fine-grained control over which models can access which tools/permissions.
  • Fallback model mechanism: Adds a fallback field on Config.Model that specifies an alternate model to retry on when the primary model fails with 429 (rate limit), 5xx (server error), or timeout errors. Implemented in the LLM session layer.
  • Wildcard glob support with minimatch: Replaces the manual regex-based wildcard matching in wildcard.ts with the minimatch library, providing proper glob pattern support.

Files changed

  • packages/opencode/src/config/config.ts - Added timeout, permission, and fallback fields to Config.Model
  • packages/opencode/src/provider/provider.ts - Propagated new fields to Provider.Model
  • packages/opencode/src/session/llm.ts - Implemented fallback model retry logic on 429/5xx/timeout
  • packages/opencode/src/session/prompt.ts - Merged per-model permissions with priority chain
  • packages/opencode/src/tool/bash.ts - Used per-model timeout for bash command execution
  • packages/opencode/src/util/wildcard.ts - Replaced manual regex with minimatch for glob matching

…port

- Add per-model timeout field on Config.Model and Provider.Model, used in bash tool execution

- Add per-model permission overrides merged with priority: model > agent > global

- Add fallback model mechanism with retry logic on 429/5xx/timeout errors

- Replace manual regex wildcard matching with minimatch for proper glob support
@github-actions github-actions bot added the needs:compliance This means the issue will auto-close after 2 hours. label Apr 11, 2026
@github-actions
Copy link
Copy Markdown
Contributor

This PR doesn't fully meet our contributing guidelines and PR template.

What needs to be fixed:

  • PR description is missing required template sections. Please use the PR template.

Please edit this PR description to address the above within 2 hours, or it will be automatically closed.

If you believe this was flagged incorrectly, please let a maintainer know.

@github-actions
Copy link
Copy Markdown
Contributor

The following comment was made by an LLM, it may be inaccurate:

Based on my search, here are the potentially related PRs:

Related Open/Merged PRs:

  1. PR feat: add model fallback support with TTFT-based timeout #13189 - "feat: add model fallback support with TTFT-based timeout"

  2. PR feat(provider): automatic model fallback on transient errors #20105 - "feat(provider): automatic model fallback on transient errors"

    • Directly related to the fallback model retry logic on 429/5xx/timeout errors
  3. PR feat(opencode): support wildcard matching in agent config #18907 - "feat(opencode): support wildcard matching in agent config"

    • Related to the wildcard glob support feature using minimatch
  4. PR feat(task): add model override for subagents #18528 - "feat(task): add model override for subagents"

    • Related to per-model configuration overrides

These PRs appear to address similar or overlapping functionality with PR #22055. You may want to review them to ensure there's no duplication of effort, especially regarding fallback model handling and wildcard matching implementations.

@github-actions
Copy link
Copy Markdown
Contributor

This pull request has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.

Feel free to open a new pull request that follows our guidelines.

@github-actions github-actions bot removed the needs:compliance This means the issue will auto-close after 2 hours. label Apr 11, 2026
@github-actions github-actions bot closed this Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant