ticket: record queued tool and panel updates
This commit is contained in:
parent
3b6a3da19f
commit
5e7f1b921e
|
|
@ -1,13 +1,13 @@
|
||||||
---
|
---
|
||||||
title: 'Improve workspace panel display and composer key handling'
|
title: 'Improve workspace panel display and composer key handling'
|
||||||
state: 'ready'
|
state: 'queued'
|
||||||
created_at: '2026-06-09T08:47:25Z'
|
created_at: '2026-06-09T08:47:25Z'
|
||||||
updated_at: '2026-06-09T09:50:15Z'
|
updated_at: '2026-06-09T10:01:08Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
readiness: 'implementation_ready'
|
readiness: 'implementation_ready'
|
||||||
risk_flags: ['tui-input', 'ux-consistency']
|
risk_flags: ['tui-input', 'ux-consistency']
|
||||||
action_required: 'User has confirmed Tab replaces Ctrl+T for Panel target switching, with composer completion taking priority if present.'
|
queued_by: 'workspace-panel'
|
||||||
attention_required: 'Keep Panel composer editing behavior shared with the normal chat composer rather than adding divergent ad-hoc key handling.'
|
queued_at: '2026-06-09T10:01:08Z'
|
||||||
---
|
---
|
||||||
|
|
||||||
## Background
|
## Background
|
||||||
|
|
|
||||||
|
|
@ -149,4 +149,13 @@ Reviewer focus:
|
||||||
- Verify that `Esc` does not unexpectedly exit the Panel when the user is trying to leave item/action focus.
|
- Verify that `Esc` does not unexpectedly exit the Panel when the user is trying to leave item/action focus.
|
||||||
- Verify that `Ctrl+C` exits reliably from the redesigned Panel states.
|
- Verify that `Ctrl+C` exits reliably from the redesigned Panel states.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: workspace-panel at: 2026-06-09T10:01:08Z from: ready to: queued reason: queued field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Ticket を `workspace-panel` が queued にしました。
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
13
.yoi/tickets/20260609-085212-001/artifacts/relations.json
Normal file
13
.yoi/tickets/20260609-085212-001/artifacts/relations.json
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"relations": [
|
||||||
|
{
|
||||||
|
"ticket_id": "20260609-085212-001",
|
||||||
|
"kind": "related",
|
||||||
|
"target": "20260609-073047-001",
|
||||||
|
"note": "非ブロッキング関連。ID 形式変更は TicketList の ID 表示長や tests に影響し得るが、本 Ticket は canonical id を不透明文字列として扱うため先後関係は不要。",
|
||||||
|
"author": "intake",
|
||||||
|
"at": "2026-06-09T09:55:43Z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
---
|
||||||
title: 'TicketListの出力を軽量化する'
|
title: 'TicketListの出力を軽量化する'
|
||||||
state: 'planning'
|
state: 'queued'
|
||||||
created_at: '2026-06-09T08:52:12Z'
|
created_at: '2026-06-09T08:52:12Z'
|
||||||
updated_at: '2026-06-09T08:52:12Z'
|
updated_at: '2026-06-09T10:01:28Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
|
queued_by: 'workspace-panel'
|
||||||
|
queued_at: '2026-06-09T10:01:28Z'
|
||||||
---
|
---
|
||||||
|
|
||||||
## 背景
|
## 背景
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,77 @@
|
||||||
|
|
||||||
LocalTicketBackend によって作成されました。
|
LocalTicketBackend によって作成されました。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: plan author: intake at: 2026-06-09T09:55:30Z -->
|
||||||
|
|
||||||
|
## Plan
|
||||||
|
|
||||||
|
## Intake refinement
|
||||||
|
|
||||||
|
readiness は `implementation_ready`。目的、対象 surface、非目標、受け入れ条件、検証観点がすでに具体的で、Orchestrator が routing できる。
|
||||||
|
|
||||||
|
### Binding decisions / invariants
|
||||||
|
|
||||||
|
- `TicketList` は selection / triage / backlog overview 用の bounded summary として扱い、routing / close / planning return / implementation acceptance の authority にはしない。
|
||||||
|
- 詳細判断の authority は `TicketShow <id>` の body/thread/artifacts とする。
|
||||||
|
- LLM-facing `TicketList` tool の default result は軽量・bounded にし、item body / thread / artifacts の詳細を漏らさない。
|
||||||
|
- CLI human output も default では巨大な JSON/Markdown を出さず、人間可読性と context safety を両立する。
|
||||||
|
- `state=all` や closed を含む一覧は特に context blow-up を起こしにくい default/max limit を持つ。
|
||||||
|
- long title / diagnostics / attention hint は bounded に切り詰める。
|
||||||
|
- Ticket backend schema、TicketShow の詳細性、Ticket relation / Objective / OrchestrationPlan の設計はこの Ticket の範囲外。
|
||||||
|
|
||||||
|
### Implementation latitude
|
||||||
|
|
||||||
|
- 1 Ticket あたりの summary field、timestamp の選択、title truncation 長、default/max limit の具体値は実装者が current UI/LLM usage を見て決めてよい。
|
||||||
|
- detail-heavy mode は必要がある場合だけ明示 opt-in として追加してよいが、default tool result は軽量に保つ。
|
||||||
|
- CLI と tool output は同じ内部 summary model を共有してもよいし、human readability のために表示整形だけ分けてもよい。
|
||||||
|
- Docs/tool description/workflow guidance の更新範囲は、`TicketList` を selection/overview 用、`TicketShow` を詳細 authority と明示するために必要な範囲に限定してよい。
|
||||||
|
|
||||||
|
### Escalation conditions
|
||||||
|
|
||||||
|
- Orchestrator が `TicketList` だけで routing authority を持つ設計に変える必要が出た場合。
|
||||||
|
- Summary を削ることで panel / CLI / role workflow の既存の必須操作が成立しなくなる場合。
|
||||||
|
- Detail-heavy mode 追加が新しい public API / plugin / capability boundary の判断を要する場合。
|
||||||
|
- `limit` / truncation の方針が Ticket identity/base32 migration Ticket と衝突し、先後関係の判断が必要になった場合。
|
||||||
|
|
||||||
|
### Validation focus
|
||||||
|
|
||||||
|
- long title truncation。
|
||||||
|
- large list の default/max limit behavior。
|
||||||
|
- `state=all` / closed を含む listing cap。
|
||||||
|
- JSON/tool output shape が bounded summary であること。
|
||||||
|
- `TicketList` output に body/thread/artifacts の本文が漏れないこと。
|
||||||
|
- CLI list output が default で巨大化しないこと。
|
||||||
|
- `target/debug/yoi ticket doctor`、focused tests、`cargo fmt --check`、`git diff --check`。コード・resource 変更が入るため完了前に `nix build .#yoi` も確認する。
|
||||||
|
|
||||||
|
Open questions: なし。
|
||||||
|
Risk flags: `tool-output`, `context-budget`, `cli-ux`, `ticket-tools`, `docs-workflows`。
|
||||||
|
Related work: `20260609-073047-001` は Ticket/Objective ID 形式変更で非ブロッキング関連。ID 長や表示が変わっても、本 Ticket の summary/truncation 方針は canonical ID を不透明文字列として扱えば成立する。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: intake_summary author: intake at: 2026-06-09T09:55:37Z -->
|
||||||
|
|
||||||
|
## Intake summary
|
||||||
|
|
||||||
|
TicketList の default output を LLM/context に安全な bounded summary へ軽量化する concrete work item として整理済み。詳細 authority は TicketShow に残し、List は selection/overview 用とする。Open questions はなく、risk flags は tool-output / context-budget / cli-ux / ticket-tools / docs-workflows。関連する ID 形式変更 Ticket は非ブロッキングで、canonical id は不透明文字列として扱う。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: intake at: 2026-06-09T09:55:37Z from: planning to: ready reason: intake_ready field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Intake refinement により、目的・受け入れ条件・binding decisions / invariants・implementation latitude・escalation conditions・validation focus が揃ったため、Orchestrator が routing できる ready に移行する。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: workspace-panel at: 2026-06-09T10:01:28Z from: ready to: queued reason: queued field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Ticket を `workspace-panel` が queued にしました。
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
---
|
---
|
||||||
title: 'Tool実行にToolExecutionContextを渡す'
|
title: 'Tool実行にToolExecutionContextを渡す'
|
||||||
state: 'planning'
|
state: 'queued'
|
||||||
created_at: '2026-06-09T09:30:50Z'
|
created_at: '2026-06-09T09:30:50Z'
|
||||||
updated_at: '2026-06-09T09:30:50Z'
|
updated_at: '2026-06-09T10:01:00Z'
|
||||||
assignee: null
|
assignee: null
|
||||||
|
queued_by: 'workspace-panel'
|
||||||
|
queued_at: '2026-06-09T10:01:00Z'
|
||||||
---
|
---
|
||||||
|
|
||||||
## 背景
|
## 背景
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,29 @@
|
||||||
|
|
||||||
LocalTicketBackend によって作成されました。
|
LocalTicketBackend によって作成されました。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: intake_summary author: intake at: 2026-06-09T09:55:00Z -->
|
||||||
|
|
||||||
|
## Intake summary
|
||||||
|
|
||||||
|
既存 Ticket を確認し、同目的の未完了重複は見当たりません。要件は Tool 実行 API に `ToolExecutionContext` を導入し、`call_id` / response-local `batch_id` / `call_index` を Tool 実装へ渡すことです。Worker は従来どおり approved tool calls を並列実行し、resource scheduling policy は持たないこと、old Tool API 互換層を長期維持しないこと、Interceptor / hook に lock lifecycle を持たせないことが binding decision です。実装側には `batch_id` 生成方式や session log への記録有無の裁量があります。関連し得る Ticket として `20260609-085148-001` は response 単位の batching analytics であり、目的が異なるため重複ではありません。リスク/レビュー焦点は public API 変更、Worker tool execution path、Interceptor/hook 意味論、並列実行維持、既存 built-in tools の一括移行です。受け入れ条件と validation が明確なため implementation_ready と判断します。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: intake at: 2026-06-09T09:55:00Z from: planning to: ready reason: intake_ready field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Intake により要件・非目標・受け入れ条件・レビュー焦点が routing 可能な状態で確認されたため、planning から ready にします。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: workspace-panel at: 2026-06-09T10:01:00Z from: ready to: queued reason: queued field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Ticket を `workspace-panel` が queued にしました。
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
|
||||||
0
.yoi/tickets/20260609-095518-001/artifacts/.gitkeep
Normal file
0
.yoi/tickets/20260609-095518-001/artifacts/.gitkeep
Normal file
63
.yoi/tickets/20260609-095518-001/item.md
Normal file
63
.yoi/tickets/20260609-095518-001/item.md
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
---
|
||||||
|
title: 'action_requiredとattention_requiredをTicket schemaから削除する'
|
||||||
|
state: 'ready'
|
||||||
|
created_at: '2026-06-09T09:55:18Z'
|
||||||
|
updated_at: '2026-06-09T10:02:25Z'
|
||||||
|
assignee: null
|
||||||
|
---
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
`action_required` / `attention_required` は Ticket frontmatter overlay として曖昧で、state / relation / body sections / thread event と責務が重複している。
|
||||||
|
|
||||||
|
特に `attention_required` は Panel で強い意味を持っており、non-empty の場合は `state: ready` でも Queue できず、blocked/red + `Edit` action になる。実際には「実装時の注意事項」程度の内容が `attention_required` に入ったことで、ready Ticket が誤って Queue 不能になった。
|
||||||
|
|
||||||
|
今後は以下の分担に寄せる:
|
||||||
|
|
||||||
|
- Queue / routing を止める不足は `state: planning` と typed state/thread reason で表す。
|
||||||
|
- dependency / blocker は typed Ticket relation metadata で表す。
|
||||||
|
- 実装時の注意、不変条件、相談条件は Ticket body の `Binding decisions / invariants` / `Escalation conditions` に書く。
|
||||||
|
- 中長期の判断軸は Objective に置く。
|
||||||
|
- 一時 UI notice は Panel/TUI local state に置く。
|
||||||
|
|
||||||
|
## ゴール
|
||||||
|
|
||||||
|
`action_required` と `attention_required` を current Ticket schema / tool API / Panel action 判定から削除する。
|
||||||
|
|
||||||
|
## 要件
|
||||||
|
|
||||||
|
- Ticket frontmatter schema から `action_required` と `attention_required` を削除する。
|
||||||
|
- New Ticket はこれらの fields を書かない。
|
||||||
|
- `ticket doctor` はこれらを要求しない。
|
||||||
|
- current records ではこれらの fields が無い状態を正とする。
|
||||||
|
- Ticket create / tool input / output から `action_required` / `attention_required` を削除する。
|
||||||
|
- `TicketCreate` params から削除する。
|
||||||
|
- `TicketList` / `TicketShow` の current metadata output から削除する。
|
||||||
|
- 必要なら legacy parser compatibility は短期 migration 用に限定し、current output には出さない。
|
||||||
|
- Panel の action 判定から `attention_required` blocker を削除する。
|
||||||
|
- `state: ready` は、unresolved relation blocker など明確な blocker が無ければ Queue 可能にする。
|
||||||
|
- 人間判断が不足している場合は `state: planning` に戻す運用にする。
|
||||||
|
- Existing docs / workflows / tests / examples を更新する。
|
||||||
|
- `attention_required` を human-attention overlay として説明している古い記述を削除または置換する。
|
||||||
|
- `action_required` を current Ticket field として扱う記述を削除する。
|
||||||
|
- Existing Ticket records から field は削除済みだが、schema 削除後も doctor が通ることを確認する。
|
||||||
|
- Historical thread/body mentions は audit/history として残してよい。ただし current docs/examples として使う場合は更新する。
|
||||||
|
|
||||||
|
## 非目標
|
||||||
|
|
||||||
|
- Typed Ticket relation metadata の実装。
|
||||||
|
- Objective の実装。
|
||||||
|
- Panel の新しい確認 UX の設計。
|
||||||
|
- `state: planning` に戻す policy 全体の再設計。
|
||||||
|
|
||||||
|
## 受け入れ条件
|
||||||
|
|
||||||
|
- `action_required` / `attention_required` が current Ticket schema から消えている。
|
||||||
|
- `TicketCreate` / `TicketList` / `TicketShow` がこれらを current fields として露出しない。
|
||||||
|
- Panel は `attention_required` の有無で ready Ticket を blocked/Edit 扱いしない。
|
||||||
|
- Queue/routing を止める理由は state / relation / typed thread reason のいずれかで表現される。
|
||||||
|
- Tests cover:
|
||||||
|
- ready Ticket without relation blockers derives Queue action;
|
||||||
|
- historical/legacy `attention_required` があっても current behavior を壊さないか、または doctor で明確に診断される;
|
||||||
|
- Ticket create/list/show output に fields が出ない。
|
||||||
|
- `target/debug/yoi ticket doctor`, focused tests, `cargo fmt --check`, and `git diff --check` pass.
|
||||||
23
.yoi/tickets/20260609-095518-001/thread.md
Normal file
23
.yoi/tickets/20260609-095518-001/thread.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
<!-- event: create author: LocalTicketBackend at: 2026-06-09T09:55:18Z -->
|
||||||
|
|
||||||
|
## 作成
|
||||||
|
|
||||||
|
LocalTicketBackend によって作成されました。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: intake_summary author: ticket-intake at: 2026-06-09T10:02:25Z -->
|
||||||
|
|
||||||
|
## Intake summary
|
||||||
|
|
||||||
|
既存 Ticket を精査し、重複ではなく実装可能な concrete work item と判断した。目的は `action_required` / `attention_required` を current Ticket schema、TicketCreate/TicketList/TicketShow などの tool/API output、Panel action 判定から削除し、routing を止める不足は `state: planning`・typed thread reason・relation metadata に寄せること。非目標は typed relation metadata / Objective / 新しい Panel 確認 UX / planning-return policy 全体の再設計。リスク/レビュー重点は ticket-schema、tool-api、panel-behavior、workflow/docs 更新、legacy/current record compatibility。実装は current output から両 field を消し、ready Ticket の Queue 判定を `attention_required` に依存させず、既存 docs/workflows/tests/examples の current 記述を更新し、historical audit mention は残してよい。検証は Ticket doctor、focused Ticket/Panel/tool output tests、cargo fmt --check、git diff --check、必要に応じて `nix build .#yoi` を含める。関連する既存作業として explicit workflow state 導入 `20260606-215403-001`、YAML frontmatter strict 化 `20260607-223233-001`、Panel close safety `20260608-032200-001`、Ticket state commit policy `20260607-220606-001` を確認済みで、いずれもこの Ticket の duplicate ではない。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!-- event: state_changed author: ticket-intake at: 2026-06-09T10:02:25Z from: planning to: ready reason: intake_ready field: state -->
|
||||||
|
|
||||||
|
## State changed
|
||||||
|
|
||||||
|
Intake classified this Ticket as ready to queue: the purpose, schema/tool/panel/doc scope, non-goals, acceptance criteria, validation expectations, and migration/compatibility boundary are explicit enough for Orchestrator routing.
|
||||||
|
|
||||||
|
---
|
||||||
Loading…
Reference in New Issue
Block a user