ticket: close composer history persistence

This commit is contained in:
Keisuke Hirata 2026-06-09 09:05:23 +09:00
parent e6593d0549
commit 958b24133d
No known key found for this signature in database
4 changed files with 62 additions and 3 deletions

View File

@ -2,13 +2,13 @@
id: 20260601-021104-tui-composer-history-persistence
slug: tui-composer-history-persistence
title: 'TUI: persist composer input recall history per workspace'
status: open
status: 'closed'
kind: task
priority: P2
labels: [tui, composer, history, persistence]
workflow_state: 'inprogress'
workflow_state: 'done'
created_at: 2026-06-01T02:11:04Z
updated_at: '2026-06-09T00:00:35Z'
updated_at: '2026-06-09T00:05:13Z'
assignee: null
queued_by: 'workspace-panel'
queued_at: '2026-06-08T13:19:06Z'

View File

@ -0,0 +1,21 @@
Implemented, reviewed, merged, and validated.
Summary:
- Added persistent TUI composer recall history per workspace.
- Stores history under the user data dir at `composer-history/workspaces/<workspace-label>-<fnv64-key>/history.json`, not under workspace `.yoi/`.
- Stores workspace metadata and typed `Segment` vectors, not flattened strings.
- Persists only non-blank submissions, suppresses consecutive duplicates, and bounds history to 30 entries per workspace.
- Preserves TUI-local/non-destructive recall semantics: recall does not mutate Pod protocol, worker history, session transcript, model context, or conversation state until explicit submit.
- Corrupt history files fall back to empty history with a bounded generic warning.
Implementation:
- Coder commit: `64b7ff7 tui: persist composer history`
- Reviewer approved with no blocking findings.
- Merge commit: `b616420 merge: persist tui composer history`
Validation after merge:
- `cargo fmt --check`
- `git diff --check`
- `cargo run -q -p yoi -- ticket doctor`
- `cargo check --workspace`
- `nix build .#yoi`

View File

@ -260,4 +260,42 @@ Residual risks / notes:
- Broader `cargo test -p tui` still has a pre-existing unrelated failure in `multi_composer_target_switch_preserves_typed_text`; this implementation did not modify `multi_pod.rs`.
- Final merge/close/cleanup is intentionally not performed here without explicit merge approval.
---
<!-- event: state_changed author: hare at: 2026-06-09T00:05:13Z from: inprogress to: done reason: closed field: workflow_state -->
## State changed
Ticket closed; workflow_state を done に設定しました。
---
<!-- event: close author: hare at: 2026-06-09T00:05:13Z status: closed -->
## 完了
Implemented, reviewed, merged, and validated.
Summary:
- Added persistent TUI composer recall history per workspace.
- Stores history under the user data dir at `composer-history/workspaces/<workspace-label>-<fnv64-key>/history.json`, not under workspace `.yoi/`.
- Stores workspace metadata and typed `Segment` vectors, not flattened strings.
- Persists only non-blank submissions, suppresses consecutive duplicates, and bounds history to 30 entries per workspace.
- Preserves TUI-local/non-destructive recall semantics: recall does not mutate Pod protocol, worker history, session transcript, model context, or conversation state until explicit submit.
- Corrupt history files fall back to empty history with a bounded generic warning.
Implementation:
- Coder commit: `64b7ff7 tui: persist composer history`
- Reviewer approved with no blocking findings.
- Merge commit: `b616420 merge: persist tui composer history`
Validation after merge:
- `cargo fmt --check`
- `git diff --check`
- `cargo run -q -p yoi -- ticket doctor`
- `cargo check --workspace`
- `nix build .#yoi`
---