feat(chat): unify runtime selection into a header harness picker#4477
Open
rafavalls wants to merge 4 commits into
Open
feat(chat): unify runtime selection into a header harness picker#4477rafavalls wants to merge 4 commits into
rafavalls wants to merge 4 commits into
Conversation
Move the cloud/local runtime selection out of the chat input and into a single header button that stacks the Codex, Claude Code, and Decopilot icons (active runtime shown frontmost) with a Cloud/Local label and a dropdown. Remove the redundant desktop link indicator from the sidebar footer and mobile header. In local mode with no cloud provider keys, default to a linked local CLI harness and skip the no-provider empty state so Claude Code / Codex work out of the box. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Choosing Cloud (Decopilot) in local mode with no provider keys let the user submit and then fail with "No model available for tier". Show the provider picker whenever the selected runtime is Decopilot (cloud or local sandbox) and the org has no keys; Claude Code / Codex skip it since they bring their own inference. Replaces the capability-only gate in the home page and side-panel chat with an `agentModeNeedsCloudProvider` check, and retires the now-unused `hasLocalCliHarness` helper. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keep the three runtime circles in a stable DOM order and drive each one's slot via an inline translateX + z-index, so switching the selected harness animates them sliding into place (active → rightmost/frontmost) with a 300ms ease-in-out CSS transition. No layout library or effect needed; honors prefers-reduced-motion via motion-reduce. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds per-org fast/smart/thinking model overrides for the Claude Code and Codex desktop runtimes, mirroring the cloud "Default models" section. Overrides live in an optional `simple_mode.cli` block (no migration); dispatch resolves via a new `resolveCliTier` that prefers the override and falls back to the hardcoded default. A new "local models" settings section (shown when a CLI is linked) lets admins pick from each harness's model list, and the chat tier popover reflects the configured choice. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What is this contribution about?
Consolidates the cloud/local runtime selection into a single header button (to the right of the sidebar toggle) that stacks the Codex, Claude Code, and Decopilot icons — the active runtime rendered frontmost — with a Cloud/Local label and a dropdown, replacing the duplicate mode picker that lived in the chat input. It also removes the now-redundant desktop link indicator from the sidebar footer and the mobile header, and fixes a local-mode gap: with no cloud provider keys but a linked Claude Code / Codex CLI, the chat now defaults to that local harness and skips the "connect a provider" empty state (SaaS still defaults to cloud when a key is present).
Screenshots/Demonstration
How to Test
bunx decocms@latest linkrunning (Claude Code and/or Codex available) and no cloud AI provider keys, open the org home: you should land in the chat with a local CLI selected by default, not the "connect a provider" empty state.Migration Notes
Review Checklist
Summary by cubic
Unifies runtime selection into a single header Harness Picker and adds per‑org model overrides for local CLI tiers (Claude Code/Codex). This makes CLI defaults configurable and keeps provider prompts only for Decopilot.
New Features
simple_mode.cliviaresolveCliTierwith fallback.Bug Fixes
Written for commit affb052. Summary will update on new commits.