Skip to content

feat: remove restriction for AI-generated mock server type in workspace modal#9825

Draft
yaoweiprc wants to merge 5 commits intodevelopfrom
feat/remove-restriction-for-ai-gen-mock
Draft

feat: remove restriction for AI-generated mock server type in workspace modal#9825
yaoweiprc wants to merge 5 commits intodevelopfrom
feat/remove-restriction-for-ai-gen-mock

Conversation

@yaoweiprc
Copy link
Copy Markdown
Contributor

@yaoweiprc yaoweiprc commented Apr 16, 2026

  • Remove restriction for AI-generated mock server type in workspace modal
  • Remove the restriction that cloud mock routes under the same mock server can not have the same path

Copilot AI review requested due to automatic review settings April 16, 2026 10:12
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

Removes the UI restriction that prevented selecting Cloud Mock hosting when creating a mock server via Auto Generate (AI), and includes a small update to mock route → HAR serialization / error extraction used when registering routes with the remote mock service.

Changes:

  • Allow Cloud Mock selection regardless of mockServerCreationType === 'ai' in the new workspace modal.
  • Simplify Cloud Mock help text (remove the “Not available when creating with Auto Generate” messaging).
  • Adjust mockRouteToHar header mapping and return more specific error text when the remote mock service responds with an error object.

Reviewed changes

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

File Description
packages/insomnia/src/ui/components/modals/new-workspace-modal.tsx Removes the AI-specific Cloud Mock disablement and related message, enabling AI + Cloud hosting selection.
packages/insomnia/src/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId.mock-server.mock-route.$mockRouteId.tsx Tweaks HAR response generation for mock routes and improves remote error message extraction.

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

Comment on lines +106 to +112
.filter(({ name }) => !!name)
.map(h => ({
id: h.id || '',
name: h.name,
value: h.value,
description: h.description || '',
disabled: h.disabled ?? false,
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

mockRouteToHar is documented as producing a HAR response, but validHeaders currently includes non-HAR fields (id, description, disabled) and also includes headers marked disabled. This can cause disabled mock headers (including Set-Cookie) to still be sent to the remote mock service and produces a non-spec HAR payload. Consider filtering out disabled headers here and mapping to the HAR shape { name, value } (see packages/insomnia/src/common/har.ts:405-411 for how HAR headers are built elsewhere).

Suggested change
.filter(({ name }) => !!name)
.map(h => ({
id: h.id || '',
name: h.name,
value: h.value,
description: h.description || '',
disabled: h.disabled ?? false,
.filter(({ name, disabled }) => !!name && !disabled)
.map(h => ({
name: h.name,
value: h.value,

Copilot uses AI. Check for mistakes.
Comment on lines +105 to +113
const validHeaders = headersArray
.filter(({ name }) => !!name)
.map(h => ({
id: h.id || '',
name: h.name,
value: h.value,
description: h.description || '',
disabled: h.disabled ?? false,
}));
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

The PR title indicates changes limited to the workspace modal restriction for AI-generated mock servers, but this file also changes HAR serialization and remote error parsing for mock routes. If these changes are unrelated to the modal feature, consider splitting them into a separate PR (or updating the PR description/title to reflect the additional behavior changes).

Copilot uses AI. Check for mistakes.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 16, 2026

✅ Circular References Report

Generated at: 2026-04-21T09:17:38.133Z
Status: ✅ NO CHANGE

Summary

Metric Base (develop) PR Change
Total Circular References 20 20 0 (0.00%)
Click to view all circular references in PR (20)
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/cancellation.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/cancellation.ts -> insomnia/src/script-executor.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/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/require-interceptor.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/authentication.ts -> insomnia/src/network/o-auth-2/get-token.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/network/network.ts -> insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.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 (20)
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/cancellation.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/cancellation.ts -> insomnia/src/script-executor.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/cancellation.ts -> insomnia/src/script-executor.ts -> insomnia/src/require-interceptor.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/authentication.ts -> insomnia/src/network/o-auth-2/get-token.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/network/network.ts -> insomnia/src/network/authentication.ts -> insomnia/src/network/o-auth-2/get-token.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.

@yaoweiprc yaoweiprc requested a review from shelby-moore April 16, 2026 10:55
@shelby-moore
Copy link
Copy Markdown
Contributor

@yaoweiprc yaoweiprc marked this pull request as draft April 17, 2026 03:03
@yaoweiprc
Copy link
Copy Markdown
Contributor Author

@shelby-moore To avoid introducing potential bugs, we will hold off on lifting these restrictions until 12.7. For version 12.6, our primary focus is ensuring a stable rollout of the dynamic mock feature.

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.

3 participants