ticket: add panel role session registry task
This commit is contained in:
parent
7f386f749e
commit
1b7de88a59
|
|
@ -8,7 +8,7 @@ priority: P1
|
||||||
labels: [companion, profile, prompt, tools, panel]
|
labels: [companion, profile, prompt, tools, panel]
|
||||||
workflow_state: intake
|
workflow_state: intake
|
||||||
created_at: 2026-06-07T00:16:51Z
|
created_at: 2026-06-07T00:16:51Z
|
||||||
updated_at: 2026-06-07T00:16:51Z
|
updated_at: 2026-06-07T01:21:43Z
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,15 @@
|
||||||
Created by LocalTicketBackend create.
|
Created by LocalTicketBackend create.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: comment author: hare at: 2026-06-07T01:21:43Z -->
|
||||||
|
|
||||||
|
## Comment
|
||||||
|
|
||||||
|
## Status context boundary
|
||||||
|
|
||||||
|
When local role session / Ticket claim overlay support is added, it can become one source of read-only Companion status context. The Companion should treat it as local runtime status, distinct from authoritative git-tracked Ticket project records.
|
||||||
|
|
||||||
|
Default Companion policy should still prohibit direct mutation of Ticket records and direct role Pod spawning/claiming unless a later explicit design grants that authority.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ priority: P1
|
||||||
labels: [tui, panel, companion, orchestration]
|
labels: [tui, panel, companion, orchestration]
|
||||||
workflow_state: intake
|
workflow_state: intake
|
||||||
created_at: 2026-06-07T00:16:51Z
|
created_at: 2026-06-07T00:16:51Z
|
||||||
updated_at: 2026-06-07T00:18:58Z
|
updated_at: 2026-06-07T01:21:43Z
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
---
|
---
|
||||||
|
|
@ -46,6 +46,9 @@ Redesign the workspace panel composer around a real workspace Companion Pod and
|
||||||
3. `companion-status-context-tool-policy`
|
3. `companion-status-context-tool-policy`
|
||||||
- Define Companion prompt/profile/tool policy: status-awareness and human assistance, no direct repository writes or Ticket mutations.
|
- Define Companion prompt/profile/tool policy: status-awareness and human assistance, no direct repository writes or Ticket mutations.
|
||||||
|
|
||||||
|
4. `workspace-panel-local-role-session-registry`
|
||||||
|
- Define the local user-data overlay for role sessions and Ticket claims; keep local Pod assignment out of git-tracked Ticket metadata.
|
||||||
|
|
||||||
## Non-goals
|
## Non-goals
|
||||||
|
|
||||||
- Removing Pod attach/open.
|
- Removing Pod attach/open.
|
||||||
|
|
|
||||||
|
|
@ -26,4 +26,23 @@ Target model:
|
||||||
Split child tickets were created for direct-send removal, Companion lifecycle, and Companion prompt/tool policy.
|
Split child tickets were created for direct-send removal, Companion lifecycle, and Companion prompt/tool policy.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: decision author: hare at: 2026-06-07T01:21:43Z -->
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
## Local role/session overlay split
|
||||||
|
|
||||||
|
The Companion/panel redesign should not store Ticket↔local Pod assignment in git-tracked Ticket metadata. Local Pod names, runtime/session identity, socket/restorable state, and current claims are per-machine runtime concerns.
|
||||||
|
|
||||||
|
A new child ticket `workspace-panel-local-role-session-registry` covers the local overlay model:
|
||||||
|
|
||||||
|
- Ticket project records keep workflow state and auditable summaries only.
|
||||||
|
- A Ticket may have at most one active local Pod claim at a time.
|
||||||
|
- A Pod/session may relate to zero or more Tickets.
|
||||||
|
- Intake is not 1:1 with Ticket: pre-Ticket Intake may have no Ticket yet, and one Intake session may materialize/split into multiple Tickets.
|
||||||
|
- Existing `ticket-*` Pod visibility in the panel is acceptable as an interim access path until the registry UI/model exists.
|
||||||
|
- The panel should not poll and automatically start Intake for newly-created `workflow_state = intake` Tickets; starting/claiming remains an explicit action.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ priority: P1
|
||||||
labels: [tui, panel, companion, pod]
|
labels: [tui, panel, companion, pod]
|
||||||
workflow_state: intake
|
workflow_state: intake
|
||||||
created_at: 2026-06-07T00:16:51Z
|
created_at: 2026-06-07T00:16:51Z
|
||||||
updated_at: 2026-06-07T00:16:51Z
|
updated_at: 2026-06-07T01:21:43Z
|
||||||
assignee: null
|
assignee: null
|
||||||
legacy_ticket: null
|
legacy_ticket: null
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,15 @@
|
||||||
Created by LocalTicketBackend create.
|
Created by LocalTicketBackend create.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<!-- event: comment author: hare at: 2026-06-07T01:21:43Z -->
|
||||||
|
|
||||||
|
## Comment
|
||||||
|
|
||||||
|
## Dependency note: local role/session registry
|
||||||
|
|
||||||
|
Companion lifecycle should remain separate from Ticket/role Pod claim authority. Local role session and Ticket claim data belongs in the user-data workspace overlay planned by `workspace-panel-local-role-session-registry`, not in git-tracked Ticket metadata.
|
||||||
|
|
||||||
|
The Companion may eventually read/display this derived status, but it should not own the registry or gain mutation authority by default.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
id: 20260607-012131-workspace-panel-local-role-session-registry
|
||||||
|
slug: workspace-panel-local-role-session-registry
|
||||||
|
title: Workspace panel local role session registry
|
||||||
|
status: open
|
||||||
|
kind: task
|
||||||
|
priority: P1
|
||||||
|
labels: [tui, panel, ticket, pod, orchestration]
|
||||||
|
workflow_state: intake
|
||||||
|
created_at: 2026-06-07T01:21:31Z
|
||||||
|
updated_at: 2026-06-07T01:21:31Z
|
||||||
|
assignee: null
|
||||||
|
legacy_ticket: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## Background
|
||||||
|
|
||||||
|
The panel now has two Ticket/Intake entry paths:
|
||||||
|
|
||||||
|
- A user instruction can start a pre-Ticket Intake session from the panel composer.
|
||||||
|
- An already-existing Ticket in `workflow_state = intake` can later need an Intake session.
|
||||||
|
|
||||||
|
For now, `ticket-*` Pods being visible in the panel is an acceptable interim access path. Longer term, the panel needs an explicit local model for role sessions and Ticket claims.
|
||||||
|
|
||||||
|
Ticket metadata and thread files are git-managed project records. Local Pod names, session/socket/runtime state, and per-machine assignment state must not be written into Ticket frontmatter or other git-tracked Ticket records.
|
||||||
|
|
||||||
|
Intake sessions are not necessarily 1:1 with Tickets. A pre-Ticket Intake session may have no Ticket yet, may materialize one Ticket, or may split the request into multiple Tickets. Conversely, an existing Ticket may be clarified by a later Intake session.
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Introduce a local, workspace-scoped role session registry and Ticket claim index for panel orchestration state, without storing local Pod assignment details in git-tracked Ticket metadata.
|
||||||
|
|
||||||
|
## Target model
|
||||||
|
|
||||||
|
- Ticket project records keep durable workflow state such as `workflow_state`, `attention_required`, and review/summary events.
|
||||||
|
- Local Pod/session assignment lives in a user-data workspace overlay, not under git-tracked `.yoi/tickets` files.
|
||||||
|
- A Ticket may have at most one active local Pod claim at a time.
|
||||||
|
- A Pod/session may relate to zero or more Tickets.
|
||||||
|
- Pre-Ticket Intake sessions are represented as local role sessions even before any Ticket exists.
|
||||||
|
- Existing-Ticket Intake uses the Ticket claim index to prevent a second Pod from attaching to an already-claimed Ticket.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Define a workspace-scoped local storage location for panel role/session overlay data under the user data directory.
|
||||||
|
- Model local role sessions keyed by Pod/session identity, including at least role, pod name, origin, created/updated timestamps, and related Ticket refs.
|
||||||
|
- Model Ticket claims keyed by stable Ticket id, with at most one active local Pod claim per Ticket.
|
||||||
|
- Do not write local Pod names, socket paths, runtime status, or local claim state into git-tracked Ticket frontmatter/thread files.
|
||||||
|
- Allow one Intake Pod/session to relate to multiple Tickets.
|
||||||
|
- Allow a pre-Ticket Intake session to exist with no related Ticket.
|
||||||
|
- When starting Intake for an existing Ticket, claim before spawning/restoring so double-spawn races are avoided.
|
||||||
|
- If a Ticket already has a local claim, do not start a second Pod automatically.
|
||||||
|
- If the claimed Pod is live, offer/open/attach that Pod.
|
||||||
|
- If the claimed Pod is restorable, offer restore/open.
|
||||||
|
- If the claim is stale, show an explicit reclaim action/diagnostic rather than silently starting a second Pod.
|
||||||
|
- Panel should join Ticket state, local overlay, and Pod metadata for display/actions.
|
||||||
|
- Do not introduce polling that automatically starts Intake for newly-created `workflow_state = intake` Tickets.
|
||||||
|
- Keep the current `ticket-*` Pod visibility as an acceptable interim access path until the registry UI is implemented.
|
||||||
|
|
||||||
|
## Non-goals
|
||||||
|
|
||||||
|
- Storing local Pod assignment in Ticket metadata.
|
||||||
|
- Assuming Intake Pod and Ticket are 1:1.
|
||||||
|
- Automatically starting Intake by polling Ticket files.
|
||||||
|
- Replacing the Orchestrator scheduling model.
|
||||||
|
- Full cross-machine coordination; this is a local runtime overlay.
|
||||||
|
|
||||||
|
## Acceptance criteria
|
||||||
|
|
||||||
|
- Local role session / Ticket claim data is stored outside git-tracked Ticket records.
|
||||||
|
- A Ticket cannot be claimed by two active local Pods through panel actions.
|
||||||
|
- A single Intake Pod can be associated with multiple Tickets in the local model.
|
||||||
|
- A pre-Ticket Intake session can be represented before any Ticket exists.
|
||||||
|
- Panel can distinguish at least: no claim, live/restorable claimed Pod, and stale claim.
|
||||||
|
- Existing tests or new tests cover the non-1:1 Intake/Ticket relation and one-active-claim-per-Ticket invariant.
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
<!-- event: create author: LocalTicketBackend at: 2026-06-07T01:21:31Z -->
|
||||||
|
|
||||||
|
## Created
|
||||||
|
|
||||||
|
Created by LocalTicketBackend create.
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Reference in New Issue
Block a user