merge: sync orchestration before queue 00001KVSFXY88

This commit is contained in:
Keisuke Hirata 2026-06-23 15:08:42 +09:00
commit 87482df956
No known key found for this signature in database
3 changed files with 178 additions and 2 deletions

View File

@ -0,0 +1 @@
{"id":"orch-plan-20260623-055433-1","ticket_id":"00001KVSGFM65","kind":"accepted_plan","accepted_plan":{"summary":"Refactor Repository Ticket Kanban into grouped frontend component with display-only planning+ready and queued+inprogress groups, priority sort, per-group scroll areas, independent lazy visible counts, original state badges, and design-token styling without backend lifecycle changes.","branch":"impl/00001KVSGFM65-kanban-lazy-rows","worktree":"/home/hare/Projects/yoi/.worktree/00001KVSGFM65-kanban-lazy-rows","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`, validates Deno/Nix, records closure, and cleans only the child worktree/branch."},"author":"yoi-orchestrator","at":"2026-06-23T05:54:33Z"}

View File

@ -1,8 +1,8 @@
---
title: 'Improve Workspace web ticket Kanban grouping and lazy rows'
state: 'queued'
state: 'inprogress'
created_at: '2026-06-23T05:50:36Z'
updated_at: '2026-06-23T05:53:22Z'
updated_at: '2026-06-23T06:06:45Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-23T05:53:22Z'

View File

@ -30,4 +30,179 @@ Marked ready by `yoi ticket state`.
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: decision author: yoi-orchestrator at: 2026-06-23T05:54:11Z -->
## Decision
Routing decision: `implementation_ready_parallel`
Reason:
- Ticket body has concrete frontend requirements for Repository Ticket Kanban grouping, sort order, per-group independent scroll, lazy row loading, component boundary, and Deno/Nix validation。
- No relations / blockers / orchestration plan records exist。
- Active Ticket `00001KVSEBF56` is protocol TypeScript generation and is expected to touch protocol crate / generated types; this Kanban ticket primarily targets Workspace Repository page UI and can proceed in parallel with narrow frontend scope。
- Current queued Ticket is this Ticket only。
- Orchestrator worktree is clean on `orchestration` at `2865abb6`; target worktree / branch is not present。
- Current code map shows Repository Ticket Kanban is currently inline in `web/workspace/src/lib/workspace-pages/WorkspacePage.svelte`, using `repositoryTickets.columns` from `/api/repositories/local/tickets`
IntentPacket:
Intent:
- Improve Repository Ticket Kanban display so high-volume states do not dominate the page, related states are grouped, and each group lazy-loads independently。
Binding decisions / invariants:
- Frontend display behavior only unless absolutely necessary; do not change Ticket lifecycle semantics or add mutation UI。
- Backend pagination is not required; frontend-only visible count per group is acceptable。
- Original Ticket state must remain visible on each row。
- Grouping is display-only: `planning+ready`, `queued+inprogress`, other states independent。
- Group sort priority: `ready` before `planning`, `inprogress` before `queued`
- Each group has independent scroll/visible count state; scrolling one group must not increase other groups。
- Use existing design tokens from `web/workspace/src/app.css`; avoid raw colors and heavy card chrome。
- Keep static SPA / Deno tooling boundaries。
- Do not touch protocol TS generation scope from `00001KVSEBF56` unless unavoidable。
Requirements / acceptance criteria:
- `planning` and `ready` display in the same group, with `ready` above `planning`
- `queued` and `inprogress` display in the same group, with `inprogress` above `queued`
- `done`, `closed`, and other states keep independent display meaning。
- Each group has an independent scroll area approximately 10 rows tall。
- Initial visible rows per group are capped at 30。
- Near-bottom scroll within a group increases only that groups visible count。
- `closed` or other high-volume group does not expand page height excessively。
- Row displays original Ticket state。
- Kanban display is preferably split into reusable Svelte component(s), moving grouping/sort/visible-count/scroll logic out of `WorkspacePage.svelte`
- Deno check/build, `git diff --check`, and `nix build .#yoi --no-link` pass。
Implementation latitude:
- Component can live under `web/workspace/src/lib/workspace-pages/` or another clear frontend component path。
- Backend response shape may remain unchanged; grouping can be performed client-side from returned columns/items。
- Add minimal frontend tests only if current tooling supports it cheaply; otherwise validation via Svelte check/build is acceptable。
- CSS can be simple rule/typography/spacing approach; no need for full design system。
Escalate if:
- Svelte 5 event/scroll handling requires a broader frontend state management rewrite。
- Backend response shape prevents group-level lazy display without changing API semantics。
- Deno build/check breaks due unrelated protocol type generation work。
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`
- `cargo test -p yoi-workspace-server` only if backend API changes。
---
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-23T05:54:22Z from: queued to: inprogress reason: human_authorized_unblocked_frontend_kanban_improvement field: state -->
## State changed
Human authorized queue routing from Workspace Dashboard. Ticket has concrete frontend acceptance criteria and no recorded blockers; active protocol TypeScript generation work is separate enough for parallel implementation.
---
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-23T05:55:23Z -->
## Implementation report
Implementation start report:
- Created child implementation worktree:
- `/home/hare/Projects/yoi/.worktree/00001KVSGFM65-kanban-lazy-rows`
- Created branch:
- `impl/00001KVSGFM65-kanban-lazy-rows`
- Base commit:
- `a6f9019e ticket: accept kanban lazy rows`
- Confirmed tracked Ticket project records are visible in the child worktree。
- Confirmed `.yoi/memory` has no tracked/untracked entries in the child worktree check。
- Spawned sibling Coder Pod:
- `yoi-coder-00001KVSGFM65`
- Coder scope:
- read: `/home/hare/Projects/yoi`
- write: `/home/hare/Projects/yoi/.worktree/00001KVSGFM65-kanban-lazy-rows`
Parallelization note:
- `00001KVSEBF56` remains active and targets protocol TypeScript generation. This Ticket should stay limited to Workspace Repository Ticket Kanban frontend display。
Next action:
- Wait for Coder implementation report, then spawn Reviewer read-only for the implementation diff。
---
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-23T06:05:59Z -->
## Implementation report
Coder implementation report received from `yoi-coder-00001KVSGFM65`.
Implementation commit:
- `6f68bb8d web: group repository ticket kanban rows`
Changed areas:
- `web/workspace/src/lib/workspace-pages/RepositoryTicketKanban.svelte`
- New reusable Kanban component。
- Groups `ready + planning`, with `ready` sorted above `planning`
- Groups `inprogress + queued`, with `inprogress` sorted above `queued`
- Keeps `done`, `closed`, and `other` as distinct display groups。
- Shows each rows original `ticket.state`
- Caps initial rendered rows per group at 30。
- Adds independent per-group scroll/lazy row expansion。
- Uses design tokens from `app.css`
- `web/workspace/src/lib/workspace-pages/WorkspacePage.svelte`
- Replaced inline Repository Ticket Kanban markup with extracted component。
- `web/workspace/src/app.css`
- Removed now-unused global inline Kanban styles。
Coder validation reported:
- `cd web/workspace && deno task check`: passed
- `cd web/workspace && deno task build`: passed
- `git diff --check HEAD~1..HEAD`: passed
- `cargo run -p yoi -- ticket doctor`: passed
- `nix build .#yoi --no-link`: passed
Notes:
- No backend API changes; `cargo test -p yoi-workspace-server` was not run。
- No protocol TypeScript generation scope touched。
Orchestrator evidence checked:
- Worktree clean on `impl/00001KVSGFM65-kanban-lazy-rows` at `6f68bb8d`
- Diff `a6f9019e..HEAD` touches expected frontend files only。
- `git diff --check a6f9019e..HEAD`: passed。
- Validation generated ignored frontend artifacts; Orchestrator removed `web/workspace/node_modules/`, `.svelte-kit/`, and `build/` before Reviewer routing。
Next action:
- Route to read-only Reviewer Pod for acceptance review。
---
<!-- event: comment author: yoi-orchestrator at: 2026-06-23T06:06:45Z -->
## Comment
Review routing:
Spawned read-only Reviewer Pod:
- `yoi-reviewer-00001KVSGFM65-r1`
Review target:
- Worktree: `/home/hare/Projects/yoi/.worktree/00001KVSGFM65-kanban-lazy-rows`
- Branch: `impl/00001KVSGFM65-kanban-lazy-rows`
- Baseline: `a6f9019e`
- Implementation commit: `6f68bb8d web: group repository ticket kanban rows`
- Diff: `a6f9019e..6f68bb8d`
Reviewer scope:
- read-only `/home/hare/Projects/yoi`
Reviewer focus:
- Display grouping/sort order: `ready > planning`, `inprogress > queued`
- Per-group independent visible count and scroll expansion。
- High-volume `closed` bounded by group scroll area。
- Original Ticket state visible per row。
- Component boundary and design-token styling。
- No backend/lifecycle/protocol scope creep。
Orchestrator will wait for reviewer verdict before integration。
---