From 63524215f0e59c8fa0e496a80e40b4052729ec83 Mon Sep 17 00:00:00 2001 From: Hare Date: Tue, 9 Jun 2026 22:26:03 +0900 Subject: [PATCH] ticket: close base32 id migration --- .yoi/tickets/00001KTNMN02R/item.md | 4 +-- .yoi/tickets/00001KTNMN02R/resolution.md | 30 ++++++++++++++++ .yoi/tickets/00001KTNMN02R/thread.md | 46 ++++++++++++++++++++++++ 3 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 .yoi/tickets/00001KTNMN02R/resolution.md diff --git a/.yoi/tickets/00001KTNMN02R/item.md b/.yoi/tickets/00001KTNMN02R/item.md index 2a843882..7f6f0d82 100644 --- a/.yoi/tickets/00001KTNMN02R/item.md +++ b/.yoi/tickets/00001KTNMN02R/item.md @@ -1,8 +1,8 @@ --- title: 'Ticket と Objective の ID を base32 timestamp 形式に統一する' -state: 'inprogress' +state: 'closed' created_at: '2026-06-09T07:30:47Z' -updated_at: '2026-06-09T13:24:34Z' +updated_at: '2026-06-09T13:25:54Z' assignee: null queued_by: 'workspace-panel' queued_at: '2026-06-09T10:31:17Z' diff --git a/.yoi/tickets/00001KTNMN02R/resolution.md b/.yoi/tickets/00001KTNMN02R/resolution.md new file mode 100644 index 00000000..2167e058 --- /dev/null +++ b/.yoi/tickets/00001KTNMN02R/resolution.md @@ -0,0 +1,30 @@ +Merged and closed. + +Implementation: +- Added shared `crates/project-record` helper for canonical project record IDs. +- Ticket and Objective creation now use the same fixed-width base32 Unix epoch millisecond ID allocator. +- IDs use alphabet `0123456789ABCDEFGHJKMNPQRSTVWXYZ` and width 13. +- Collision handling retries by `+1ms` path probe, bounded at 1000 attempts, with no suffix/counter/random tail. +- `created_at` / `updated_at` remain human-readable frontmatter fields; collision-adjusted ID timestamp is not silently written as `created_at`. +- Migrated current repository records: 173 Ticket directories and 1 Objective directory. +- Updated relation artifacts, orchestration-plan artifacts, Objective linked Tickets, docs/examples/tests, package metadata, and Nix cargo hash. +- Added audit mapping artifact at `.yoi/tickets/00001KTNMN02R/artifacts/id-migration-map.txt`. + +Commits: +- `4203988 feat: unify project record ids` +- merge: `5f6c695 merge: unify project record ids` + +Review: +- Reviewer approved with no request-change findings. +- Residual note: `id-migration-map.txt` intentionally retains old ID strings as audit evidence. It is under artifacts and does not affect schema/list/doctor behavior. + +Post-merge validation: +- `cargo test -q -p project-record` +- `cargo test -q -p ticket` +- `cargo test -q -p yoi objective_cli` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `cargo run -q -p yoi -- objective doctor` +- `cargo check --workspace` +- `nix build .#yoi --no-link` \ No newline at end of file diff --git a/.yoi/tickets/00001KTNMN02R/thread.md b/.yoi/tickets/00001KTNMN02R/thread.md index 0dac16d6..bd0da33d 100644 --- a/.yoi/tickets/00001KTNMN02R/thread.md +++ b/.yoi/tickets/00001KTNMN02R/thread.md @@ -229,3 +229,49 @@ Validation run by reviewer and passed: Result: approve, merge-ready. Residual risk: migration map intentionally retains old ID strings for audit; not a blocker. --- + + + +## State changed + +Ticket を closed にしました。 + + +--- + + + +## 完了 + +Merged and closed. + +Implementation: +- Added shared `crates/project-record` helper for canonical project record IDs. +- Ticket and Objective creation now use the same fixed-width base32 Unix epoch millisecond ID allocator. +- IDs use alphabet `0123456789ABCDEFGHJKMNPQRSTVWXYZ` and width 13. +- Collision handling retries by `+1ms` path probe, bounded at 1000 attempts, with no suffix/counter/random tail. +- `created_at` / `updated_at` remain human-readable frontmatter fields; collision-adjusted ID timestamp is not silently written as `created_at`. +- Migrated current repository records: 173 Ticket directories and 1 Objective directory. +- Updated relation artifacts, orchestration-plan artifacts, Objective linked Tickets, docs/examples/tests, package metadata, and Nix cargo hash. +- Added audit mapping artifact at `.yoi/tickets/00001KTNMN02R/artifacts/id-migration-map.txt`. + +Commits: +- `4203988 feat: unify project record ids` +- merge: `5f6c695 merge: unify project record ids` + +Review: +- Reviewer approved with no request-change findings. +- Residual note: `id-migration-map.txt` intentionally retains old ID strings as audit evidence. It is under artifacts and does not affect schema/list/doctor behavior. + +Post-merge validation: +- `cargo test -q -p project-record` +- `cargo test -q -p ticket` +- `cargo test -q -p yoi objective_cli` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `cargo run -q -p yoi -- objective doctor` +- `cargo check --workspace` +- `nix build .#yoi --no-link` + +---