[RQ-4283] Remove API Client from the Interceptor app (onboarding, workspace creation & all product surfaces)#81
Draft
Kanishkrawatt wants to merge 4 commits into
Draft
Conversation
… creation
The API Client is now a separate standalone product, but the Interceptor
app still surfaced it in onboarding and workspace creation, funneling
users into creating local workspaces (which only ever held API Client
files). Per epic RQ-4191, remove all API Client touchpoints from these
flows so onboarding offers only Interceptor:
- DesktopOnboardingModal / WelcomeCard: remove the "Start using API
Client" welcome card (expandable local-workspace create/open options)
and the FOLDER_SELECTION local-workspace-creation step it fed into;
drop the now-unused WorkspaceCreationProvider wrapper and the hooks
(useCreateDefaultLocalWorkspace / useOpenLocalWorkspace /
LocalWorkspaceCreateOptions / redirectToApiClient). "Skip" now simply
completes onboarding instead of creating a local API Client workspace
and redirecting to the API Client. Drop FOLDER_SELECTION from the
OnboardingStep enum.
- CreateWorkspaceModalOld: remove the entire "Local workspace" option
("only API client files are supported") and its dead local-workspace
creation code — the modal now creates team workspaces only.
- personaRecommendationData: remove the dead "Test API endpoints ->
API Client" recommendation entry.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Follow-up to the onboarding/workspace-creation removal: strip every user-reachable API Client entry point from the Interceptor app so the product is fully inaccessible/invisible. The shared infrastructure that happens to live under features/apiClient/ (workspace system, tab system, variable/secrets slices, environment backend) is left in place — other features depend on it — but nothing routes to or surfaces the API Client product anymore. Removed: - Route: apiClientRoutes registration in routes/index.tsx. - Primary sidebar "APIs" item (+ SidebarItemKey.APIs, icon, order entries). - Home page ApiClientCard (component deleted) + its render. - "API Client" breadcrumb label; PATHS.API_CLIENT.INDEX from the root-path landing set (useRootPathRedirector). - Network inspector "Edit and Replay" context-menu item and its APIClientModal replay chain (ContextMenu -> VirtualTableV2 -> NetworkTable). - Mock editor "Test" button and its APIClientModal test-mock chain. - Session viewer "Replay Request" context-menu item and its APIClientModal chain. - cURL-import deep link (AppModeInitializer OPEN_CURL_IMPORT_MODAL listener that navigated to the API Client). Orphaned imports/vars from the above cleaned up. Verified: ESLint clean on changed files (one pre-existing exhaustive-deps warning), `tsc --noEmit` introduces zero new errors (net -9 vs the repo's 1298 baseline), and `vite build` succeeds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The desktop first-run onboarding still opened on a feature-selection screen (WelcomeCard) that framed a choice between the API Client and Rules and funnelled users into local-workspace creation. The API Client is now a standalone product, so that screen is obsolete. - Remove the FEATURE_SELECTION step / WelcomeCard (and WelcomeCardHeader) in full; drop FEATURE_SELECTION from the OnboardingStep enum. The step machine now initializes — and stays — at AUTH, so first-run users land directly on the sign-in/sign-up card. - AuthCard: remove the back-arrow (onBackClick) — there is no prior step to return to. No path creates a local workspace or redirects to the API Client during onboarding. Extension/web onboarding (OnboardingModal) is untouched. Verified: ESLint clean on changed files; `tsc --noEmit` net 0 new errors (1289 baseline unchanged); `vite build` succeeds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
WorkspaceType.LOCAL workspaces existed only to back the API Client, which is being removed. Hide them from every user-facing surface. This is UI-hiding only — on-disk workspace folders are NOT deleted, and LOCAL_STORAGE (logged-out) behavior is unchanged. - Central lever (useWorkspaceFetcher): stop fetching/injecting local workspaces into `allWorkspaces`; only shared (team) workspaces flow in now. Everything that reads `allWorkspaces` (dropdown/overlay/settings) therefore surfaces no LOCAL entry. - WorkspacesOverlay: remove the "Local workspaces" list section entirely (list rows, "Add", the empty-state section and its "New/Create local workspace" CTA) and the local-sync gating; drop the now-dead hasLocalWorkspaces / isLocalSyncEnabled state. Only the shared section and the common empty view remain. This also closes the MULTI (multi-workspace) view — its only UI entry was the LOCAL row checkboxes. - CommonEmptyView: remove the desktop-only "New local workspace" button and the local mention from the description (team-only now). - WorkspaceDropdown: remove the active-local avatar special-casing (use the generic WorkspaceAvatar for all single-view workspaces) and the "Load latest changes from your local files" refresh button. Per the ticket's decision, a user currently active in a LOCAL workspace is not force-switched or errored — they simply have no LOCAL entries to switch back to (one-way door). Migration segment strings are unchanged. Verified: ESLint clean on changed files; `tsc --noEmit` net 0 new errors (1289 baseline unchanged); `vite build` succeeds. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Jira: RQ-4283 (epic RQ-4191)
The API Client is now a separate standalone product. This removes it entirely from the Interceptor app — every place a user could see or reach it — so the app presents only Interceptor (and its other non-API-Client features).
Commit 1 — onboarding & workspace creation
FOLDER_SELECTIONlocal-workspace step; "Skip" now just completes onboarding (no local workspace + API Client redirect). DroppedFOLDER_SELECTIONfrom the enum.Commit 2 — app-wide product surfaces
apiClientRoutes(the whole/api-clientroute + its tab UI)./api-clientfrom the root-path landing set.APIClientModal): network-inspector "Edit and Replay", mock editor "Test", session viewer "Replay Request".OPEN_CURL_IMPORT_MODAL) that navigated into the API Client.What is intentionally NOT removed
The
features/apiClient/directory stays: it is the de-facto home of shared systems the rest of the app depends on (workspace system, the tab system, variable/secrets/runtime-variables slices, environment backend, the sharedAPIClientModal). Nothing routes to or surfaces the API Client product anymore, but physically deleting that directory would require first relocating those shared systems (a separate, large refactor). Internal-only references (PATHS.API_CLIENTused by the tab infra,FEATURES.API_CLIENTflags, pricing enum) are likewise left in place — they are not user-visible.Verification
exhaustive-depswarning, not introduced here).tsc --noEmit: zero new type errors — net −9 vs the repo's pre-existing 1298-error baseline; no changed file's error count increased.vite build: succeeds.🤖 Generated with Claude Code
Update — also addresses RQ-4695 & RQ-4696
Two follow-up commits extend this PR to the sibling stories:
[RQ-4695] Route legacy desktop onboarding straight to auth
Completes the onboarding cleanup: the
FEATURE_SELECTIONstep /WelcomeCard(+WelcomeCardHeader) is removed in full and dropped from theOnboardingStepenum. The step machine now initializes atAUTH, so desktop first-run lands directly on sign-in/sign-up — no feature-selection screen, no local-workspace funnel.AuthCard's back-arrow is removed (no prior step). Extension/web onboarding untouched.[RQ-4696] Hide local (file-system) workspaces from the UI
UI-hiding only — on-disk data is not deleted and
LOCAL_STORAGE(logged-out) is unchanged.useWorkspaceFetcher): stop fetching/injectingWorkspaceType.LOCALintoallWorkspaces— every consumer (dropdown/overlay/settings) now surfaces no LOCAL entry.RQ-4699 — intentionally NOT included
RQ-4699 (block
makeRequest+ mandatory migration modal) describes a keep-but-block strategy that is mutually exclusive with this PR's wholesale removal: the migration modal only mounts inside the API Client container, which this PR's route removal deletes, andmakeRequestis only reachable from the now-removed Send UI. Per product decision, this PR keeps the wholesale removal; RQ-4699's modal/makeRequest acceptance criteria are therefore not applicable here.Verification (both new commits): ESLint clean on changed files;
tsc --noEmitnet 0 new type errors (1289 baseline unchanged);vite buildsucceeds.