Skip to content

Open Display from the floating-bar Settings action (SBS-872) - #314

Merged
tsouth89 merged 2 commits into
mainfrom
fix/sbs-872-settings-tab-allowlists
Aug 16, 2026
Merged

Open Display from the floating-bar Settings action (SBS-872)#314
tsouth89 merged 2 commits into
mainfrom
fix/sbs-872-settings-tab-allowlists

Conversation

@tsouth89

@tsouth89 tsouth89 commented Aug 16, 2026

Copy link
Copy Markdown
Owner

Summary

FloatBar opened Settings with tab menuBar. The Settings shell only renders menu for Display, so the window landed on General. The Rust allowlist, SettingsTabId, and TAB_META were three different lists, and existing tests could not fail when the other side changed.

This aligns all three lists to the live shell tabs, sends menu from FloatBar (same as PopOutPanel Display), and types openSettingsWindow as SettingsTabId.

A user who opens Settings from the floating-bar menu now sees the Display tab.

Sweep

openSettingsWindow callers (production):

  • FloatBar.tsx: was menuBar, now menu
  • PopOutPanel.tsx: general, providers, menu
  • TrayPanel.tsx: general, about

Retired ids display, apiKeys, cookies, menuBar are no longer accepted by is_supported_settings_tab or proof-mode open-settings.

Fail-without-fix

Reverted only the production allowlist / FloatBar / SettingsTabId changes.

Frontend: 5 failed. Rust list was display/apiKeys/cookies. FloatBar spy received menuBar.

Rust: open-settings:accounts parsed as None; display was still accepted.

Restored; those tests pass.

Quality gate

Linux:

  • cargo fmt --all --check: pass
  • vitest run: 83 files, 617 passed
  • tsc --noEmit: pass
  • cargo test desktop crate: 556 passed

Not run:

  • vite production build (esbuild install script ignored on this box)
  • rust/ crate tests (this PR does not touch rust/)
  • desktop clippy -D warnings on Linux fails on pre-existing Windows-only dead code in rust/src/secure_file.rs and rust/src/updater.rs. Not introduced here.

What this makes more likely

Old proof scripts settings:apiKeys / open-settings:cookies|display|menuBar are now ignored. open-settings:accounts starts working. A future non-SettingsTabId caller fails tsc instead of opening General.

Left out

No alias remap. Unknown tabs still fall back to General. Source scan covers the three known caller files. Not runtime-reproduced on Windows.

SBS-872. Do not merge from this PR.

Note

Fix floating bar Settings action to open the Display tab using the live 'menu' tab id

  • The float bar's handleOpenSettings handler was passing 'menuBar' to openSettingsWindow, which no longer matched any live tab id, causing the Settings window to fall back to the General tab instead of Display.
  • SETTINGS_TAB_IDS in surface_target.rs is updated to replace retired ids (display, apiKeys, cookies) with live ones (accounts, notifications, menu).
  • SettingsTabId in bridge.ts drops 'menuBar', and openSettingsWindow now accepts only SettingsTabId for static checking.
  • A new cross-layer contract test suite in settingsTabs.test.ts asserts that Rust tab ids, TypeScript types, and all call sites stay in sync.
  • Behavioral Change: is_supported_settings_tab now rejects 'menuBar', 'display', 'apiKeys', and 'cookies' as invalid tab ids.

Macroscope summarized fb69eb0.

The three settings-tab lists had drifted, so FloatBar sent menuBar and the Settings shell fell back to General.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
ceiling fb69eb0 Commit Preview URL

Branch Preview URL
Aug 16 2026, 10:24 AM

@coderabbitai

coderabbitai Bot commented Aug 16, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 58 minutes

Limit details: You’ve used all 1 included review currently available under your plan. You completed 91 included PR reviews in the past 7 days; at that activity level, included reviews refill at 1 review per hour.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6abbc99a-99a7-4952-b9c5-ee3c52a8d7e2

📥 Commits

Reviewing files that changed from the base of the PR and between 5ec975c and fb69eb0.

📒 Files selected for processing (13)
  • CHANGELOG.md
  • apps/desktop-tauri/src-tauri/src/commands/tests.rs
  • apps/desktop-tauri/src-tauri/src/proof_harness.rs
  • apps/desktop-tauri/src-tauri/src/state.rs
  • apps/desktop-tauri/src-tauri/src/surface_target.rs
  • apps/desktop-tauri/src/floatbar/FloatBar.test.tsx
  • apps/desktop-tauri/src/floatbar/FloatBar.tsx
  • apps/desktop-tauri/src/lib/tauri.ts
  • apps/desktop-tauri/src/surfaces/Settings.test.ts
  • apps/desktop-tauri/src/surfaces/Settings.tsx
  • apps/desktop-tauri/src/test/raw.d.ts
  • apps/desktop-tauri/src/test/settingsTabs.test.ts
  • apps/desktop-tauri/src/types/bridge.ts

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

@github-actions

github-actions Bot commented Aug 16, 2026

Copy link
Copy Markdown

Automated review

No blocking issues found.

Resolved since the previous pass: 1.

For coding agents: fix BLOCK and FIX IF QUICK findings now; everything else is tracked or informational; never exceed one CodeRev fix round per PR.

Advisory. Findings generated by grok-subscription and muse-spark-1.2-contributor, each filtered through a 3-vote refutation panel with the changed code in evidence.

Comment thread apps/desktop-tauri/src-tauri/src/proof_harness.rs
The crate header still advertised `settings:apiKeys` and `settings:cookies`.
Both were dropped from `SETTINGS_TAB_IDS`, so `ProofConfig::from_env` logs an
unsupported target and returns None: anyone following the header never enters
proof mode and never gets a Settings window at all.

Replaces them with `settings:accounts` and `settings:menu`, and adds
`header_examples_are_live_proof_mode_values`, which reads the bullet examples
back out of this file's own source and asserts each one still parses. A retired
id cannot survive in the header again.
@tsouth89
tsouth89 merged commit a7f5cba into main Aug 16, 2026
11 of 12 checks passed
@tsouth89
tsouth89 deleted the fix/sbs-872-settings-tab-allowlists branch August 16, 2026 16:03
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