Skip to content

feat: load all workspace of a org in one batch#9934

Open
xiaodemen wants to merge 1 commit into
developfrom
feat/batch-load-workspaces
Open

feat: load all workspace of a org in one batch#9934
xiaodemen wants to merge 1 commit into
developfrom
feat/batch-load-workspaces

Conversation

@xiaodemen
Copy link
Copy Markdown
Contributor

@xiaodemen xiaodemen commented May 19, 2026

result.set(projectId, files);
}
} catch (error) {
console.error(`Failed to fetch unsynced files for organization ${organizationId}`, error);
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 19, 2026

✅ Circular References Report

Generated at: 2026-05-28T10:45:20.781Z
Status: ✅ NO CHANGE

Summary

Metric Base (develop) PR Change
Total Circular References 15 15 0 (0.00%)
Click to view all circular references in PR (15)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx
Click to view all circular references in base branch (15)
insomnia-inso/src/db/models/types.ts -> insomnia-inso/src/db/types.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts
insomnia-scripting-environment/src/objects/index.ts -> insomnia-scripting-environment/src/objects/collection.ts -> insomnia-scripting-environment/src/objects/response.ts -> insomnia/src/network/network.ts -> insomnia/src/network/concurrency.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts
insomnia/src/network/network.ts -> insomnia/src/common/render.ts -> insomnia/src/templating/index.ts -> insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/context/app.ts -> insomnia/src/templating/types.ts -> insomnia/src/plugins/context/store.ts
insomnia/src/plugins/index.ts -> insomnia/src/plugins/misc.ts
insomnia/src/templating/base-extension-worker.ts -> insomnia/src/templating/worker.ts
insomnia/src/templating/index.ts -> insomnia/src/templating/base-extension.ts
insomnia/src/templating/types.ts -> insomnia/src/plugins/context/network.ts
insomnia/src/templating/types.ts -> insomnia/src/templating/utils.ts
insomnia/src/ui/components/settings/import-export.tsx -> insomnia/src/ui/components/modals/export-requests-modal.tsx
insomnia/src/ui/components/tabs/tab-list.tsx -> insomnia/src/ui/components/tabs/tab.tsx
insomnia/src/ui/components/templating/tag-editor-arg-sub-form.tsx -> insomnia/src/ui/components/templating/external-vault/external-vault-form.tsx
insomnia/src/ui/components/viewers/response-viewer.tsx -> insomnia/src/ui/components/viewers/response-multipart-viewer.tsx

Analysis

No Change: This PR does not introduce or remove any circular references.


This report was generated automatically by comparing against the develop branch.

Base automatically changed from feat/ia-nav-improvement to develop May 21, 2026 10:42
Copilot AI review requested due to automatic review settings May 28, 2026 10:18
@xiaodemen xiaodemen force-pushed the feat/batch-load-workspaces branch from 542eaf9 to 37ca1c9 Compare May 28, 2026 10:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR implements an org-wide (team-wide) batch fetch for remote backend projects/workspaces so the UI can load “unsynced” remote workspaces for all cloud-sync projects with a single backend call rather than per-project requests.

Changes:

  • Update the Project Navigation Sidebar to fetch all remote backend projects for an org in one request and group them by local project.
  • Add a new sync bridge method (remoteBackendProjectsOfTeam) backed by a new GraphQL query path in VCS.
  • Introduce a helper (getAllRemoteBackendProjectsOfOrg) and a new backend project type to support the new payload.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/insomnia/src/ui/components/sidebar/project-navigation-sidebar/project-navigation-sidebar.tsx Switch unsynced remote workspace loading from per-project fetching to a single org-wide fetch and grouping.
packages/insomnia/src/sync/types.ts Add a backend project type that includes teamProjectId for grouping results per local project.
packages/insomnia/src/main/cloud-sync/ipc.ts Extend the sync bridge typings with the new remoteBackendProjectsOfTeam method.
packages/insomnia/src/main/cloud-sync/core/vcs.ts Implement remoteBackendProjectsOfTeam GraphQL query and map results for renderer consumption.
packages/insomnia/src/entry.preload.ts Expose remoteBackendProjectsOfTeam to the renderer via the preload bridge.
packages/insomnia/src/common/project.ts Add a renderer-side helper to call the new sync bridge method using organizationId.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 11 to 16
import {
getAllRemoteBackendProjectsByProjectId,
getAllRemoteBackendProjectsOfOrg,
getUnsyncedRemoteWorkspaces,
type InsomniaFile,
} from '~/common/project';
Comment on lines +236 to +243
return projects.map(backend => ({
id: backend.id,
name: backend.name,
rootDocumentId: backend.rootDocumentId,
teamProjectId: backend.teamProjectId,
// A backend project is guaranteed to exist on exactly one team
team: backend.teams[0],
}));
@xiaodemen xiaodemen force-pushed the feat/batch-load-workspaces branch from 37ca1c9 to d7631ba Compare May 28, 2026 10:29
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.

4 participants