From 73d0a6a4523b6f0b161db7c0645bf3896cdbc32f Mon Sep 17 00:00:00 2001 From: Hare Date: Mon, 15 Jun 2026 00:25:03 +0900 Subject: [PATCH] ticket: accept queued implementation work --- .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KTFY8V80/item.md | 4 +- .yoi/tickets/00001KTFY8V80/thread.md | 73 +++++++++++++++++ .../artifacts/orchestration-plan.jsonl | 1 + .yoi/tickets/00001KV09WYC6/item.md | 4 +- .yoi/tickets/00001KV09WYC6/thread.md | 79 +++++++++++++++++++ 6 files changed, 158 insertions(+), 4 deletions(-) create mode 100644 .yoi/tickets/00001KTFY8V80/artifacts/orchestration-plan.jsonl create mode 100644 .yoi/tickets/00001KV09WYC6/artifacts/orchestration-plan.jsonl diff --git a/.yoi/tickets/00001KTFY8V80/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KTFY8V80/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..55d6528f --- /dev/null +++ b/.yoi/tickets/00001KTFY8V80/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260614-152451-1","ticket_id":"00001KTFY8V80","kind":"accepted_plan","accepted_plan":{"summary":"Start implementation for active workflow preservation across compaction in a dedicated child worktree. Keep workflow-state/prompt-context authority boundaries as reviewer focus.","branch":"impl/00001KTFY8V80-active-workflows-compaction","worktree":"/home/hare/Projects/yoi/.worktree/00001KTFY8V80-active-workflows-compaction","role_plan":"Orchestrator creates child implementation worktree, spawns sibling Coder with write scope limited to that worktree, then spawns Reviewer read-only against the same worktree after implementation report. Orchestrator integrates approved branch into orchestration branch and validates in orchestration worktree only."},"author":"yoi-orchestrator","at":"2026-06-14T15:24:51Z"} diff --git a/.yoi/tickets/00001KTFY8V80/item.md b/.yoi/tickets/00001KTFY8V80/item.md index 3a42ef84..4daf90bb 100644 --- a/.yoi/tickets/00001KTFY8V80/item.md +++ b/.yoi/tickets/00001KTFY8V80/item.md @@ -1,8 +1,8 @@ --- title: "Preserve active workflows across compaction" -state: 'queued' +state: 'inprogress' created_at: "2026-06-07T02:23:28Z" -updated_at: '2026-06-14T15:23:07Z' +updated_at: '2026-06-14T15:24:58Z' queued_by: 'workspace-panel' queued_at: '2026-06-14T15:23:07Z' --- diff --git a/.yoi/tickets/00001KTFY8V80/thread.md b/.yoi/tickets/00001KTFY8V80/thread.md index 288c0145..b7808870 100644 --- a/.yoi/tickets/00001KTFY8V80/thread.md +++ b/.yoi/tickets/00001KTFY8V80/thread.md @@ -71,4 +71,77 @@ Intake refinement が完了し、要件・受け入れ条件・binding invariant Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により routing が明示的に許可され、Ticket は `queued`。 +- 要件、受け入れ条件、binding invariants、implementation latitude、escalation conditions が Ticket body/thread に揃っている。 +- active Workflow invocation/state/obligations を durable history/state と compaction/rehydration 経路に載せる目的は concrete で、残る不確実性は既存 Pod/session/compaction architecture 内の実装戦術選択に閉じている。 + +Evidence checked: +- Ticket body / thread / artifacts: artifacts なし、Intake refinement と `planning -> ready`、Panel `ready -> queued` を確認。 +- Ticket relations: blocking relation なし。 +- OrchestrationPlan records: 既存 record なし。 +- Orchestrator workspace state: `/home/hare/Projects/yoi/.worktree/orchestration` は clean、queue commit `d311fe8f` 上。 +- Visible Pods: spawned child なし。 +- Bounded code map: workflow / compaction 関連は `crates/pod/src/compact/*`, `crates/pod/src/workflow/*`, `crates/pod/src/prompt/*`, `crates/session-store/src/*`, `crates/protocol/src/lib.rs`, `resources/workflows/*` が候補。 + +IntentPacket: + +Intent: +- compaction を跨ぐ長時間 workflow-governed task で、active workflow と残る operational obligations が失われないようにする。 + +Binding decisions / invariants: +- Workflow instructions を、history/state に残らない turn-local transient context だけを根拠に model context へ注入しない。 +- post-compaction context は「available workflow」と「この task で active な workflow obligations」を区別する。 +- missing / corrupt / obsolete active workflow state は silent stale instruction ではなく fail-closed または bounded diagnostic にする。 +- Ticket / Pod history / workflow record / compaction output の authority boundary を混同しない。 +- active workflow state は workflow-governed task の完了または explicit cancellation で clear / completed にできる必要がある。 + +Requirements / acceptance criteria: +- active workflow の slug、invocation source/time、task/scope、active/completed、current obligations/checkpoints を durable typed history/state として表現する。 +- compaction が active workflow state を明示的に carry forward する。 +- rehydration が durable source から active workflow guidance を復元できる。 +- snapshot vs latest workflow body の選択を実装報告または docs/code に明示する。 +- focused coverage に、review delegation と merge/close handling の間で compaction が起きる worktree/multi-agent style flow を含める。 + +Implementation latitude: +- 永続化先、schema、snapshot 粒度、diagnostic 表現は既存 Pod/session/compaction architecture に合わせて選んでよい。 +- local tactic 調査は coder に委ねるが、authority boundary を広げる必要があれば escalate する。 + +Escalate if: +- workflow snapshot vs latest body の選択が authority boundary や backward compatibility を大きく変える。 +- compaction 復元が hidden context injection を必要としそうになる。 +- persisted workflow state migration / compatibility が既存 records を破壊しそうになる。 +- Ticket lifecycle / Orchestrator queue semantics / workflow invocation semantics を広げる必要が出る。 + +Validation: +- 変更箇所に応じて `cargo test` / `cargo check` の focused subset。 +- 少なくとも workflow/compaction 関連 unit coverage、`cargo fmt --check`、`git diff --check`。 + +Current code map: +- Primary candidates: `crates/pod/src/compact/*`, `crates/pod/src/workflow/*`, `crates/pod/src/prompt/*`, `crates/session-store/src/*`, `crates/protocol/src/lib.rs`。 +- Workflow resources: `resources/workflows/*`。 + +Critical risks / reviewer focus: +- hidden context injection 回避。 +- active vs advertised workflow の明確な区別。 +- stale workflow obligations の漏れ込み防止。 +- persisted state の compatibility / corrupt-state diagnostics。 +- compaction 後の traceability と test coverage。 + +--- + + + +## State changed + +Routing decision と accepted implementation plan を記録済み。blocking relation / orchestration-plan blocker はなく、Orchestrator workspace は clean。implementation side effects の前に `queued -> inprogress` acceptance を記録する。 + --- diff --git a/.yoi/tickets/00001KV09WYC6/artifacts/orchestration-plan.jsonl b/.yoi/tickets/00001KV09WYC6/artifacts/orchestration-plan.jsonl new file mode 100644 index 00000000..009dbe8e --- /dev/null +++ b/.yoi/tickets/00001KV09WYC6/artifacts/orchestration-plan.jsonl @@ -0,0 +1 @@ +{"id":"orch-plan-20260614-152451-1","ticket_id":"00001KV09WYC6","kind":"accepted_plan","accepted_plan":{"summary":"Start Panel-associated Intake Pod display implementation in a dedicated child worktree. Work is disjoint from active-workflow/compaction implementation and can run in parallel.","branch":"impl/00001KV09WYC6-panel-intake-pod-rows","worktree":"/home/hare/Projects/yoi/.worktree/00001KV09WYC6-panel-intake-pod-rows","role_plan":"Orchestrator creates child implementation worktree, spawns sibling Coder with write scope limited to that worktree, then spawns Reviewer read-only against the same worktree after implementation report. Orchestrator integrates approved branch into orchestration branch and validates in orchestration worktree only."},"author":"yoi-orchestrator","at":"2026-06-14T15:24:51Z"} diff --git a/.yoi/tickets/00001KV09WYC6/item.md b/.yoi/tickets/00001KV09WYC6/item.md index 12112481..7963620e 100644 --- a/.yoi/tickets/00001KV09WYC6/item.md +++ b/.yoi/tickets/00001KV09WYC6/item.md @@ -1,8 +1,8 @@ --- title: 'Workspace panel: show Ticket-associated Intake Pods adjacent to Ticket rows' -state: 'queued' +state: 'inprogress' created_at: '2026-06-13T10:54:31Z' -updated_at: '2026-06-14T15:23:27Z' +updated_at: '2026-06-14T15:24:58Z' assignee: null readiness: 'implementation_ready' risk_flags: ['panel-ux', 'local-role-session-registry', 'pod-session-state'] diff --git a/.yoi/tickets/00001KV09WYC6/thread.md b/.yoi/tickets/00001KV09WYC6/thread.md index 4edf00ee..4c5f7bd5 100644 --- a/.yoi/tickets/00001KV09WYC6/thread.md +++ b/.yoi/tickets/00001KV09WYC6/thread.md @@ -29,4 +29,83 @@ Intake 確認により、既存 Ticket の要件は実装 routing 可能な状 Ticket を `workspace-panel` が queued にしました。 +--- + + + +## Decision + +Routing decision: implementation_ready + +Reason: +- Panel Queue により routing が明示的に許可され、Ticket は `queued`。 +- 要件、受け入れ条件、binding decisions / invariants、implementation latitude、escalation conditions、validation が Ticket body/thread に揃っている。 +- Panel 表示改善に限定された concrete work item であり、registry/schema redesign や自動 spawn/polling は非要件として明確。 + +Evidence checked: +- Ticket body / thread / artifacts: artifacts なし、Intake summary と `planning -> ready`、Panel `ready -> queued` を確認。 +- Ticket relations: blocking relation なし。 +- OrchestrationPlan records: 既存 record なし。 +- Orchestrator workspace state: `/home/hare/Projects/yoi/.worktree/orchestration` は clean、queue commit `d311fe8f` 上。 +- Visible Pods: spawned child なし。 +- Related code map: `crates/tui/src/workspace_panel.rs`, `crates/tui/src/multi_pod.rs`, `crates/tui/src/role_session_registry.rs`。 + +IntentPacket: + +Intent: +- Workspace Panel の Ticket 表示で、Ticket-associated Intake Pod/session を Ticket row と隣接・関連表示し、open/attach 対象として認識しやすくする。 + +Binding decisions / invariants: +- local Pod assignment / Pod name / socket / claim state / runtime status を git-tracked Ticket metadata/frontmatter/thread に保存しない。 +- automatic polling / automatic Intake spawn を追加しない。 +- selected arbitrary Pod direct-send UX を復活させない。 +- Ticket と Intake Pod の関係を 1:1 と仮定しない。 +- one-active-claim-per-Ticket invariant を維持する。 +- 既存 local role/session registry を基本入力とし、新しい durable Ticket schema は導入しない。 + +Requirements / acceptance criteria: +- Ticket に local Intake claim / related Intake session がある場合、Panel 上で Ticket と隣接・関連表示される。 +- subtitle に埋もれず「この Ticket の Intake Pod」と認識できる。 +- live / restorable / stale の状態が確認できる。 +- 関連 Intake Pod の open/attach 導線が Panel 操作から使える、または既存 open/attach 操作へ明確に誘導される。 +- pre-Ticket Intake Pod を特定 Ticket に誤関連付けしない。 +- focused test で ViewModel/row ordering または rendering contract を確認する。 + +Implementation latitude: +- 表示形式は既存 Panel UI に合わせて、隣接 row / child row / inline chip / row group のいずれかを選んでよい。 +- `related_pods` / `local_claim` ViewModel 拡張または typed row kind 追加は実装判断。 +- subtitle 表示の整理は重複して読みにくくならない範囲で可。 + +Escalate if: +- Panel selection model / keyboard semantics の大幅変更が必要になる。 +- one-active-claim-per-Ticket を崩さないと目的を満たせない。 +- pre-Ticket Intake と existing-Ticket Intake の表示分類が曖昧になり、誤関連付けのリスクがある。 +- Registry schema migration が必要になる。 + +Validation: +- `cargo test -p tui workspace_panel --lib` +- 関連箇所を触る場合 `cargo test -p tui multi_pod --lib` / `cargo test -p tui role_session_registry --lib` +- `cargo fmt --check` +- `git diff --check` + +Current code map: +- `crates/tui/src/workspace_panel.rs` +- `crates/tui/src/multi_pod.rs` +- `crates/tui/src/role_session_registry.rs` + +Critical risks / reviewer focus: +- Ticket metadata 汚染の有無。 +- one-active-claim invariant。 +- pre-Ticket Intake の誤関連付け。 +- selection/open semantics の不要な変更。 +- bounded row rendering / large list readability。 + +--- + + + +## State changed + +Routing decision と accepted implementation plan を記録済み。blocking relation / orchestration-plan blocker はなく、Orchestrator workspace は clean。00001KTFY8V80 とは主対象が workflow/compaction と TUI Panel で分かれており、独立 worktree/branch で並行開始可能と判断したため、implementation side effects の前に `queued -> inprogress` acceptance を記録する。 + ---