You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
No feature flag needed. TaskScheduler ships at maxConcurrency = 1 (identical to current behavior) — invisible to users until a config option raises the limit.
Stories
Story 3.2a — Introduce TaskRegistry and migrate clineStack (must land first)
Story 3.1 — Implement TaskScheduler (rebases onto 3.2a)
Story 3.2b — Fan-out correctness baseline: parent stays active while child runs, without leaking child mode/profile/global execution context into the parent
Story 3.2c — Extension-side task-scoping guard: focused-vs-target task routing, live-task focus switching, and non-focused post suppression
Story 3.2d — Webview-side task-scoping guard + per-task seq
Story 3.3 — Child completion callback and parent wakeup
Dependencies
Requires Stories 1.1 and 1.2 from Epic 1.
Scoping Notes
Fan-out breaks the historical invariant that "focused task" and "task an operation is about" are always the same object. Story 3.2b owns the first correctness boundary: the parent may remain live while a child is created, so the child setup path must not mutate or read parent execution context by accident. That includes task mode, live API handler, sticky profile, webview state pushes, semaphore permit rollback, and any global mode/profile state that a still-running parent can read later.
Story 3.2c then generalizes the extension-host side of task scoping after fan-out exists: live task focus switching (showTaskWithId), non-focused task webview posting gates, runningTaskIds, and cleanup/consolidation of focused-vs-target API shapes introduced by 3.2b.
Story 3.2d remains the webview defense-in-depth layer, and Story 3.3 remains child completion and parent wakeup.
Activity
TaskScheduler#368TaskRegistryand migrateclineStack#367