Skip to content

[RQ-4283] Remove API Client from the Interceptor app (onboarding, workspace creation & all product surfaces)#81

Draft
Kanishkrawatt wants to merge 4 commits into
masterfrom
rq-4283-remove-api-client-onboarding
Draft

[RQ-4283] Remove API Client from the Interceptor app (onboarding, workspace creation & all product surfaces)#81
Kanishkrawatt wants to merge 4 commits into
masterfrom
rq-4283-remove-api-client-onboarding

Conversation

@Kanishkrawatt

@Kanishkrawatt Kanishkrawatt commented Jul 10, 2026

Copy link
Copy Markdown
Member

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

  • DesktopOnboardingModal / WelcomeCard: removed the "Start using API Client" card + the FOLDER_SELECTION local-workspace step; "Skip" now just completes onboarding (no local workspace + API Client redirect). Dropped FOLDER_SELECTION from the enum.
  • CreateWorkspaceModalOld: removed the "Local workspace" option ("only API client files are supported") and its dead local-workspace code — team workspaces only now.
  • personaRecommendationData: removed the dead "Test API endpoints → API Client" entry.

Commit 2 — app-wide product surfaces

  • Route: removed apiClientRoutes (the whole /api-client route + its tab UI).
  • Primary sidebar: removed the "APIs" item.
  • Home page: removed the API Client card (component deleted).
  • Breadcrumb "API Client" label; removed /api-client from the root-path landing set.
  • "Test / Replay in API Client" affordances (all opened the shared APIClientModal): network-inspector "Edit and Replay", mock editor "Test", session viewer "Replay Request".
  • cURL import deep link (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 shared APIClientModal). 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_CLIENT used by the tab infra, FEATURES.API_CLIENT flags, pricing enum) are likewise left in place — they are not user-visible.

Verification

  • ESLint clean on all changed files (one pre-existing exhaustive-deps warning, 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.

Draft — I could not live-run the Interceptor UI in this session. The "Skip completes onboarding" behavior and the removal of the in-context "test/replay in API Client" actions are the bits most worth an eyeball.

🤖 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_SELECTION step / WelcomeCard (+ WelcomeCardHeader) is removed in full and dropped from the OnboardingStep enum. The step machine now initializes at AUTH, 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.

  • Central lever (useWorkspaceFetcher): stop fetching/injecting WorkspaceType.LOCAL into allWorkspaces — every consumer (dropdown/overlay/settings) now surfaces no LOCAL entry.
  • WorkspacesOverlay: remove the "Local workspaces" section (rows, "Add", empty-state CTA) + local-sync gating. This also closes the MULTI view (its only entry was the LOCAL-row checkboxes).
  • CommonEmptyView: remove the "New local workspace" button + local mention.
  • WorkspaceDropdown: remove the active-local avatar special-casing and the "load latest from local files" refresh button.
  • A user active in a LOCAL workspace is not force-switched or errored (one-way door), per the ticket's decision.

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, and makeRequest is 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 --noEmit net 0 new type errors (1289 baseline unchanged); vite build succeeds.

Kanishkrawatt and others added 2 commits July 10, 2026 20:34
… 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>
@Kanishkrawatt Kanishkrawatt changed the title [RQ-4283] Remove API Client from legacy onboarding & workspace creation [RQ-4283] Remove API Client from the Interceptor app (onboarding, workspace creation & all product surfaces) Jul 13, 2026
Kanishkrawatt and others added 2 commits July 17, 2026 14:51
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>
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.

1 participant