Skip to content

feat(desktop): right pane area is on for everyone - #9008

Merged
saddlepaddle merged 1 commit into
mainfrom
saddlepaddle/right-pane-area-always-on
Oct 28, 2026
Merged

saddlepaddle merged 1 commit into
mainfrom
saddlepaddle/right-pane-area-always-on

Conversation

@saddlepaddle

@saddlepaddle saddlepaddle commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

What

The right pane area is on for everyone who updates. It no longer reads the right-pane-area PostHog flag, and the Settings → Experimental "Right pane area" switch is gone.

  • Older app versions are unaffected: they still read the flag, which stays where it is in PostHog.
  • People who had turned the switch off get the right pane on.

How

  • useRightPaneAreaEnabled() returns true. Its callers still branch on it; deleting the old layout code (sidebar Files / Changes / Review tabs, files and diffs in the center) is a follow-up PR.
  • Removed: the opt-out store, the Settings switch and its search entry, the flag threading through settings search counts, and FEATURE_FLAGS.RIGHT_PANE_AREA.
  • The store's right-pane-area localStorage key moves to DEAD_KEYS, so the boot sweep deletes it.
  • Catalogs: the switch's two strings drop out of every locale.

Verification

  • Typecheck clean (only the existing auth typing errors in packages/auth / packages/trpc); Biome clean; check:i18n clean.
  • Settings search and persisted-keys tests: 112 pass.
  • Dev app over CDP:
    • with the flag forced off in PostHog, the right pane still renders;
    • the stored right-pane-area key is gone after boot;
    • Settings → Experimental lists only the inline ports, workspace agents and wait-for-setup switches.

Summary by cubic

The right pane area is now on for everyone: it no longer reads the right-pane-area PostHog flag, and the Settings → Experimental switch is gone.

Changes

  • Older app versions are unaffected because the flag stays in PostHog.
  • People who had turned the switch off now get the right pane on.
  • useRightPaneAreaEnabled() always returns true; callers keep branching on it until the old layout is deleted in a follow-up.
  • Removed the opt-out store, the switch and its search entry, the flag threading through settings search counts, and FEATURE_FLAGS.RIGHT_PANE_AREA.
  • The right-pane-area localStorage key moved to DEAD_KEYS, so the boot sweep deletes it.

Written for commit b2018d6. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • Changes
    • The right-pane layout is no longer configurable in Experimental settings. Files, diffs, and browser views continue to use the right pane, while terminals and chats remain in the center.
    • The right-pane option has also been removed from settings search.

Drops the right-pane-area PostHog flag, the Settings → Experimental
switch and its saved choice (now a dead key). The old layout code still
branches on useRightPaneAreaEnabled() until it is deleted.
@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Caution

Review failed

The pull request is closed.

Walkthrough

The pull request removes the Right Pane Area feature flag and persisted setting. It also removes the experimental settings control, its settings-search entry and filtering, and related localization messages.

Changes: Right Pane Area Removal

Layer / File(s) Summary
Remove feature flag and persisted state
packages/shared/src/constants.ts, apps/desktop/src/renderer/stores/right-pane-area.ts, apps/desktop/src/renderer/lib/persisted-keys/persisted-keys.ts, apps/desktop/src/renderer/lib/persisted-keys/persisted-key-registry.test-data.ts
The RIGHT_PANE_AREA feature flag is removed. useRightPaneAreaEnabled now returns true, and the persisted key is added to DEAD_KEYS and removed from the registry test data.
Remove settings entry and search support
apps/desktop/src/renderer/routes/_authenticated/settings/experimental/components/ExperimentalSettings/components/ExperimentalSettingsList/ExperimentalSettingsList.tsx, apps/desktop/src/renderer/routes/_authenticated/settings/utils/settings-search/settings-search.ts, apps/desktop/src/renderer/routes/_authenticated/settings/utils/settings-search/settings-search.test.ts, apps/desktop/src/renderer/routes/_authenticated/settings/layout.tsx, apps/desktop/src/renderer/routes/_authenticated/settings/components/SettingsSidebar/SettingsSidebar.tsx, packages/i18n/locales/*/messages.po
The experimental setting and its search entry are removed. Settings search callers no longer pass the right-pane flag. The related localized labels and descriptions are removed.

Priority: Not assessed

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Suggested reviewers: kitenite

Merge Risk: Minimal · up to b2018

The right pane becomes available to everyone, and the old setting is removed. No merge-blocking risk was identified.

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@expo

expo Bot commented Oct 28, 2026

Copy link
Copy Markdown

No installed development build can load this pull request as an update: its native fingerprint is 9d26f603f51c and no development build has it. Add the mobile-build label to build one.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

🧹 Preview Cleanup Complete

The following preview resources have been cleaned up:

  • ✅ Neon database branch

Thank you for your contribution! 🎉

@saddlepaddle
saddlepaddle merged commit 794c9ff into main Oct 28, 2026
19 of 20 checks passed
@greptile-apps

greptile-apps Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The PR changes the right-pane experience for all updated desktop users.

The PR appears safe to merge, with one non-blocking comment cleanup.

Findings

  1. P2 Flag description is now misleading ▶
Fix with agent prompt
### Issue 1
packages/shared/src/constants.ts:200
The comment for the removed `RIGHT_PANE_AREA` flag now sits above `CLOUD_WORKSPACES`. It describes layout behavior that this flag does not control, which could confuse someone reading the flag list. Remove the leftover comment too.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Summary

The PR enables the right pane for everyone and removes its experimental switch.

  • Updated desktop apps always enable the right pane area.

Reviews (1) · Last reviewed commit: "feat(desktop): right pane area is on for..." · Reviewed by Greptile

@@ -198,7 +198,6 @@ export const FEATURE_FLAGS = {
* Replaces the v2 workspace's right sidebar with a second pane area that
* holds Files, Changes, Review, Browser and Chat panes.
*/

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.

P2 Flag description is now misleading

The comment for the removed RIGHT_PANE_AREA flag now sits above CLOUD_WORKSPACES. It describes layout behavior that this flag does not control, which could confuse someone reading the flag list. Remove the leftover comment too.

Prompt To Fix With AI
This is a comment left during a code review.
Path: packages/shared/src/constants.ts
Line: 200

Comment:
**Flag description is now misleading**

The comment for the removed `RIGHT_PANE_AREA` flag now sits above `CLOUD_WORKSPACES`. It describes layout behavior that this flag does not control, which could confuse someone reading the flag list. Remove the leftover comment too.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Kitenite added a commit that referenced this pull request Oct 30, 2026
…t change (#9149)

* fix(desktop): tell panes in a closed right pane that they are hidden

Since #9008 the right pane stays mounted when closed. KeptTab provided
TabVisibilityContext = true to its active tab regardless of its parent,
so a hidden Changes pane kept re-rendering on every git change. SidebarSlide
now provides !hidden, and KeptTab combines it with its own visibility.

Refs #9136

Co-Authored-By: Claude <noreply@anthropic.com>

* perf(desktop): build the base-branch list only while its popover is open

BaseBranchSelector built one row per branch on every render, closed or
not, because the list was evaluated before PopoverContent decided not to
mount. With thousands of branches that ran on every git change.

Refs #9136

Co-Authored-By: Claude <noreply@anthropic.com>

* perf(desktop): persist the query cache at most every 10s

The async persister re-serializes the whole persisted set with superjson
on every cache event, throttled to 1s, even for queries that are never
persisted. Git churn kept that running about once a second.

Refs #9136

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(desktop): remember a missing GitHub login for 30s

viewerGithub.status runs before every PR read. Without a login, each call
spawned `git credential fill` and `gh auth token` again.

Refs #9136

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(desktop): time the missing-login window with a monotonic clock

A backward wall-clock correction made the elapsed time negative and kept
PR panes on the cloud login until the clock caught up.

Co-Authored-By: Claude <noreply@anthropic.com>

* test(panes): cover kept-tab visibility under a hidden parent

TabVisibilityScope holds the rule KeptTab applies: a pane is visible only
while its tab and every parent are. The test fails if the scope goes back
to overriding its parent.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
saddlepaddle added a commit that referenced this pull request Nov 1, 2026
The right pane area is on for everyone (#9008) and useRightPaneAreaEnabled
always returned true, so every branch for the old layout was dead code.

Remove the old right sidebar (WorkspaceSidebar, its header and PR
header), the sidebar tab state (setWorkspaceSidebarTab,
rowlessSidebarTabStore, sidebarState.activeTab), the center Changes pane
and its changesOpenTarget setting, ChangesControl with ShipControl and
PRStatusGroup, V2WorkspaceOpenInButton, V2WorkspaceRunButton, the old
AddTabMenu items, the right-pane-area flag store, the user preference
fields rightSidebarOpen, rightSidebarTab and rightSidebarWidth, and the
file pane branches for files in the center area.

Hooks and components lose the flag parameters: useWorkspaceRightPane,
useRightPaneMode, useRightPaneAreaLifecycle, usePaneAreaMoveActions,
WorkspaceSplitLayout, SidebarSlide, WorkspaceActivityMenu,
V2NotificationController and LinkTierMapper.

The tab hooks and FilesTab under WorkspaceSidebar/ stay: the right pane
tabs still import them.

This branch was previously deployed

1 inactive deployment
preview — b2018d69 Deployed Oct 28, 2026 by saddlepaddle via Deploy Marketing #13069
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.

1 participant