To optimize performance, WorkbenchTask is split into two distinct interfaces located in packages/shared/src/workbench.ts:
WorkbenchTaskSummary
Used for sidebar-level data. This is materialized in the organization actor's SQLite database to allow for fast, single-query initial fetches of the entire workspace.
id, repoId, title, status, repoName, updatedAtMs, branch, pullRequest, sessionsSummary.
WorkbenchTaskDetail
Used for full task views. This contains heavy data like file trees and diffs and is only fetched or broadcasted when a user is actively viewing a specific task.
- Includes all summary fields plus:
fileChanges, diffs, fileTree, minutesUsed, sandboxes, and activeSandboxId.