From 1262b6022a8c4d061579bcfb3c47740fca3e7517 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 11 Jul 2026 03:37:44 +0900 Subject: [PATCH] ticket: close manual cleanup work --- .yoi/tickets/00001KX6CRVBE/item.md | 4 +- .yoi/tickets/00001KX6CRVBE/resolution.md | 31 +++++++++ .yoi/tickets/00001KX6CRVBE/thread.md | 85 ++++++++++++++++++++++++ 3 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KX6CRVBE/resolution.md diff --git a/.yoi/tickets/00001KX6CRVBE/item.md b/.yoi/tickets/00001KX6CRVBE/item.md index 9e8f9ad3..a1ec6d71 100644 --- a/.yoi/tickets/00001KX6CRVBE/item.md +++ b/.yoi/tickets/00001KX6CRVBE/item.md @@ -1,8 +1,8 @@ --- title: 'Add manual delete and cleanup operations for Workers and workdirs' -state: 'inprogress' +state: 'closed' created_at: '2026-07-10T16:11:33Z' -updated_at: '2026-07-10T18:36:11Z' +updated_at: '2026-07-10T18:37:40Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-07-10T16:45:14Z' diff --git a/.yoi/tickets/00001KX6CRVBE/resolution.md b/.yoi/tickets/00001KX6CRVBE/resolution.md new file mode 100644 index 00000000..427f38a7 --- /dev/null +++ b/.yoi/tickets/00001KX6CRVBE/resolution.md @@ -0,0 +1,31 @@ +Manual Worker/Workdir delete and cleanup operations を実装・レビュー・merge・検証した。 + +実装内容: +- Backend Worker registry row の pin/unpin API を追加し、Worker list/detail に `pinned` / `retention_state` を返すようにした。 +- Runtime ごとの manual cleanup plan API を追加し、Backend Worker/Workdir/link registry と Runtime observation に基づいて Worker delete / Workdir cleanup/delete candidates を生成するようにした。 +- Plan candidate は action kind、reason/blocking reason、linked Worker/Workdir ids、pinned state、cleanliness/file status、running-link status、safe な reclaim bytes placeholder を含む。 +- Manual cleanup execution API は expected plan revision/digest を要求し、stale plan を拒否する。 +- Pinned Worker/history delete、running-linked Workdir cleanup、dirty/unknown Workdir の confirmation なし discard を拒否する。 +- Removed/missing Workdir registry record delete は安全条件のもとで separate action として扱う。 +- Runtime-observed/materialized Workdirs は trusted clean evidence なしに `clean` とせず、`unknown` として扱い、normal clean cleanup ではなく explicit discard confirmation path に乗せる。 +- Browser UI に Runtime Workdirs cleanup preview/execution と Worker pin/unpin controls を追加した。 +- UI では verified-clean cleanup と dirty/unknown-state discard を区別し、raw Runtime materialized path を表示しない。 + +Review: +- 初回 review は dirty Workdir safety の実データ経路が不十分として `request_changes`。 +- `361569a6 fix: require discard confirmation for unknown workdirs` で observed Workdir を `unknown` 扱いにし、unknown/dirty cleanup に explicit confirmation を要求するよう修正。 +- focused re-review は `approve`。 +- `estimated_reclaim_bytes: None` は safe size source が未実装のため許容と判断された。 + +Merge / validation: +- Merge commit: `4970a58c merge: manual worker workdir cleanup`。 +- Final validation passed: + - `git diff --check` + - `cargo test -p yoi-workspace-server --lib` + - `cargo test -p worker-runtime --features ws-server,fs-store` + - `cargo check -p yoi` + - `cd web/workspace && deno task check` + - `cd web/workspace && deno task test` + - `yoi ticket doctor` + - `nix build .#yoi --no-link` +- Validation log: `/run/user/1000/yoi/yoi-orchestrator/bash-output/manual-cleanup-final-validation-1783708592.txt` \ No newline at end of file diff --git a/.yoi/tickets/00001KX6CRVBE/thread.md b/.yoi/tickets/00001KX6CRVBE/thread.md index ad9c4a7b..a45bbfdd 100644 --- a/.yoi/tickets/00001KX6CRVBE/thread.md +++ b/.yoi/tickets/00001KX6CRVBE/thread.md @@ -272,3 +272,88 @@ Validation performed by reviewer: - `git diff --check HEAD^..HEAD` passed。 --- + + + +## Implementation report + +Merge / final validation report: + +- Reviewer approved the implementation after the dirty/unknown Workdir safety fix。 +- Merged branch `work/00001KX6CRVBE-manual-cleanup` into orchestration branch with merge commit `4970a58c merge: manual worker workdir cleanup`。 +- Ticket record conflicts from child branch were resolved in favor of Orchestrator-authoritative Ticket records; implementation code changes were merged。 +- Final validation was rerun in `/home/hare/Projects/yoi/.worktree/orchestration` after merge。 + +Validation passed: +- `git diff --check` +- `cargo test -p yoi-workspace-server --lib` +- `cargo test -p worker-runtime --features ws-server,fs-store` +- `cargo check -p yoi` +- `cd web/workspace && deno task check` +- `cd web/workspace && deno task test` +- `yoi ticket doctor` +- `nix build .#yoi --no-link` + +Validation log: +- `/run/user/1000/yoi/yoi-orchestrator/bash-output/manual-cleanup-final-validation-1783708592.txt` + +Reviewed/merged implementation commits: +- `ba44391a feat: add manual worker workdir cleanup` +- `361569a6 fix: require discard confirmation for unknown workdirs` + +--- + + + +## State changed + +Implementation was reviewed, merged into orchestration branch, and final validation passed. Moving to done before closure. + +--- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +Manual Worker/Workdir delete and cleanup operations を実装・レビュー・merge・検証した。 + +実装内容: +- Backend Worker registry row の pin/unpin API を追加し、Worker list/detail に `pinned` / `retention_state` を返すようにした。 +- Runtime ごとの manual cleanup plan API を追加し、Backend Worker/Workdir/link registry と Runtime observation に基づいて Worker delete / Workdir cleanup/delete candidates を生成するようにした。 +- Plan candidate は action kind、reason/blocking reason、linked Worker/Workdir ids、pinned state、cleanliness/file status、running-link status、safe な reclaim bytes placeholder を含む。 +- Manual cleanup execution API は expected plan revision/digest を要求し、stale plan を拒否する。 +- Pinned Worker/history delete、running-linked Workdir cleanup、dirty/unknown Workdir の confirmation なし discard を拒否する。 +- Removed/missing Workdir registry record delete は安全条件のもとで separate action として扱う。 +- Runtime-observed/materialized Workdirs は trusted clean evidence なしに `clean` とせず、`unknown` として扱い、normal clean cleanup ではなく explicit discard confirmation path に乗せる。 +- Browser UI に Runtime Workdirs cleanup preview/execution と Worker pin/unpin controls を追加した。 +- UI では verified-clean cleanup と dirty/unknown-state discard を区別し、raw Runtime materialized path を表示しない。 + +Review: +- 初回 review は dirty Workdir safety の実データ経路が不十分として `request_changes`。 +- `361569a6 fix: require discard confirmation for unknown workdirs` で observed Workdir を `unknown` 扱いにし、unknown/dirty cleanup に explicit confirmation を要求するよう修正。 +- focused re-review は `approve`。 +- `estimated_reclaim_bytes: None` は safe size source が未実装のため許容と判断された。 + +Merge / validation: +- Merge commit: `4970a58c merge: manual worker workdir cleanup`。 +- Final validation passed: + - `git diff --check` + - `cargo test -p yoi-workspace-server --lib` + - `cargo test -p worker-runtime --features ws-server,fs-store` + - `cargo check -p yoi` + - `cd web/workspace && deno task check` + - `cd web/workspace && deno task test` + - `yoi ticket doctor` + - `nix build .#yoi --no-link` +- Validation log: `/run/user/1000/yoi/yoi-orchestrator/bash-output/manual-cleanup-final-validation-1783708592.txt` + +---