M6 — Polish
Goal
Make long sessions durable and the TUI pleasant to actually live in.
Scope — done
- Auto-compaction:
Compactor+ overflow trigger, threaded through the engine loop - Session-title generation via a configured
small_model - Crash-resume hardening: an unfinished assistant message left by a killed process is
marked aborted on load instead of replayed - Theming —
theme: Option<String>exists inconfig::schemabut isn't read anywhere in
harness-tui - Syntax-highlighted code blocks in the markdown renderer
- Streaming-render perf pass (incremental layout / tail-only re-render beyond the
existing markdown render cache from M2)
Acceptance criteria
- A session driven past the context limit compacts via
Compactorand continues correctly,
with prior turns summarized rather than dropped or truncated mid-message. - After a new session's first turn, its title reflects a
small_model-generated summary
instead of the default placeholder. - Resuming a session whose process was killed mid-turn shows the last assistant message as
aborted, and does not replay or re-send it to the provider. - Setting
themein config produces a visibly different TUI color scheme; switching between
at least two configured themes changes the rendered output. - Fenced code blocks in assistant messages render with syntax highlighting matching the
fence's declared language. - Streaming a long assistant response renders incrementally without visible input lag or
full-viewport re-layout on each token.
No due date
0% Completed
No results
Try adjusting your search filters.