From 6aeef2d76ec28751a9f1b422065ced0273316cc3 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 6 Jun 2026 15:04:40 +0900 Subject: [PATCH] ticket: close workspace panel action dispatch --- .../artifacts/.gitkeep | 0 .../artifacts/delegation-intent.md | 0 .../item.md | 4 +- .../resolution.md | 31 +++++++ .../thread.md | 88 +++++++++++++++++++ .../thread.md | 31 ------- 6 files changed, 121 insertions(+), 33 deletions(-) rename .yoi/tickets/{open => closed}/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/.gitkeep (100%) rename .yoi/tickets/{open => closed}/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/delegation-intent.md (100%) rename .yoi/tickets/{open => closed}/20260606-052903-workspace-panel-ticket-action-dispatch/item.md (98%) create mode 100644 .yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/resolution.md create mode 100644 .yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md delete mode 100644 .yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md diff --git a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/.gitkeep b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/.gitkeep rename to .yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/delegation-intent.md b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/delegation-intent.md similarity index 100% rename from .yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/delegation-intent.md rename to .yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/artifacts/delegation-intent.md diff --git a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/item.md b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/item.md similarity index 98% rename from .yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/item.md rename to .yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/item.md index 608182fe..f7d10050 100644 --- a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/item.md +++ b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/item.md @@ -2,12 +2,12 @@ id: 20260606-052903-workspace-panel-ticket-action-dispatch slug: workspace-panel-ticket-action-dispatch title: Workspace panel Ticket action dispatch -status: open +status: closed kind: task priority: P1 labels: [tui, ticket, orchestration, panel] created_at: 2026-06-06T05:29:03Z -updated_at: 2026-06-06T05:30:26Z +updated_at: 2026-06-06T06:04:40Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/resolution.md b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/resolution.md new file mode 100644 index 00000000..226959fa --- /dev/null +++ b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/resolution.md @@ -0,0 +1,31 @@ +Implemented workspace panel Ticket action dispatch. + +Changes: +- Added dispatch for selected Ticket action rows with current authority re-checks. +- Mutation is gated by the same Ticket config availability logic used by panel display; absent/unusable config rejects before backend load/mutation. +- `Go` records a `decision` event authorizing Orchestrator routing/preflight, explicitly without starting implementation, and attempts to notify the workspace Orchestrator when reachable. +- `Defer` records a `decision` event and moves open Tickets to pending where applicable. +- `Review` does not silently approve/request changes; it emits a diagnostic requiring the explicit review flow. +- `Close` does not close without a resolution; it emits a diagnostic requiring an explicit resolution path. +- No-Ticket workspaces expose no Ticket action dispatch and stay Pod-centric. +- Existing selected-Pod open/direct-send and composer Intake paths are preserved. +- No scheduler/queue/automatic coder/reviewer spawning was introduced. +- `--multi` was not reintroduced. + +Validation after merge: +- `cargo test -p tui workspace_panel` +- `cargo test -p tui multi_pod` +- `cargo test -p ticket` +- `cargo test -p yoi panel` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `nix build .#yoi --no-link --print-out-paths` + +External review approved after one requested-changes cycle. + +Known follow-up: +- Final layout/display tuning remains the next pass. +- Close/review could later gain richer inline workflows, but the first pass is intentionally safe and non-destructive. diff --git a/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md new file mode 100644 index 00000000..e8dfcaac --- /dev/null +++ b/.yoi/tickets/closed/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md @@ -0,0 +1,88 @@ + + +## Created + +Created by LocalTicketBackend create. + +--- + + + +## Plan + +Created this follow-up because the first panel slices now provide Ticket/action rows, Orchestrator lifecycle, Intake launch, and Intake handoff, but Ticket row actions are still mostly display affordances. + +Before layout/display tuning, the panel should support a minimal safe action dispatch path for the human decision points it already displays, especially Go/Defer. The implementation should re-check Ticket authority before mutation, use Rust Ticket APIs, and notify Orchestrator for Go/routing actions when feasible. + + +--- + + + +## Plan + +Preflight result: `implementation-ready` as the final first-pass panel slice before layout/display tuning. + +The first panel slices now provide display, Orchestrator lifecycle, Intake launch, and handoff. This ticket should replace blanket display-only Ticket actions with minimal safe dispatch, especially Go and Defer, while keeping Review/Close safe if a full inline flow is not yet available. + +Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. + + +--- + + + +## Review: approve + +External reviewer approved current HEAD after requested changes were addressed. + +Review summary: +- Ticket action dispatch now re-checks Ticket config availability before backend mutation, matching panel display gating. +- Stale/no-config action dispatch is rejected before mutation and covered by tests. +- Go records a decision and attempts Orchestrator notification without starting implementation. +- Defer safely records a decision and moves open Tickets to pending. +- Review and Close remain safe diagnostics rather than silent approval/closure. +- No-Ticket workspaces remain Pod-centric. +- Existing Pod open/direct-send and composer Intake behavior remain covered. + + +--- + + + +## Closed + +Implemented workspace panel Ticket action dispatch. + +Changes: +- Added dispatch for selected Ticket action rows with current authority re-checks. +- Mutation is gated by the same Ticket config availability logic used by panel display; absent/unusable config rejects before backend load/mutation. +- `Go` records a `decision` event authorizing Orchestrator routing/preflight, explicitly without starting implementation, and attempts to notify the workspace Orchestrator when reachable. +- `Defer` records a `decision` event and moves open Tickets to pending where applicable. +- `Review` does not silently approve/request changes; it emits a diagnostic requiring the explicit review flow. +- `Close` does not close without a resolution; it emits a diagnostic requiring an explicit resolution path. +- No-Ticket workspaces expose no Ticket action dispatch and stay Pod-centric. +- Existing selected-Pod open/direct-send and composer Intake paths are preserved. +- No scheduler/queue/automatic coder/reviewer spawning was introduced. +- `--multi` was not reintroduced. + +Validation after merge: +- `cargo test -p tui workspace_panel` +- `cargo test -p tui multi_pod` +- `cargo test -p ticket` +- `cargo test -p yoi panel` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `nix build .#yoi --no-link --print-out-paths` + +External review approved after one requested-changes cycle. + +Known follow-up: +- Final layout/display tuning remains the next pass. +- Close/review could later gain richer inline workflows, but the first pass is intentionally safe and non-destructive. + + +--- diff --git a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md b/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md deleted file mode 100644 index f9625994..00000000 --- a/.yoi/tickets/open/20260606-052903-workspace-panel-ticket-action-dispatch/thread.md +++ /dev/null @@ -1,31 +0,0 @@ - - -## Created - -Created by LocalTicketBackend create. - ---- - - - -## Plan - -Created this follow-up because the first panel slices now provide Ticket/action rows, Orchestrator lifecycle, Intake launch, and Intake handoff, but Ticket row actions are still mostly display affordances. - -Before layout/display tuning, the panel should support a minimal safe action dispatch path for the human decision points it already displays, especially Go/Defer. The implementation should re-check Ticket authority before mutation, use Rust Ticket APIs, and notify Orchestrator for Go/routing actions when feasible. - - ---- - - - -## Plan - -Preflight result: `implementation-ready` as the final first-pass panel slice before layout/display tuning. - -The first panel slices now provide display, Orchestrator lifecycle, Intake launch, and handoff. This ticket should replace blanket display-only Ticket actions with minimal safe dispatch, especially Go and Defer, while keeping Review/Close safe if a full inline flow is not yet available. - -Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. - - ----