Skip to content

fix(web): add default thread env mode setting#892

Merged
juliusmarminge merged 5 commits intopingdotgg:mainfrom
binbandit:t3code/default-worktree-mode-toggle
Mar 13, 2026
Merged

fix(web): add default thread env mode setting#892
juliusmarminge merged 5 commits intopingdotgg:mainfrom
binbandit:t3code/default-worktree-mode-toggle

Conversation

@binbandit
Copy link
Contributor

@binbandit binbandit commented Mar 11, 2026

Summary

  • add a persisted app setting for the default draft-thread environment mode
  • use that setting when creating new draft threads so users do not need to re-toggle New worktree on each new thread
  • add tests covering app-settings persistence and backward-compatible defaults

Why

New draft threads always defaulted to local, even if a user consistently works in New worktree mode. The existing toggle only changed the current draft thread, so users had to repeat the same interaction on every new thread.

The right scope here is app-level persistence, not more draft-local state. That keeps existing thread behavior unchanged, preserves explicit overrides, and only affects brand-new draft thread creation.

Changes

  • extend web app settings with defaultThreadEnvMode
  • add a Settings toggle under Threads to switch the default between Local and New worktree
  • update sidebar new-thread creation to honor the persisted default unless an explicit envMode is already supplied
  • add tests for defaulting, invalid persisted values, and persisted worktree mode

UI changes

Screenshot 2026-03-11 at 7 56 24 pm

Validation

  • bun run test src/appSettings.test.ts src/composerDraftStore.test.ts in apps/web
  • bun fmt
  • bun lint
  • bun typecheck

Note

Add configurable default thread environment mode setting to web app

  • Adds defaultThreadEnvMode ("local" | "worktree", default "local") to appSettings.ts, persisted via AppSettingsSchema.
  • Adds a new "Threads" section in settings UI with a toggle and "Restore default" button for this setting.
  • Updates thread creation in Sidebar.tsx and the chat.newLocal keyboard shortcut in _chat.tsx to resolve env mode via resolveSidebarNewThreadEnvMode, using the app default instead of a hardcoded value.
  • Behavioral Change: the chat.newLocal shortcut no longer hardcodes "local" mode — it now follows the user's configured default.

Macroscope summarized 3ec278c.

@coderabbitai
Copy link

coderabbitai bot commented Mar 11, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 282d5b72-39d9-4e4c-bef7-12183b401e60

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Mar 11, 2026
@binbandit binbandit changed the title Add default thread env mode setting fix(web): add default thread env mode setting Mar 11, 2026
@github-actions github-actions bot added the size:L 100-499 changed lines (additions + deletions). label Mar 13, 2026
@github-actions github-actions bot added size:M 30-99 changed lines (additions + deletions). and removed size:L 100-499 changed lines (additions + deletions). labels Mar 13, 2026
@github-actions github-actions bot added size:L 100-499 changed lines (additions + deletions). and removed size:M 30-99 changed lines (additions + deletions). labels Mar 13, 2026
@juliusmarminge juliusmarminge merged commit d0ae0ad into pingdotgg:main Mar 13, 2026
10 of 13 checks passed
aaditagrawal added a commit to aaditagrawal/t3code that referenced this pull request Mar 13, 2026
Upstream features:
- Selective file staging in commit dialog (pingdotgg#872)
- Compact Codex tool-call icons in chat timeline (pingdotgg#988)
- Replace worktree toggle with Select dropdown (pingdotgg#1001)
- Timestamp format override setting (pingdotgg#855)
- Preferred editor resolver + useLocalStorage helper (pingdotgg#662)
- Extract reusable clipboard hook and media queries (pingdotgg#1006)
- Default thread env mode setting (pingdotgg#892)
- Block image uploads during plan mode (pingdotgg#621)

Upstream bug fixes:
- Prompt editor + Plan mode cursor fixes (pingdotgg#867)
- Composer @file autocomplete cursor/spacing bugs (pingdotgg#936)
- Diff panel unclosable after retainSearchParams (pingdotgg#937)
- Fix agent response duration always 1ms (pingdotgg#866)
- Defer diff worker startup until diff opens (pingdotgg#934)
- Fix new-thread shortcuts when terminal focused (pingdotgg#984)
- PlanSidebar memory leak fix (pingdotgg#949)
- WebSocket error logging (pingdotgg#948)
- Desktop "Check for Updates" dialog (pingdotgg#955)
- macOS logo alignment fix (pingdotgg#960)

Upstream tooling:
- Upgrade oxfmt/oxlint versions (pingdotgg#1010)
- Update @vitejs/plugin-react to 6.0.0 (pingdotgg#1002)
- Upgrade marketing app to Astro 6 (pingdotgg#1005)

Conflict resolutions:
- workspaceEntries.ts: kept our zortos-ported fuzzy search (better
  ranked insertion) over upstream's pingdotgg#256
- appSettings.ts: merged our display settings with upstream's timestamp
  format and env mode settings
- MessagesTimeline.tsx: merged our showCommandOutput gating with
  upstream's compact tool-call icons
- DiffPanel.tsx: fixed duplicate useAppSettings import
- open.test.ts: added missing node:fs/os/path imports for new test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants