6.5 KiB
6.5 KiB
作成
LocalTicketBackend によって作成されました。
State changed
Ticket を workspace-panel が queued にしました。
Decision
Routing decision: implementation_ready
Reason:
- Ticket body は
yoi resumeサブコマンド化、top-level bare Pod name 推測廃止、workspace-scoped resume default、明示resume --all、--pod <NAME>維持、help/parser/picker tests 更新まで具体化されている。 - Binding decisions / invariants と implementation latitude が分離されており、
-r/--resumealias を残さない方針、host-wide enumeration をresume --allに限定する方針、legacy Pod metadata 判断時の escalation 条件も明示されている。 - Relation metadata と orchestration plan に blocker はない。
- Orchestrator worktree は clean で、対象 Ticket 用の既存 implementation worktree / branch はない。
- Visible Pods にこの Ticket の coder/reviewer は存在せず、現在 queued Ticket はこの Ticket のみ。
Evidence checked:
- Ticket body / thread / artifacts via
TicketShowand directitem.mdread。 TicketRelationQuery(00001KVJX7VZT): no relations / blockers。TicketOrchestrationPlanQuery(00001KVJX7VZT): no records。TicketList(state=queued): queued Ticket はこの Ticket のみ。ListPods: current visible Pods に対象 Ticket の child Pod はない。- Orchestrator worktree git state: clean on
orchestrationat8684344e。 - Worktree list / branch list: 対象 Ticket 用 worktree / branch はない。
- Bounded code map check:
crates/yoi/src/main.rsにLaunchMode::PodName/LaunchMode::Resume/ old help and parser tests がある。crates/tui/src/lib.rscurrently dispatchesLaunchMode::Resumetoconsole::run_resume(runtime_command)。crates/tui/src/console/mod.rsresume path callspicker::run()without workspace filtering。crates/tui/src/pod_list.rshasPodList::from_workspace_sources(...)and workspace metadata filtering tests。
IntentPacket:
Intent:
- CLI resume UX を explicit subcommand model に変更し、bare word Pod name inference を廃止する。
- Default resume picker は workspace-scoped、
resume --allは human CLI explicit opt-in の host-wide listing とする。
Binding decisions / invariants:
- Top-level bare word を Pod 名として推測しない。
- Pod 名を直接開く導線は explicit
--pod <NAME>のみ維持する。 -r/--resumeは互換 alias として残さず、unknown/deprecated error にする。resume --allなしで host-wide Pod list を表示しない。- Workspace-scoped resume は Pod metadata の
workspace_rootを authority にし、Dashboard と同じ方向の semantics を使う。 - Human CLI の
resume --allと LLM-facing Pod tool visibility/scope を混同しない。 yoi引数なし default Console 起動は変更しない。- Existing explicit command paths (
yoi pod,yoi ticket,yoi plugin,yoi memory lint,yoi panel,--session,--profile) を壊さない。
Requirements / acceptance criteria:
yoi resumeが resume picker を開く。yoi resume --workspace <PATH>が指定 workspace の Pod だけを表示する。yoi resume --allが host/data-dir wide Pod 一覧を表示する。yoi -r/yoi --resumeは legacy resume mode にならない。yoi <bare-word>はPodNamemode ではなく unknown command / usage error になる。yoi --pod <NAME>は明示 Pod open/attach/restore/create path として残る。yoi --helpから[POD_NAME]と-r, --resumeguidance を消し、yoi resume [--workspace <PATH>] [--all]を案内する。- Parser tests と TUI/pod-list/picker tests が新挙動を固定する。
Implementation latitude:
LaunchMode::Resumeに options を持たせるか、別 options 型を作るかは Coder 判断でよい。- picker API は options 化してよい。
- Workspace filtering は
PodList::from_workspace_sources(...)reuse を優先し、必要なら小 helper extraction を許可する。 - Error/help wording は
--podとresumeが発見しやすい範囲で Coder 判断可。 - CLI smoke は non-interactive に検証できる範囲でよい。
Escalate if:
workspace_rootmetadata がない legacy Pod を workspace-scoped resume に含めるべきか実装中に判断不能になる。-r/--resumealias を残す必要が出る。resume --allが Pod scope / permission / LLM-visible tool visibility と混ざる設計になりそうになる。- Parser change が existing explicit command paths を壊す。
- 要件達成に public CLI surface beyond this Ticket を追加する必要が出る。
Validation:
cargo fmt --check- Focused parser tests in
-p yoi - Focused TUI/pod-list/picker tests in
-p tui cargo check -p yoi -p tuigit diff --checkyoi ticket doctor- CLI smoke as practical:
target/debug/yoi --help,target/debug/yoi resume --help,target/debug/yoi unknown, and parser coverage for--pod。
Current code map:
- Primary files:
crates/yoi/src/main.rs,crates/tui/src/lib.rs,crates/tui/src/console/mod.rs,crates/tui/src/picker.rs,crates/tui/src/pod_list.rs。 - Related panel semantics reference:
crates/tui/src/workspace_panel.rs/ dashboard PodList filtering, but avoid broad dashboard churn。
Critical risks / reviewer focus:
- Backward compatibility intentionally changes: ensure old positional Pod name tests are removed/replaced, not silently preserved。
- Ensure
resume --allis explicit and default resume cannot leak host-wide Pod list。 - Ensure
--pod <NAME>remains the explicit direct Pod path。 - Ensure help text and parser error behavior make the new command model discoverable。
- Ensure workspace filtering depends on metadata
workspace_root, not live socket heuristics alone。
State changed
Human authorized queue routing from Workspace Dashboard. Ticket has concrete acceptance criteria and no recorded blockers, so Orchestrator accepts implementation and will create a child implementation worktree before spawning sibling Coder/Reviewer roles.