Repository navigation
Closed
Labels
ready-for-agentSettled scope eligible for dispatchSettled scope eligible for dispatch
Description
Part of #21.
Outcome
In a SlipJay-provider project, the strip under the composer says which workspace the thread works in and how that workspace stands against the integration branch, replacing the Git labels that mean nothing there:
- Left, instead of "Local checkout": the workspace name and its Issue, e.g.
ys-2433 · #2433. The project's main checkout reads as<integration> (root), e.g.develop (root). The owner revised allocation on 15 October: an empty draft allocates nothing. Submitting its first message automatically obtains a workspace on the selected host through the existing provider before starting the agent, with no workspace-choice step. The assigned identity is read-only and stable for the conversation. - Right, instead of the "Select ref" picker:
on <integration>, plus· N behindwhen the integration branch has moved past the workspace's base, plus· M fileswhen the working copy has uncommitted edits.
The host switch (Local / peach-box) is unchanged and still decides which machine's workspaces are listed.
Settled constraints
- The integration bookmark comes from
slipjay.json. The workspace's Issue comes from SlipJay (slipjay start --issue/attach-issue); with no Issue, show only the name. - Status comes from the Jujutsu driver (
JjVcsDriver) through the existing VCS status contract (VcsStatusResult), not a parallel SlipJay status path. Jujutsu has no staging area: "files" means the working copy's changed paths. - In a SlipJay project the strip stays visible on started threads, regardless of
persistComposerContextStrip, so a thread always shows where it works. - The SlipJay provider decision is the one the server already makes (
WorkspaceProvider,SLIPJAY_PROJECT_FILE_NAME), so the strip and Settings → Version Control can't disagree. - Plain Git projects keep "Local checkout", the worktree choices and the ref picker unchanged.
Acceptance
- An empty draft in a SlipJay project allocates nothing. On first submission it automatically obtains one workspace on the selected host before the provider starts; the user need not select or create it. Retries and later turns reuse the assignment. Read-only children reuse the parent's exact host/workspace without allocation or permission widening.
- A started thread in a SlipJay workspace shows its name and Issue on the left, and
on <integration>with correct behind and file counts on the right; the counts update after the integration branch moves or a file is edited. - The main checkout shows
<integration> (root). - A Git project's strip is unchanged, ref picker included.
- Tests cover the Jujutsu status values (behind, files) and the strip's SlipJay versus Git rendering.
Non-goals
Moving a started thread to another workspace; landing state (the next Ticket); editing Jujutsu history.
Metadata
Metadata
Assignees
Labels
ready-for-agentSettled scope eligible for dispatchSettled scope eligible for dispatch
Activity
feat(status): report the workspace's Issue
pechhe commentedon Oct 15, 2026
Landed in 6687378: SlipJay threads show their workspace and Issue (or
<integration> (root), or New workspace on a draft) andon <integration> · N behind · M filesin the composer strip and thread details panel.