Skip to content

fix: collection already opened in other workspace#6574

Merged
bijin-bruno merged 3 commits intousebruno:mainfrom
naman-bruno:bugfix/open-collection
Jan 1, 2026
Merged

fix: collection already opened in other workspace#6574
bijin-bruno merged 3 commits intousebruno:mainfrom
naman-bruno:bugfix/open-collection

Conversation

@naman-bruno
Copy link
Collaborator

@naman-bruno naman-bruno commented Dec 31, 2025

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

  • Bug Fixes

    • Prevents duplicate collection processing and opening across startup and workspace updates.
    • Ensures collections are correctly attached to the active workspace when appropriate.
  • Refactor

    • Streamlines collection-open flow to rely on up-to-date state and avoid stale lookups.
    • Adds dev-mode guard to avoid duplicate renderer-ready processing.
  • Behavior Change

    • Stops showing a toast for a specific duplicate-open event.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 31, 2025

Walkthrough

Removed renderer IPC toast for "collection already opened"; added deduplication and workspace-membership checks when opening collections; reorganized main-process collection loading and renderer-ready workspace initialization to avoid duplicate processing.

Changes

Cohort / File(s) Summary
Frontend IPC
packages/bruno-app/src/providers/App/useIpcEvents.js
Removed main:collection-already-opened listener and its unregister/cleanup — renderer no longer reacts with a toast for that IPC event.
Frontend collection actions
packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
openCollectionEvent now: deduplicates by pathname, checks current Redux state for membership using a fresh currentState ref, short-circuits with toast if already in active workspace, calls IPC to add-to-workspace if present but not attached, or creates + validates a new collection then attaches before resolving.
Workspace frontend flows
packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
Deduplicates collection path lists before calling open routines (guards against duplicate opens/toasts).
Main: collection loading
packages/bruno-electron/src/app/collections.js
Reworked openCollection control flow: moved full load/transform/stats/emit into the non-watcher path, adjusted existing-watcher branch to avoid re-emitting collection-opened, and added dedupe for openCollectionsByPathname via seenPaths.
Main: renderer/workspace init
packages/bruno-electron/src/ipc/workspace.js
Added dev-mode rendererReadyProcessed guard, track defaultWorkspacePath, process default workspace once and skip it in subsequent lastOpenedWorkspaces iteration to prevent duplicate handling.
Workspace utils / defaults
packages/bruno-electron/src/store/default-workspace.js
packages/bruno-electron/src/utils/workspace-config.js
Added normalization-based deduplication for lastOpenedCollections/getWorkspaceCollections to avoid duplicate collection paths in workspace configs.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Renderer as App (Renderer)
    participant Redux as Redux Store
    participant IPC as Renderer↔Main IPC
    participant Main as Electron Main
    participant FS as File System

    User->>Renderer: request open collection (path)
    Renderer->>Redux: lookup collection by pathname
    alt Exists & in active workspace
        Redux-->>Renderer: found & in workspace
        Renderer->>User: show "already opened" toast (renderer)
    else Exists but not in workspace
        Renderer->>IPC: add-collection-to-workspace (path)
        IPC->>Main: add collection to active workspace
        Main-->>IPC: success
        IPC-->>Renderer: success -> show added toast
    else Not in Redux (new collection)
        Renderer->>IPC: request openCollection (path)
        IPC->>Main: openCollection (path)
        Main->>FS: read config, compute uid, merge ignores, transform, gather stats
        Main-->>IPC: emit collection-opened
        IPC-->>Renderer: collection-opened
        Renderer->>Redux: create collection state & attach to workspace
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • PR #6331: Overlaps with changes to openCollectionEvent and collection/opening logic.
  • PR #6495: Overlaps with ipc/workspace.js and renderer-ready / default-workspace handling.
  • PR #6383: Related to workspace collection deduplication/path-handling in workspace-config.

Suggested reviewers

  • helloanoop
  • lohit-bruno
  • bijin-bruno

Poem

📂 Paths trimmed and duplicates gone,
Renderer hushes the echoed song.
Main mindfully opens, watches set,
Redux keeps membership neat and met.
A tidy workspace — roll on, commit! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (3 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: handling the case where a collection is already opened in another workspace.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js (1)

2269-2293: Fire-and-forget IPC call when adding existing collection to workspace.

The IPC call to renderer:add-collection-to-workspace (Lines 2280-2288) is not awaited before resolve() is called on Line 2291. If the caller expects the collection to be in the workspace after the promise resolves, this could cause race conditions. Consider awaiting the IPC call:

🔎 Proposed fix to await the IPC call
     if (activeWorkspace) {
       const workspaceCollection = {
         name: brunoConfig.name,
         path: pathname
       };

-      ipcRenderer
+      await ipcRenderer
         .invoke('renderer:add-collection-to-workspace', activeWorkspace.pathname, workspaceCollection)
         .then(() => {
           toast.success('Collection added to workspace');
         })
         .catch((err) => {
           console.error('Failed to add collection to workspace', err);
           toast.error('Failed to add collection to workspace');
         });
     }

     resolve();
-    return;
+    return;
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ab04850 and 21a1f03.

📒 Files selected for processing (4)
  • packages/bruno-app/src/providers/App/useIpcEvents.js
  • packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-electron/src/ipc/workspace.js
💤 Files with no reviewable changes (1)
  • packages/bruno-app/src/providers/App/useIpcEvents.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
  • packages/bruno-electron/src/ipc/workspace.js
🧠 Learnings (2)
📚 Learning: 2025-12-16T07:16:23.647Z
Learnt from: sanish-bruno
Repo: usebruno/bruno PR: 6090
File: tests/scripting/hooks/init-user-data/ui-state-snapshot.json:1-8
Timestamp: 2025-12-16T07:16:23.647Z
Learning: For e2e tests in the bruno repository: Collections that are shared between CLI and UI tests (comprehensive test suites testing core functionality) should be placed in `packages/bruno-tests/` to avoid duplication. The `tests/**/fixtures/collection` pattern should be used for test-specific collections that test particular UI behaviors or are specific to a single test file.

Applied to files:

  • packages/bruno-electron/src/app/collections.js
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.

Applied to files:

  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js
  • packages/bruno-electron/src/ipc/workspace.js
🧬 Code graph analysis (3)
packages/bruno-electron/src/app/collections.js (1)
packages/bruno-electron/src/utils/filesystem.js (4)
  • getCollectionStats (270-308)
  • size (271-271)
  • size (415-415)
  • filesCount (272-272)
packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js (2)
packages/bruno-app/src/providers/ReduxStore/slices/workspaces/index.js (1)
  • existingCollection (53-54)
packages/bruno-app/src/utils/common/path.js (1)
  • normalizePath (166-169)
packages/bruno-electron/src/ipc/workspace.js (2)
packages/bruno-electron/src/utils/workspace-config.js (1)
  • defaultWorkspacePath (500-500)
packages/bruno-electron/src/store/default-workspace.js (1)
  • defaultWorkspaceManager (255-255)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: CLI Tests
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: Unit Tests
  • GitHub Check: SSL Tests - Windows
🔇 Additional comments (7)
packages/bruno-electron/src/ipc/workspace.js (2)

642-644: Skipping default workspace re-processing looks correct.

The logic correctly avoids emitting duplicate main:workspace-opened events for the default workspace. Path comparison via strict equality (===) should work assuming paths are consistently formatted. If path casing or separators vary (e.g., Windows), consider normalizing paths before comparison.


612-619: The guard pattern is appropriate; no changes needed.

registerWorkspaceIpc is invoked only once in the codebase (index.js:310), so the rendererReadyProcessed flag effectively guards the setup logic from duplicate execution when main:renderer-ready is emitted multiple times. The current approach using ipcMain.on with a closure-scoped flag is correct; ipcMain.once would be inappropriate since the handler needs to process events each time.

packages/bruno-electron/src/app/collections.js (2)

101-120: Existing watcher path now sends collection info without ipcMain.emit.

When the watcher already exists, the collection is already loaded in the app. This branch correctly sends main:collection-opened to the renderer for workspace association but skips ipcMain.emit. This aligns with the PR goal of preventing duplicate processing. The early return structure is clean.


122-138: New collection path includes full initialization and IPC emission.

The logic correctly:

  1. Fetches config, generates UID
  2. Merges default ignores (node_modules, .git) with user config using Set for deduplication
  3. Transforms config and gathers stats
  4. Emits to both renderer (webContents.send) and internal IPC (ipcMain.emit)

The ipcMain.emit on Line 138 triggers workspace/collection handlers, ensuring proper initialization for genuinely new collections.

packages/bruno-app/src/providers/ReduxStore/slices/collections/actions.js (3)

2311-2338: Fresh state lookup after dispatch is correct.

Using getState() after _createCollection dispatch (Lines 2311-2318) ensures the workspace check uses up-to-date state. The alreadyInWorkspace check (Lines 2321-2323) prevents duplicate additions.

Note: The IPC call on Line 2331-2336 also uses fire-and-forget pattern. This is consistent with the existing collection path but carries the same caveat - resolve() is called before the workspace update completes.


2262-2266: Early return for already-opened collection is the core fix.

This handles the scenario where a collection exists both in Redux and in the current workspace - showing a success toast and resolving cleanly. This is the expected behavior for the PR title "fix: collection already opened in other workspace".


2252-2259: Consistent use of normalizePath for path comparisons.

All path comparisons use normalizePath (Lines 2253, 2258, 2322), ensuring cross-platform compatibility. This is a good practice for handling path differences between Windows and Unix-like systems.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/bruno-electron/src/ipc/workspace.js (1)

613-620: The rendererReadyProcessed flag is only needed to guard against React 18 StrictMode double-invocation in dev mode.

The guard prevents duplicate workspace initialization when StrictMode causes the renderer to mount twice. While the flag never resets during the app's lifetime, this is acceptable since: (1) no hot-reload infrastructure exists in this Electron app, and (2) the guard only affects dev mode.

That said, if multiple windows or renderer hot-reload are added in the future, consider per-window tracking instead of a global flag to avoid blocking legitimate re-initialization.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 21a1f03 and e6b292c.

📒 Files selected for processing (1)
  • packages/bruno-electron/src/ipc/workspace.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-electron/src/ipc/workspace.js
🧠 Learnings (1)
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.

Applied to files:

  • packages/bruno-electron/src/ipc/workspace.js
🧬 Code graph analysis (1)
packages/bruno-electron/src/ipc/workspace.js (2)
packages/bruno-electron/src/store/default-workspace.js (7)
  • require (3-3)
  • require (4-4)
  • require (5-5)
  • require (6-6)
  • require (7-7)
  • require (8-13)
  • defaultWorkspaceManager (255-255)
packages/bruno-electron/src/utils/workspace-config.js (5)
  • require (6-6)
  • require (7-7)
  • require (8-8)
  • require (499-499)
  • defaultWorkspacePath (500-500)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Unit Tests
  • GitHub Check: CLI Tests
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: SSL Tests - Linux
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: SSL Tests - Windows
🔇 Additional comments (3)
packages/bruno-electron/src/ipc/workspace.js (3)

7-7: LGTM: Import added correctly.

The electron-is-dev import follows the project's CommonJS pattern and is used appropriately for dev-mode guards.


623-628: LGTM: Default workspace tracking implemented correctly.

The defaultWorkspacePath tracking enables proper deduplication in the subsequent loop, preventing the default workspace from being processed twice.


643-645: LGTM: Duplicate workspace processing correctly prevented.

The logic properly skips the default workspace if it was already processed, avoiding duplicate main:workspace-opened events and watcher registration.

@vercel
Copy link

vercel bot commented Jan 1, 2026

@naman-bruno is attempting to deploy a commit to the Bruno Team on Vercel.

A member of the Team first needs to authorize it.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
packages/bruno-electron/src/app/collections.js (1)

101-145: Consider refactoring to reduce code duplication.

Both branches (existing watcher and non-existing watcher) share significant logic: loading config, generating uid, transforming config, getting stats, and sending to webContents. The key differences are:

  1. Default ignores merging (lines 127-129) only happens when watcher doesn't exist
  2. IPC emission (line 138) only happens when watcher doesn't exist

This duplication makes the code harder to maintain and introduces risk of divergence. Consider extracting the shared logic.

🔎 Suggested refactor to reduce duplication
 const openCollection = async (win, watcher, collectionPath, options = {}) => {
-  // If watcher already exists, collection is already loaded in the app
-  // Just send the collection info so frontend can add to workspace if needed
-  if (watcher.hasWatcher(collectionPath)) {
-    try {
-      let brunoConfig = await getCollectionConfigFile(collectionPath);
-      const uid = generateUidBasedOnHash(collectionPath);
-      brunoConfig = await transformBrunoConfigAfterRead(brunoConfig, collectionPath);
-      const { size, filesCount } = await getCollectionStats(collectionPath);
-      brunoConfig.size = size;
-      brunoConfig.filesCount = filesCount;
-      win.webContents.send('main:collection-opened', collectionPath, uid, brunoConfig);
-    } catch (err) {
-      if (!options.dontSendDisplayErrors) {
-        win.webContents.send('main:display-error', {
-          message: err.message || 'An error occurred while opening the local collection'
-        });
-      }
-    }
-    return;
-  }
+  const hasWatcher = watcher.hasWatcher(collectionPath);
 
   try {
     let brunoConfig = await getCollectionConfigFile(collectionPath);
     const uid = generateUidBasedOnHash(collectionPath);
 
-    // Always ensure node_modules and .git are ignored, regardless of user config
-    const defaultIgnores = ['node_modules', '.git'];
-    const userIgnores = brunoConfig.ignore || [];
-    brunoConfig.ignore = [...new Set([...defaultIgnores, ...userIgnores])];
+    // Only merge default ignores when setting up a new watcher
+    if (!hasWatcher) {
+      const defaultIgnores = ['node_modules', '.git'];
+      const userIgnores = brunoConfig.ignore || [];
+      brunoConfig.ignore = [...new Set([...defaultIgnores, ...userIgnores])];
+    }
 
     brunoConfig = await transformBrunoConfigAfterRead(brunoConfig, collectionPath);
 
     const { size, filesCount } = await getCollectionStats(collectionPath);
     brunoConfig.size = size;
     brunoConfig.filesCount = filesCount;
 
     win.webContents.send('main:collection-opened', collectionPath, uid, brunoConfig);
-    ipcMain.emit('main:collection-opened', win, collectionPath, uid, brunoConfig);
+    
+    // Only emit to ipcMain when setting up a new watcher
+    if (!hasWatcher) {
+      ipcMain.emit('main:collection-opened', win, collectionPath, uid, brunoConfig);
+    }
   } catch (err) {
     if (!options.dontSendDisplayErrors) {
       win.webContents.send('main:display-error', {
         message: err.message || 'An error occurred while opening the local collection'
       });
     }
   }
 };
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e6b292c and 18a3ef8.

📒 Files selected for processing (4)
  • packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-electron/src/store/default-workspace.js
  • packages/bruno-electron/src/utils/workspace-config.js
🧰 Additional context used
📓 Path-based instructions (1)
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (CODING_STANDARDS.md)

**/*.{js,jsx,ts,tsx}: Use 2 spaces for indentation. No tabs, just spaces
Stick to single quotes for strings. For JSX/TSX attributes, use double quotes (e.g., )
Always add semicolons at the end of statements
No trailing commas
Always use parentheses around parameters in arrow functions, even for single params
For multiline constructs, put opening braces on the same line, and ensure consistency. Minimum 2 elements for multiline
No newlines inside function parentheses
Space before and after the arrow in arrow functions. () => {} is good
No space between function name and parentheses. func() not func ()
Semicolons go at the end of the line, not on a new line
Names for functions need to be concise and descriptive
Add in JSDoc comments to add more details to the abstractions if needed
Add in meaningful comments instead of obvious ones where complex code flow is explained properly

Files:

  • packages/bruno-electron/src/utils/workspace-config.js
  • packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-electron/src/store/default-workspace.js
🧠 Learnings (2)
📚 Learning: 2025-12-17T21:41:24.730Z
Learnt from: naman-bruno
Repo: usebruno/bruno PR: 6407
File: packages/bruno-app/src/components/Environments/ConfirmCloseEnvironment/index.js:5-41
Timestamp: 2025-12-17T21:41:24.730Z
Learning: Do not suggest PropTypes validation for React components in the Bruno codebase. The project does not use PropTypes, so reviews should avoid proposing PropTypes and rely on the existing typing/validation approach (e.g., TypeScript or alternative runtime checks) if applicable. This guideline applies broadly to all JavaScript/JSX components in the repo.

Applied to files:

  • packages/bruno-electron/src/utils/workspace-config.js
  • packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js
  • packages/bruno-electron/src/app/collections.js
  • packages/bruno-electron/src/store/default-workspace.js
📚 Learning: 2025-12-16T07:16:23.647Z
Learnt from: sanish-bruno
Repo: usebruno/bruno PR: 6090
File: tests/scripting/hooks/init-user-data/ui-state-snapshot.json:1-8
Timestamp: 2025-12-16T07:16:23.647Z
Learning: For e2e tests in the bruno repository: Collections that are shared between CLI and UI tests (comprehensive test suites testing core functionality) should be placed in `packages/bruno-tests/` to avoid duplication. The `tests/**/fixtures/collection` pattern should be used for test-specific collections that test particular UI behaviors or are specific to a single test file.

Applied to files:

  • packages/bruno-electron/src/app/collections.js
🧬 Code graph analysis (3)
packages/bruno-electron/src/utils/workspace-config.js (1)
packages/bruno-electron/src/app/collections.js (3)
  • seenPaths (149-149)
  • path (2-2)
  • normalizedPath (156-156)
packages/bruno-electron/src/app/collections.js (2)
packages/bruno-electron/src/utils/filesystem.js (6)
  • getCollectionStats (270-308)
  • size (271-271)
  • size (415-415)
  • filesCount (272-272)
  • path (1-1)
  • normalizeAndResolvePath (46-61)
packages/bruno-electron/src/utils/workspace-config.js (2)
  • seenPaths (403-403)
  • path (2-2)
packages/bruno-electron/src/store/default-workspace.js (2)
packages/bruno-electron/src/app/collections.js (1)
  • seenPaths (149-149)
packages/bruno-electron/src/utils/workspace-config.js (3)
  • seenPaths (403-403)
  • collections (226-226)
  • collections (401-401)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Playwright E2E Tests
  • GitHub Check: Unit Tests
  • GitHub Check: CLI Tests
  • GitHub Check: SSL Tests - Windows
  • GitHub Check: SSL Tests - macOS
  • GitHub Check: SSL Tests - Linux
🔇 Additional comments (5)
packages/bruno-electron/src/store/default-workspace.js (1)

167-179: LGTM! Effective deduplication during migration.

The deduplication logic correctly prevents duplicate collection paths from being migrated by tracking normalized absolute paths. This aligns well with the PR objective and the similar patterns in workspace-config.js and collections.js.

packages/bruno-electron/src/utils/workspace-config.js (1)

403-424: LGTM! Clean deduplication in workspace collections.

The two-stage pipeline (map to resolve relative paths, then filter duplicates by normalized path) is well-structured and prevents duplicate collections from being returned. This defensive approach aligns with the PR's deduplication strategy.

packages/bruno-app/src/providers/ReduxStore/slices/workspaces/actions.js (2)

187-192: LGTM! Proper deduplication before opening collections.

The Map-based deduplication using normalized paths prevents duplicate collections from being opened during workspace switch. This complements the backend deduplication logic.


412-419: LGTM! Clear comment and effective deduplication.

The inline comment explaining the prevention of duplicate toasts is helpful. The deduplication logic correctly filters out duplicate paths before calling openMultipleCollections.

packages/bruno-electron/src/app/collections.js (1)

148-168: LGTM! Effective deduplication in batch collection opening.

The seenPaths Set with normalized path comparison correctly prevents duplicate collections from being processed when opening multiple collections. This aligns with the PR's deduplication strategy.

@bijin-bruno bijin-bruno merged commit 8e74fa6 into usebruno:main Jan 1, 2026
8 of 9 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Jan 29, 2026
6 tasks
bijin-bruno added a commit that referenced this pull request Feb 13, 2026
* fix: use themes within protobuf section (#6575)

* fix: use themes within protobuf section

* chore: fix font weight for protobuf settings

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: radios buttons to use primary color (#6576)

* fix: cookie modal theme (#6580)

* fix: cookie modal theme

* update toggle switch to use primary color

* style: enhance theme dropdown and security settings with improved styles and active indicators (#6582)

* style: enhance CodeMirror dropdown styles with theme integration  (#6577)

* style: enhance CodeMirror dropdown styles with theme integration for improved consistency

* style: refine dropdown and CodeMirror hint styles for improved consistency and usability

* style: clean up scrollbar and CodeMirror hint styles for improved readability

* remove max height for keybinding table (#6586)

* fix: Add New Request CTA alignment in tabs (#6584)

* fix: Add New Request CTA alignment in tabs
- Moved the '+' icon before the chevron to maintain alignment once chevrons appear
- Added padding to the '+' icon for better spacing.

* refactor: streamline New Request button rendering in RequestTabs component

- Simplified the rendering logic for the New Request button by removing unnecessary conditional wrappers.
- Ensured the button remains functional and maintains its styling within the tab layout.

* chore: update delete confirmation modals to use danger button color (#6589)

* refactor: remove size prop from Button components for consistency across modals and improve styling

* style: update confirm button colors in modal components for consistency

* fix: oauth2 callback url field placeholder text update (#6588)

* Fix auth panel UI updates (#6590)

* style: update padding and font size in OAuth2 and Table components for improved consistency

* style: update font styles in OAuth2 components for improved readability

* fix: add missing semicolon in StyledWrapper.js for consistent styling

* fix: standardize table border colors and improve table styling (#6597)

* style: update OAuth2 section labels for improved consistency and readability (#6598)

* fix: prefrence modal width (#6595)

* fix: theme within grpc timeline (#6581)

* fix: theme within grpc timeline

* fix: use font from the theme

* remove y padding to make timeline item more compact

* fix: font

* fix: padding

* fix: use fira code

* fix: icon spacing

* add border to the method  search

* show bg for message section within request

* fix: collection already opened in other workspace (#6574)

* fix: collection already opened in other workspace

* fix

* fixes

* Merge pull request #6583 from naman-bruno/add/collection-docs

add: collection-docs

* add: beta tag for opencollection & fix create collection location behaviour (#6594)

* add: beta tag for opencollection

* fixes

* fix

* feat: improved dark mode color (#6616)

* fix: resolve request pane tooltip visibility issue (#6615)

* Feat/update file picker (#6614)

* styling: file-picker editor component

* use filepicker component within filebody and response example filebody

* edit example to use button components

* fix: hide delete, disable checkbox in preview mode

* make label italic

* chore: change example cta buttons to filled style

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: folder docs save button visibility issue (#6617)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences (#6606)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences

- Introduced helper functions to determine effective theme and apply it to the root element.
- Updated theme application logic to respond to system theme changes more efficiently.
- Simplified theme computation to avoid race conditions by directly using storedTheme.

* fix: update displayedTheme initialization in ThemeProvider to use storedTheme for consistency

* fix: use theme styling within timeline (#6604)

* fix: use theme styling within timeline

* fix: remove inline styling and use css classes

* fix: network logs within dev tools

* compact timeline for grpc

* refactor: standardize CSS class naming in StyledWrapper components for better readability

* remove styling configuration from Network component

* fix: update colors

* update colors

* fix: color

* feat: improve RunnerResults filter bar to use theme system (#6613)

* feat: integrate theme support in RunnerResults component for improved styling

* refactor: simplify RunnerResults component and enhance filter button styling

* style: adjust padding in StyledWrapper and remove aria-pressed from FilterButton

* add: global env and workspace flag (#6534)

* add: global env and workspace flag

* rm: await

* update: option name

* fix

* fix

* fix: invalid collection in workspace (#6612)

* fix: update Notifications and StatusBar components for improved functionality and styling (#6607)

* feat: use theme colors for Console method badges (#6603)

* feat: use theme colors for Console method badges

* chore(theme): bruno devtools UX updates

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: update @opencollection/types to version 0.6.0 and refactor auth handling in request items (#6619)

* feat: enhance HttpMethodSelector to include caret indicator when creating new request (#6620)

---------

Co-authored-by: sanish chirayath <sanish@usebruno.com>
Co-authored-by: Abhishek S Lal <abhishek@usebruno.com>
Co-authored-by: Pooja <pooja@usebruno.com>
Co-authored-by: Chirag Chandrashekhar <chirag@usebruno.com>
Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com>
Co-authored-by: lohit <lohit@usebruno.com>
Co-authored-by: gopu-bruno <gopu@usebruno.com>
Co-authored-by: naman-bruno <naman@usebruno.com>
Co-authored-by: Anoop M D <anoop@usebruno.com>
bijin-bruno added a commit that referenced this pull request Feb 13, 2026
* fix: use themes within protobuf section (#6575)

* fix: use themes within protobuf section

* chore: fix font weight for protobuf settings

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: radios buttons to use primary color (#6576)

* fix: cookie modal theme (#6580)

* fix: cookie modal theme

* update toggle switch to use primary color

* style: enhance theme dropdown and security settings with improved styles and active indicators (#6582)

* style: enhance CodeMirror dropdown styles with theme integration  (#6577)

* style: enhance CodeMirror dropdown styles with theme integration for improved consistency

* style: refine dropdown and CodeMirror hint styles for improved consistency and usability

* style: clean up scrollbar and CodeMirror hint styles for improved readability

* remove max height for keybinding table (#6586)

* fix: Add New Request CTA alignment in tabs (#6584)

* fix: Add New Request CTA alignment in tabs
- Moved the '+' icon before the chevron to maintain alignment once chevrons appear
- Added padding to the '+' icon for better spacing.

* refactor: streamline New Request button rendering in RequestTabs component

- Simplified the rendering logic for the New Request button by removing unnecessary conditional wrappers.
- Ensured the button remains functional and maintains its styling within the tab layout.

* chore: update delete confirmation modals to use danger button color (#6589)

* refactor: remove size prop from Button components for consistency across modals and improve styling

* style: update confirm button colors in modal components for consistency

* fix: oauth2 callback url field placeholder text update (#6588)

* Fix auth panel UI updates (#6590)

* style: update padding and font size in OAuth2 and Table components for improved consistency

* style: update font styles in OAuth2 components for improved readability

* fix: add missing semicolon in StyledWrapper.js for consistent styling

* fix: standardize table border colors and improve table styling (#6597)

* style: update OAuth2 section labels for improved consistency and readability (#6598)

* fix: prefrence modal width (#6595)

* fix: theme within grpc timeline (#6581)

* fix: theme within grpc timeline

* fix: use font from the theme

* remove y padding to make timeline item more compact

* fix: font

* fix: padding

* fix: use fira code

* fix: icon spacing

* add border to the method  search

* show bg for message section within request

* fix: collection already opened in other workspace (#6574)

* fix: collection already opened in other workspace

* fix

* fixes

* Merge pull request #6583 from naman-bruno/add/collection-docs

add: collection-docs

* add: beta tag for opencollection & fix create collection location behaviour (#6594)

* add: beta tag for opencollection

* fixes

* fix

* feat: improved dark mode color (#6616)

* fix: resolve request pane tooltip visibility issue (#6615)

* Feat/update file picker (#6614)

* styling: file-picker editor component

* use filepicker component within filebody and response example filebody

* edit example to use button components

* fix: hide delete, disable checkbox in preview mode

* make label italic

* chore: change example cta buttons to filled style

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: folder docs save button visibility issue (#6617)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences (#6606)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences

- Introduced helper functions to determine effective theme and apply it to the root element.
- Updated theme application logic to respond to system theme changes more efficiently.
- Simplified theme computation to avoid race conditions by directly using storedTheme.

* fix: update displayedTheme initialization in ThemeProvider to use storedTheme for consistency

* fix: use theme styling within timeline (#6604)

* fix: use theme styling within timeline

* fix: remove inline styling and use css classes

* fix: network logs within dev tools

* compact timeline for grpc

* refactor: standardize CSS class naming in StyledWrapper components for better readability

* remove styling configuration from Network component

* fix: update colors

* update colors

* fix: color

* feat: improve RunnerResults filter bar to use theme system (#6613)

* feat: integrate theme support in RunnerResults component for improved styling

* refactor: simplify RunnerResults component and enhance filter button styling

* style: adjust padding in StyledWrapper and remove aria-pressed from FilterButton

* add: global env and workspace flag (#6534)

* add: global env and workspace flag

* rm: await

* update: option name

* fix

* fix

* fix: invalid collection in workspace (#6612)

* fix: update Notifications and StatusBar components for improved functionality and styling (#6607)

* feat: use theme colors for Console method badges (#6603)

* feat: use theme colors for Console method badges

* chore(theme): bruno devtools UX updates

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: update @opencollection/types to version 0.6.0 and refactor auth handling in request items (#6619)

* feat: enhance HttpMethodSelector to include caret indicator when creating new request (#6620)

* feat(theme): update secondary button styles (#6621)

* feat: update toast UI to match theme (#6622)

* Improve delete collection in workspace overview (#6587)

* Improve delete collection in workspace overview

* fixes

* Feat/v3 UI updates (#6618)

* style: enhance button layout and input styles across multiple components for improved UI consistency

* style: update RequestsNotLoaded component with new warning styles and enhance theme color definitions for status indicators

* refactor: update theme usage across components for consistency

- Changed color references from theme.brand to theme.primary.text in various StyledWrapper components.
- Added hover effects to enhance UI interactivity in CollectionSettings and FolderSettings.
- Removed unnecessary margin and padding adjustments in several components for cleaner layout.
- Improved accessibility by ensuring aria attributes are correctly set in MenuDropdown.
- Standardized styling for method indicators in RequestPane components.

These changes aim to create a more cohesive look and feel across the application while adhering to the updated theme guidelines.

* refactor: clean up method selector styling in NewRequest component

* chore: temp playwright test fixes

* refactor: update modal sizes across various components for consistency

- Changed modal size from "sm" to "md" in RenameWorkspace, CreateApiSpec, CloneCollection, DeleteCollectionItem, and RenameCollection components.
- Improved styling in HttpMethodSelector by adding padding for better layout.
- Updated theme color references in multiple theme files to use a new palette structure for consistency and maintainability.

* refactor: enhance styling and theme integration in TimelineItem components

- Updated HttpMethodSelector to clarify padding calculation in comments.
- Integrated theme colors for OAuth2 indicator and timestamp in TimelineItem for better visual consistency.
- Adjusted Method component to use uppercase styling for method display.
- Modified RelativeTime component to apply muted text color for improved readability.
- Updated INFO color in dark and light themes for better contrast and accessibility.

* refactor: remove duplicate import statements in theme files

- Cleaned up import statements in vscode.js and light-pastel.js by removing redundant lines for improved code clarity and maintainability.

* refactor: improve styling and theme integration in various components

- Added accent color and cursor style for checkbox inputs in Modal's StyledWrapper.
- Updated border-radius values in HttpMethodSelector and NewRequest StyledWrapper components to use theme variables for consistency.
- Introduced a new textbox class in NewRequest StyledWrapper for better styling control.
- Changed modal size from "sm" to "md" in CreateEnvironment for improved layout.

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix(UX): fix sandbox selector options background color (#6626)

* update cdn links (#6628)

* fix: toggle switch color (#6627)

* fix: modal icon colors to match button colors (#6624)

* style: update warning icon color in RemoveCollection and ConfirmSwitchEnv components to use theme colors

* fix: font size in BulkEditor

* style: update error message styling to use theme colors in QueryResult component

* style: update warning icon color

* style: update warning color in ConfirmSwitchEnv

* chore: minor pr comment

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: folder settings var panel table alignment (#6631)

* style: remove font size class from button (#6630)

* fix: authmode in graphql (#6636)

* fix: file picker component overflow (#6635)

* fix: tooltip styling (#6632)

* refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency (#6629)

* refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency

* refactor: update modal size in ImportCollectionLocation component for improved consistency

* refactor: set isActiveTab prop in QueryResponse component and update active color in StyledWrapper for consistency

* feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components (#6623)

* feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components

* refactor: remove duplicate "Rename" item push in CollectionItem component

* style: update text color classes and button hover effects in RunnerResults (#6637)

* style: update text color classes and button hover effects in RunnerResults and StyledWrapper components

* Update StyledWrapper.jsx

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* style: update variable validation colors in StyledWrapper components to use theme colors (#6633)

---------

Co-authored-by: sanish chirayath <sanish@usebruno.com>
Co-authored-by: Abhishek S Lal <abhishek@usebruno.com>
Co-authored-by: Pooja <pooja@usebruno.com>
Co-authored-by: Chirag Chandrashekhar <chirag@usebruno.com>
Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com>
Co-authored-by: lohit <lohit@usebruno.com>
Co-authored-by: gopu-bruno <gopu@usebruno.com>
Co-authored-by: naman-bruno <naman@usebruno.com>
Co-authored-by: Anoop M D <anoop@usebruno.com>
bijin-bruno added a commit that referenced this pull request Feb 13, 2026
* fix: use themes within protobuf section (#6575)

* fix: use themes within protobuf section

* chore: fix font weight for protobuf settings

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: radios buttons to use primary color (#6576)

* fix: cookie modal theme (#6580)

* fix: cookie modal theme

* update toggle switch to use primary color

* style: enhance theme dropdown and security settings with improved styles and active indicators (#6582)

* style: enhance CodeMirror dropdown styles with theme integration  (#6577)

* style: enhance CodeMirror dropdown styles with theme integration for improved consistency

* style: refine dropdown and CodeMirror hint styles for improved consistency and usability

* style: clean up scrollbar and CodeMirror hint styles for improved readability

* remove max height for keybinding table (#6586)

* fix: Add New Request CTA alignment in tabs (#6584)

* fix: Add New Request CTA alignment in tabs
- Moved the '+' icon before the chevron to maintain alignment once chevrons appear
- Added padding to the '+' icon for better spacing.

* refactor: streamline New Request button rendering in RequestTabs component

- Simplified the rendering logic for the New Request button by removing unnecessary conditional wrappers.
- Ensured the button remains functional and maintains its styling within the tab layout.

* chore: update delete confirmation modals to use danger button color (#6589)

* refactor: remove size prop from Button components for consistency across modals and improve styling

* style: update confirm button colors in modal components for consistency

* fix: oauth2 callback url field placeholder text update (#6588)

* Fix auth panel UI updates (#6590)

* style: update padding and font size in OAuth2 and Table components for improved consistency

* style: update font styles in OAuth2 components for improved readability

* fix: add missing semicolon in StyledWrapper.js for consistent styling

* fix: standardize table border colors and improve table styling (#6597)

* style: update OAuth2 section labels for improved consistency and readability (#6598)

* fix: prefrence modal width (#6595)

* fix: theme within grpc timeline (#6581)

* fix: theme within grpc timeline

* fix: use font from the theme

* remove y padding to make timeline item more compact

* fix: font

* fix: padding

* fix: use fira code

* fix: icon spacing

* add border to the method  search

* show bg for message section within request

* fix: collection already opened in other workspace (#6574)

* fix: collection already opened in other workspace

* fix

* fixes

* Merge pull request #6583 from naman-bruno/add/collection-docs

add: collection-docs

* add: beta tag for opencollection & fix create collection location behaviour (#6594)

* add: beta tag for opencollection

* fixes

* fix

* feat: improved dark mode color (#6616)

* fix: resolve request pane tooltip visibility issue (#6615)

* Feat/update file picker (#6614)

* styling: file-picker editor component

* use filepicker component within filebody and response example filebody

* edit example to use button components

* fix: hide delete, disable checkbox in preview mode

* make label italic

* chore: change example cta buttons to filled style

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: folder docs save button visibility issue (#6617)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences (#6606)

* refactor: improve theme handling in ThemeProvider for better responsiveness to system preferences

- Introduced helper functions to determine effective theme and apply it to the root element.
- Updated theme application logic to respond to system theme changes more efficiently.
- Simplified theme computation to avoid race conditions by directly using storedTheme.

* fix: update displayedTheme initialization in ThemeProvider to use storedTheme for consistency

* fix: use theme styling within timeline (#6604)

* fix: use theme styling within timeline

* fix: remove inline styling and use css classes

* fix: network logs within dev tools

* compact timeline for grpc

* refactor: standardize CSS class naming in StyledWrapper components for better readability

* remove styling configuration from Network component

* fix: update colors

* update colors

* fix: color

* feat: improve RunnerResults filter bar to use theme system (#6613)

* feat: integrate theme support in RunnerResults component for improved styling

* refactor: simplify RunnerResults component and enhance filter button styling

* style: adjust padding in StyledWrapper and remove aria-pressed from FilterButton

* add: global env and workspace flag (#6534)

* add: global env and workspace flag

* rm: await

* update: option name

* fix

* fix

* fix: invalid collection in workspace (#6612)

* fix: update Notifications and StatusBar components for improved functionality and styling (#6607)

* feat: use theme colors for Console method badges (#6603)

* feat: use theme colors for Console method badges

* chore(theme): bruno devtools UX updates

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: update @opencollection/types to version 0.6.0 and refactor auth handling in request items (#6619)

* feat: enhance HttpMethodSelector to include caret indicator when creating new request (#6620)

* feat(theme): update secondary button styles (#6621)

* feat: update toast UI to match theme (#6622)

* Improve delete collection in workspace overview (#6587)

* Improve delete collection in workspace overview

* fixes

* Feat/v3 UI updates (#6618)

* style: enhance button layout and input styles across multiple components for improved UI consistency

* style: update RequestsNotLoaded component with new warning styles and enhance theme color definitions for status indicators

* refactor: update theme usage across components for consistency

- Changed color references from theme.brand to theme.primary.text in various StyledWrapper components.
- Added hover effects to enhance UI interactivity in CollectionSettings and FolderSettings.
- Removed unnecessary margin and padding adjustments in several components for cleaner layout.
- Improved accessibility by ensuring aria attributes are correctly set in MenuDropdown.
- Standardized styling for method indicators in RequestPane components.

These changes aim to create a more cohesive look and feel across the application while adhering to the updated theme guidelines.

* refactor: clean up method selector styling in NewRequest component

* chore: temp playwright test fixes

* refactor: update modal sizes across various components for consistency

- Changed modal size from "sm" to "md" in RenameWorkspace, CreateApiSpec, CloneCollection, DeleteCollectionItem, and RenameCollection components.
- Improved styling in HttpMethodSelector by adding padding for better layout.
- Updated theme color references in multiple theme files to use a new palette structure for consistency and maintainability.

* refactor: enhance styling and theme integration in TimelineItem components

- Updated HttpMethodSelector to clarify padding calculation in comments.
- Integrated theme colors for OAuth2 indicator and timestamp in TimelineItem for better visual consistency.
- Adjusted Method component to use uppercase styling for method display.
- Modified RelativeTime component to apply muted text color for improved readability.
- Updated INFO color in dark and light themes for better contrast and accessibility.

* refactor: remove duplicate import statements in theme files

- Cleaned up import statements in vscode.js and light-pastel.js by removing redundant lines for improved code clarity and maintainability.

* refactor: improve styling and theme integration in various components

- Added accent color and cursor style for checkbox inputs in Modal's StyledWrapper.
- Updated border-radius values in HttpMethodSelector and NewRequest StyledWrapper components to use theme variables for consistency.
- Introduced a new textbox class in NewRequest StyledWrapper for better styling control.
- Changed modal size from "sm" to "md" in CreateEnvironment for improved layout.

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix(UX): fix sandbox selector options background color (#6626)

* update cdn links (#6628)

* fix: toggle switch color (#6627)

* fix: modal icon colors to match button colors (#6624)

* style: update warning icon color in RemoveCollection and ConfirmSwitchEnv components to use theme colors

* fix: font size in BulkEditor

* style: update error message styling to use theme colors in QueryResult component

* style: update warning icon color

* style: update warning color in ConfirmSwitchEnv

* chore: minor pr comment

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* fix: folder settings var panel table alignment (#6631)

* style: remove font size class from button (#6630)

* fix: authmode in graphql (#6636)

* fix: file picker component overflow (#6635)

* fix: tooltip styling (#6632)

* refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency (#6629)

* refactor: update color references in OAuth2 components to use theme.primary.text for improved consistency

* refactor: update modal size in ImportCollectionLocation component for improved consistency

* refactor: set isActiveTab prop in QueryResponse component and update active color in StyledWrapper for consistency

* feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components (#6623)

* feat: update "Show in Folder" label based on platform in ManageWorkspace, Collection, CollectionItem, and WorkspaceHome components

* refactor: remove duplicate "Rename" item push in CollectionItem component

* style: update text color classes and button hover effects in RunnerResults (#6637)

* style: update text color classes and button hover effects in RunnerResults and StyledWrapper components

* Update StyledWrapper.jsx

---------

Co-authored-by: Bijin A B <bijin@usebruno.com>

* style: update variable validation colors in StyledWrapper components to use theme colors (#6633)

* refactor: update Tabs component structure and theme colors (#6638)

- Replaced the div wrapper in the Tabs component with StyledWrapper for improved styling.
- Simplified TabsList and TabsTrigger components by removing theme dependency and using classnames for styling.
- Updated inactive background colors in multiple theme files to enhance visual consistency across themes.

* feat: integrate theme support in ImportCollection component (#6639)

* feat: integrate theme support in ImportCollection component for improved styling consistency

* chore: remove debug console log from ImportCollection component

* refactor: update theme import in ImportCollection component for improved consistency

* style: enhance syntax highlighting in GQL Docs and Doc Gen (#6640)

* style: enhance syntax highlighting and theme integration in QueryEditor and GenerateDocs components

* fix: fixed generate code theming issues

* style: update color references to use theme.draftColor for unsaved changes across multiple components (#6641)

* chore: theme updates (#6642)

---------

Co-authored-by: sanish chirayath <sanish@usebruno.com>
Co-authored-by: Abhishek S Lal <abhishek@usebruno.com>
Co-authored-by: Pooja <pooja@usebruno.com>
Co-authored-by: Chirag Chandrashekhar <chirag@usebruno.com>
Co-authored-by: Sanjai Kumar <161328623+sanjaikumar-bruno@users.noreply.github.com>
Co-authored-by: lohit <lohit@usebruno.com>
Co-authored-by: gopu-bruno <gopu@usebruno.com>
Co-authored-by: naman-bruno <naman@usebruno.com>
Co-authored-by: Anoop M D <anoop@usebruno.com>
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.

2 participants