Skip to content

refactor(server): extract team and bot action routes from index - #1402

Closed
bradhallett wants to merge 94 commits into
milind-soni:mainfrom
bradhallett:refactor/code-health-77
Closed

bradhallett wants to merge 94 commits into
milind-soni:mainfrom
bradhallett:refactor/code-health-77

Conversation

@bradhallett

@bradhallett bradhallett commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Part 77 of 91 in the refactor/code-health-campaign stack.

Merges after refactor/code-health-76 (part 76).
Until earlier parts of the stack merge, the Files changed view also shows their commits — review only this PRs head commit in the Commits tab.


Stack queue cleanup — 2026-09-20

Closed at the maintainer’s request in favor of the single draft consolidation PR #1582. This is not a merge and does not assert that every change is included. See the commit reconciliation checklist before merging the consolidation. The source branch and this PR’s history are preserved; this PR can be reopened if needed.
Saved head: 5ec549d.

@vercel

vercel Bot commented Sep 17, 2026

Copy link
Copy Markdown

@bradhallett is attempting to deploy a commit to the SupaMaus Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 447 files, which is 147 over the limit of 300.

To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 90f03f29-af44-4bee-b6e0-c1d6e7622c93

📥 Commits

Reviewing files that changed from the base of the PR and between ec62fcf and 5ec549d.

📒 Files selected for processing (447)
  • electron/app-permissions.node-test.mjs
  • electron/company-backup-main.node-test.mjs
  • electron/diagnostics.test.mjs
  • electron/main.mjs
  • electron/main/boot-error-page.mjs
  • electron/main/companion-connection.mjs
  • electron/main/company-backup.mjs
  • electron/main/crash-log.mjs
  • electron/main/cua-media.mjs
  • electron/main/desktop-ipc.mjs
  • electron/main/desktop-viewer.mjs
  • electron/main/desktop-workspace.mjs
  • electron/main/diagnostics.mjs
  • electron/main/environments.mjs
  • electron/main/ipc-guards.mjs
  • electron/main/main-window.mjs
  • electron/main/secure-config.mjs
  • electron/main/server-boot.mjs
  • electron/main/server-runtime.mjs
  • electron/main/unread-badge.mjs
  • electron/main/window-state.mjs
  • scripts/control-omb.ts
  • scripts/mcp-server.ts
  • scripts/mcp-server/bots.ts
  • scripts/mcp-server/channels.ts
  • scripts/mcp-server/context.ts
  • scripts/mcp-server/conversations.ts
  • scripts/mcp-server/models.ts
  • scripts/mcp-server/registry.ts
  • scripts/mcp-server/search.ts
  • scripts/mcp-server/shared.ts
  • scripts/mcp-server/system.ts
  • scripts/mcp-server/tasks.ts
  • scripts/testing/bot-tools-ui.e2e.test.ts
  • scripts/testing/cloud-preview.tsx
  • scripts/testing/cron-routines-ui.e2e.test.ts
  • scripts/testing/engines-preview.tsx
  • scripts/testing/thinking-timer-ui.e2e.test.ts
  • scripts/testing/verification-docs.test.ts
  • server/bot-views.ts
  • server/box.ts
  • server/box/api.ts
  • server/box/commands.ts
  • server/box/computer.ts
  • server/box/deletion.ts
  • server/box/inventory.ts
  • server/box/lifecycle.ts
  • server/box/naming.ts
  • server/browser-runtime.test.ts
  • server/browser-runtime.ts
  • server/checked-inputs.ts
  • server/claude-update.ts
  • server/cli-stop.e2e.test.ts
  • server/cli.ts
  • server/cli/accounts.ts
  • server/cli/client.ts
  • server/cli/main.ts
  • server/cli/onboarding.ts
  • server/cli/options.ts
  • server/cli/pairing.ts
  • server/cli/prefs.ts
  • server/cli/serve.ts
  • server/cli/sessions.ts
  • server/composio.ts
  • server/composio/accounts.ts
  • server/composio/broker.ts
  • server/composio/mcp.ts
  • server/composio/sessions.ts
  • server/composio/state.ts
  • server/composio/toolkits.ts
  • server/computer-backend.ts
  • server/computer-lifecycle.ts
  • server/config-views.ts
  • server/config.test.ts
  • server/config.ts
  • server/config/accessors.ts
  • server/config/credentials.ts
  • server/config/instance-cli.ts
  • server/config/io.ts
  • server/config/mcp.ts
  • server/config/profiles.ts
  • server/config/schema.ts
  • server/container-computer.ts
  • server/container/frame.ts
  • server/container/hardening.ts
  • server/container/image.ts
  • server/container/lifecycle.ts
  • server/container/runtime.ts
  • server/container/screenshot-cache.ts
  • server/container/status.ts
  • server/deferred-resumes.ts
  • server/delegation-watch.ts
  • server/desktop-approval.ts
  • server/drivers/acp/acp.test.ts
  • server/drivers/acp/core.ts
  • server/drivers/acp/log-sanitize.ts
  • server/drivers/acp/protocol.test.ts
  • server/drivers/acp/protocol.ts
  • server/drivers/acp/wire-types.ts
  • server/drivers/acp/wire.ts
  • server/drivers/agents-proxy.test.ts
  • server/drivers/agents-proxy.ts
  • server/drivers/agents-proxy/bots.ts
  • server/drivers/agents-proxy/computers.ts
  • server/drivers/agents-proxy/context.ts
  • server/drivers/agents-proxy/credentials.ts
  • server/drivers/agents-proxy/helpers.ts
  • server/drivers/agents-proxy/memory.ts
  • server/drivers/agents-proxy/registry.ts
  • server/drivers/agents-proxy/rooms.ts
  • server/drivers/agents-proxy/routine-schemas.ts
  • server/drivers/agents-proxy/routines.ts
  • server/drivers/agents-proxy/skills.ts
  • server/drivers/agents-proxy/teams.ts
  • server/drivers/agents-proxy/threads.ts
  • server/drivers/antigravity-acp.ts
  • server/drivers/boxagent.ts
  • server/drivers/claude-login-auth.test.ts
  • server/drivers/claude-login-auth.ts
  • server/drivers/claude.ts
  • server/drivers/claude/cli-version.ts
  • server/drivers/claude/decode.ts
  • server/drivers/claude/driver.ts
  • server/drivers/claude/env-auth.ts
  • server/drivers/claude/generate-review.ts
  • server/drivers/claude/models.ts
  • server/drivers/claude/permission-broker.ts
  • server/drivers/claude/session.ts
  • server/drivers/claude/stream-events.ts
  • server/drivers/claude/turn-mcp.ts
  • server/drivers/claude/user-message.ts
  • server/drivers/codex-approvals.ts
  • server/drivers/codex.test.ts
  • server/drivers/codex.ts
  • server/drivers/codex/config.ts
  • server/drivers/codex/driver.ts
  • server/drivers/codex/launch.ts
  • server/drivers/codex/logs.ts
  • server/drivers/codex/mcp.ts
  • server/drivers/codex/requests.ts
  • server/drivers/codex/rpc.ts
  • server/drivers/codex/snapshot.ts
  • server/drivers/codex/update.ts
  • server/drivers/codex/wire.ts
  • server/drivers/driver-runtime.test.ts
  • server/drivers/driver-runtime.ts
  • server/drivers/openai-chat.ts
  • server/drivers/pi.ts
  • server/engine-install.test.ts
  • server/event-fold.ts
  • server/event-fold/approval-cards.ts
  • server/event-fold/runtime-router.ts
  • server/event-fold/turn-completion.ts
  • server/event-fold/turn-lifecycle.ts
  • server/event-fold/types.ts
  • server/fleet-agent.test.ts
  • server/fleet-agent.ts
  • server/group-coordination.ts
  • server/group-turn-operations.ts
  • server/group-turn.ts
  • server/group-turn/goal-run.ts
  • server/group-turn/member-turn.ts
  • server/group-turn/room-context.ts
  • server/group-turn/start.ts
  • server/group-turn/types.ts
  • server/http.ts
  • server/index.test.ts
  • server/index.ts
  • server/internal-capabilities.ts
  • server/local-vm-turn-prep.ts
  • server/managed-desktop-cleanup.test.ts
  • server/mcp-registry.test.ts
  • server/mcp-registry.ts
  • server/mcp-server.test.ts
  • server/provider-fleet.ts
  • server/room-handoff-wiring.ts
  • server/routes/bots.ts
  • server/routes/calendar-calls.ts
  • server/routes/config.ts
  • server/routes/connectors.ts
  • server/routes/events.ts
  • server/routes/http.ts
  • server/routes/instances.ts
  • server/routes/internal.ts
  • server/routes/internal/ask-bot.ts
  • server/routes/internal/computer.ts
  • server/routes/internal/connectors.ts
  • server/routes/internal/coordination.ts
  • server/routes/internal/delegations.ts
  • server/routes/internal/memory.ts
  • server/routes/internal/post-to-room.ts
  • server/routes/internal/requests.ts
  • server/routes/internal/roster.ts
  • server/routes/internal/skills.ts
  • server/routes/internal/threads.ts
  • server/routes/internal/types.ts
  • server/routes/mcp.ts
  • server/routes/messages.ts
  • server/routes/routines.ts
  • server/routes/search.ts
  • server/routes/team-library.ts
  • server/routes/teams.ts
  • server/routes/tts.ts
  • server/routes/usage.ts
  • server/routes/webhooks.ts
  • server/routine-delegation.e2e.test.ts
  • server/routine-requests.ts
  • server/routine-requests/copy.ts
  • server/routine-requests/normalize.ts
  • server/routine-requests/schemas.ts
  • server/routine-requests/service.ts
  • server/routine-requests/types.ts
  • server/routine-wiring.ts
  • server/routines.test.ts
  • server/routines.ts
  • server/routines/manager.ts
  • server/routines/persistence.ts
  • server/routines/prompt.ts
  • server/routines/receipts.ts
  • server/routines/runs.ts
  • server/routines/schedule.ts
  • server/routines/types.ts
  • server/runtime.ts
  • server/screen-frame-gate.test.ts
  • server/screen-pollers.ts
  • server/skills.ts
  • server/skills/manifest.ts
  • server/skills/prompt.ts
  • server/skills/staged.ts
  • server/skills/store.ts
  • server/skills/text.ts
  • server/start-turn.ts
  • server/start-turn/phases/admission.ts
  • server/start-turn/phases/context.ts
  • server/start-turn/phases/dispatch.ts
  • server/start-turn/phases/integrations.ts
  • server/start-turn/phases/prompts.ts
  • server/start-turn/phases/provider.ts
  • server/start-turn/phases/shared.ts
  • server/store.test.ts
  • server/store.ts
  • server/store/bots.ts
  • server/store/context.ts
  • server/store/groups.ts
  • server/store/messages.ts
  • server/store/migrations.ts
  • server/store/records.ts
  • server/store/tasks.ts
  • server/testing/fake-codex-app-server.ts
  • server/turn-admission.ts
  • server/turn-cleanup.ts
  • server/turn-fold.ts
  • server/turn-integrations.ts
  • server/turn-secrets.ts
  • server/vps-computer.ts
  • server/vps/cli.ts
  • server/vps/inventory.ts
  • server/vps/lifecycle.ts
  • server/vps/status.ts
  • server/vps/tunnels.ts
  • server/webhook-ingress.ts
  • server/workspace-backup.ts
  • shared/attachments.ts
  • shared/routines.ts
  • shared/server-endpoint.ts
  • shared/webhooks.ts
  • src/App.tsx
  • src/components/BotSettingsDialog.tsx
  • src/components/CallView.tsx
  • src/components/CanvasComputers.tsx
  • src/components/ChatView.tsx
  • src/components/Composer.tsx
  • src/components/ComputerPanel.tsx
  • src/components/CursorAvatar.tsx
  • src/components/GroupCallView.tsx
  • src/components/GroupView.tsx
  • src/components/InspectorPanel.tsx
  • src/components/LocalComputerSection.tsx
  • src/components/NewBotDialog.test.ts
  • src/components/NewBotDialog.tsx
  • src/components/PhoneSetupFlow.tsx
  • src/components/PluginsPanel.navigation.test.ts
  • src/components/PluginsPanel.tsx
  • src/components/RawMarkdownToggle.test.ts
  • src/components/RemoteAgentSettingsPanel.tsx
  • src/components/RoutineCalendarPage.tsx
  • src/components/RoutineResultsNavigation.test.ts
  • src/components/SettingsModal.appearance.test.ts
  • src/components/SettingsModal.serverPairing.test.ts
  • src/components/SettingsModal.tsx
  • src/components/Sidebar.tsx
  • src/components/SidebarBotListItem.test.ts
  • src/components/SidebarPhoneButton.test.ts
  • src/components/SidebarPhoneButton.tsx
  • src/components/SidebarProfileMenu.tsx
  • src/components/TeamCanvas.tsx
  • src/components/TeamLibraryPanel.tsx
  • src/components/TeamMapPage.tsx
  • src/components/WebhooksPanel.tsx
  • src/components/bot-settings/AccessSection.test.ts
  • src/components/bot-settings/AccessSection.tsx
  • src/components/bot-settings/RoutinesSection.test.ts
  • src/components/bot-settings/RoutinesSection.tsx
  • src/components/bot-settings/UsageSection.tsx
  • src/components/browser-install-opt-in.test.ts
  • src/components/chat-view/activity-chip.tsx
  • src/components/chat-view/bubble-editor.tsx
  • src/components/chat-view/bubble.tsx
  • src/components/chat-view/copy-button.tsx
  • src/components/chat-view/error-row.tsx
  • src/components/chat-view/message-boundary.tsx
  • src/components/chat-view/messages-list.tsx
  • src/components/chat-view/pinned-banner.tsx
  • src/components/chat-view/separator.tsx
  • src/components/chat-view/usage-chip.tsx
  • src/components/composer/use-composer-pickers.ts
  • src/components/composer/use-composer-steer.ts
  • src/components/computer-panel/ControlActions.tsx
  • src/components/computer-panel/PanelBanners.tsx
  • src/components/computer-panel/PanelHeader.tsx
  • src/components/computer-panel/ScreenPreview.tsx
  • src/components/computer-panel/WorksOnSection.tsx
  • src/components/computer-panel/panelError.ts
  • src/components/computer-panel/types.ts
  • src/components/computer-panel/useComputerActions.ts
  • src/components/computer-panel/useComputerControl.ts
  • src/components/computer-panel/useComputerPanelView.ts
  • src/components/computer-panel/useComputerPreview.ts
  • src/components/computer-panel/useComputerSelection.ts
  • src/components/computer-panel/useComputerStatus.ts
  • src/components/computer-panel/usePanelWidth.ts
  • src/components/cursor-avatar/component.tsx
  • src/components/cursor-avatar/effects.ts
  • src/components/cursor-avatar/expressions.ts
  • src/components/cursor-avatar/motion.ts
  • src/components/cursor-avatar/silhouette.ts
  • src/components/group-view/DefaultResponderSelect.tsx
  • src/components/group-view/RoomSetup.tsx
  • src/components/group-view/RoomToolChip.tsx
  • src/components/group-view/RoomWorkingFolder.tsx
  • src/components/group-view/Transcript.tsx
  • src/components/local-computer/cloud-computers-card.tsx
  • src/components/local-computer/inventory.ts
  • src/components/local-computer/local-vm-inventory-card.tsx
  • src/components/local-computer/ui.tsx
  • src/components/local-computer/vps-computers-card.tsx
  • src/components/onboarding/FirstConversationTour.tsx
  • src/components/onboarding/GuidedTour.tsx
  • src/components/phone-setup/PhoneSetupFlowView.tsx
  • src/components/phone-setup/companionBridge.ts
  • src/components/phone-setup/usePhoneSetupController.ts
  • src/components/remote-desktop-panel.tsx
  • src/components/routine-calendar/attachment-chips.tsx
  • src/components/routine-calendar/bot-picker.tsx
  • src/components/routine-calendar/calendar-event-card.tsx
  • src/components/routine-calendar/calendar-grid.tsx
  • src/components/routine-calendar/event-details.tsx
  • src/components/routine-calendar/event-editor.tsx
  • src/components/routine-calendar/helpers.ts
  • src/components/routine-calendar/paused-list.tsx
  • src/components/routine-calendar/quick-composer.tsx
  • src/components/routine-calendar/routine-editor.tsx
  • src/components/routine-calendar/routine-wake-bar.tsx
  • src/components/routine-calendar/routines-page.tsx
  • src/components/routines/RoutineList.tsx
  • src/components/routines/RoutineLogs.tsx
  • src/components/routines/RoutineViews.test.ts
  • src/components/sidebar/ArchivedBots.tsx
  • src/components/sidebar/BotConfirm.tsx
  • src/components/sidebar/BotContextMenu.tsx
  • src/components/sidebar/BotListItem.tsx
  • src/components/sidebar/BotThreadList.tsx
  • src/components/sidebar/GroupListItem.tsx
  • src/components/sidebar/NewRoomPanel.tsx
  • src/components/sidebar/RoomContextMenu.tsx
  • src/components/sidebar/SectionPicker.tsx
  • src/components/sidebar/useRevealedThreadRow.tsx
  • src/lib/browser-panel-operation.test.ts
  • src/lib/browser-panel-operation.ts
  • src/lib/composer-attachments.test.ts
  • src/lib/composer-attachments.ts
  • src/lib/composer-paste.test.ts
  • src/lib/computer-panel-phase.test.ts
  • src/lib/computer-panel-phase.ts
  • src/lib/format-bytes.test.ts
  • src/lib/format-bytes.ts
  • src/lib/intake-files.test.ts
  • src/lib/memory.test.ts
  • src/lib/memory.ts
  • src/lib/routine-calendar.test.ts
  • src/lib/routine-calendar.ts
  • src/lib/routine-display.ts
  • src/lib/routines.ts
  • src/lib/schedule-label.ts
  • src/lib/webhook-credentials.ts
  • src/lib/webhooks.test.ts
  • src/lib/webhooks.ts
  • src/locales/de.json
  • src/locales/en.json
  • src/locales/es.json
  • src/locales/fr.json
  • src/locales/hi.json
  • src/locales/ja.json
  • src/locales/pt-br.json
  • src/locales/source-hashes.json
  • src/locales/uk.json
  • src/locales/zh-tw.json
  • src/locales/zh.json
  • src/state/action.ts
  • src/state/api.ts
  • src/state/bot-creation.test.ts
  • src/state/model.ts
  • src/state/overlays.ts
  • src/state/peripheral-sync.ts
  • src/state/queue-receipts.ts
  • src/state/reducer.ts
  • src/state/reducer/bots.ts
  • src/state/reducer/groups.ts
  • src/state/reducer/helpers.ts
  • src/state/reducer/hydrate.ts
  • src/state/reducer/messages.ts
  • src/state/reducer/navigation.ts
  • src/state/reducer/queues.ts
  • src/state/reducer/routines.ts
  • src/state/reducer/webhooks.ts
  • src/state/store.test.ts
  • src/state/store.tsx
  • src/state/stream-context.tsx
  • src/state/task-write-recovery.test.ts
  • src/state/task-writes.ts
  • src/state/thread-routing.ts
  • src/testing/bot-settings.tsx
  • third_party/playwright-injected/LICENSE
  • third_party/playwright-injected/README.md
  • third_party/playwright-injected/UPSTREAM_COMMIT
  • third_party/playwright-injected/entry.ts
  • third_party/playwright-injected/isomorphic/ariaSnapshot.ts
  • third_party/playwright-injected/isomorphic/ariaSnapshotRenderer.ts
  • third_party/playwright-injected/isomorphic/cssTokenizer.ts
  • third_party/playwright-injected/isomorphic/stringUtils.ts
  • third_party/playwright-injected/isomorphic/yaml.ts
  • third_party/playwright-injected/publicUrl.ts
  • third_party/playwright-injected/secretInput.ts
  • third_party/playwright-injected/src/ariaSnapshot.ts
  • third_party/playwright-injected/src/ariaSnapshotDistiller.ts
  • third_party/playwright-injected/src/domUtils.ts
  • third_party/playwright-injected/src/roleUtils.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

… dead browser-panel-operation module, and the webhooks/routines re-export shims (importers now use shared/ directly; client-only helpers moved to their owners)
…— the server no longer imports renderer code; unify the byte formatters in src/lib/format-bytes.ts and give the paste-policy test its real home
…dule — boxagent/openai-chat/pi/acp-core drop their hand-rolled skeletons; antigravity reuses the ACP connection instead of re-implementing it
… refreshModels consolidated across claude/codex/acp-core, and codex approval config extracted to codex-approvals.ts
…ons from index.ts — /api/events SSE machinery and the routine routes move to server/routes/ behind the workspace-backup-http factory pattern; json/readBody/stderrOf deduplicated into server/http.ts
…ckends — ComputerStatusCommon and the computerStatusProblem ladder, shared probeCuaDesktop, and computerBackendFor(bot); index.ts dispatches through the resolver
…07-line facade — records, context, migrations, messages, groups, bots, and tasks; the public surface is unchanged and both legacy load catches stay verbatim
…e — an ordered OverlayKind list plus an OVERLAY_EXCLUDES table in store.tsx; thirty call sites move to openOverlay/closeOverlay and the testing previews follow
…s into server/routes/internal.ts — 31 path branches move verbatim behind the chain factory pattern; index.ts shrinks 17,135 to 15,505 lines
@bradhallett
bradhallett force-pushed the refactor/code-health-77 branch from 0855de7 to f2a36d9 Compare September 18, 2026 21:33
…ndow

Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
@bradhallett
bradhallett force-pushed the refactor/code-health-77 branch from 44f87af to 4e2bb0c Compare September 19, 2026 02:22
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
The section guard slices electron/main/company-backup.mjs on an end anchor that contains a literal newline, so a Windows checkout under core.autocrlf fails the anchor search before the guard runs. Normalise the source to LF after reading so the guard is checkout-agnostic.

Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
The route-scan test listed server/request-handler.ts and server/route-wiring.ts unconditionally, but those files only exist once the route-extraction refactor lands, so every branch before it fails the drift test with ENOENT. Filter the module list to files that exist so the scan covers the routes each branch actually serves.

Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
The main bundle imports DEV_URL from main/environments.mjs; without the export the packaged app fails to link at startup.

Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>

# Conflicts:
#	server/browser-runtime.test.ts
#	server/drivers/agents-proxy.ts
#	server/index.ts
#	server/routine-requests.ts
#	src/components/RoutineCalendarPage.tsx
# Conflicts:
#	server/box.ts
#	server/browser-runtime.test.ts
#	server/index.ts
#	src/components/ComputerPanel.tsx
#	src/state/store.tsx
Signed-off-by: Brad Hallett <53977268+bradhallett@users.noreply.github.com>

# Conflicts:
#	server/index.ts
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.

2 participants