refactor: dead-code sweep (−7.4k lines, 44 files, 20 unused deps) (#135) 4 months ago
Authored
Max Weinbach 5/28/2026, 7:46:23 PM * refactor: remove dead code across harness, server, providers, and desktop
Swept the codebase with knip and removed confirmed-dead code in three
iterative passes, verifying each candidate with repo-wide ripgrep to catch
dynamic/string references that static analysis misses.
- Delete 44 unused files (35 unused shadcn UI components + 9 dead modules,
incl. src/session/index barrel, src/runtime/openaiEventStream,
src/plugins/skillBridge, desktop designTokens/react-ref/use-mobile/etc.)
- Remove ~150 unreferenced symbols and ~190 dead barrel re-exports
- Drop the `export` keyword from ~435 symbols used only within their own file
- Clean the stale openaiEventStream.ts reference from the package files manifest
(package.json, biome.json, package-manifest test)
~7,300 lines removed. Intentionally kept 4 exports reached only via dynamic
import()/module load/test dynamic import.
Verified green: bun run typecheck, bun run docs:check, and
bun test --max-concurrency 1 (4147 pass, 0 fail, 4 pre-existing skips).
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore: add knip dead-code guardrail
Add knip + knip.json scoped to dead-code categories (unused files, exports,
types, enum members) so `bun run knip` guards against dead-code regressions.
Dependency/unlisted/binary/duplicate checks are disabled to keep the gate
focused and false-positive-free (build-tooling deps, mobile expo imports, etc.).
Reports clean. The 4 exports reachable only via dynamic references are
annotated so static analysis can see them:
- createLegacySessionSnapshot, isTrustedSender: `@public` JSDoc tags
- ManagedSofficeRuntimeDiagnostic: converted the consumer's inline import()
type to a static `import type` (also more readable)
Run with: bun run knip
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore: remove unused desktop dependencies orphaned by dead-code sweep
Deleting the 35 unused shadcn UI components left their underlying libraries
with zero imports anywhere in the codebase. Removed 20 now-orphaned packages
from apps/desktop (verified each has no static/dynamic import via ripgrep;
confirmed surviving radix components use the `radix-ui` umbrella instead):
@base-ui/react, @hookform/resolvers, @radix-ui/react-{checkbox,collapsible,
dialog,select,slot,switch,tooltip}, date-fns, embla-carousel-react, input-otp,
next-themes, react-day-picker, react-hook-form, react-resizable-panels,
recharts, sonner, vaul, ai-elements
Kept build/packaging tooling that knip flags but is used outside TS imports:
@electron/notarize (electron-builder afterSign hook), tailwindcss (v4 CSS),
electron-rebuild (native packaging).
Verified: bun run typecheck, bun test (4147 pass, 0 fail).
Co-authored-by: Cursor <cursoragent@cursor.com>
* test: stabilize bash approval smoke
Apply Biome formatting and import cleanup from the dead-code sweep so the lint job is clean.
Stub the shell runner in the approveCommand unit test so the Windows smoke lane verifies approval ordering without depending on real shell process startup.
---------
Co-authored-by: Cursor <cursoragent@cursor.com> Parent7d8302e
259 files changed
apps/desktop/electron/ipc/trustedSender.ts +2 −1 apps/desktop/electron/ipc/types.ts +2 −2 apps/desktop/electron/services/ipcSecurity.ts +2 −5 apps/desktop/electron/services/menu.ts +1 −1 apps/desktop/electron/services/mobileRelayTypes.ts +5 −11 apps/desktop/electron/services/sidecar.ts +5 −5 apps/desktop/electron/services/windowAppearancePaint.ts +2 −2 apps/desktop/electron/services/windowChrome/platformChrome.ts
+1
−14
apps/desktop/package.json +0 −20
apps/desktop/src/app/localStateCache.ts +0 −11
apps/desktop/src/app/openaiCompatibleProviderOptions.ts +5 −55
apps/desktop/src/app/persistedProviderState.ts +1 −1
apps/desktop/src/app/providerUiState.ts +1 −1
apps/desktop/src/app/store.actions/bootstrap.ts +1 −1
apps/desktop/src/app/store.feedMapping.ts +1 −1
apps/desktop/src/app/store.helpers.ts +2 −22
apps/desktop/src/app/store.helpers/controlSocket.ts +1 −1
apps/desktop/src/app/store.helpers/extensionEvents.ts +4 −4
apps/desktop/src/app/store.helpers/jsonRpcSocket.ts +2 −2
apps/desktop/src/app/store.helpers/runtimeState.ts +3 −11
apps/desktop/src/app/store.helpers/threadEventReducer.ts +0 −1
apps/desktop/src/app/store.helpers/threadEventReducer/handlers/shared.ts +1 −1
apps/desktop/src/app/store.helpers/threadEventReducerContext.ts +0 −10
apps/desktop/src/app/types.ts +17 −43
apps/desktop/src/components/ai-elements/message.tsx +2 −2
apps/desktop/src/components/ai-elements/prompt-input.tsx +3 −3
apps/desktop/src/components/ai-elements/reasoning.tsx +0 −119
apps/desktop/src/components/ai-elements/tool.tsx +0 −3
apps/desktop/src/components/ui/accordion.tsx +0 −62
apps/desktop/src/components/ui/alert-dialog.tsx +0 −178
apps/desktop/src/components/ui/alert.tsx +0 −60
apps/desktop/src/components/ui/aspect-ratio.tsx +0 −9
apps/desktop/src/components/ui/avatar.tsx +0 −94
apps/desktop/src/components/ui/badge.tsx +1 −1
apps/desktop/src/components/ui/breadcrumb.tsx +0 −102
apps/desktop/src/components/ui/button-group.tsx +0 −77
apps/desktop/src/components/ui/calendar.tsx +0 −177
apps/desktop/src/components/ui/card.tsx +1 −21
apps/desktop/src/components/ui/carousel.tsx +0 −229
apps/desktop/src/components/ui/chart.tsx +0 −338
apps/desktop/src/components/ui/combobox.tsx +0 −281
apps/desktop/src/components/ui/command.tsx +0 −50
apps/desktop/src/components/ui/context-menu.tsx +0 −224
apps/desktop/src/components/ui/direction.tsx +0 −20
apps/desktop/src/components/ui/drawer.tsx +0 −122
apps/desktop/src/components/ui/dropdown-menu.tsx +1 −168
apps/desktop/src/components/ui/empty.tsx +0 −94
apps/desktop/src/components/ui/field.tsx +0 −235
apps/desktop/src/components/ui/form.tsx +0 −149
apps/desktop/src/components/ui/hover-card.tsx +0 −36
apps/desktop/src/components/ui/input-group.tsx +1 −117
apps/desktop/src/components/ui/input-otp.tsx +0 −70
apps/desktop/src/components/ui/item.tsx +0 −171
apps/desktop/src/components/ui/kbd.tsx +0 −28
apps/desktop/src/components/ui/menubar.tsx +0 −252
apps/desktop/src/components/ui/native-select.tsx +1 −11
apps/desktop/src/components/ui/navigation-menu.tsx +0 −161
apps/desktop/src/components/ui/pagination.tsx +0 −104
apps/desktop/src/components/ui/popover.tsx +1 −37
apps/desktop/src/components/ui/radio-group.tsx +0 −43
apps/desktop/src/components/ui/resizable.tsx +0 −47
apps/desktop/src/components/ui/scroll-area.tsx +1 −1
apps/desktop/src/components/ui/select.tsx +1 −25
apps/desktop/src/components/ui/sheet.tsx +0 −134
apps/desktop/src/components/ui/sidebar.tsx +0 −691
apps/desktop/src/components/ui/skeleton.tsx +0 −13
apps/desktop/src/components/ui/slider.tsx +0 −56
apps/desktop/src/components/ui/sonner.tsx +0 −40
apps/desktop/src/components/ui/table.tsx +0 −92
apps/desktop/src/components/ui/tabs.tsx +1 −48
apps/desktop/src/components/ui/toggle-group.tsx +0 −81
apps/desktop/src/components/ui/toggle.tsx +0 −46
apps/desktop/src/hooks/use-mobile.ts +0 −19
apps/desktop/src/lib/agentSocket.ts +0 −1
apps/desktop/src/lib/canvasMarkdown.ts +2 −2
apps/desktop/src/lib/designTokens.ts +0 −24
apps/desktop/src/lib/desktopApi.ts +5 −14
apps/desktop/src/lib/desktopCommands.ts +0 −37
apps/desktop/src/lib/desktopPlatform.ts +2 −2
apps/desktop/src/lib/desktopSchemas.ts +2 −2
apps/desktop/src/lib/nativeDisabled.ts +0 −15
apps/desktop/src/lib/providerOrdering.ts +1 −1
apps/desktop/src/lib/quickChatShortcut.ts +0 −4
apps/desktop/src/lib/react-ref.ts +0 −26
apps/desktop/src/lib/time.ts +1 −18
apps/desktop/src/lib/version.ts +0 −3
apps/desktop/src/lib/webWorkspaceState.ts +0 −12
apps/desktop/src/ui/ChatView.tsx +0 −2
apps/desktop/src/ui/chat/a2ui/A2uiRenderer.tsx +0 −8
apps/desktop/src/ui/chat/activityGroups.ts +3 −3
apps/desktop/src/ui/chat/chatLogic.ts +1 −1
apps/desktop/src/ui/layout/useWindowDragHandle.ts +0 −211
apps/desktop/src/ui/plugins/InstallPluginDialog.tsx +1 −1
apps/desktop/src/ui/settings/SettingsChromeContext.tsx +0 −8
apps/desktop/src/ui/settings/SettingsPrimitives.tsx +0 −39
apps/desktop/src/ui/settings/pages/MemoryPage.tsx +1 −1
apps/desktop/src/ui/settings/pages/RemoteAccessPage.tsx +1 −1
apps/desktop/src/ui/settings/pages/mcpServerDraft.ts +1 −1
apps/desktop/src/ui/settings/pages/mcpServerEditorState.ts +1 −1
apps/desktop/src/ui/settings/pages/providersPageUtils.ts +6 −6
apps/desktop/src/ui/sidebar/SidebarSectionFrame.tsx +1 −1
apps/desktop/src/ui/skills/InstallSkillDialog.tsx +1 −1
apps/desktop/src/ui/skills/utils.tsx +1 −1
biome.json +0 −2
bun.lock +111 −108
knip.json +43 −0
package.json +3 −2
src/auth/oauth-server.ts +1 −132
src/cli/repl/serverEventHandler.ts +1 −1
src/cli/repl/streamFormatting.ts +0 −33
src/client/jsonRpcSocket.ts +1 −1
src/client/modelStream.ts +1 −6
src/client/modelStreamReplay.ts +0 −4
src/codexPrimaryRuntime.ts +0 −3
src/codexPrimaryRuntime/index.ts +0 −5
src/config.ts +1 −76
src/experimental/a2ui/SurfaceManager.ts +0 −2
src/experimental/a2ui/component.ts +1 −1
src/experimental/a2ui/flags.ts +1 −1
src/experimental/a2ui/functions.ts +3 −9
src/experimental/a2ui/index.ts +5 −66
src/experimental/a2ui/protocol.ts +3 −7
src/experimental/a2ui/schema.ts +1 −14
src/experimental/a2ui/sessionAdapter.ts +1 −1
src/experimental/a2ui/surface.ts +0 −4
src/experimental/openaiNativeConnectors/flags.ts +1 −2
src/extensions/github.ts +3 −23
src/extensions/source.ts +6 −8
src/managedSofficeRuntime.ts +1 −6
src/managedSofficeRuntime/index.ts +1 −6
src/managedSofficeRuntime/instructions.ts +1 −1
src/managedSofficeRuntime/paths.ts +2 −2
src/managedSofficeRuntime/shims.ts +2 −2
src/mcp/authStore.ts +0 −4
src/mcp/configRegistry.ts +1 −6
src/mcp/index.ts +1 −4
src/mcp/oauthProvider.ts +1 −1
src/migrateAgentConfig.ts +1 −1
src/models/childModelRouting.ts +2 −2
src/models/metadataTypes.ts +1 −1
src/models/registry.ts +3 −5
src/observability/modelCallSpan.ts +2 −2
src/observability/runtime.ts +1 −6
src/plugins/discovery.ts +1 −1
src/plugins/index.ts +4 −49
src/plugins/manifest.ts +3 −3
src/plugins/marketplace.ts +1 −1
src/plugins/mcp.ts +1 −54
src/plugins/operations.ts +0 −2
src/plugins/remoteMarketplace.ts +6 −6
src/plugins/skillBridge.ts +0 −84
src/plugins/sourceResolver.ts +3 −4
src/providers/anthropic.ts +0 −35
src/providers/antigravitySupport.ts +1 −1
src/providers/authRegistry.ts +1 −9
src/providers/bedrockShared.ts +4 −32
src/providers/codex-cli.ts +0 −6
src/providers/codexAppServerAuth.ts +1 −1
src/providers/codexAppServerClient.ts +4 −36
src/providers/codexAppServerResolver.ts +1 −1
src/providers/fireworksShared.ts +0 −10
src/providers/google.ts +0 −21
src/providers/index.ts +1 −25
src/providers/lmstudio/catalog.ts +1 −1
src/providers/modelAdapter.ts +0 −14
src/providers/openai.ts +0 −26
src/providers/opencodeShared.ts +8 −28
src/runtime/codexAppServer/config.ts +1 −1
src/runtime/codexAppServer/serverRequests.ts +1 −1
src/runtime/codexAppServer/turnInput.ts +3 −3
src/runtime/codexAppServer/types.ts +2 −2
src/runtime/googleInteractionsModel.ts +1 −6
src/runtime/googleNative/index.ts +1 −8
src/runtime/googleNative/messageToInput.ts +0 −1
src/runtime/googleNativeInteractions.ts +0 −5
src/runtime/openaiEventStream.ts +0 −75
src/runtime/openaiNativeResponses.ts +3 −3
src/runtime/openaiResponsesProjector.ts +3 −5
src/runtime/openaiResponsesShared.ts +1 −1
src/runtime/pi/index.ts +0 −2
src/runtime/piMessageBridge.ts +1 −1
src/runtime/piRuntime.ts +0 −2
src/runtime/piRuntimeOptions.ts +1 −32
src/server/agents/commandPolicy.ts +0 −5
src/server/agents/reportParser.ts +1 −1
src/server/agents/roles.ts +1 −1
src/server/agents/types.ts +0 −3
src/server/citationMetadata.ts +3 −3
src/server/connectors/openaiNativeConnectors.ts +0 −20
src/server/jsonrpc/projectorShared.ts +0 −6
src/server/jsonrpc/routes/outcomes.ts +2 −42
src/server/jsonrpc/routes/shared.ts +4 −4
src/server/jsonrpc/routes/types.ts +4 −5
src/server/jsonrpc/schema.agents.ts +5 −5
src/server/jsonrpc/schema.core.ts +2 −2
src/server/jsonrpc/schema.misc.ts +5 −5
src/server/jsonrpc/schema.session.ts +11 −11
src/server/jsonrpc/schema.shared.ts +0 −2
src/server/jsonrpc/schema.ts +1 −15
src/server/jsonrpc/schema.workspace.ts +2 −2
src/server/modelStream.ts +0 −6
src/server/presentationPreview.ts +1 −1
src/server/projection/conversationProjection.ts +2 −11
src/server/projection/conversationProjectionAssistant.ts +1 −1
src/server/projection/conversationProjectionState.ts +2 −2
src/server/projection/conversationProjectionTypes.ts +1 −1
src/server/protocol.ts +3 −9
src/server/research/types.ts +4 −11
src/server/runtime/ConfigPatchStore.ts +3 −3
src/server/runtime/SocketSendQueue.ts +2 −2
src/server/session/AgentSessionSystemPrompt.ts +2 −2
src/server/session/SessionContext.ts +2 −2
src/server/session/SessionSnapshotProjector.ts +1 −0
src/server/session/turnExecution/continuationPolicy.ts +2 −4
src/server/session/turnExecution/partialTurnError.ts +0 −5
src/server/session/turnExecution/runTurnInvocation.ts +2 −2
src/server/session/turnExecution/steerCoordinator.ts +1 −1
src/server/session/turnExecution/turnUsageAggregator.ts +1 −1
src/server/sessionBackup/fileSystem.ts +1 −1
src/server/sessionStore.ts +7 −9
src/server/skillMutationRefresh.ts +1 −1
src/server/startServer/types.ts +3 −8
src/server/title/phiSilicaTitle.ts +0 −6
src/server/title/shared.ts +1 −1
src/server/transport/h3/pairing.ts +2 −2
src/server/transport/h3/server.ts +1 −1
src/server/wsProtocol/negotiation.ts +4 −4
src/session/index.ts +0 −28
src/session/sessionUsageSchema.ts +4 −4
src/shared/agents.ts +8 −8
src/shared/attachments.ts +2 −2
src/shared/featureFlags.ts +2 −6
src/shared/googleThinking.ts +2 −9
src/shared/jsonrpcControlSchemas.ts +98 −123
src/shared/openaiCompatibleOptions.ts +10 −12
src/shared/openaiContinuation.ts +1 −1
src/shared/openaiNativeConnectors.ts +2 −2
src/shared/projectedItems.ts +2 −2
src/shared/providerAuthMethods.ts +3 −3
src/shared/providerContinuation.ts +3 −9
src/shared/sessionSnapshot.ts +1 −1
src/shared/spreadsheetPreview.ts +2 −2
src/shared/toolOutputOverflow.ts +0 −4
src/skills/manifest.ts +1 −1
src/skills/operations.ts +0 −16
src/store/connections.ts +1 −1
src/tools/ask.ts +1 −1
src/tools/codexBoundary.ts +1 −1
src/tools/context.ts +0 −2
src/tools/index.ts +2 −6
src/tools/todoWrite.ts +1 −1
src/turnSystemPrompt.ts +1 −1
src/types.ts +12 −20
src/utils/approval.ts +2 −2
src/utils/atomicFile.ts +0 −4
src/utils/oneOffChats.ts +2 −2
src/utils/paths.ts +1 −1
test/package-manifest.test.ts +0 −1
test/tools/tools.bash.test.ts +5 −0