ticket: route tui markdown table rendering

This commit is contained in:
Keisuke Hirata 2026-06-08 22:15:21 +09:00
parent 0ba56fdc37
commit 60609ec326
No known key found for this signature in database
2 changed files with 55 additions and 2 deletions

View File

@ -6,9 +6,9 @@ status: 'open'
kind: 'bug'
priority: 'P2'
labels: ['tui', 'chat', 'markdown', 'rendering', 'ux']
workflow_state: 'queued'
workflow_state: 'inprogress'
created_at: '2026-06-08T10:31:33Z'
updated_at: '2026-06-08T13:13:23Z'
updated_at: '2026-06-08T13:15:07Z'
assignee: null
risk_flags: ['tui-rendering', 'markdown']
queued_by: 'workspace-panel'

View File

@ -29,4 +29,57 @@ LocalTicketBackend によって作成されました。
Ticket を `workspace-panel` が queued にしました。
---
<!-- event: state_changed author: orchestrator at: 2026-06-08T13:15:07Z from: queued to: inprogress reason: orchestrator_acceptance field: workflow_state -->
## State changed
Accepted queued implementation after reading the Ticket and current workspace state. This is a bounded TUI chat rendering bug fix and is independent of the active Ticket backend/orchestration-plan worktree, so it can proceed in a separate worktree without overlapping source surfaces beyond normal validation.
---
<!-- event: decision author: orchestrator at: 2026-06-08T13:15:07Z -->
## Decision
Routing decision: implementation_ready
Reason:
- The Ticket is scoped to the normal TUI chat/conversation view and has concrete acceptance criteria for pipe-table readability, non-regression, narrow terminal behavior, and tests/manual confirmation.
- It explicitly excludes Pod/session/history/context changes and non-chat surfaces.
- Current active implementation work is in Ticket backend/orchestration-plan tooling; this TUI rendering fix has low source-conflict risk and can proceed in a separate worktree.
IntentPacket:
Intent:
- Make ordinary Markdown pipe tables in assistant chat messages readable in the TUI conversation view without changing persisted history or model context.
Binding decisions / invariants:
- Only display/rendering behavior should change; do not mutate Pod history, session logs, worker history, prompt context, or stored message text for rendering.
- Target the normal chat/conversation view. Do not treat this as a Ticket panel, `yoi ticket show`, docs rendering, or WebFetch extraction feature.
- Do not pursue full GitHub Flavored Markdown table compatibility unless it falls out naturally from a small implementation; ordinary pipe tables are the acceptance target.
- Rendering must be robust: malformed or too-wide tables should not panic, drop message content, or break the surrounding message block.
- Preserve existing behavior for non-table Markdown/plain text as much as possible.
- Avoid broad rendering abstraction rewrites or new large parser dependencies unless investigation proves they are necessary; escalate first if so.
Implementation latitude:
- Coder may either add explicit table handling to the existing Markdown renderer or normalize table blocks into a readable plain-text fallback within the rendering layer.
- Column width/alignment/wrapping can be pragmatic and constrained by the existing TUI line/wrap model.
- Add unit/snapshot-like tests around the rendering function or a narrow test fixture for chat message rendering. If interactive manual verification is needed, include exact steps in the implementation report.
Escalate if:
- A large Markdown parser dependency or public rendering API redesign is needed.
- The change requires touching broad TUI surfaces outside chat/conversation rendering.
- Correctness would require changing stored message/history representation.
Validation:
- Focused TUI Markdown/chat rendering tests covering a simple pipe table and non-table regression.
- Narrow-terminal/wrapping safety test if feasible.
- Relevant `cargo test -p tui ...` target(s).
- `cargo fmt --check`.
- `git diff --check`.
- `cargo check --workspace`.
- `nix build .#yoi` before final completion because TUI/package behavior changes.
---