You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Improves the workspace default runtime UX per RFC
`rfc/260223_workspace-default-runtime.md`, addressing gaps left by
#2387.
## Background
Commit 88a2be8 (#2387) moved the per-project default runtime setting
from a simple tooltip checkbox into a dedicated Settings → Runtimes
page. This left two UX gaps:
1. The "configure" link was muted and opened Settings at global scope
even when on a project page
2. No visual feedback when the user's current runtime selection differs
from the saved default
3. The Settings → Runtimes page didn't show configurable runtime options
(SSH host, Docker image, etc.)
## Implementation
**Bug fix — project scope passthrough:**
- Extended `SettingsContext` with a `runtimesProjectPath` one-shot hint
(same pattern as the existing `providersExpandedProvider`)
- "set defaults" button now passes the current project path, so Settings
→ Runtimes opens pre-scoped to the correct project
**Rename + prominence:**
- Changed "configure" → "set defaults" to clarify purpose
- Styled with `text-accent` as the base state
**Modified state indicator (no layout shift):**
- When the selected runtime differs from the project default, the "set
defaults" button gains a `bg-warning/15 text-warning` pill style
- Uses consistent `rounded-sm px-1` padding in both states to avoid any
layout shift
**Configurable runtime options in Settings:**
- Added `RUNTIME_OPTION_FIELDS` constant mapping each runtime to its
configurable field (SSH→host, Docker→image, Devcontainer→configPath)
- For project scope: shows actual text input fields under each runtime
row, reading/writing the same `lastRuntimeConfig:{projectPath}`
localStorage keys the creation flow uses
- For global scope: shows read-only option descriptions from
`RuntimeUiSpec.options`
- Inputs respect the disabled state (dimmed when project overrides are
off)
**Single-ownership (RuntimeUiSpec):**
- Added `options?: string` field to `RuntimeUiSpec` for centralized
documentation of what each runtime requires
## Risks
- Low: purely UI changes, no backend or config format changes
- The Settings page writes to the same localStorage keys as the creation
flow, so edits propagate immediately via `usePersistedState({ listener:
true })`
---
_Generated with `mux` • Model: `anthropic:claude-opus-4-6` • Thinking:
`xhigh` • Cost: `$8.39`_
<!-- mux-attribution: model=anthropic:claude-opus-4-6 thinking=xhigh
costs=8.39 -->
---------
Co-authored-by: Ammar Bandukwala <ammar@ammar.io>
Copy file name to clipboardExpand all lines: docs/AGENTS.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -24,6 +24,7 @@ description: Agent instructions for AI assistants working on the Mux codebase
24
24
## Documentation Rules
25
25
26
26
- No free-floating Markdown. User docs live in `docs/` (read `docs/README.md`, add pages to `docs.json` navigation, use standard Markdown + mermaid). Developer notes belong inline as comments.
27
+
- Exception: the `rfc` folder contains human-written RFCs for implementation planning.
27
28
- For planning artifacts, use the `propose_plan` tool or inline comments instead of ad-hoc docs.
28
29
- Do not add new root-level docs without explicit request; during feature work rely on code + tests + inline comments.
29
30
- External API docs already live inside `/tmp/ai-sdk-docs/**.mdx`; never browse `https://sdk.vercel.ai/docs/ai-sdk-core` directly.
0 commit comments