yoi/.yoi/tickets/00001KVNG9B9Z/thread.md

5.4 KiB

作成

LocalTicketBackend によって作成されました。


Intake summary

Marked ready by yoi ticket state.


State changed

Marked ready by yoi ticket state.


State changed

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.