Skip to content

feat(tabs): add option to show open tabs across all collections#8727

Open
celian-hamon wants to merge 3 commits into
usebruno:mainfrom
celian-hamon:feat/tabs-across-collections
Open

feat(tabs): add option to show open tabs across all collections#8727
celian-hamon wants to merge 3 commits into
usebruno:mainfrom
celian-hamon:feat/tabs-across-collections

Conversation

@celian-hamon

@celian-hamon celian-hamon commented Jul 22, 2026

Copy link
Copy Markdown

Adds a beta preference (toggled in Preferences > Display) that keeps open tabs from every collection visible in the tab bar together, instead of hiding them when switching the active collection.

Closes #5070, closes #5807

image image image

Description

Contribution Checklist:

  • I've used AI significantly to create this pull request
  • The pull request only addresses one issue or adds one feature.
  • The pull request does not introduce any breaking changes
  • I have added screenshots or gifs to help explain the change if applicable.
  • I have read the contribution guidelines.
  • Create an issue and link to the pull request.

Note: Keeping the PR small and focused helps make it easier to review and merge. If you have multiple changes you want to make, please consider submitting them as separate pull requests.

Publishing to New Package Managers

Please see here for more information.

Summary by CodeRabbit

  • New Features
    • Added a beta toggle to show open request tabs from all collections together.
    • Added a new Tabs setting under Display preferences and wired it to saved preferences.
    • Enabled cross-collection tab scoping across tab navigation, hotkeys, and sidebar tab rendering.
  • Improvements
    • Improved “close” and “close saved” behavior for tabs belonging to different collections, including better tab labeling with collection context.
  • Chores
    • Added the new beta flags to default preference settings and validation.

Adds a beta preference (toggled in Preferences > Display) that keeps
open tabs from every collection visible in the tab bar together, instead
of hiding them when switching the active collection.

Closes usebruno#5070, closes usebruno#5807
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review 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: Pro

Run ID: e4fc14f0-c266-430b-827a-9b77cd8f1e39

📥 Commits

Reviewing files that changed from the base of the PR and between b6e6e46 and f9e52ee.

📒 Files selected for processing (1)
  • packages/bruno-app/src/components/RequestTabs/RequestTab/index.js
🚧 Files skipped from review as they are similar to previous changes (1)
  • packages/bruno-app/src/components/RequestTabs/RequestTab/index.js

Walkthrough

Adds a beta preference for showing tabs across collections, updates tab rendering and close behavior with collection-aware handling, and expands related hotkeys to operate across all open tabs when enabled.

Changes

Tabs Across Collections

Layer / File(s) Summary
Preference contract and controls
packages/bruno-app/src/utils/beta-features.js, packages/bruno-electron/src/store/preferences.js, packages/bruno-app/src/components/Preferences/{Beta,Display}/*
Registers, persists, validates, and exposes the new tabs-across-collections beta preference.
Cross-collection tab display and closing
packages/bruno-app/src/components/RequestTabs/index.js, packages/bruno-app/src/components/RequestTabs/RequestTab/index.js
Displays eligible tabs from multiple collections, passes each tab’s collection context, and saves unsaved changes against the correct collection before closing.
Cross-collection hotkey scope
packages/bruno-app/src/providers/Hotkeys/index.js
Applies the beta setting to tab navigation, movement, and close-all hotkeys, including updated effect dependencies.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant DisplayPreferences
  participant ReduxPreferences
  participant RequestTabs
  participant Hotkeys
  DisplayPreferences->>ReduxPreferences: save tabs-across-collections preference
  RequestTabs->>ReduxPreferences: read beta preference
  User->>RequestTabs: select or close tab
  RequestTabs->>RequestTabs: build displayed tabs and resolve collection
  Hotkeys->>RequestTabs: navigate, move, or close scoped tabs
Loading

Suggested reviewers: bijin-bruno, helloanoop

Poem

Tabs now gather, collection-wide,
With saved drafts safely by their side.
Hotkeys dance from near to far,
Every open request a star.
One beta switch, and tabs unite.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: showing tabs across collections.
Linked Issues check ✅ Passed The changes implement the requested cross-collection tab visibility and supporting preference/persistence work for [#5070, #5807].
Out of Scope Changes check ✅ Passed All listed changes support the cross-collection tabs feature; no unrelated scope stands out.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ 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.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/bruno-app/src/components/RequestTabs/index.js`:
- Around line 172-176: Update RequestTabMenu.handleCloseSavedTabs() to derive
saved-tab IDs from collectionRequestTabs rather than only collection.items,
resolving each displayed tab’s collection consistently with the other bulk-close
handlers so saved tabs from all displayed collections are included.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 818e140e-3f82-43df-8182-77b3ea2b0af1

📥 Commits

Reviewing files that changed from the base of the PR and between 948a34a and b6e6e46.

📒 Files selected for processing (7)
  • packages/bruno-app/src/components/Preferences/Beta/index.js
  • packages/bruno-app/src/components/Preferences/Display/index.js
  • packages/bruno-app/src/components/RequestTabs/RequestTab/index.js
  • packages/bruno-app/src/components/RequestTabs/index.js
  • packages/bruno-app/src/providers/Hotkeys/index.js
  • packages/bruno-app/src/utils/beta-features.js
  • packages/bruno-electron/src/store/preferences.js

Comment thread packages/bruno-app/src/components/RequestTabs/index.js
Derive Close Saved target ids from the displayed tab list, resolving each tab's own collection, so in tabs-across-collections mode it closes saved tabs from every shown collection instead of only the menu-owner's.
@theotruvelot-kazaar

Copy link
Copy Markdown

LGTM

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Show open tabs from multiple collections Open multiple tabs from multiple collections

2 participants