193 lines
10 KiB
Markdown
193 lines
10 KiB
Markdown
<!-- event: create author: ticket-intake at: 2026-06-13T16:29:25Z -->
|
|
|
|
## 作成
|
|
|
|
LocalTicketBackend によって作成されました。
|
|
|
|
---
|
|
|
|
<!-- event: intake_summary author: ticket-intake at: 2026-06-13T16:29:41Z -->
|
|
|
|
## Intake summary
|
|
|
|
ユーザー依頼に基づき、Panel Orchestrator の自動作成 orchestration branch 名を `.yoi/ticket.config.toml` の typed config として設定可能にする concrete Ticket を作成した。設定なしでは既存 default `orchestration/<workspace-orchestrator-pod-name>` を維持し、invalid / mismatched worktree は破壊的修復せず diagnostic で止める方針。blocking open question はない。
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: ticket-intake at: 2026-06-13T16:29:41Z from: planning to: ready reason: planning_ready field: state -->
|
|
|
|
## State changed
|
|
|
|
Intake 済み。要件・受け入れ条件・binding invariants・validation が揃っており、Orchestrator routing 可能。
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: workspace-panel at: 2026-06-13T16:33:27Z from: ready to: queued reason: queued field: state -->
|
|
|
|
## State changed
|
|
|
|
Ticket を `workspace-panel` が queued にしました。
|
|
|
|
|
|
---
|
|
|
|
<!-- event: decision author: orchestrator at: 2026-06-13T18:41:14Z -->
|
|
|
|
## Decision
|
|
|
|
Routing decision: implementation_ready
|
|
|
|
Reason:
|
|
- Ticket は `queued` で、`.yoi/ticket.config.toml` に Panel Orchestrator の orchestration branch 名を typed config として追加する intent / requirements / acceptance criteria / invariants が具体化されている。
|
|
- `TicketRelationQuery` / `TicketOrchestrationPlanQuery` に blocker はない。
|
|
- Risk は config-schema / git-worktree / panel-orchestration だが、既存 default 維持、invalid branch の Git 操作前拒否、mismatched worktree の非破壊 diagnostic という安全境界が明記済み。
|
|
- 他 queued/inprogress との主な変更面は Panel orchestration worktree/config resolution で、E2E critical path・feature API cleanup・planning return action とは branch/worktree を分けて進められる。merge conflict が出た場合はその時点で止めて報告する。
|
|
|
|
Evidence checked:
|
|
- Ticket body / thread / artifacts。
|
|
- relation records: なし。
|
|
- orchestration plan records: なし。
|
|
- workspace state: Orchestrator worktree clean、dedicated child worktree で実装予定。
|
|
|
|
IntentPacket:
|
|
- `.yoi/ticket.config.toml` の typed config から Panel Orchestrator の resolved orchestration branch を取得し、worktree create / reuse / restore validation / diagnostics が同じ resolved value を使うようにする。
|
|
|
|
Binding decisions / invariants:
|
|
- 設定なしの default `orchestration/<workspace-orchestrator-pod-name>` は維持する。
|
|
- invalid branch は Git 操作前に拒否する。
|
|
- dirty/unknown/mismatched worktree を自動修復・削除・checkout しない。
|
|
- Ticket backend / Profile / prompt context への hidden injection ではなく明示 workspace config として扱う。
|
|
|
|
Validation:
|
|
- Focused ticket config / TUI orchestration tests、`cargo fmt --check`、`git diff --check`、`target/debug/yoi ticket doctor`。
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: orchestrator at: 2026-06-13T18:41:25Z from: queued to: inprogress reason: orchestrator_acceptance_unblocked field: state -->
|
|
|
|
## State changed
|
|
|
|
Ticket evidence、relation records、orchestration plan、workspace state を確認した。Blocking relation はなく、implementation-ready。実装 side effect の前に inprogress acceptance を記録する。
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: orchestrator at: 2026-06-13T18:42:45Z -->
|
|
|
|
## Implementation report
|
|
|
|
Implementation handoff started.
|
|
|
|
- Worktree: `/home/hare/Projects/yoi/.worktree/orchestration-branch-config`
|
|
- Branch: `ticket-00001KV0X254D-orchestration-branch-config`
|
|
- Coder Pod: `coder-00001KV0X254D-orch-branch`
|
|
- Scope: root workspace non-recursive read for launch validation only; child worktree read; writes limited to relevant TUI/Ticket/Client/Yoi crates, target, and this Ticket record。
|
|
|
|
Next: Coder implementation_report / commit / validation evidence を確認後、Reviewer を起動する。
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: hare at: 2026-06-13T18:59:21Z -->
|
|
|
|
## Implementation report
|
|
|
|
Implemented Ticket 00001KV0X254D.
|
|
|
|
Files changed:
|
|
- `crates/ticket/src/config.rs`
|
|
- Added typed `[orchestration] branch = "..."` config support via `TicketOrchestrationConfig` and validated `GitBranchName`.
|
|
- Kept default behavior as no configured branch; documented the optional config in the generated scaffold.
|
|
- Added config validation tests for valid custom branches and invalid Git branch names.
|
|
- `crates/tui/src/multi_pod.rs`
|
|
- Resolved Panel Orchestrator worktree branch from typed ticket config, falling back to `orchestration/<workspace-orchestrator-pod-name>`.
|
|
- Reused the resolved branch for worktree creation, existing-worktree validation, restore preparation, queue handoff checks, and restore diagnostics.
|
|
- Preserved refusal behavior for dirty/unknown/mismatched worktrees; mismatches are diagnostic and do not checkout/delete/repair.
|
|
- Added TUI tests covering custom configured branch creation/reuse/restore, invalid branch rejection before worktree Git operations, and mismatched restore rejection without checkout.
|
|
|
|
Validation:
|
|
- `cargo test -p ticket config --lib` — passed.
|
|
- `cargo test -p tui ensure_and_restore_use_configured_orchestration_branch --lib` — passed.
|
|
- `cargo test -p tui invalid_configured_orchestration_branch_is_rejected_before_git_worktree_operations --lib` — passed.
|
|
- `cargo test -p tui restore_rejects_mismatched_configured_orchestration_branch_without_checkout --lib` — passed.
|
|
- `cargo fmt --check` — passed.
|
|
- `git diff --check` — passed.
|
|
- `cargo build -p yoi` — passed.
|
|
- `target/debug/yoi ticket doctor` — passed.
|
|
|
|
Additional note:
|
|
- I also tried broader `cargo test -p tui orchestration --lib`; it compiled but includes the existing `multi_pod::tests::orchestrator_launch_context_uses_orchestration_root_for_runtime_workspace` failure, in code not touched by this change. The focused new orchestration-branch tests listed above pass.
|
|
|
|
Commit:
|
|
- `1c54689e tui: configure orchestration branch`
|
|
|
|
Residual risks:
|
|
- Branch validation is implemented as an internal Git-ref compatible validator rather than invoking `git check-ref-format`, so it is intentionally conservative (for example, rejects spaces and full `refs/...` names) before any worktree Git operation.
|
|
|
|
---
|
|
|
|
<!-- event: review author: hare at: 2026-06-13T19:05:48Z status: approve -->
|
|
|
|
## Review: approve
|
|
|
|
Approve.
|
|
|
|
Evidence:
|
|
- `crates/ticket/src/config.rs` adds typed `[orchestration] branch = "..."` via `TicketOrchestrationConfig` and `GitBranchName`, with `deny_unknown_fields` preserved and scaffold documentation limited to the Ticket config surface. Missing config leaves `orchestration.branch_name() == None`, preserving the existing default.
|
|
- `crates/tui/src/multi_pod.rs` resolves the Panel Orchestrator branch once through `resolved_orchestration_worktree_layout`, falling back to `orchestration/<workspace-orchestrator-pod-name>`, and uses that layout for create/reuse, restore preparation/validation/diagnostics, and Queue handoff preflight/sync notices.
|
|
- Invalid configured branches fail during Ticket config loading / branch resolution before `.worktree` creation; existing dirty, unknown, wrong-branch, or unrelated-repo paths remain diagnostic-only and are not checked out, deleted, reset, or repaired.
|
|
- No hidden prompt/Profile injection or unrelated config surface drift was found; the change stays in typed Ticket config plus Panel orchestration worktree handling.
|
|
- Tests cover default resolution, configured branch creation/restore, invalid branch rejection before worktree operations, mismatched branch diagnostics without checkout, and Queue paths using the resolved branch.
|
|
|
|
Validation performed:
|
|
- `git diff --check c4465a04..HEAD` — passed.
|
|
- `cargo fmt --check` — passed.
|
|
- `cargo test -p ticket config --lib` — passed (23 tests).
|
|
- `cargo test -p tui orchestration_worktree --lib` — passed (3 tests).
|
|
- `cargo test -p tui configured_orchestration_branch --lib` — passed (3 tests).
|
|
- `cargo test -p tui ticket_queue_action --lib` — passed (5 tests).
|
|
- `cargo test -p tui orchestration --lib` — failed only on the known unrelated `multi_pod::tests::orchestrator_launch_context_uses_orchestration_root_for_runtime_workspace` stale assertion; the branch/config-focused cases in that run passed.
|
|
|
|
Residual risk:
|
|
- Branch validation is an internal git-ref-compatible validator rather than an invocation of `git check-ref-format`; reviewed as acceptable and conservative for this Ticket.
|
|
|
|
---
|
|
|
|
<!-- event: implementation_report author: orchestrator at: 2026-06-14T05:05:48Z -->
|
|
|
|
## Implementation report
|
|
|
|
Integration outcome: merged and validated.
|
|
|
|
- Implementation branch: `ticket-00001KV0X254D-orchestration-branch-config`
|
|
- Implementation commits: `1c54689e tui: configure orchestration branch`, `fc075bc6 ticket: report orchestration branch config`
|
|
- Review commit: `9ad87dda ticket: approve orchestration branch config`
|
|
- Orchestrator merge commit: `290c4230 merge: orchestration branch config`
|
|
|
|
Reviewer result:
|
|
- `approve`。typed `[orchestration] branch` config、default preservation、invalid branch pre-Git rejection、create/reuse/restore/queue paths sharing resolved branch、non-destructive mismatch diagnostics を確認済み。
|
|
|
|
Orchestrator validation after merge:
|
|
- `cargo test -p ticket config --lib`: PASS
|
|
- `cargo test -p tui orchestration_worktree --lib`: PASS
|
|
- `cargo test -p tui configured_orchestration_branch --lib`: PASS
|
|
- `cargo test -p tui ticket_queue_action --lib`: PASS
|
|
- `cargo fmt --check`: PASS
|
|
- `git diff --check`: PASS
|
|
- `cargo build -p yoi`: PASS
|
|
- `target/debug/yoi ticket doctor`: PASS
|
|
|
|
Residual notes:
|
|
- Broad `cargo test -p tui orchestration --lib` contains a known unrelated stale assertion (`orchestrator_launch_context_uses_orchestration_root_for_runtime_workspace`) from child validation; focused branch/config tests pass.
|
|
|
|
Next:
|
|
- Mark Ticket done and clean up child coder/reviewer Pods plus implementation worktree/branch.
|
|
|
|
---
|
|
|
|
<!-- event: state_changed author: orchestrator at: 2026-06-14T05:05:57Z from: inprogress to: done reason: merged_and_validated field: state -->
|
|
|
|
## State changed
|
|
|
|
Implementation branch was reviewed, approved, merged into the Orchestrator branch as `290c4230`, and validated in the Orchestrator worktree. Focused ticket config / TUI orchestration worktree / configured branch / queue action tests, formatting, diff check, `cargo build -p yoi`, and `yoi ticket doctor` passed. Ticket implementation work is done; closure remains separate.
|
|
|
|
---
|