ticket: record panel close review and language preflight
This commit is contained in:
parent
b0e587cb8d
commit
59ebac76e0
|
|
@ -8,7 +8,7 @@ priority: 'P2'
|
|||
labels: ['tui', 'panel', 'ticket', 'close', 'workflow-state']
|
||||
workflow_state: 'inprogress'
|
||||
created_at: '2026-06-08T03:22:00Z'
|
||||
updated_at: '2026-06-08T05:50:36Z'
|
||||
updated_at: '2026-06-08T06:03:26Z'
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
queued_by: 'workspace-panel'
|
||||
|
|
|
|||
|
|
@ -137,3 +137,44 @@ Stop/completion policy:
|
|||
- Because the human authorized cleanup after completion, this Orchestrator will proceed through reviewer approval, merge-completion validation, Ticket close, Pod stop, worktree removal, and branch deletion if the branch is approved and merge authority remains clear.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: implementation_report author: orchestrator at: 2026-06-08T06:03:26Z -->
|
||||
|
||||
## Implementation report
|
||||
|
||||
Coder completed and reviewer delegated.
|
||||
|
||||
Coder result:
|
||||
- Pod: `coder-panel-close-done`
|
||||
- Commit: `6d41ed3 tui: close done tickets from panel`
|
||||
- Worktree status: clean after commit.
|
||||
- Diff against `develop`: 1 file changed, 207 insertions, 77 deletions.
|
||||
|
||||
Files touched by coder:
|
||||
- `crates/tui/src/multi_pod.rs`
|
||||
|
||||
Coder reported implementation:
|
||||
- Added Panel Close dispatch using `LocalTicketBackend::close` for safe open/done Tickets only.
|
||||
- Safe conditions checked: open status, `workflow_state == done`, empty/unset `attention_required`, empty/unset `action_required`, and no existing `resolution.md`.
|
||||
- Generated deterministic resolution text noting that the Ticket had already reached `workflow_state: done`, and that the close action did not start implementation/workflow-state changes or launch Orchestrator/Companion/workers.
|
||||
- Unsafe close attempts do not mutate and return bounded diagnostics.
|
||||
- Added focused tests for success, generated resolution content, non-done blocking, `action_required` blocking, `attention_required` blocking, and existing resolution blocking.
|
||||
|
||||
Coder reported validation:
|
||||
- `cargo test -p tui multi_pod --lib`
|
||||
- `cargo test -p tui workspace_panel --lib`
|
||||
- `cargo fmt --check`
|
||||
- `git diff --check`
|
||||
- `cargo run -q -p yoi -- ticket doctor`
|
||||
- `nix build .#yoi`
|
||||
|
||||
Reviewer delegation:
|
||||
- Spawned sibling reviewer Pod: `reviewer-panel-close-done`.
|
||||
- Reviewer scope: read-only child worktree plus non-recursive parent-root read required by launch cwd validation.
|
||||
- Reviewer was instructed to judge against the recorded Ticket requirements and binding decisions.
|
||||
|
||||
Pending:
|
||||
- Await reviewer verdict before merge-ready dossier / merge-completion.
|
||||
- No merge, close, final approval, or cleanup has occurred for this Ticket.
|
||||
|
||||
---
|
||||
|
|
|
|||
|
|
@ -6,11 +6,13 @@ status: 'open'
|
|||
kind: 'task'
|
||||
priority: 'P2'
|
||||
labels: ['ticket', 'language', 'config', 'profile', 'workflow']
|
||||
workflow_state: 'intake'
|
||||
workflow_state: 'queued'
|
||||
created_at: '2026-06-08T03:29:11Z'
|
||||
updated_at: '2026-06-08T03:29:11Z'
|
||||
updated_at: '2026-06-08T06:03:40Z'
|
||||
assignee: null
|
||||
legacy_ticket: null
|
||||
queued_by: 'workspace-panel'
|
||||
queued_at: '2026-06-08T05:51:29Z'
|
||||
---
|
||||
|
||||
## Background
|
||||
|
|
|
|||
|
|
@ -5,3 +5,72 @@
|
|||
Created by LocalTicketBackend create.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: intake at: 2026-06-08T03:31:05Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Intake readiness classification: `implementation_ready` for routing, with `needs_preflight: true`.
|
||||
|
||||
Rationale: the Ticket already defines the product boundary between `worker.language` and durable Ticket record language, names the expected config shape (`[ticket].language` preferred), preserves absent-config behavior, and lists observable acceptance criteria. Preflight is still required before implementation because the work touches Ticket config, role launch prompts, typed tool/backend generated text, profile/worker language boundaries, and generated durable records.
|
||||
|
||||
Risk flags: `config`, `profile-boundary`, `workflow-prompts`, `tool-generated-records`, `backward-compatibility`, `localization-policy`.
|
||||
|
||||
Implementation latitude: implementers may choose the minimal practical set of generation paths for the first change as long as they document the policy, preserve existing behavior when `ticket.language` is absent, avoid rewriting existing Tickets, and escalate before changing public/authority semantics beyond Ticket record language selection.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: intake_summary author: intake at: 2026-06-08T03:31:10Z -->
|
||||
|
||||
## Intake summary
|
||||
|
||||
Existing Ticket refined and marked ready for Orchestrator routing. Scope: add explicit Ticket record language configuration separate from Pod/worker response language; expose it to role launch prompts and typed Ticket-generated record paths where practical; preserve absent-config behavior and avoid translating existing records or protocol literals. Readiness: implementation_ready for routing, with preflight recommended/required because the work touches config, profile/worker language boundaries, workflow prompts, and generated durable Ticket records. Risk flags: config, profile-boundary, workflow-prompts, tool-generated-records, backward-compatibility, localization-policy.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: intake at: 2026-06-08T03:31:10Z from: intake to: ready reason: intake_ready field: workflow_state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Intake completed; Ticket has enough requirements, acceptance criteria, invariants, validation expectations, and escalation conditions for Orchestrator routing. Do not start implementation automatically; the next human/panel action is ready -> queued.
|
||||
|
||||
---
|
||||
|
||||
<!-- event: state_changed author: workspace-panel at: 2026-06-08T05:51:29Z from: ready to: queued reason: queued field: workflow_state -->
|
||||
|
||||
## State changed
|
||||
|
||||
Ticket queued for Orchestrator routing.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<!-- event: decision author: orchestrator at: 2026-06-08T06:03:40Z -->
|
||||
|
||||
## Decision
|
||||
|
||||
Routing decision: preflight_needed
|
||||
|
||||
Reason:
|
||||
- This Ticket touches the boundary between worker response language, durable Ticket record language, role launch prompts, Ticket tools/workflows, memory policy, and public/operator-facing project records.
|
||||
- The desired behavior is clear at a high level, but the exact source of truth for Ticket record language and how it is propagated into role launch/tool/workflow contexts needs a binding design note before coder delegation.
|
||||
- Without preflight, implementation could accidentally conflate user-facing conversation language with durable Ticket record language, or create hidden context-only language instructions that conflict with history/prompt-cache policy.
|
||||
|
||||
Evidence checked:
|
||||
- Ticket body and thread, including latest `ready -> queued` event.
|
||||
- Workspace state: no matching branch/worktree exists; active worktrees for direct/delegation authority and panel close are separate.
|
||||
- Code/prompt context: this crosses Ticket backend/tool wording, role launch prompt generation, workflow templates, profile/worker language handling, and memory language policy.
|
||||
- Ticket doctor: 0 errors; existing warnings are unrelated legacy closed-Ticket diagnostics.
|
||||
|
||||
Next action:
|
||||
- Run `ticket-preflight-workflow` before implementation delegation.
|
||||
- Preflight should record: canonical config key/source for Ticket record language, fallback/default behavior, relationship to `[worker].language` and `[memory].language`, which Ticket tools/workflows/role launch prompts must use record language, whether existing Tickets are left as-is, how mixed-language user input is handled, tests/fixtures, and explicit non-use of hidden context-only language injection.
|
||||
- Leave this Ticket queued for now; do not transition `queued -> inprogress`, create `.worktree/separate-ticket-record-language-from-worker-language`, or spawn coder/reviewer Pods until preflight records implementation readiness.
|
||||
|
||||
Escalate if:
|
||||
- Ticket record language requires a migration of existing Ticket content.
|
||||
- The design would make worker response language override durable Ticket record language.
|
||||
- Language guidance would need to be injected into LLM context without being represented in committed history/tool/workflow prompts.
|
||||
- The implementation would blur Ticket record authority with memory-language generation rules.
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user