## 作成 LocalTicketBackend によって作成されました。 --- ## Intake summary Marked ready by `yoi ticket state`. --- ## State changed Marked ready by `yoi ticket state`. --- ## State changed Ticket を `yoi ticket` が queued にしました。 --- ## State changed State changed to `inprogress`. --- ## Plan Replace meaningful concatenated Worker/Workdir ids with opaque runtime/local ids and composite backend registry keys. Preserve display labels separately, migrate legacy registry/link rows, and validate server/runtime/frontend builds. --- ## Implementation report Implemented opaque Worker/Workdir ids and removed Backend synthetic Worker PKs. - Runtime generated Worker ids are now opaque fixed-width hex counters without the `worker-` prefix. - Runtime and Backend generated Workdir ids are now opaque timestamp+sequence hex ids without `backend-`, `alloc-`, repository id, or Runtime/Worker-derived components. - Workspace Backend worker registry now uses `(workspace_id, runtime_id, runtime_worker_id)` as the primary key. - Worker/Workdir links now reference the same composite worker key instead of `{runtime_id}/{worker_id}` synthetic strings. - Added schema v5 migration from the legacy synthetic `worker_id` registry/link tables. - Updated cleanup, list, sync, retention, and tests to use composite keys and keep public `WorkerSummary.worker_id` Runtime-local. Validation: - cargo test -q -p yoi-workspace-server - cargo test -q - cd web/workspace && deno task check && deno task test - git diff --check - nix build .#yoi --no-link --- ## State changed State changed to `done`. --- ## State changed Ticket を closed にしました。 --- ## 完了 /tmp/yoi-id-implementation-report.md --- ## Implementation report Follow-up: Worker ids are now numeric, not String-backed. - `worker_runtime::WorkerId` is now a transparent `u64` newtype instead of `String`. - Runtime HTTP JSON uses numeric Worker ids; URL path handling parses the path segment as `u64`. - Workspace Backend stores `runtime_worker_id` as INTEGER in `worker_registry` and `worker_workdir_links` composite keys. - Browser-facing Workspace `WorkerSummary.worker_id` remains a string route segment derived from the numeric id, so existing frontend route composition stays simple. - Schema v5 migration converts legacy `worker-*` / numeric string worker ids into integer `runtime_worker_id` values before rebuilding registry/link tables. ---