Skip to content

🤖 feat: add runtime enablement settings#2387

Merged
ibetitsmike merged 36 commits intomainfrom
mike/workspace-types-t6rr
Feb 22, 2026
Merged

🤖 feat: add runtime enablement settings#2387
ibetitsmike merged 36 commits intomainfrom
mike/workspace-types-t6rr

Conversation

@ibetitsmike
Copy link
Contributor

@ibetitsmike ibetitsmike commented Feb 12, 2026

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

  • Persist runtime enablement/default runtime in config with sparse overrides and an explicit override flag.
  • Seed local persisted state from config, add a shared hook, and refresh project metadata after updates.
  • Build the new Runtimes settings UI with availability badges/tooltips and scope switching.
  • Filter workspace creation runtime options based on enablement, auto-switching when a selection is disabled.
  • Restore the branch selector (with a git icon), dim the configure shortcut, and remove the default-toggle from the creation tooltip.
  • Wire per-project runtime overrides and default runtime settings into the creation flow so they actually take effect.

Validation

  • make static-check

Risks

  • Medium: runtime availability and override state now flow through multiple caches (localStorage + config + project refresh). A sync regression could show stale enablement until refresh.

Generated with mux • Model: anthropic:claude-opus-4-6 • Thinking: xhigh • Cost: $32.32

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Addressed the runtime defaults precedence and removed memoized enablement in Settings. Retested static-check and updated the runtime default test.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Updated the runtime fallback to skip Coder when CLI availability isn't ready, and reran static-check.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Updated runtime override caching to reconcile with refreshed project data and added pending tracking while config updates propagate. Static-check is green.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike ibetitsmike force-pushed the mike/workspace-types-t6rr branch from 7a20506 to d7e7345 Compare February 13, 2026 14:12
@ibetitsmike
Copy link
Contributor Author

@codex review

Please take another look.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Please take another look.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Please take another look.

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. 🚀

ℹ️ 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".

@ibetitsmike
Copy link
Contributor Author

@codex review

Please take another look.

@ibetitsmike ibetitsmike added this pull request to the merge queue Feb 22, 2026
@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. 🎉

ℹ️ 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".

Merged via the queue into main with commit 88a2be8 Feb 22, 2026
23 checks passed
@ibetitsmike ibetitsmike deleted the mike/workspace-types-t6rr branch February 22, 2026 00:20
github-actions bot pushed a commit that referenced this pull request Feb 22, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 22, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 22, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 22, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 23, 2026
…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.
ammario added a commit that referenced this pull request Feb 23, 2026
## 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>
github-actions bot pushed a commit that referenced this pull request Feb 24, 2026
…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.
github-actions bot pushed a commit that referenced this pull request Feb 24, 2026
…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.
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