Uh oh!
There was an error while loading. Please reload this page.
feat(terminal): select installed shell for new sessions - #5268
feat(terminal): select installed shell for new sessions#5268eranknafo2001 wants to merge 3 commits into
Conversation
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
One convention finding: a renamed helper keeps a back-compat alias instead of updating its only consumer.
Posted via Macroscope — Effect Service Conventions
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2cd84f9aed032118c55780b445687738fcc2c4a4. Configure here.
Uh oh!
There was an error while loading. Please reload this page.
ApprovabilityVerdict: Needs human review This PR introduces a new user-facing feature for selecting terminal shells, with changes spanning UI, server-side configuration, and runtime terminal spawning behavior. New features that modify how terminals are opened warrant human review. You can customize Macroscope's approvability policy. Learn more. |
2cd84f9 to
f56eac5Compare- Add environment-level shell preferences for system default, Zsh, Bash, and Fish - Apply the setting to new and restarted terminals with fallback resolution - Expose the option in General settings and document terminal behavior
f56eac5 to
be9a495Compare
Problem
The integrated terminal follows the environment shell without giving users an explicit choice, and the settings UI cannot tell which supported shells are actually installed on the connected machine.
Changes
PATHfor installed shells and publish those capabilities in server configValidation
This is a draft because the settings UI has not yet received a manual browser pass or screenshots.
Implemented with GPT-5.6 Codex in T3 Code through the Codex harness.
Note
Add terminal shell selection to settings with per-platform shell discovery
terminalShellpreference toServerSettingsandServerSettingsPatchwith forward-compatible decoding that defaults to"system".TerminalManagerwithresolveAvailableShells, which probes installed shells (including fish) and returns the available ones.availableTerminalShellsin theserverGetConfigRPC response so the client knows which shells are installed./settings/general.Macroscope summarized be9a495.
Note
Medium Risk
Changes PTY spawn behavior and server config RPC; mistakes could break terminals or misreport installed shells, though existing fallback spawn logic is retained.
Overview
Adds an environment-scoped terminal shell preference (
system,zsh,bash,fish) and wires it through contracts, server spawn logic, and the web Settings → General UI.Server:
TerminalManagerreadsterminalShellfrom server settings when opening or restarting PTYs (with fallback to the system shell if settings read fails). It exposesresolveAvailableShells()by probingPATHfor installed shells; fish is included in spawn fallbacks.serverGetConfigreturnsavailableTerminalShellsalongside editors, with both discoveries sharing a renamed 5s timeout helper so config does not block indefinitely.Web: General settings shows a shell selector built from installed shells; a previously selected shell that is no longer installed stays visible but disabled. Reset/search/dirty-state handling and user docs for the terminal setting are included.
Reviewed by Cursor Bugbot for commit be9a495. Bugbot is set up for automated code reviews on this repo. Configure here.