Skip to content

Replace systemIOActor with queued systemIOService - #12402

Draft
franknoirot wants to merge 9 commits into
mainfrom
codex/systemio-service-split
Draft

Replace systemIOActor with queued systemIOService#12402
franknoirot wants to merge 9 commits into
mainfrom
codex/systemio-service-split

Conversation

@franknoirot

Copy link
Copy Markdown
Contributor

Summary

This draft replaces systemIOActor as a public app subsystem with a registry-backed queued systemIOService, then moves the remaining project/session ownership to callers that already own those effects.

  • Adds focused project file helpers and a reusable safe file-route transition helper.
  • Replaces the XState systemIOActor with a queued service for filesystem requests, shallow local project indexing, status signals, coalescing, and per-resource serialization.
  • Moves Home and command palette project data to shallow HomeProjectEntry contributions instead of a recursively scanned global Project[].
  • Scopes full Project tree loading to the opened project and Project Explorer refreshes.
  • Moves create/import/rename/delete/open flows through explicit service/session calls, with navigation owned by callers.
  • Routes MlEphant file patching through the new service.

Why

The current actor was carrying too many responsibilities: filesystem effects, cached project lists, navigation requests, watcher policy, and session state. This splits those concerns so filesystem work can be queued/coalesced independently while route/session code owns route effects and opened-project state.

This is intended to address the concurrency and simplification goals from #12350, and to prepare the route-loader cleanup needed by #12082.

Coordination

Expected to supersede, pending review:

#12082 will likely need to be rebased onto this branch once the shape is accepted.

Validation

  • npm run lint
  • npm run tsc
  • npx vitest run --mode=development src/lib/systemIOService.test.ts src/components/layout/areas/ProjectExplorerPane.test.ts src/lib/commandBarConfigs/projectsCommandConfig.spec.ts src/lib/routeLoaderUtils.test.ts src/components/layout/areas/MlEphantConversationPaneWrapper.spec.tsx
  • removed-surface scan for systemIOActor, SystemIOActor, SystemIOMachineLogicListener, waitForIdleState, readFoldersFromProjectDirectory, and related legacy exports

@vercel

vercel Bot commented Jul 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
modeling-app Ready Ready Preview, Comment Jul 10, 2026 8:56pm

Request Review

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