diff --git a/.yoi/tickets/open/20260601-021104-tui-composer-history-persistence/artifacts/.gitkeep b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260601-021104-tui-composer-history-persistence/artifacts/.gitkeep rename to .yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260601-021104-tui-composer-history-persistence/item.md b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/item.md similarity index 98% rename from .yoi/tickets/open/20260601-021104-tui-composer-history-persistence/item.md rename to .yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/item.md index af70461a..e40afb17 100644 --- a/.yoi/tickets/open/20260601-021104-tui-composer-history-persistence/item.md +++ b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/item.md @@ -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' diff --git a/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/resolution.md b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/resolution.md new file mode 100644 index 00000000..1eaffa89 --- /dev/null +++ b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/resolution.md @@ -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/-/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` diff --git a/.yoi/tickets/open/20260601-021104-tui-composer-history-persistence/thread.md b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/thread.md similarity index 90% rename from .yoi/tickets/open/20260601-021104-tui-composer-history-persistence/thread.md rename to .yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/thread.md index aed69581..7a5ee87a 100644 --- a/.yoi/tickets/open/20260601-021104-tui-composer-history-persistence/thread.md +++ b/.yoi/tickets/closed/20260601-021104-tui-composer-history-persistence/thread.md @@ -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. +--- + + + +## State changed + +Ticket closed; workflow_state を done に設定しました。 + + +--- + + + +## 完了 + +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/-/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` + + ---