| Age | Commit message (Expand) | Author |
| 7 days | feat: double-click tab to rename (PUT /conversations/:id/title) | Adam Malczewski |
| 7 days | feat: consume context window + percentage-based compact handoff | Adam Malczewski |
| 7 days | feat: persist sidebar layout + open/closed state between refreshes | Adam Malczewski |
| 7 days | feat: show 5-char git hash next to hamburger for cache-bust detection | Adam Malczewski |
| 7 days | feat(chat): stop generation button — abort without closing | Adam Malczewski |
| 7 days | feat(compaction): conversation compacting + auto-compact threshold | Adam Malczewski |
| 7 days | feat(tabs): cross-device tab sync via conversation lifecycle | Adam Malczewski |
| 7 days | fix: conversation.open opens tab without auto-switching | Adam Malczewski |
| 7 days | feat(ws): handle conversation.open broadcast — open/focus tab from CLI --open | Adam Malczewski |
| 8 days | feat(surfaces): todo task list sidebar view | Adam Malczewski |
| 8 days | feat(chat): message queue + steering — mid-turn injection at tool-result bo... | Adam Malczewski |
| 10 days | fix: silence state_referenced_locally warning + sync draft model on catalog f... | Adam Malczewski |
| 2026-06-12 | feat(chat): reasoning-effort selector — sticky per-conversation thinking-de... | Adam Malczewski |
| 2026-06-12 | feat(chat): consume CR-5 history windowing — server-windowed cold loads + s... | Adam Malczewski |
| 2026-06-12 | feat(chat): chat limit — bulk quarter-unload, 75% fresh-load window, show-e... | Adam Malczewski |
| 2026-06-12 | feat(cache-warming): consume CR-4 lifecycle — tab-close cancel + scope-awar... | Adam Malczewski |
| 2026-06-12 | feat(chat): multi-client live view — watch in-flight turns + user prompt on... | Adam Malczewski |
| 2026-06-12 | feat(chat): old-Dispatch composer layout — textarea + send + status bar | Adam Malczewski |
| 2026-06-12 | feat(metrics): consume contextSize — current context-usage readout | Adam Malczewski |
| 2026-06-12 | feat(workspace,smart-scroll): per-conversation cwd + LSP view; smart auto-scroll | Adam Malczewski |
| 2026-06-11 | feat(cache-warming,surfaces,metrics,markdown): conversation-scoped surfaces, ... | Adam Malczewski |
| 2026-06-10 | feat(chat,app): Model view in sidebar + split key/model selectors | Adam Malczewski |
| 2026-06-10 | feat(views,surface-host): Extensions sidebar view — auto-expanded surfaces ... | Adam Malczewski |
| 2026-06-10 | feat(tabs,app): tab id handles, fixed-width tabs-lift, slim shell + full-heig... | Adam Malczewski |
| 2026-06-10 | feat(metrics): per-turn + per-step token/timing metrics bubbles | Adam Malczewski |
| 2026-06-07 | Revert "feat(chat): live turn metrics — telemetry reducer + rendering" | Adam Malczewski |
| 2026-06-07 | feat(chat): live turn metrics — telemetry reducer + rendering | Adam Malczewski |
| 2026-06-07 | feat(chat): restyle thinking — visible bubble, collapse, title swap, persis... | Adam Malczewski |
| 2026-06-07 | feat(tabs): extract TabBar component with horizontal scroll + sticky end '+' | Adam Malczewski |
| 2026-06-07 | fix: optimistic user message echo + tabs persistence | Adam Malczewski |
| 2026-06-07 | Slice 3 wave B: tabbed multi-conversation app + model selector (DaisyUI) | Adam Malczewski |
| 2026-06-07 | fix: blank page on non-localhost HTTP (secure-context crypto.randomUUID) | Adam Malczewski |
| 2026-06-07 | Slice 2 wave 3: wire chat end-to-end at the composition root | Adam Malczewski |
| 2026-06-06 | Slice 1 follow-up: component-render interaction tests (CR-1/CR-2) | Adam Malczewski |
| 2026-06-06 | Slice 1: surface system + WS transport + composition root | Adam Malczewski |