6.1 KiB
6.1 KiB
作成
LocalTicketBackend によって作成されました。
Intake summary
Marked ready by yoi ticket state.
State changed
Marked ready by yoi ticket state.
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision: implementation_ready_parallel
Reason:
- Ticket body has concrete
workspace.tomlsemantics, backend/API consistency requirements, migration-safe behavior, tests, and validation criteria。 - No relations / blockers / orchestration plan records exist。
- Active Dashboard no-auto-selection work is TUI-only and separate from Workspace backend identity persistence, so parallel implementation is acceptable。
- Orchestrator worktree is clean on
orchestrationat13e76d35; target worktree / branch is not present。 - Current Workspace backend has ad-hoc/stable-ish IDs; Ticket asks for tracked local identity at
.yoi/workspace.toml。
IntentPacket:
Intent:
- Persist local Workspace identity in tracked
.yoi/workspace.tomland use it as the stable local Workspace id across backend APIs, repository IDs, host ID derivation, and frontend display where applicable。
Binding decisions / invariants:
.yoi/workspace.tomlis tracked project record, not local runtime/secret file。- It should contain only safe project identity fields, e.g.
workspace_id,display_name,created_ator equivalent; no absolute paths, user names, socket paths, data-dir paths, tokens, or runtime secrets。 - Existing checkouts without the file must remain usable with safe auto-create or fallback behavior。
- Workspace id should not change on process restart, repo path move, or sibling worktree checkout when the file is present。
- Avoid changing Ticket/Objectives canonical authority。
- Do not confuse this with Profile/manifest/override runtime config。
- Handle invalid/corrupt
workspace.tomlfail-closed with clear diagnostic; do not silently generate a different id over a bad tracked file unless explicitly safe。
Requirements / acceptance criteria:
- Define
.yoi/workspace.tomlschema and parser/loader. - Add create-if-missing behavior for local workspace server/bootstrap path, or a documented CLI/tool path if auto-create is unsuitable.
- Use persisted workspace id in Workspace API responses and any Repository/Host ids derived from workspace id.
- Ensure generated file is safe to commit and has no local absolute paths/secrets.
- Existing tests updated to deterministic temp workspace identity behavior。
- Add tests for missing file creation/fallback, existing stable id, invalid file error, and no local path leakage。
- Validation includes workspace-server tests, Deno check/build if frontend output changes, git diff check, Ticket doctor, and Nix build if package/source behavior changes。
Implementation latitude:
- Put parser in
workspace-servercrate if currently only the web backend needs it, or a small shared crate if needed; avoid broad architecture churn。 - Workspace id can reuse project-record id allocator if suitable, or a stable slug/uuid/base32 type if already used。
- If auto-writing tracked file during server startup is risky, implement explicit ensure function used by tests/bootstrap and document behavior; but Ticket prefers tracked persistence。
- Frontend can just display the id returned by existing
/api/workspaceif backend response changes。
Escalate if:
- Creating tracked
.yoi/workspace.tomlfrom a server process violates current project-record write boundaries。 - Workspace id generation requires global registry/coordination beyond local checkout。
- Existing code strongly assumes workspace id is derived from path and changing it would break multiple APIs unexpectedly。
- Nix/source filtering excludes
.yoi/workspace.tomlunexpectedly and package behavior needs product decision。
Validation plan:
cargo fmt --checkcargo test -p yoi-workspace-servercargo check -p yoi-workspace-servercd web/workspace && deno task check && deno task buildif frontend-visible changes occur。git diff --checkcargo run -p yoi -- ticket doctornix build .#yoi --no-linkif package/source filtering or tracked file behavior changed。
State changed
Human authorized queue routing from Workspace Dashboard. Ticket has concrete local workspace identity requirements and no recorded blockers, so Orchestrator accepts implementation.
Implementation report
Implementation start report:
- Created child implementation worktree:
/home/hare/Projects/yoi/.worktree/00001KVSKGDYS-workspace-identity
- Created branch:
impl/00001KVSKGDYS-workspace-identity
- Base commit:
4cda83b7 ticket: accept workspace identity and selection work
- Confirmed tracked Ticket project records are visible in the child worktree。
- Confirmed
.yoi/memoryhas no tracked/untracked entries in the child worktree check。 - Spawned sibling Coder Pod:
yoi-coder-00001KVSKGDYS
- Coder scope:
- read:
/home/hare/Projects/yoi - write:
/home/hare/Projects/yoi/.worktree/00001KVSKGDYS-workspace-identity
- read:
Parallelization note:
00001KVSKJ0EAis active separately and targets TUI Dashboard selection semantics. This Ticket should stay limited to Workspace backend identity persistence and safe project record behavior。
Next action:
- Wait for Coder implementation report, then spawn Reviewer read-only for the implementation diff。