2.2 KiB
2.2 KiB
Ticket config role profile mapping is complete and merged.
Implementation:
767870a ticket: add workspace ticket config8fab67b ticket: reject nix profile selectors- merge commit:
9910df4 merge: add ticket config roles
Summary:
- Added
.yoi/ticket.config.tomlsupport throughcrates/ticket/src/config.rs. - Added fixed Ticket roles only:
intakeorchestratorcoderreviewerinvestigator
- Added role config fields:
profile- optional
launch_prompt - optional
workflow
- Did not add role-level
system_instruction; durable role/system behavior remains owned by the selected Profile. - Added backend config for local Ticket storage:
kind = "local"root = "work-items"
- Missing config defaults to local
<workspace>/work-items, all role profilesinherit, no launch prompts, and documented workflow defaults. - Unknown roles/fields, unsupported backend kinds, malformed refs, path-like profile refs,
.lua, and.nixprofile refs are rejected. - Wired the configured backend root into
crates/pod/src/feature/builtin/ticket.rs. - Preserved fail-closed/no-register behavior for malformed config or unusable backend roots.
- Kept dependency direction clean:
pod -> ticket;ticketdoes not depend onpodormanifest.
Review:
- External sibling review initially requested one blocker fix: reject
*.nixprofile selectors to align withSpawnPod.profilevalidation. - Coder fixed it in
8fab67band added a focusedlegacy.nixrejection test. - Re-review approved with no blockers.
Non-blocker follow-ups:
- Normalize
HostAuthority::TicketBackend { root }and canonical backend root consistently before relying on root strings for stricter security/audit comparison. - Add an execution-level Pod adapter test that runs a Ticket tool against the configured backend root.
- Later role launcher should resolve Profile selectors/prompt refs/workflow refs at runtime and commit launch prompts as user/task messages.
Post-merge validation passed:
cargo test -p ticketcargo test -p pod ticket --libcargo test -p pod feature --libcargo check --workspace --all-targetscargo fmt --checkgit diff --check./tickets.sh doctornix build .#yoi --no-link