| Age | Commit message (Expand) | Author |
| 4 days | feat(ssh): discover computers from ~/.ssh/known_hosts + remote system-prompt | Adam Malczewski |
| 4 days | Merge branch 'dev' into feature/ssh-support | Adam Malczewski |
| 4 days | feat(kernel): retry-with-backoff on retryable provider errors | Adam Malczewski |
| 4 days | feat(ssh): wave 3 — session-orchestrator computerId threading + transport-c... | Adam Malczewski |
| 5 days | feat: persistent per-conversation model selection | Adam Malczewski |
| 5 days | fix(system-prompt): reconstruct on cwd change via getWithMeta | Adam Malczewski |
| 5 days | workspace: conversation.open/statusChanged carry workspaceId (1405 vitest) | Adam Malczewski |
| 5 days | feat(system-prompt): add prompt:workspace_id variable | Adam Malczewski |
| 5 days | feat(system-prompt): wire into turn flow + compaction + API routes | Adam Malczewski |
| 6 days | feat: workspaces — session-orchestrator + transport-http + transport-ws + c... | Adam Malczewski |
| 7 days | feat: context window from model endpoints + percentage-based auto-compact | Adam Malczewski |
| 7 days | feat: incremental seq assignment during generation (CR-6) | Adam Malczewski |
| 7 days | feat: stop generation mid-turn (POST /conversations/:id/stop) | Adam Malczewski |
| 7 days | fix: compaction keeps original ID, forks old history to archive, chains via c... | Adam Malczewski |
| 7 days | feat: non-destructive compaction — fork history to archive before replacing | Adam Malczewski |
| 7 days | feat: default auto-compact threshold to 350k tokens | Adam Malczewski |
| 7 days | feat: conversation compacting (manual + automatic) | Adam Malczewski |
| 7 days | feat: conversation lifecycle status (active/idle/closed) for tab persistence | Adam Malczewski |
| 8 days | feat(transport): CLI endpoints + conversation.open broadcast (Wave 2) | Adam Malczewski |
| 8 days | feat(cli): Wave 0 — contracts for conversation list, last message, open tab | Adam Malczewski |
| 8 days | feat(message-queue): per-conversation queue + steering injection | Adam Malczewski |
| 2026-06-12 | feat(reasoning-effort): persisted per-conversation + per-turn override, threa... | Adam Malczewski |
| 2026-06-12 | feat(cache-warming): lifecycle CR-4 — default-off, fresh nextWarmAt, conver... | Adam Malczewski |
| 2026-06-12 | fix(turns): emit user prompt on the turn event stream (CR-3) | Adam Malczewski |
| 2026-06-12 | feat(turns): detached turns + multi-client live view | Adam Malczewski |
| 2026-06-12 | feat(metrics): expose current context size to the frontend | Adam Malczewski |
| 2026-06-11 | feat(lsp,cwd): LSP integration + per-conversation cwd; fix cache-warming cach... | Adam Malczewski |
| 2026-06-11 | feat(cache-warming): CR-3 — manual warm resets timer + nextWarmAt/lastWarmA... | Adam Malczewski |
| 2026-06-11 | feat(cache-warming): per-conversation prompt-cache warming + warm() service | Adam Malczewski |
| 2026-06-10 | feat(skills): skill system + load_skill tool via per-turn tools filter | Adam Malczewski |
| 2026-06-10 | feat(metrics): durable per-turn/step token+timing metrics (observability span... | Adam Malczewski |
| 2026-06-07 | feat(wire,kernel,session-orchestrator): live turn metrics on the stream | Adam Malczewski |
| 2026-06-06 | feat(kernel-runtime,session-orchestrator): emit turn lifecycle events | Adam Malczewski |
| 2026-06-06 | feat(wire,conversation-store): per-chunk seq sync cursor (StoredChunk) | Adam Malczewski |
| 2026-06-05 | feat(backend): credential-store + model selection/catalog (GET /models) + per... | Adam Malczewski |
| 2026-06-05 | feat(observability): Phase A logging substrate — Logger/Span ABI + journal ... | Adam Malczewski |
| 2026-06-05 | refactor(kernel): rename tabId → conversationId across contracts + consumer... | Adam Malczewski |
| 2026-06-04 | fix(kernel): expose getProviders/getTools on HostAPI (CR-2) + runTurn uses in... | Adam Malczewski |
| 2026-06-04 | feat(core-ext): session-orchestrator + transport-http (parallel); wire into b... | Adam Malczewski |