Skip to content

Latest commit

 

History

History
149 lines (109 loc) · 5.25 KB

File metadata and controls

149 lines (109 loc) · 5.25 KB

Workspace Dispatch

wsg coordinates isolated jj workspaces and reusable workers to turn Linear tickets into changes and pull requests. Its language separates where work happens, what executes it, and how dependent tickets progress.

Language

Workspaces

Repository: A jj project whose Workspace registrations and Worker Pool are managed as one unit. Avoid: Current checkout, working directory

Repository Root: The canonical location of a Repository and its Default Workspace, regardless of the Workspace from which wsg is invoked. Avoid: Current Workspace root

Workspace: A named jj working copy registered with a Repository. Avoid: Worktree, checkout

Default Workspace: The protected Workspace at the Repository root. Every Repository has exactly one. Avoid: Primary workspace, root workspace

Workspace Base Directory: The location where wsg expects every non-default Workspace belonging to a Repository. Avoid: Repository Root

Ad Hoc Workspace: A user-created Workspace that is independent of the Worker Pool and cannot receive a Dispatch. Avoid: One-shot workspace, Worker Workspace

Worker Workspace: A Workspace allocated to one Worker and reused across that Worker's Runs. Avoid: Ad Hoc Workspace

Missing Workspace: A registered non-default Workspace that is unavailable at its expected location. Avoid: Unknown Workspace

Execution

Worker Pool: The Repository-scoped collection of reusable Workers available for parallel work. Avoid: Queue, worker farm

Worker: A reusable execution slot backed by a Worker Workspace. A Worker accepts at most one Ticket at a time and is distinct from the Agent Runtime that executes it. Avoid: Agent, Workspace, process

Worker ID: The stable identity of a Worker across Runs and resets. Avoid: Worker Alias, Worker Name

Worker Alias: An optional display label for a Worker that does not change its identity. Avoid: Worker ID, Worker Name

Agent Runtime: The external coding agent selected to execute a Run. Avoid: Agent, Worker

Run: One execution attempt by an Agent Runtime in a Worker Workspace. A Run may finish in Done or Failed, or be abandoned by Reset. Avoid: Agent Session, Worker

Agent Session: The conversational context maintained by an Agent Runtime. One Agent Session can continue across multiple Runs on the same Worker. Avoid: Run, Worker Session

Worker Status: The lifecycle state of a Worker: Idle, Busy, Done, or Failed. Reset returns a Worker to Idle. Avoid: Sub-issue Status, Linear status

Idle: The Worker Status for a Worker available to accept a Reservation.

Busy: The Worker Status for a Worker reserved for a Ticket or executing a Run. Avoid: Running

Done: The Worker Status for a Worker whose latest Run completed successfully. Avoid: Merged

Failed: The Worker Status for a Worker whose latest Run did not complete successfully.

Reservation: The capacity allocation that pairs Tickets with Idle Workers before their Runs start. A Reservation changes Worker availability but is not itself a Dispatch. Avoid: Dispatch, launch

Reset: The operation that clears a Worker's retained assignment and returns it to Idle, terminating an active Run if present. Avoid: Reclaim, kill

Follow-up: A new instruction sent directly to a Worker that is not Busy, outside a Ticket's initial Dispatch. It continues a prior Agent Session when possible and otherwise begins a fresh one. Avoid: Resume

Tickets and dispatch

Ticket: A Linear work item selected for implementation and identified by a key such as AMBA-42. Avoid: GitHub issue, task, job

Ready Ticket: A Ticket selected from Linear because it is in the Todo workflow state and carries the configured dispatch label. Avoid: Ready Sub-issue, ready issue

Parent Ticket: A Ticket used to organize its direct Linear children into a Dispatch Group. When it has no children, it can receive a Direct Dispatch itself. Avoid: Epic, parent issue

Sub-issue: A direct Linear child of a Parent Ticket included in that Parent Ticket's Dispatch Group. Avoid: Sub-ticket, child issue

Blocker: A sibling Sub-issue identified as the prerequisite of another Sub-issue. Avoid: Dependent

Dependency: The directed relationship from a Blocker to the Sub-issue that waits for it. Avoid: Blocker

Dispatch: A request to route a Ticket into execution, either directly on a Worker or through a Dispatch Group. Avoid: Reservation, launch

Direct Dispatch: A Dispatch that assigns the requested Ticket to one Worker and starts its Run without building a Dispatch Group. Avoid: Orchestrated Dispatch

Orchestrated Dispatch: A Dispatch that organizes a Parent Ticket's Sub-issues into a Dispatch Group and directs their execution in dependency order. It does not run the Parent Ticket itself. Avoid: Direct Dispatch

Dispatch Group: The dependency-aware execution progress of the direct Sub-issues associated with one Parent Ticket. Avoid: Batch, Worker Pool

Dispatch Wave: A set of Sub-issues whose Dependencies permit them to receive concurrent Direct Dispatches. Avoid: Batch

Stacked Pull Request: A pull request based on a prerequisite Sub-issue's change rather than directly on the Repository's main line. Avoid: Independent pull request