Skip to content

Comments

🤖 fix: improve workspace default runtime UX#2553

Open
ammar-agent wants to merge 5 commits intomainfrom
fix/workspace-default-runtime-ux
Open

🤖 fix: improve workspace default runtime UX#2553
ammar-agent wants to merge 5 commits intomainfrom
fix/workspace-default-runtime-ux

Conversation

@ammar-agent
Copy link
Collaborator

@ammar-agent ammar-agent commented 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

- Rename 'configure' to 'set defaults' with accent color styling
- Pass project scope when opening Settings → Runtimes
- Add '(modified)' badge when runtime differs from default
- Show runtime options in Settings → Runtimes page
- Add options field to RuntimeUiSpec for single-ownership

RFC: rfc/260223_workspace-default-runtime.md
@ammar-agent
Copy link
Collaborator 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: b6448952e7

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

@ammar-agent ammar-agent force-pushed the fix/workspace-default-runtime-ux branch 2 times, most recently from c46ea18 to c6c77db Compare February 23, 2026 17:46
@ammar-agent
Copy link
Collaborator Author

@codex review

Reworked per RFC feedback:

  1. Button-only styling change (no layout shift) instead of (modified) badge
  2. Actual configurable inputs (SSH host, Docker image, devcontainer config) in Settings → Runtimes page for project scope

@ammar-agent ammar-agent force-pushed the fix/workspace-default-runtime-ux branch from c6c77db to 9adf786 Compare February 23, 2026 17:48
@ammar-agent
Copy link
Collaborator Author

@codex review

Fixed: the effect now keeps the hint alive until the project appears in projects (early-return when !projects.has(...) instead of unconditionally clearing).

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Breezy!

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

@ammar-agent ammar-agent force-pushed the fix/workspace-default-runtime-ux branch from 9adf786 to 9275f7a Compare February 23, 2026 17:55
- Rename 'configure' to 'set defaults' with accent color styling
- Pass project scope when opening Settings → Runtimes (bug fix)
- Style 'set defaults' button distinctly when runtime differs from default
- Add configurable runtime option inputs (SSH host, Docker image, etc.)
  in Settings → Runtimes page for per-project scope
- Add options field to RuntimeUiSpec for single-ownership

RFC: rfc/260223_workspace-default-runtime.md
@ammar-agent ammar-agent force-pushed the fix/workspace-default-runtime-ux branch from 9275f7a to dbb794d Compare February 23, 2026 18:54
@ammar-agent
Copy link
Collaborator Author

@codex review

Follow-up updates:

  • Inactive set defaults now uses dotted underline (interactive but subtle)
  • Balanced spacing in the workspace-type row (gap-1.5)
  • Runtime option metadata deduplicated into runtimeUi (RUNTIME_OPTION_FIELDS + getRuntimeOptionField)

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: dbb794d65d

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

- reuse a shared RuntimeConfigInput in both creation controls and Settings → Runtimes
- add visible runtime option labels in project-scope defaults for parity with new workspace UI
- remove the hyphen delimiter and restyle "set defaults" as a subtle secondary button

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$13.73`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=13.73 -->
@ammar-agent
Copy link
Collaborator Author

@codex review

- clear one-shot runtimesProjectPath when switching away from the runtimes section
- clear runtimes scope hint on close transitions so it cannot leak across settings sessions
- keep providers/runtimes hint state explicitly one-shot and section-scoped

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$13.73`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=13.73 -->
@ammar-agent
Copy link
Collaborator Author

@codex review

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Can't wait for the next one!

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

- update RFC 260223 notes for the latest runtime defaults UX implementation details
- keep implementation/documentation context aligned in the active PR branch

---

_Generated with `mux` • Model: `openai:gpt-5.3-codex` • Thinking: `xhigh` • Cost: `$13.73`_

<!-- mux-attribution: model=openai:gpt-5.3-codex thinking=xhigh costs=13.73 -->
@ammar-agent
Copy link
Collaborator Author

@codex review

@chatgpt-codex-connector
Copy link

Codex Review: Didn't find any major issues. Keep them coming!

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

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.

2 participants