Skip to content

revert(web): remove the compact sidebar - #11685

Merged
maria-rcks merged 1 commit into
pingdotgg:mainfrom
maria-rcks:t3code/revert-compact-sidebar
Sep 14, 2026
Merged

revert(web): remove the compact sidebar#11685
maria-rcks merged 1 commit into
pingdotgg:mainfrom
maria-rcks:t3code/revert-compact-sidebar

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Removes the compact sidebar: the collapsed icon rail and the dense thread rows, plus the Appearance → Sidebar setting that drove them. Reverts #11525, #9417, #11644 and #11652.

compactSidebarEnabled and sidebarCompactThreadRows are dropped from ClientSettings. Decoding already ignores unknown keys, so anyone who had either flag on lands on the default sidebar with no error — the same path the retired sidebar v2 beta keys took. packages/contracts/src/settings.test.ts now asserts that. A sidebar left collapsed goes back to the pre-existing offcanvas behaviour and still reopens from the titlebar trigger.

#11595 (sparse shelves stay pinned to the bottom) was written on top of the rail, so it is kept with its compact branches collapsed to the expanded case.

Evidence

Settings → Appearance, same scroll position and data. The Sidebar section is gone:

Settings Appearance before, showing the Sidebar section with the Compact sidebar row

Settings Appearance after, Motion running straight into Typography

Existing users: set Compact sidebar to "Both", confirmed compactSidebarEnabled: true and sidebarCompactThreadRows: true were written to t3code:client-settings:v1, then loaded the reverted build without clearing storage.

Sidebar with compact mode on, dense one-line thread rows

Same sidebar after the revert with the stale keys still in localStorage, full thread cards, app loads normally

Checks

vp run --filter @t3tools/web --filter @t3tools/contracts --filter @t3tools/desktop typecheck clean, vp lint on the 19 changed files 0 errors, and 218 tests pass across settings.test.ts, timestampFormat.test.ts, DesktopClientSettings.test.ts, ui/sidebar.test.tsx and Sidebar.drag.test.ts.

Mobile has no compact sidebar surface, so nothing to change there.

Written by claude-opus-5[1m] on behalf of Maria

Summary by CodeRabbit

  • Changes
    • Removed the compact, icon-only sidebar mode and its related settings.
    • Sidebar content, navigation, search, project controls, and thread details now use the full layout consistently.
    • Removed the compact sidebar preview and settings search entry.
    • Older compact-sidebar preferences are discarded when settings are loaded.
    • Sidebar thread completion times are no longer displayed.
    • Relative-time formatting now always uses the current time.

@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 Sep 14, 2026
Reverts the compact sidebar rail and compact thread rows (pingdotgg#11525, pingdotgg#9417,
pingdotgg#11644, pingdotgg#11652). The feature added a collapsed icon rail and a denser
thread list behind an Appearance > Sidebar setting; we are dropping it.

The persisted `compactSidebarEnabled` and `sidebarCompactThreadRows`
client settings keys go away with it. Client settings decode drops
unknown keys, so anyone who had either flag turned on falls back to the
default sidebar with no error, same as the retired sidebar v2 beta keys.
A collapsed sidebar returns to the pre-existing offcanvas behavior and
is still reopened from the titlebar trigger.

Keeps pingdotgg#11595 (sparse shelves stay at the bottom), which was written on
top of the rail: its `compact` branches collapse to the expanded case.
@maria-rcks
maria-rcks force-pushed the t3code/revert-compact-sidebar branch from dd634e4 to 4c1bcec Compare September 14, 2026 04:12
@macroscopeapp

macroscopeapp Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This removes a user-facing compact-sidebar mode across the production sidebar, settings UI, persisted client-settings schema, drag-and-drop behavior, and titlebar layout. It also changes the resulting experience for existing opted-in users, making the broad runtime and product-default impact appropriate for human review.

You can add or adjust custom eligibility rules. Learn more.

@coderabbitai

coderabbitai Bot commented Sep 14, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: f9fc1ec2-976a-4d32-acfe-25ffb766529e

📥 Commits

Reviewing files that changed from the base of the PR and between 1bbca0e and 4c1bcec.

📒 Files selected for processing (22)
  • apps/desktop/src/settings/DesktopClientSettings.test.ts
  • apps/web/src/components/AppSidebarLayout.tsx
  • apps/web/src/components/LegacySidebar.tsx
  • apps/web/src/components/Sidebar.drag.ts
  • apps/web/src/components/Sidebar.tsx
  • apps/web/src/components/ThreadStatusIndicators.tsx
  • apps/web/src/components/settings/CompactSidebarPreview.tsx
  • apps/web/src/components/settings/SettingsPanels.tsx
  • apps/web/src/components/settings/SettingsSidebarNav.tsx
  • apps/web/src/components/settings/settingsSearch.ts
  • apps/web/src/components/sidebar/SidebarChrome.tsx
  • apps/web/src/components/sidebar/SidebarCompletedTime.test.tsx
  • apps/web/src/components/sidebar/SidebarCompletedTime.tsx
  • apps/web/src/components/sidebar/SidebarThreadHeader.tsx
  • apps/web/src/components/sidebar/SidebarUpdatePill.tsx
  • apps/web/src/components/ui/sidebar.tsx
  • apps/web/src/hooks/useSettings.ts
  • apps/web/src/timestampFormat.test.ts
  • apps/web/src/timestampFormat.ts
  • apps/web/src/workspaceTitlebar.ts
  • packages/contracts/src/settings.test.ts
  • packages/contracts/src/settings.ts
💤 Files with no reviewable changes (10)
  • apps/web/src/components/settings/settingsSearch.ts
  • apps/web/src/timestampFormat.test.ts
  • apps/web/src/hooks/useSettings.ts
  • apps/web/src/components/sidebar/SidebarCompletedTime.tsx
  • apps/desktop/src/settings/DesktopClientSettings.test.ts
  • apps/web/src/components/ui/sidebar.tsx
  • apps/web/src/components/sidebar/SidebarCompletedTime.test.tsx
  • apps/web/src/components/settings/CompactSidebarPreview.tsx
  • packages/contracts/src/settings.ts
  • apps/web/src/components/settings/SettingsPanels.tsx

Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The PR removes compact sidebar settings and rendering paths. It standardizes sidebar layouts, sorting, controls, and labels, removes related settings UI and APIs, updates schemas, and simplifies relative-time formatting.

Changes

Compact sidebar removal

Layer / File(s) Summary
Settings contract
packages/contracts/src/settings.ts, packages/contracts/src/settings.test.ts, apps/desktop/src/settings/DesktopClientSettings.test.ts
The compact sidebar settings were removed from schemas, patches, fixtures, and decoding expectations.
Settings UI
apps/web/src/components/settings/*, apps/web/src/hooks/useSettings.ts
Compact sidebar controls, preview content, search entries, reset handling, and the related hook were removed.
Sidebar rendering and interactions
apps/web/src/components/AppSidebarLayout.tsx, apps/web/src/components/Sidebar.tsx, apps/web/src/components/Sidebar.drag.ts, apps/web/src/components/ThreadStatusIndicators.tsx, apps/web/src/components/sidebar/SidebarThreadHeader.tsx
Sidebar rendering now uses standard full and slim layouts. Compact row branches, footer placement, sorting options, icon-only controls, and compact status variants were removed.
Legacy sidebar and shell
apps/web/src/components/LegacySidebar.tsx, apps/web/src/components/sidebar/SidebarChrome.tsx, apps/web/src/components/sidebar/SidebarUpdatePill.tsx, apps/web/src/components/ui/sidebar.tsx, apps/web/src/workspaceTitlebar.ts
Icon-collapsed styling, labels, tooltips, fixed footer support, and compact-specific project interactions were removed.
Relative-time formatting
apps/web/src/timestampFormat.ts, apps/web/src/timestampFormat.test.ts, apps/web/src/components/sidebar/SidebarCompletedTime.tsx, apps/web/src/components/sidebar/SidebarCompletedTime.test.tsx
Relative-time functions now use the current time internally. The completed-time component and explicit-clock tests were removed.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~45 minutes

Change: Bug fix

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to 4c1bc

The compact-sidebar removal preserves the offcanvas fallback and ignores retired settings keys without an identified regression. The change is ready to merge.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 23.53% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 17 functions across 12 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the main change: removing the compact sidebar as part of a web revert.
Description check ✅ Passed The description clearly explains the compact-sidebar removal, migration behavior, retained sparse-shelves behavior, UI impact, evidence, and validation results. It does not use every template heading …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@maria-rcks
maria-rcks merged commit d81278a into pingdotgg:main Sep 14, 2026
24 checks passed
faw01 pushed a commit to faw01/t3code that referenced this pull request Sep 14, 2026
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Sep 14, 2026
## What's Changed
* fix(web): disconnect offline servers from threads by @t3dotgg in pingdotgg/t3code#11671
* feat(web): flatten the connections page into one environments list by @t3dotgg in pingdotgg/t3code#11672
* fix(mobile): keep usage widget rows consistently sized by @juliusmarminge in pingdotgg/t3code#11669
* feat(server): add reusable auth token for dev worktrees by @t3dotgg in pingdotgg/t3code#8606
* feat(settings): choose how responses stream, with a warning on legacy token mode by @t3dotgg in pingdotgg/t3code#11678
* revert(web): remove the compact sidebar by @maria-rcks in pingdotgg/t3code#11685
* build(desktop): bundle the main process and stage only its native externals by @juliusmarminge in pingdotgg/t3code#11410
* build(server): make the CLI bundle loadable as a Node single-executable by @juliusmarminge in pingdotgg/t3code#11316
* ci(release): build, sign, and publish self-contained CLI archives by @juliusmarminge in pingdotgg/t3code#11317
* feat(server): install preview runtimes from release archives by @juliusmarminge in pingdotgg/t3code#11318
* feat(ssh): run preview builds on remotes from the release archive by @juliusmarminge in pingdotgg/t3code#11319
* feat(cli): add t3 update for self-contained installs by @juliusmarminge in pingdotgg/t3code#11451
* feat(server): manage runtimes as release archives only, never from npm by @juliusmarminge in pingdotgg/t3code#11510
* feat(desktop): run the WSL backend from the Linux CLI archive by @juliusmarminge in pingdotgg/t3code#11511
* ci(release): build CLI archives for five targets, each on its own architecture by @juliusmarminge in pingdotgg/t3code#11605
* ci(release): build the JS bundle once and run every platform and architecture in parallel by @juliusmarminge in pingdotgg/t3code#11606
* feat(release): publish npx t3 as a launcher over per-platform executable packages by @juliusmarminge in pingdotgg/t3code#11607
* feat(cli): add t3 uninstall for self-contained installs by @juliusmarminge in pingdotgg/t3code#11659
* feat(web): show each worktree setup step and let users cancel it by @t3dotgg in pingdotgg/t3code#11372
* fix(server): skip device hosts that resolve to the local machine by @juliusmarminge in pingdotgg/t3code#11698
* fix(web): test device hosts across selected environments by @juliusmarminge in pingdotgg/t3code#11699
* feat(desktop): allow disabling the local environment by @juliusmarminge in pingdotgg/t3code#9194
* feat(cli): add t3 service restart and make t3 update repoint the service eagerly by @juliusmarminge in pingdotgg/t3code#11702
* docs(claude): clarify OpenRouter model selection by @shivamhwp in pingdotgg/t3code#11369


**Full Changelog**: pingdotgg/t3code@v0.0.41-nightly.20260914.1687...v0.0.41-nightly.20260914.1700

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.41-nightly.20260914.1700
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