Found by a live tmux-driven TUI test sweep. Evidence: .tmp/tui-test/results/destructive.md.
Bugs (acceptance criteria — each fixed with a regression test)
Test plan
Failing Go regression tests first (runner/conversation store level for workspace population and mirror truncation; TUI message-unmarshal test for the JSON tags), then minimal fixes; scripts/test-regression.sh green.
Impact analysis
Touches run creation (workspace capture), rewind restore path, and the TUI rewind result message. Verify no other consumers of conversations.workspace depend on it being empty.
Rollout/rollback
Revert the branch; existing rewind points recorded without a workspace remain unrestorable (pre-existing limitation).
Found by a live tmux-driven TUI test sweep. Evidence:
.tmp/tui-test/results/destructive.md.Bugs (acceptance criteria — each fixed with a regression test)
/rewindconfirm can never succeed: server 404 "conversation workspace not found" becauseconversations.workspaceis never populated in production (only writerinternal/harness/runner.go:3262passes""); the TUI'sworkspace_pathrun field is never decoded server-side. Points get recorded but can never restore./rewindsuccess counts always display 0/0: TUIRewindResultMsglacks JSON tags; server sends snake_casefiles_restored/messages_truncated./rewindmessage truncation is ineffective: the in-memory conversation mirror isn't truncated, so the next turn resurrects all rewound messages and overwrites the DB truncation. Only the file restore takes effect.Test plan
Failing Go regression tests first (runner/conversation store level for workspace population and mirror truncation; TUI message-unmarshal test for the JSON tags), then minimal fixes;
scripts/test-regression.shgreen.Impact analysis
Touches run creation (workspace capture), rewind restore path, and the TUI rewind result message. Verify no other consumers of
conversations.workspacedepend on it being empty.Rollout/rollback
Revert the branch; existing rewind points recorded without a workspace remain unrestorable (pre-existing limitation).