diff --git a/.yoi/tickets/00001KXDMM975/artifacts/.gitkeep b/.yoi/tickets/00001KXDMM975/artifacts/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/.yoi/tickets/00001KXDMM975/item.md b/.yoi/tickets/00001KXDMM975/item.md new file mode 100644 index 00000000..d12f01ee --- /dev/null +++ b/.yoi/tickets/00001KXDMM975/item.md @@ -0,0 +1,25 @@ +--- +title: 'Allow not-found Workdir cleanup action' +state: 'planning' +created_at: '2026-07-13T11:43:33Z' +updated_at: '2026-07-13T11:44:00Z' +assignee: null +--- + +## 背景 + +Workdir list では Runtime から `not_found` が確認できているが、cleanup plan では `file_status` が `notfound` になり、`workdir_record_delete` ではなく `workdir_dirty_discard` と判定される。そのため frontend の delete action が disabled になっている。 + +原因は `WorkingDirectoryStatusKind::NotFound` を `format!("{:?}").to_lowercase()` で string 化しているためで、serde の `snake_case` 表現 (`not_found`) とずれている。 + +## 要件 + +- Workdir cleanup plan の observed Runtime status string は Debug 表現ではなく canonical snake_case label を使う。 +- `WorkingDirectoryStatusKind::NotFound` は `not_found` として扱われる。 +- `not_found` Workdir candidate は `workdir_record_delete` action になり、blocking reason がなければ削除可能になる。 + +## 受け入れ条件 + +- cleanup plan API で not-found Workdir の `file_status` が `not_found` になる。 +- cleanup plan API で not-found Workdir の `action` が `workdir_record_delete` になる。 +- workspace-server tests が通る。 diff --git a/.yoi/tickets/00001KXDMM975/thread.md b/.yoi/tickets/00001KXDMM975/thread.md new file mode 100644 index 00000000..3fede15a --- /dev/null +++ b/.yoi/tickets/00001KXDMM975/thread.md @@ -0,0 +1,7 @@ + + +## 作成 + +LocalTicketBackend によって作成されました。 + +---