feat: provider selection + searchable model picker in workflows#375
feat: provider selection + searchable model picker in workflows#375
Conversation
CI Fix — Lint ErrorRoot cause: Fix: Wired up Commit: 56299fe |
CI Fix —
|
CI Fix Analysis (Workflow Run #929)Root cause: In Fix: Initialize This was the only error among 726 warnings. The fix is in commit 207d8b3. |
…modals Workflow modals now support choosing between Claude Code and OpenCode providers, with dynamic model loading from the OpenCode API. The model picker switches between inline buttons (≤5 models) and a searchable dropdown with recent selections (>5 models). OpenCode option is only shown when the server reports available models. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The setLoadingOcModels setter was declared but never called, causing an eslint no-unused-vars error that failed CI (workflow run #928). Wire up the setter to track loading state around the fetchOpenCodeModels call. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…picker - Set loadingOcModels to true before fetching and false in finally, so the model picker shows "Loading models..." while OpenCode models load - Exclude recent model IDs from the "All Models" section to prevent duplicate entries in the searchable dropdown Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…t body The react-hooks/set-state-in-effect rule forbids calling setState synchronously inside useEffect. Initialize the loading state to true in useState instead, since the fetch fires immediately on mount. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ries Without workingDir, the OpenCode API would return a generic model list instead of models scoped to the workflow's repository. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
0ba0366 to
d8c3986
Compare
Summary
WorkflowModelPicker: inline buttons for ≤5 models, searchable dropdown with recent selections for >5 modelsproviderfield to frontendReviewRepoConfigtype to match server schemaTest plan
providerfield persists in config🤖 Generated with Claude Code