Skip to content

feat: add setting to control default project expansion on startup#1923

Open
alecramos-sudo wants to merge 2 commits intopingdotgg:mainfrom
alecramos-sudo:feat/sidebar-projects-default-collapsed
Open

feat: add setting to control default project expansion on startup#1923
alecramos-sudo wants to merge 2 commits intopingdotgg:mainfrom
alecramos-sudo:feat/sidebar-projects-default-collapsed

Conversation

@alecramos-sudo
Copy link
Copy Markdown

@alecramos-sudo alecramos-sudo commented Apr 11, 2026

Summary

Closes #1910

  • Projects now default to collapsed in the sidebar on restart, fixing the issue where all projects expand and make the sidebar unreadable
  • Adds a new "Expand projects on startup" toggle in Settings > General so users can choose their preferred default
  • The setting is persisted as a client-side preference via localStorage

Changes

  • packages/contracts/src/settings.ts — new sidebarProjectsDefaultExpanded boolean in ClientSettingsSchema (defaults to false)
  • apps/web/src/uiStateStore.tssyncProjects, toggleProject, setProjectExpanded accept the setting as defaultExpanded parameter
  • apps/web/src/components/Sidebar.tsx — uses the setting as the fallback for expansion state
  • apps/web/src/components/settings/SettingsPanels.tsx — settings UI toggle with reset support
  • apps/web/src/environments/runtime/service.ts — passes the setting to syncProjects calls
  • apps/web/src/hooks/useSettings.ts — exports getClientSettingsSnapshot for non-React contexts

Test plan

  • All existing tests pass (764/764)
  • Typecheck passes across all 8 packages
  • Lint passes with 0 errors
  • Build succeeds (web + desktop)
  • Desktop app launches locally
  • Verify projects default to collapsed on fresh start
  • Verify toggling the setting to "on" restores the old always-expanded behavior
  • Verify manually expanded/collapsed projects persist across restarts regardless of the setting

🤖 Generated with Claude Code


Note

Low Risk
Low risk: adds a new client-side setting and threads it through sidebar/UI state defaults; main impact is a behavioral default change for project expansion on startup.

Overview
Projects in the sidebar now default to the user’s preferred expansion state on startup instead of always expanding; the new default is collapsed.

Adds a new client setting sidebarProjectsDefaultExpanded (persisted with existing client settings) and exposes it as an “Expand projects on startup” toggle in General settings with reset support. The sidebar and uiStateStore now use this setting as the fallback when no per-project expansion state has been stored, including during project syncing and when toggling a project.

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

Note

Add setting to control default project expansion on sidebar startup

  • Adds a sidebarProjectsDefaultExpanded boolean field to ClientSettingsSchema (default: false), replacing the previously hardcoded true default throughout the sidebar and UI state store.
  • Exposes a toggle in General Settings so users can choose whether projects are expanded or collapsed when the app starts.
  • Updates syncProjects and toggleProject in uiStateStore.ts to accept a defaultExpanded parameter, and threads the client setting value through from runtime/service.ts and Sidebar.tsx.
  • Behavioral Change: Projects that had no persisted expansion state previously defaulted to expanded; they now default to collapsed unless the user enables the new setting.

Macroscope summarized 9c493cf.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 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: fe5621a7-bdc9-4f69-b774-17dedf1713ee

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

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 size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list. labels Apr 11, 2026
…ngdotgg#1910)

Projects now default to collapsed in the sidebar on restart. A new
"Expand projects on startup" toggle in Settings > General lets users
restore the previous always-expanded behavior.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alecramos-sudo alecramos-sudo force-pushed the feat/sidebar-projects-default-collapsed branch from f9e789a to cb8887c Compare April 11, 2026 07:28
The guard used `?? defaultExpanded` (defaulting to false) to compute
current state, but callers without the setting would short-circuit
incorrectly when the user's preference was true. Using strict equality
(===) against the explicit state avoids the mismatch entirely.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp bot commented Apr 11, 2026

Approvability

Verdict: Approved

Adds a new user preference setting for sidebar project expansion with straightforward implementation following existing patterns. Changes are self-contained to UI behavior, include appropriate tests, and don't affect security or critical paths.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: Default projects to be collapsed or open setting

1 participant