mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-10-25 05:53:57 +00:00
Infrastructure: - IMailboxService interface (abstraction over in-process and future file backends) - InMemoryMailbox: EventEmitter-based, instant delivery, configurable timeout fallback - MailboxManager: per-session mailbox lifecycle + assignTask/shutdownWorker/ waitForNextMessage/notifyIdle helpers Events: - WorkerIdle [sessionId, taskId] — emitted when a persistent worker finishes a turn - WorkerShutdown [sessionId, taskId] — emitted when a worker receives shutdown_request Idle loop (opt-in via persistent:true on spawnConcurrentChildren): - spawnConcurrentChildren gains persistent?: boolean param; creates/destroys mailbox - AttemptCompletionTool concurrent path: if session has an active mailbox, sends idle_notification and awaits task_assignment or shutdown_request (5-min safety timeout). On task_assignment: pushes new task context and returns "reassigned" so the LLM loop continues without resolving the parent Promise. On shutdown or timeout: resolves normally. TaskCompleted is NOT emitted for reassigned workers. - DelegationProvider interface gains swarmRegistry, mailboxManager, emit fields Public API on ClineProvider: - assignTaskToWorker(sessionId, workerId, message): sends task_assignment - shutdownWorkers(sessionId): broadcasts shutdown_request to all session workers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| npm | ||
| scripts | ||
| src | ||
| .gitignore | ||
| CHANGELOG.md | ||
| eslint.config.mjs | ||
| package.json | ||
| tsconfig.json | ||
| tsup.config.ts | ||
| vitest.config.ts | ||