From 22967b9a643ba2b248c08b591dbecd131cab64f6 Mon Sep 17 00:00:00 2001 From: Hare Date: Sat, 6 Jun 2026 06:52:03 +0900 Subject: [PATCH] ticket: close yoi tickets storage migration --- .../artifacts/.gitkeep | 0 .../artifacts/delegation-intent.md | 0 .../item.md | 4 +- .../resolution.md | 39 +++++++ .../thread.md | 109 ++++++++++++++++++ .../thread.md | 41 ------- 6 files changed, 150 insertions(+), 43 deletions(-) rename .yoi/tickets/{open => closed}/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/.gitkeep (100%) rename .yoi/tickets/{open => closed}/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/delegation-intent.md (100%) rename .yoi/tickets/{open => closed}/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md (98%) create mode 100644 .yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/resolution.md create mode 100644 .yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md delete mode 100644 .yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md diff --git a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/.gitkeep b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/.gitkeep rename to .yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/delegation-intent.md b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/delegation-intent.md similarity index 100% rename from .yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/delegation-intent.md rename to .yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/artifacts/delegation-intent.md diff --git a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md similarity index 98% rename from .yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md rename to .yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md index b3cc0f31..f4f77368 100644 --- a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md +++ b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/item.md @@ -2,12 +2,12 @@ id: 20260605-203006-migrate-ticket-storage-to-yoi-tickets slug: migrate-ticket-storage-to-yoi-tickets title: Migrate Ticket storage to .yoi/tickets -status: open +status: closed kind: task priority: P1 labels: [ticket, migration, storage] created_at: 2026-06-05T20:30:06Z -updated_at: 2026-06-05T21:43:54Z +updated_at: 2026-06-05T21:51:58Z assignee: null legacy_ticket: null --- diff --git a/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/resolution.md b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/resolution.md new file mode 100644 index 00000000..7625f094 --- /dev/null +++ b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/resolution.md @@ -0,0 +1,39 @@ +Migrated active Yoi local Ticket storage from repository-root `work-items/` to `.yoi/tickets/`. + +Final storage/config behavior: + +```toml +[backend] +provider = "builtin:yoi_local" +root = ".yoi/tickets" +``` + +- Missing Ticket config now defaults to `/.yoi/tickets`. +- `provider = "builtin:yoi_local"` remains the canonical provider spelling. +- Legacy `kind = "local"` remains only a transitional alias and is not documented as the active path. +- Tracked Ticket records were moved to `.yoi/tickets/{open,pending,closed}/...`. +- `work-items/` now contains only a legacy README notice and is not a live mutable backend. +- `.yoi/ticket.config.toml` was added for this repository. +- `.yoi/memory/` was not migrated or touched. +- `tickets.sh` remains only as a transitional maintainer shim and now defaults to `.yoi/tickets`; `WORK_ITEMS_DIR` remains available for one-off legacy/recovery checks. +- The later workspace panel UI design update from `develop` was merged into the migration branch before final merge, so the design ticket content is preserved under `.yoi/tickets`. + +Validation after merge: +- `cargo test -p ticket config` +- `cargo test -p ticket` +- `cargo test -p pod ticket --lib` +- `cargo test -p yoi ticket` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `./tickets.sh doctor` +- scratch workspace `target/debug/yoi ticket create` creates under `.yoi/tickets` and does not create `work-items` +- `nix build .#yoi --no-link --print-out-paths` + +A first post-merge attempt to run `target/debug/yoi ticket doctor` failed because the binary was stale and still expected the old config schema; rebuilding with `cargo build -p yoi` fixed it. This was a local validation-order issue, not a source failure. + +External review approved with no requested changes. + +`remove-tickets-sh` can proceed next. diff --git a/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md new file mode 100644 index 00000000..6bc86099 --- /dev/null +++ b/.yoi/tickets/closed/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md @@ -0,0 +1,109 @@ + + +## Created + +Created by tickets.sh create. + +--- + + + +## Plan + +Preflight result: `implementation-ready` with repository-record migration risk. + +The provider-config prerequisite is complete. This ticket now owns the active storage move from `work-items/` to `.yoi/tickets/` and should make `.yoi/tickets` the default/configured built-in Yoi local backend root. + +Important boundaries: +- no generated memory migration; +- do not read or edit `.yoi/memory/`; +- do not remove `tickets.sh` in this ticket, but update it as a transitional maintainer shim if it remains present; +- do not mass-rewrite historical thread prose solely because it mentions `work-items/`. + +Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. + + +--- + + + +## Implementation report + +Implemented the local Ticket storage migration to `.yoi/tickets/`. + +- Moved tracked `work-items/{open,pending,closed}` records to `.yoi/tickets/{open,pending,closed}`. +- Added `.yoi/ticket.config.toml` with `provider = "builtin:yoi_local"` and `root = ".yoi/tickets"`. +- Updated default config resolution, Pod feature fallback, CLI tests/help, docs, and the transitional `tickets.sh` shim. +- Left `work-items/README.md` as a non-active compatibility notice only. +- Validated with the requested cargo tests/checks, both doctors, scratch default-create check, and `nix build .#yoi --no-link`. + + +--- + + + +## Review: approve + +External reviewer approved the implementation at branch head `9d142ec`. + +Review summary: +- Active Ticket records moved under `.yoi/tickets/`. +- `work-items/` is reduced to a non-active legacy README and is not a second mutable root. +- Missing config/default root resolves to `/.yoi/tickets`. +- `.yoi/ticket.config.toml` uses `provider = "builtin:yoi_local"` and `root = ".yoi/tickets"`. +- `tickets.sh` defaults to `.yoi/tickets` as a transitional shim. +- Rust Ticket CLI/tools and Pod feature preserve config-root behavior and fail-closed diagnostics. +- `.yoi/memory/` was not migrated or touched. +- The latest workspace panel design ticket update from `develop` was preserved after migration. + +No changes requested. + + +--- + + + +## Closed + +Migrated active Yoi local Ticket storage from repository-root `work-items/` to `.yoi/tickets/`. + +Final storage/config behavior: + +```toml +[backend] +provider = "builtin:yoi_local" +root = ".yoi/tickets" +``` + +- Missing Ticket config now defaults to `/.yoi/tickets`. +- `provider = "builtin:yoi_local"` remains the canonical provider spelling. +- Legacy `kind = "local"` remains only a transitional alias and is not documented as the active path. +- Tracked Ticket records were moved to `.yoi/tickets/{open,pending,closed}/...`. +- `work-items/` now contains only a legacy README notice and is not a live mutable backend. +- `.yoi/ticket.config.toml` was added for this repository. +- `.yoi/memory/` was not migrated or touched. +- `tickets.sh` remains only as a transitional maintainer shim and now defaults to `.yoi/tickets`; `WORK_ITEMS_DIR` remains available for one-off legacy/recovery checks. +- The later workspace panel UI design update from `develop` was merged into the migration branch before final merge, so the design ticket content is preserved under `.yoi/tickets`. + +Validation after merge: +- `cargo test -p ticket config` +- `cargo test -p ticket` +- `cargo test -p pod ticket --lib` +- `cargo test -p yoi ticket` +- `cargo check --workspace --all-targets` +- `cargo fmt --check` +- `git diff --check HEAD~1..HEAD` +- `cargo build -p yoi` +- `target/debug/yoi ticket doctor` +- `./tickets.sh doctor` +- scratch workspace `target/debug/yoi ticket create` creates under `.yoi/tickets` and does not create `work-items` +- `nix build .#yoi --no-link --print-out-paths` + +A first post-merge attempt to run `target/debug/yoi ticket doctor` failed because the binary was stale and still expected the old config schema; rebuilding with `cargo build -p yoi` fixed it. This was a local validation-order issue, not a source failure. + +External review approved with no requested changes. + +`remove-tickets-sh` can proceed next. + + +--- diff --git a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md b/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md deleted file mode 100644 index 92c54445..00000000 --- a/.yoi/tickets/open/20260605-203006-migrate-ticket-storage-to-yoi-tickets/thread.md +++ /dev/null @@ -1,41 +0,0 @@ - - -## Created - -Created by tickets.sh create. - ---- - - - -## Plan - -Preflight result: `implementation-ready` with repository-record migration risk. - -The provider-config prerequisite is complete. This ticket now owns the active storage move from `work-items/` to `.yoi/tickets/` and should make `.yoi/tickets` the default/configured built-in Yoi local backend root. - -Important boundaries: -- no generated memory migration; -- do not read or edit `.yoi/memory/`; -- do not remove `tickets.sh` in this ticket, but update it as a transitional maintainer shim if it remains present; -- do not mass-rewrite historical thread prose solely because it mentions `work-items/`. - -Detailed delegation intent is recorded in `artifacts/delegation-intent.md`. - - ---- - - - -## Implementation report - -Implemented the local Ticket storage migration to `.yoi/tickets/`. - -- Moved tracked `work-items/{open,pending,closed}` records to `.yoi/tickets/{open,pending,closed}`. -- Added `.yoi/ticket.config.toml` with `provider = "builtin:yoi_local"` and `root = ".yoi/tickets"`. -- Updated default config resolution, Pod feature fallback, CLI tests/help, docs, and the transitional `tickets.sh` shim. -- Left `work-items/README.md` as a non-active compatibility notice only. -- Validated with the requested cargo tests/checks, both doctors, scratch default-create check, and `nix build .#yoi --no-link`. - - ----