🤖 feat: add runtime enablement settings#2387
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a3082016c0
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a47b7e1455
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ec4651b3e3
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7384976a79
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ba1c53e9e4
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d54b317a76
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ed2f78688e
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a428b11c5b
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ab74530eb2
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6d34092214
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 98a5e13c07
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8dfbacd548
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Addressed the runtime defaults precedence and removed memoized enablement in Settings. Retested static-check and updated the runtime default test. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cd1109778f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Updated the runtime fallback to skip Coder when CLI availability isn't ready, and reran static-check. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ef495105d
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Updated runtime override caching to reconcile with refreshed project data and added pending tracking while config updates propagate. Static-check is green. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7a20506667
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
7a20506 to
d7e7345
Compare
|
@codex review Please take another look. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b09e5508bd
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Please take another look. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f2f4ef46fd
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review Please take another look. |
|
Codex Review: Didn't find any major issues. 🚀 ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
@codex review Please take another look. |
|
Codex Review: Didn't find any major issues. 🎉 ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
## 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>
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
…al checks The runtime enablement feature (PR #2387) introduced the same 3-line boolean expression in three files to check whether a ProjectConfig has runtime overrides. Extract it into a shared hasRuntimeOverrides() helper in src/common/types/project.ts. Net -6 lines, identical behavior.
Summary
Adds a new Settings → Runtimes section with global + per-project runtime enablement and default runtime controls, and wires those settings into workspace creation so disabled runtimes disappear and selections auto-adjust.
Background
Users need to control which runtimes are offered for new workspaces, including per-project overrides, while preserving the existing availability messaging they already see in creation flows.
Implementation
Validation
make static-checkRisks
Generated with
mux• Model:anthropic:claude-opus-4-6• Thinking:xhigh• Cost:$32.32