yoi/.yoi/tickets/00001KTCQN35G/item.md

54 lines
2.3 KiB
Markdown

---
title: "Builtin yoi_local Ticket backend config"
state: "closed"
created_at: "2026-06-05T20:30:06Z"
updated_at: "2026-06-05T21:26:56Z"
---
## Background
The Ticket backend should be configured as an explicit built-in Yoi local backend rather than an implicit generic local root.
The desired config is:
```toml
[backend]
provider = "builtin:yoi_local"
root = ".yoi/tickets"
```
This makes the backend an explicit Yoi product capability and prepares for removing `tickets.sh` and moving storage under `.yoi/`.
## Requirements
- Extend `.yoi/ticket.config.toml` backend schema from `kind = "local"` toward `provider = "builtin:yoi_local"`.
- Support `provider = "builtin:yoi_local"` as the canonical spelling.
- Decide whether old `kind = "local"` is rejected immediately or accepted only as a short transitional alias. Prefer avoiding long-term compatibility aliases.
- Default backend provider should become `builtin:yoi_local`.
- Default backend root should become `.yoi/tickets` once migration is ready, or support a transition mode if this ticket lands before storage migration.
- Update Ticket tools / Pod Ticket feature adapter to use the configured provider/root.
- Update role launcher/TUI paths if they inspect backend diagnostics.
- Keep backend root path containment and fail-closed behavior.
- Do not auto-create active storage unless the CLI command explicitly creates/migrates records.
## Non-goals
- Moving existing records; handled by `migrate-ticket-storage-to-yoi-tickets`.
- Removing `tickets.sh`; handled by `remove-tickets-sh`.
- External provider implementation.
- GitHub/Linear/Jira/MCP backend support.
- TUI UI changes.
## Acceptance criteria
- `.yoi/ticket.config.toml` with `provider = "builtin:yoi_local"` parses and resolves.
- Missing config defaults to the selected built-in backend semantics.
- Tests cover provider parsing, unsupported provider diagnostics, relative root resolution, missing/unusable root behavior, and Pod Ticket feature adapter integration.
- Docs/examples use `provider = "builtin:yoi_local"`.
- `cargo test -p ticket` and focused Pod Ticket tests pass.
- `cargo check --workspace --all-targets`, `cargo fmt --check`, `git diff --check`, and Ticket doctor validations pass.
## Dependency
Prefer after `yoi-ticket-cli-parity`, so validation and migration can use `yoi ticket doctor`.