Skip to content

Move project settings to contextual project routes - #5923

Merged
juliusmarminge merged 3 commits into
mainfrom
fix-project-settings-data-ui
Aug 10, 2026
Merged

Move project settings to contextual project routes#5923
juliusmarminge merged 3 commits into
mainfrom
fix-project-settings-data-ui

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Aug 10, 2026

Copy link
Copy Markdown
Member

What Changed

  • Moved project settings from /settings/projects to contextual /projects/$projectKey routes.
  • Updated sidebar and command palette navigation to open settings for the relevant project.
  • Reworked the settings page with breadcrumb navigation, project switching, Escape/back behavior, and checkout-specific script configuration.
  • Updated project rename and deletion flows for the new route structure.
  • Removed obsolete forked-rollout usage suppression and related tests, restored the usage cache version, and simplified asset response headers.
  • Cleaned up the mobile control-pill handling and adjusted related server tests.

Why

Project settings are tied to a specific project, so they should open in the project context instead of through a separate settings listing. This keeps navigation consistent with the sidebar and command palette, supports grouped projects and individual checkouts more clearly, and avoids dead-end states after regrouping or deletion. The accompanying cleanup removes behavior that is no longer intended for usage scanning and simplifies related code paths.

UI Changes

Project settings now render as a contextual project page with a breadcrumb and project selector. Sidebar and command palette actions now link directly to the selected project. No before/after screenshots or video are included.

Before

image

After

image

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Move project settings from /settings/projects to contextual /projects/:projectKey routes

  • Project settings are now served at /projects/$projectKey instead of /settings/projects, with a breadcrumb header and Escape-to-go-back behavior.
  • The command palette 'Project settings' action and the sidebar per-project button both navigate to the new route, resolving the project from the current context.
  • The 'Projects' section is removed from the settings sidebar nav and settings search index.
  • Within the settings panel, scripts/actions and keybindings now apply only to the selected checkout rather than all members; group-wide rename updates all members' titles.
  • Behavioral Change: /settings/projects routes are deleted; any bookmarks or direct links to those paths will no longer resolve.

Macroscope summarized b4840e8.


Note

Medium Risk
Routing and deep-link breakage for old /settings/projects URLs, plus script/keybinding persistence now scoped per checkout instead of fan-out to all members—behavior change reviewers should validate for multi-checkout groups.

Overview
Project settings leave the global Settings area and become a dedicated /projects/$projectKey page (auth-gated). The old /settings/projects routes are removed, along with the Projects item in settings nav and settings search.

Navigation now targets the relevant project: the sidebar uses a Settings control (replacing the ellipsis) to open that route; the command palette Project settings action only appears when a contextual project exists and navigates to /projects/$projectKey, showing the project name as the description.

The UI is rebuilt around ProjectSettingsPage: workspace titlebar/breadcrumb with a project switcher, Escape / back to leave (home if no history). Group-level name, icon, default model, and new-thread workspace stay shared across checkouts; scripts/actions and keybindings are edited for the selected checkout only. Checkout section adds path copy, grouping override, optional remove-checkout, and import-from-t3.json menu. Deleting the whole group redirects to / instead of a projects listing.

Grouping labels: when all members share a custom title that is not the repo display/name, that title is used as the group label (tests added).

SettingsRow description is now optional.

Reviewed by Cursor Bugbot for commit b4840e8. Bugbot is set up for automated code reviews on this repo. Configure here.

- Replace the project settings listing with standalone contextual project pages
- Add project renaming, checkout selection, and updated sidebar and command-palette navigation
@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown

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 Plus

Run ID: 2bc4ba8c-0c66-4830-8cd1-cab9e1a5b692

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

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

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XL 500-999 changed lines (additions + deletions). labels Aug 10, 2026
Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix is ON, but a cloud agent failed to start.

Reviewed by Cursor Bugbot for commit 8bd8ad1. Configure here.

Comment thread apps/web/src/components/settings/ProjectSettingsPanel.tsx
@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 11.3 KiB 11.3 KiB +17 B (+0.1%) 15.1 KiB
Codex Thread snapshot wire 5.5 KiB 5.5 KiB +9 B (+0.2%) 7.3 KiB
Codex Live turn WebSocket wire 5.9 KiB 5.9 KiB +8 B (+0.1%) 7.8 KiB
Codex Live turn WebSocket decoded 49.7 KiB 49.7 KiB 0 B (0.0%) 66.4 KiB
Codex Live turn messages 16 16 0 (0.0%) 21
Claude Total thread wire 11.3 KiB 11.3 KiB 0 B (0.0%) 15.1 KiB
Claude Thread snapshot wire 5.5 KiB 5.5 KiB +2 B (+0.0%) 7.3 KiB
Claude Live turn WebSocket wire 5.9 KiB 5.9 KiB −2 B (−0.0%) 7.8 KiB
Claude Live turn WebSocket decoded 50.6 KiB 50.6 KiB 0 B (0.0%) 66.4 KiB
Claude Live turn messages 16 16 0 (0.0%) 21

Baseline: 9a1472d · PR result: b4840e8 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 94.6 KiB
  • Claude decoded thread snapshot: 95.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

1 blocking correctness issue found. This PR restructures project settings routing and UI. Two unresolved review comments identify potential bugs: incorrect keybinding atom usage for non-primary environments, and a rename field that may incorrectly overwrite member titles. These correctness concerns warrant human review.

You can customize Macroscope's approvability policy. Learn more.

- Add a menu for importing checkout actions
- Compact action rows to show commands inline
- Use shared custom titles for repository group labels
- Read keybindings from the selected checkout environment
- Avoid redundant project renames
@juliusmarminge
juliusmarminge merged commit f21d5e4 into main Aug 10, 2026
18 checks passed
@juliusmarminge
juliusmarminge deleted the fix-project-settings-data-ui branch August 10, 2026 00:57
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 10, 2026
## What's Changed
* Move project settings to contextual project routes by @juliusmarminge in pingdotgg/t3code#5923
* Retain thread sidebar data when navigating to /settings so back navigation is instant by @juliusmarminge in pingdotgg/t3code#5930
* Automate production mobile EAS releases by @juliusmarminge in pingdotgg/t3code#5609
* Add settings and usage breadcrumbs by @juliusmarminge in pingdotgg/t3code#5929
* fix(web): correct model picker trigger padding by @Chrono-byte in pingdotgg/t3code#5935
* fix(web): show worktree icon in sidebar v2 by @tris203 in pingdotgg/t3code#5909
* fix(web): enable restore defaults after theme mix changes by @Lucenx9 in pingdotgg/t3code#5928
* fix(web): trait menu closes after you pick a level by @t3dotgg in pingdotgg/t3code#5879
* fix(web): align project name with headline by @carterwsmith in pingdotgg/t3code#5864
* fix(web): update pills use readable theme foregrounds by @chrisdeeming in pingdotgg/t3code#5938

## New Contributors
* @carterwsmith made their first contribution in pingdotgg/t3code#5864

**Full Changelog**: pingdotgg/t3code@v0.0.33-nightly.20260810.1054...v0.0.33-nightly.20260810.1055

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.33-nightly.20260810.1055
omegent-app Bot added a commit to patroza/t3code that referenced this pull request Aug 10, 2026
pingdotgg#5609 also added mobile-fingerprint-check.yml, which landed without a conflict
and so was never inspected. It runs on blacksmith-8vcpu-ubuntu-2404, which this
fork does not have, and it triggers on every pull request touching apps/mobile,
packages/client-runtime, packages/contracts, packages/shared, assets or
scripts. Its "Native fingerprint diff" check was already sitting queued on this
very PR and would never have reported — a permanently pending check, and a
blocked merge wherever branch protection waits on all of them.

Same fix as #386 for web-preview.yml: GitHub-hosted runners, which is what
every other fork workflow uses. There are now no Blacksmith references left in
.github/workflows.

Also drops the EllipsisIcon import the Sidebar conflict union left behind; the
project row's button is SettingsIcon after pingdotgg#5923.

Found by the grok-4.5 adversarial review.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 10, 2026
## What's Changed
* fix(mobile): reconnects no longer shift the thread list by @t3dotgg in pingdotgg/t3code#5372
* feat(web): drag pinned threads into your own order by @t3dotgg in pingdotgg/t3code#5581
* chore(ci): vouch StiensWout by @t3-code[bot] in pingdotgg/t3code#5637
* feat(desktop): remember recently used sites in the Browser panel by @chrisdeeming in pingdotgg/t3code#5270
* chore: vouch chrisdeeming by @t3-code[bot] in pingdotgg/t3code#5641
* feat(web): make sidebar artwork theme-aware by @maria-rcks in pingdotgg/t3code#5636
* fix(web): reconnect the composer seam for remote non-Git projects by @caezium in pingdotgg/t3code#5633
* fix(web): show Stop button while input is pending by @ipanasenko in pingdotgg/t3code#5554
* feat(web): fold plan mode and token-by-token output into Legacy features by @t3dotgg in pingdotgg/t3code#5664
* feat: sidebar v2 is now the default sidebar by @t3dotgg in pingdotgg/t3code#5672
* fix(server): stop PR status lookups amplifying GitHub rate limits by @t3dotgg in pingdotgg/t3code#5673
* fix(web): delay transient reconnect warnings by @t3-code[bot] in pingdotgg/t3code#5670
* fix(web): inherit terminal size in simple typography by @chrisdeeming in pingdotgg/t3code#5628
* fix(server): stop the reaper from silently killing live background subagents by @t3dotgg in pingdotgg/t3code#5677
* fix(desktop): zoom shortcuts no longer die when the preview browser has focus by @t3dotgg in pingdotgg/t3code#5691
* feat(mobile): one sheet for model and thread settings by @t3dotgg in pingdotgg/t3code#5625
* feat(usage): usage page reading provider transcripts across environments by @t3dotgg in pingdotgg/t3code#5684
* fix(web): usage chart no longer makes Claude look like the bigger spender by @t3dotgg in pingdotgg/t3code#5697
* fix(web): persist diff view mode by @leorivastech in pingdotgg/t3code#5731
* feat(web): show how many subagents are running at a glance by @t3dotgg in pingdotgg/t3code#5745
* fix(web): add missing cursor-pointer styling to dropdowns and interactive buttons by @naMqe-h in pingdotgg/t3code#5716
* fix(server): stop Claude resume handshakes from completing turns that never ran by @gfsaaser24 in pingdotgg/t3code#5710
* chore: vouch gfsaaser24 by @t3dotgg in pingdotgg/t3code#5761
* chore: vouch saphid by @t3dotgg in pingdotgg/t3code#5763
* fix(server): stop Codex threads with queued follow-ups by @t3dotgg in pingdotgg/t3code#5762
* fix(web): usage page loses the cost quality panel, gains a back button by @t3dotgg in pingdotgg/t3code#5756
* feat(server): agents can now open the images you paste into chat by @t3dotgg in pingdotgg/t3code#5757
* fix(web): pinned reorder no longer reshuffles while writes land by @t3dotgg in pingdotgg/t3code#5767
* feat(web): overhaul project settings into a real settings page by @t3dotgg in pingdotgg/t3code#5768
* fix(web): usage totals no longer jump while devices report in by @t3dotgg in pingdotgg/t3code#5772
* fix(server): settle no longer leaves monitors and dev servers running by @t3dotgg in pingdotgg/t3code#5774
* feat: pick worktree or current checkout per project by @t3dotgg in pingdotgg/t3code#5766
* fix(web): sidebar rows show the branch again, not a truncated plan step by @t3dotgg in pingdotgg/t3code#5776
* feat(server): vp run migrate-dev-db seeds worktree dev dbs with real data by @t3dotgg in pingdotgg/t3code#5773
* feat(web): keep unsent drafts one click away in the sidebar by @t3dotgg in pingdotgg/t3code#5777
* feat(web): project icons can be chosen manually by @t3dotgg in pingdotgg/t3code#5775
* fix(server): one greedy agent process no longer takes down the whole server by @t3dotgg in pingdotgg/t3code#5788
* ci: label-gated hosted-web preview deploys by @t3dotgg in pingdotgg/t3code#5465
* Add cross-platform mobile usage dashboard by @juliusmarminge in pingdotgg/t3code#5743
* fix(web): preserve desktop route during Clerk auth by @wobsoriano in pingdotgg/t3code#5770
* fix(web): match create theme and import theme buttons to the standard outline style by @UtkarshUsername in pingdotgg/t3code#5860
* fix(server): favicon resolution no longer pins the event loop by @murenovich in pingdotgg/t3code#5538
* fix(shared): bound the file-link label so bracket runs stop rescanning by @tsouth89 in pingdotgg/t3code#5782
* fix(web): thread title button no longer eats the drag area by @nathangerday in pingdotgg/t3code#5857
* fix(web): unify usage page chrome by @t3-code[bot] in pingdotgg/t3code#5823
* fix(shell): add ~/.local/bin to the Windows CLI resolver so native-installed providers are found by @arhxam in pingdotgg/t3code#5074
* fix(web): match settings search shortcut styling to command palette's by @UtkarshUsername in pingdotgg/t3code#5841
* fix(mobile): long-pressing a thread row no longer navigates into the thread by @juliusmarminge in pingdotgg/t3code#5901
* fix(server): usage no longer double-counts forked Codex sessions by @t3dotgg in pingdotgg/t3code#5887
* fix(server): sandbox user-provided SVGs by @t3dotgg in pingdotgg/t3code#5916
* fix(web): match usage titlebar text styling by @t3-code[bot] in pingdotgg/t3code#5897
* Move project settings to contextual project routes by @juliusmarminge in pingdotgg/t3code#5923
* Retain thread sidebar data when navigating to /settings so back navigation is instant by @juliusmarminge in pingdotgg/t3code#5930
* Automate production mobile EAS releases by @juliusmarminge in pingdotgg/t3code#5609
* Add settings and usage breadcrumbs by @juliusmarminge in pingdotgg/t3code#5929
* fix(web): correct model picker trigger padding by @Chrono-byte in pingdotgg/t3code#5935
* fix(web): show worktree icon in sidebar v2 by @tris203 in pingdotgg/t3code#5909
* fix(web): enable restore defaults after theme mix changes by @Lucenx9 in pingdotgg/t3code#5928
* fix(web): trait menu closes after you pick a level by @t3dotgg in pingdotgg/t3code#5879
* fix(web): align project name with headline by @carterwsmith in pingdotgg/t3code#5864
* fix(web): update pills use readable theme foregrounds by @chrisdeeming in pingdotgg/t3code#5938
* fix(web): use themed confirmation dialogs by @StiensWout in pingdotgg/t3code#5624
* fix(web): use import/export-appropriate icons for theme buttons by @UtkarshUsername in pingdotgg/t3code#5964
* fix(mobile): detect PowerShell cmdlet errors in work log rows by @myacoub91 in pingdotgg/t3code#5726
* fix(mobile): stop Android user bubbles with code blocks from overlapping by @Brechard in pingdotgg/t3code#5659
* fix(mobile): parse EAS fingerprint JSON by @juliusmarminge in pingdotgg/t3code#5991

## New Contributors
* @chrisdeeming made their first contribution in pingdotgg/t3code#5270
* @wobsoriano made their first contribution in pingdotgg/t3code#5770
* @murenovich made their first contribution in pingdotgg/t3code#5538
* @tsouth89 made their first contribution in pingdotgg/t3code#5782
* @nathangerday made their first contribution in pingdotgg/t3code#5857
* @carterwsmith made their first contribution in pingdotgg/t3code#5864
* @myacoub91 made their first contribution in pingdotgg/t3code#5726

**Full Changelog**: pingdotgg/t3code@v0.0.32...v0.0.33

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500-999 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.

1 participant