merge: sync orchestration before queue 00001KVNGJPRG
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
---
|
||||
title: 'Workspace backend: expose local host and worker list'
|
||||
state: 'inprogress'
|
||||
state: 'closed'
|
||||
created_at: '2026-06-21T16:00:49Z'
|
||||
updated_at: '2026-06-21T16:32:22Z'
|
||||
updated_at: '2026-06-21T16:39:43Z'
|
||||
assignee: null
|
||||
queued_by: 'workspace-panel'
|
||||
queued_at: '2026-06-21T16:09:10Z'
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
Workspace backend に local Host / Worker read API を追加し、Web UI に Host / Worker list を表示する変更を統合した。
|
||||
|
||||
主な成果:
|
||||
- Workspace backend に `/api/hosts`, `/api/workers`, `/api/hosts/{host_id}/workers` を追加。
|
||||
- `/api/runners` placeholder を削除 / Host-Worker naming に移行。
|
||||
- Local Pod metadata を read-only bridge として Worker domain object に投影。
|
||||
- Pod は primary domain ではなく `implementation: { kind: "local_pod", pod_name: ... }` として表現。
|
||||
- Worker response includes bounded `worker_id`, `host_id`, label/pod name, role/profile when known, `workspace_root`, state/status, implementation detail, and diagnostics。
|
||||
- Missing/unreadable Pod metadata root は process/server failure ではなく empty workers + bounded diagnostics / unavailable capability に degrade。
|
||||
- Session transcript / tool result / prompt contents / raw session JSONL は読まない。
|
||||
- Web UI static SPA に Host / Worker list を追加。
|
||||
- Existing Ticket / Objective canonical workflows remain unchanged。
|
||||
|
||||
統合・検証:
|
||||
- Merge commit: `c884d517 merge: workspace host workers`
|
||||
- Implementation commit: `58143ead feat: expose workspace hosts and workers`
|
||||
- Reviewer final verdict: approve
|
||||
- Validation passed: `cargo fmt --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p yoi-workspace-server`, `cargo check -p yoi-workspace-server`, `deno task check`, `deno task build`, `cargo run -p yoi -- ticket doctor`, and `nix build .#yoi --no-link`。
|
||||
|
||||
範囲外:
|
||||
- Remote/cloud runner registration, scheduling, start/stop/attach/notify operations, and full run-worker correlation were not implemented。
|
||||
- Frontend remains static SPA and does not own backend business/lifecycle authority。
|
||||
@@ -213,3 +213,181 @@ Reviewer focus:
|
||||
Orchestrator will wait for reviewer verdict before integration。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: review author: yoi-reviewer-00001KVNEKH9Q-r1 at: 2026-06-21T16:38:05Z status: approve -->
|
||||
|
||||
## Review: approve
|
||||
|
||||
Verdict: `approve`
|
||||
|
||||
確認範囲:
|
||||
- Ticket authority:
|
||||
- `.yoi/tickets/00001KVNEKH9Q/item.md`
|
||||
- `.yoi/tickets/00001KVNEKH9Q/thread.md`
|
||||
- Diff/changed areas `e1f02ffc..58143ead`:
|
||||
- `crates/workspace-server/src/hosts.rs`
|
||||
- `crates/workspace-server/src/server.rs`
|
||||
- `crates/workspace-server/src/store.rs`
|
||||
- `crates/workspace-server/src/lib.rs`
|
||||
- `crates/workspace-server/src/main.rs`
|
||||
- `crates/workspace-server/Cargo.toml`
|
||||
- `Cargo.lock`
|
||||
- `package.nix`
|
||||
- `web/workspace/src/routes/+page.svelte`
|
||||
- `web/workspace/svelte.config.js`
|
||||
- Supporting inspection:
|
||||
- `crates/pod-store/src/lib.rs`
|
||||
- `runners` references and session/prompt/tool-result exposure grep。
|
||||
|
||||
Blocking issues:
|
||||
- None。
|
||||
|
||||
Acceptance verification:
|
||||
- API domain naming is Host / Worker:
|
||||
- Routes added for `/api/hosts`, `/api/workers`, and `/api/hosts/{host_id}/workers`。
|
||||
- `/api/runners` placeholder is removed and test-covered as `404`。
|
||||
- Local Pods are implementation detail:
|
||||
- Worker model exposes domain fields (`worker_id`, `host_id`, `label`, `state`, `status`, etc.)。
|
||||
- Pod-specific detail is limited to `pod_name` and `implementation: { kind: "local_pod", pod_name: ... }`。
|
||||
- Local Pod bridge is read-only:
|
||||
- Reads local Pod `metadata.json` under configured local data dir。
|
||||
- No mutation of Pod runtime metadata, session logs, Tickets, or Objectives observed。
|
||||
- Redaction / sensitive data:
|
||||
- No session JSONL/transcript/tool-result/prompt content reads introduced。
|
||||
- `resolved_manifest_snapshot` is not serialized wholesale; role/profile extraction is bounded/sanitized。
|
||||
- Tests include a snapshot containing `secret_token` / `system_prompt` and assert they are not returned。
|
||||
- Missing/unreadable metadata degradation:
|
||||
- Missing Pod metadata root returns empty workers plus bounded diagnostics。
|
||||
- Host capability degrades to unavailable instead of failing the server。
|
||||
- Frontend:
|
||||
- Static Svelte page fetches/displays Hosts and Workers。
|
||||
- No SSR/business authority addition observed。
|
||||
- Existing Ticket/Objective workflows remain preserved; `ticket doctor` passes。
|
||||
|
||||
Non-blocking concerns:
|
||||
- None。
|
||||
|
||||
Reviewer validation:
|
||||
- `cargo fmt --check`: passed
|
||||
- `git diff --check e1f02ffc..HEAD`: passed
|
||||
- `cargo test -p yoi-workspace-server`: passed (`6 passed`)
|
||||
- `cargo check -p yoi-workspace-server`: passed
|
||||
- `cd web/workspace && deno task check && deno task build`: passed (`svelte-check found 0 errors and 0 warnings`; static build completed)
|
||||
- `cargo run -p yoi -- ticket doctor`: passed (`doctor: ok`)
|
||||
- `nix build .#yoi --no-link`: passed
|
||||
|
||||
Generated artifacts:
|
||||
- Frontend validation produced ignored generated artifacts only:
|
||||
- `web/workspace/.svelte-kit/`
|
||||
- `web/workspace/build/`
|
||||
- `web/workspace/node_modules/`
|
||||
- Reviewer did not clean them due review-only scope; they are ignored and not tracked。
|
||||
|
||||
Worktree status:
|
||||
- Tracked/untracked status is clean on `impl/00001KVNEKH9Q-workspace-host-workers`。
|
||||
- Ignored generated frontend artifacts remain as listed above。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-21T16:38:57Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Reviewer r1 approvalを受けて、実装ブランチを Orchestrator worktree の `orchestration` branch に統合した。
|
||||
|
||||
統合:
|
||||
- Merge commit: `c884d517 merge: workspace host workers`
|
||||
- Merged branch: `impl/00001KVNEKH9Q-workspace-host-workers`
|
||||
- Implementation commit:
|
||||
- `58143ead feat: expose workspace hosts and workers`
|
||||
|
||||
Orchestrator worktree validation:
|
||||
- `cargo fmt --check`: passed
|
||||
- `git diff --check HEAD^1..HEAD`: passed
|
||||
- `cargo test -p yoi-workspace-server`: passed
|
||||
- `cargo check -p yoi-workspace-server`: passed
|
||||
- `cd web/workspace && rm -rf node_modules .svelte-kit build && deno task check`: passed (`svelte-check found 0 errors and 0 warnings`)
|
||||
- `cd web/workspace && deno task build`: passed
|
||||
- `cargo run -p yoi -- ticket doctor`: passed (`doctor: ok`)
|
||||
- `nix build .#yoi --no-link`: passed
|
||||
|
||||
Validation generated ignored frontend artifacts in Orchestrator worktree:
|
||||
- `web/workspace/node_modules/`
|
||||
- `web/workspace/.svelte-kit/`
|
||||
- `web/workspace/build/`
|
||||
|
||||
These were removed after validation. Final Orchestrator worktree status after validation cleanup is clean on `orchestration` at `c884d517`。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-21T16:39:02Z from: inprogress to: done reason: implementation_merged_and_validated field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Reviewer approval、Orchestrator worktree への統合、workspace-server tests/check、Deno check/build、Ticket doctor、Nix build が完了したため `done` に遷移する。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: hare at: 2026-06-21T16:39:15Z from: done to: closed reason: closed field: state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Ticket を closed にしました。
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: close author: hare at: 2026-06-21T16:39:15Z status: closed -->
|
||||
|
||||
## 完了
|
||||
|
||||
Workspace backend に local Host / Worker read API を追加し、Web UI に Host / Worker list を表示する変更を統合した。
|
||||
|
||||
主な成果:
|
||||
- Workspace backend に `/api/hosts`, `/api/workers`, `/api/hosts/{host_id}/workers` を追加。
|
||||
- `/api/runners` placeholder を削除 / Host-Worker naming に移行。
|
||||
- Local Pod metadata を read-only bridge として Worker domain object に投影。
|
||||
- Pod は primary domain ではなく `implementation: { kind: "local_pod", pod_name: ... }` として表現。
|
||||
- Worker response includes bounded `worker_id`, `host_id`, label/pod name, role/profile when known, `workspace_root`, state/status, implementation detail, and diagnostics。
|
||||
- Missing/unreadable Pod metadata root は process/server failure ではなく empty workers + bounded diagnostics / unavailable capability に degrade。
|
||||
- Session transcript / tool result / prompt contents / raw session JSONL は読まない。
|
||||
- Web UI static SPA に Host / Worker list を追加。
|
||||
- Existing Ticket / Objective canonical workflows remain unchanged。
|
||||
|
||||
統合・検証:
|
||||
- Merge commit: `c884d517 merge: workspace host workers`
|
||||
- Implementation commit: `58143ead feat: expose workspace hosts and workers`
|
||||
- Reviewer final verdict: approve
|
||||
- Validation passed: `cargo fmt --check`, `git diff --check HEAD^1..HEAD`, `cargo test -p yoi-workspace-server`, `cargo check -p yoi-workspace-server`, `deno task check`, `deno task build`, `cargo run -p yoi -- ticket doctor`, and `nix build .#yoi --no-link`。
|
||||
|
||||
範囲外:
|
||||
- Remote/cloud runner registration, scheduling, start/stop/attach/notify operations, and full run-worker correlation were not implemented。
|
||||
- Frontend remains static SPA and does not own backend business/lifecycle authority。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-21T16:39:43Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Post-close cleanup completed。
|
||||
|
||||
- Stopped child Pods and reclaimed scope:
|
||||
- `yoi-coder-00001KVNEKH9Q`
|
||||
- `yoi-reviewer-00001KVNEKH9Q-r1`
|
||||
- Removed ignored frontend validation artifacts from child worktree before worktree removal:
|
||||
- `web/workspace/node_modules/`
|
||||
- `web/workspace/.svelte-kit/`
|
||||
- `web/workspace/build/`
|
||||
- Removed implementation worktree:
|
||||
- `/home/hare/Projects/yoi/.worktree/00001KVNEKH9Q-workspace-host-workers`
|
||||
- Deleted implementation branch:
|
||||
- `impl/00001KVNEKH9Q-workspace-host-workers`
|
||||
- Orchestrator worktree remains clean on `orchestration` at `a4ed5fb0`。
|
||||
|
||||
Root/original workspace was not used for merge/validation/cleanup operations。
|
||||
|
||||
Note for related active work:
|
||||
- `00001KVNG9B9Z` sidebar UI work was branched before this merge and may need to integrate the Host/Worker UI/API changes from `c884d517` during review/merge。
|
||||
|
||||
---
|
||||
|
||||
@@ -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"}
|
||||
@@ -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:37:34Z'
|
||||
assignee: null
|
||||
queued_by: 'workspace-panel'
|
||||
queued_at: '2026-06-21T16:35:06Z'
|
||||
|
||||
@@ -30,4 +30,108 @@ Marked ready by `yoi ticket state`.
|
||||
Ticket を `workspace-panel` が queued にしました。
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: yoi-orchestrator at: 2026-06-21T16:36:30Z -->
|
||||
|
||||
## 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。
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: yoi-orchestrator at: 2026-06-21T16:36:37Z from: queued to: inprogress reason: human_authorized_unblocked_sidebar_ui_implementation field: state -->
|
||||
|
||||
## 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.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: yoi-orchestrator at: 2026-06-21T16:37:34Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Implementation start report:
|
||||
|
||||
- Created child implementation worktree:
|
||||
- `/home/hare/Projects/yoi/.worktree/00001KVNG9B9Z-workspace-sidebar`
|
||||
- Created branch:
|
||||
- `impl/00001KVNG9B9Z-workspace-sidebar`
|
||||
- Base commit:
|
||||
- `2c7ef24a ticket: accept workspace sidebar ui`
|
||||
- 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-00001KVNG9B9Z`
|
||||
- Coder scope:
|
||||
- read: `/home/hare/Projects/yoi`
|
||||
- write: `/home/hare/Projects/yoi/.worktree/00001KVNG9B9Z-workspace-sidebar`
|
||||
|
||||
Parallelization note:
|
||||
- `00001KVNEKH9Q` remains active in review and may merge Host/Worker API plus `web/workspace/src/routes/+page.svelte` changes. Coder was instructed to keep sidebar work narrow/componentized and report if conflicts become non-trivial。
|
||||
|
||||
Next action:
|
||||
- Wait for Coder implementation report, then spawn Reviewer read-only for the implementation diff。
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user