From 1b7de88a59927141e80b499fe0cd8ce2ac442f4e Mon Sep 17 00:00:00 2001 From: Hare Date: Sun, 7 Jun 2026 10:22:18 +0900 Subject: [PATCH] ticket: add panel role session registry task --- .../item.md | 2 +- .../thread.md | 12 +++ .../item.md | 5 +- .../thread.md | 19 +++++ .../item.md | 2 +- .../thread.md | 12 +++ .../artifacts/.gitkeep | 0 .../item.md | 74 +++++++++++++++++++ .../thread.md | 7 ++ 9 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 .yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/artifacts/.gitkeep create mode 100644 .yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/item.md create mode 100644 .yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/thread.md diff --git a/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/item.md b/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/item.md index d389d313..b9792889 100644 --- a/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/item.md +++ b/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [companion, profile, prompt, tools, panel] workflow_state: intake created_at: 2026-06-07T00:16:51Z -updated_at: 2026-06-07T00:16:51Z +updated_at: 2026-06-07T01:21:43Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/thread.md b/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/thread.md index 2ee6aad9..8caaec1a 100644 --- a/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/thread.md +++ b/.yoi/tickets/open/20260607-001651-companion-status-context-tool-policy/thread.md @@ -5,3 +5,15 @@ Created by LocalTicketBackend create. --- + + + +## 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. + +--- diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/item.md b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/item.md index 3034e9e9..410b3b84 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/item.md +++ b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [tui, panel, companion, orchestration] workflow_state: intake created_at: 2026-06-07T00:16:51Z -updated_at: 2026-06-07T00:18:58Z +updated_at: 2026-06-07T01:21:43Z assignee: 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` - 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 - Removing Pod attach/open. diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/thread.md b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/thread.md index 7d16217a..e63db9ba 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/thread.md +++ b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-interface/thread.md @@ -26,4 +26,23 @@ Target model: Split child tickets were created for direct-send removal, Companion lifecycle, and Companion prompt/tool policy. +--- + + + +## 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. + --- diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md index a95dbbc3..6f3ce708 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md +++ b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/item.md @@ -8,7 +8,7 @@ priority: P1 labels: [tui, panel, companion, pod] workflow_state: intake created_at: 2026-06-07T00:16:51Z -updated_at: 2026-06-07T00:16:51Z +updated_at: 2026-06-07T01:21:43Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md index 2ee6aad9..bacff5c2 100644 --- a/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md +++ b/.yoi/tickets/open/20260607-001651-workspace-panel-companion-pod-lifecycle/thread.md @@ -5,3 +5,15 @@ Created by LocalTicketBackend create. --- + + + +## 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. + +--- diff --git a/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/artifacts/.gitkeep b/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/item.md b/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/item.md new file mode 100644 index 00000000..6cb7eb34 --- /dev/null +++ b/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/item.md @@ -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. diff --git a/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/thread.md b/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/thread.md new file mode 100644 index 00000000..f5ab03eb --- /dev/null +++ b/.yoi/tickets/open/20260607-012131-workspace-panel-local-role-session-registry/thread.md @@ -0,0 +1,7 @@ + + +## Created + +Created by LocalTicketBackend create. + +---