diff --git a/.yoi/tickets/00001KVNG9B9Z/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KVNG9B9Z/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..2f9c99b0 --- /dev/null +++ b/.yoi/tickets/00001KVNG9B9Z/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260621-163647-1","ticket_id":"00001KVNG9B9Z","kind":"accepted_plan","accepted_plan":{"summary":"Add left sidebar navigation skeleton to `web/workspace` static SPA with workspace header/settings placeholder, repositories/objectives/workers sections, objectives API read, workers placeholder/API boundary, responsive layout, and section-level error/empty states while avoiding backend authority changes.","branch":"impl/00001KVNG9B9Z-workspace-sidebar","worktree":"/home/hare/Projects/yoi/.worktree/00001KVNG9B9Z-workspace-sidebar","role_plan":"Orchestrator creates a dedicated child worktree and spawns a narrow-scope frontend Coder. Reviewer will be spawned read-only after Coder reports implementation commit(s). After approval, Orchestrator integrates into `orchestration`, resolving any conflict with Host/Worker work if it has merged, validates Deno/frontend/Nix as needed, records closure, and cleans only the child worktree/branch."},"author":"yoi-orchestrator","at":"2026-06-21T16:36:47Z"} diff --git a/.yoi/tickets/00001KVNG9B9Z/item.md b/.yoi/tickets/00001KVNG9B9Z/item.md index 261d2b2a..22562bbb 100644 --- a/.yoi/tickets/00001KVNG9B9Z/item.md +++ b/.yoi/tickets/00001KVNG9B9Z/item.md @@ -1,8 +1,8 @@ --- title: 'Workspace web UI: add sidebar navigation panel' -state: 'queued' +state: 'inprogress' created_at: '2026-06-21T16:30:12Z' -updated_at: '2026-06-21T16:35:06Z' +updated_at: '2026-06-21T16:36:47Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-21T16:35:06Z' diff --git a/.yoi/tickets/00001KVNG9B9Z/thread.md b/.yoi/tickets/00001KVNG9B9Z/thread.md index d5a2fcf9..9b71b72e 100644 --- a/.yoi/tickets/00001KVNG9B9Z/thread.md +++ b/.yoi/tickets/00001KVNG9B9Z/thread.md @@ -30,4 +30,80 @@ Marked ready by `yoi ticket state`. Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: `implementation_ready_parallel_with_conflict_risk` + +Reason: +- Ticket body は Workspace web UI に左 sidebar navigation panel を追加する UX skeleton として、header / repositories / objectives / workers sections、responsive behavior、section-level error handling、Deno validation まで具体化されている。 +- Relations are `related` only to `00001KVMFFYVX` and `00001KVNEKH9Q`; no blocking dependency is recorded。 +- `00001KVMFFYVX` is closed/integrated。 +- `00001KVNEKH9Q` is currently in review and touches Host/Worker API plus `web/workspace/src/routes/+page.svelte`; this creates merge-conflict risk but not an authority blocker. Ticket body explicitly allows Workers section to be placeholder before Host/Worker API exists and asks for component boundary that can later connect to that API。 +- Current queued Ticket is this Ticket only。 +- Orchestrator worktree is clean on `orchestration` at `d4de8e26`; target worktree / branch is not present。 + +Evidence checked: +- Ticket body via direct `item.md` read。 +- `relations.json`: related to `00001KVMFFYVX` and `00001KVNEKH9Q` only。 +- `TicketOrchestrationPlanQuery(00001KVNG9B9Z)`: no records。 +- `TicketList(state=queued)`: this Ticket is the only queued Ticket。 +- `00001KVNEKH9Q` current state is `inprogress` / reviewer running; no approval/merge yet。 +- Orchestrator git state / worktree list / branch list checked from `/home/hare/Projects/yoi/.worktree/orchestration` only。 + +IntentPacket: + +Intent: +- Add a left sidebar navigation skeleton to Workspace web SPA that surfaces Workspace / Repository / Objective / Worker navigation without adding deep editing or business authority。 + +Binding decisions / invariants: +- Frontend-only UI skeleton unless a minimal API read is already available; do not change backend authority without need。 +- Keep static SPA; no SSR or frontend lifecycle/business authority。 +- Objective section should read existing `/api/objectives` and display bounded title/state data。 +- Worker section should use a component/data boundary that can connect to Host/Worker API, but must safely show placeholder/empty/error if API is absent or in flux。 +- Do not expose Pod as primary UI/domain naming; use `workers`。 +- API failures are section-local and must not take down the whole page。 +- Avoid broad design-system churn; keep current skeleton style direction。 +- Be aware that `00001KVNEKH9Q` may merge Host/Worker UI/API changes concurrently; keep sidebar changes narrow and componentized to reduce conflict。 + +Requirements / acceptance criteria: +- Left sidebar is visible in Workspace web UI。 +- Sidebar header displays workspace name/label plus settings placeholder/icon/button。 +- Sections present: `repositories`, `objectives`, `workers`。 +- Objectives section fetches existing `/api/objectives` and displays title/state minimal info。 +- Workers section safely displays placeholder/empty/error if Host/Worker API is not yet integrated; if API is available in branch, it may use it through a component boundary。 +- Main content and sidebar layout are separated and responsive enough to avoid narrow-viewport breakage / horizontal overflow。 +- Section-level error/empty states are bounded。 +- Deno check/build passes。 + +Implementation latitude: +- Split Svelte components under `web/workspace/src/lib` if useful。 +- Keep repository section placeholder/local summary if no Repository API exists。 +- Use simple CSS layout; no full design system。 +- If concurrent `00001KVNEKH9Q` merge creates conflict, report rather than broad rewrite。 + +Escalate if: +- Implementing sidebar requires backend API redesign beyond minimal frontend skeleton。 +- Workers section cannot be safely decoupled from unmerged Host/Worker API。 +- Deno/Svelte tooling fails for reasons unrelated to this Ticket。 +- Merge conflict with `00001KVNEKH9Q` becomes non-trivial and requires orchestration sequencing。 + +Validation plan: +- `cd web/workspace && deno task check && deno task build` +- `git diff --check` +- `cargo run -p yoi -- ticket doctor` +- `nix build .#yoi --no-link` preferred because Workspace frontend package surface is touched。 +- `cargo test -p yoi-workspace-server` only if backend code changes。 + +--- + + + +## State changed + +Human authorized queue routing from Workspace Dashboard. Ticket has concrete frontend acceptance criteria and no blocking relation; related Host/Worker API work is in review and creates merge-conflict risk but not an authority blocker. Orchestrator accepts implementation with narrow frontend scope. + ---