- ratatui + crossterm chat UI: streaming assistant text, multi-line input, bottom status bar (model / protocol / session id / context usage) - thinking blocks collapse to a summary with duration + estimated tokens; tool calls collapse to a concrete summary (path / command) + duration; click or Tab expands the details - config modal (/config): provider, OpenAI protocol, baseUrl, apiKey, model, contextWindow — persisted to ~/.focus/config.json; session list (/sessions) on the harness JSONL tree; /new, /compact, /help - auto-compaction (80% threshold, no confirmation) + dynamic system prompt with usage info run in a background job (fake-provider-testable) - Esc aborts a run (abandons the job thread; bounded by the provider timeout) - tests: config codec, summaries/durations/wrap/caret, UI state machine with an injected clock, job flow with a fake provider, session persistence |
||
|---|---|---|
| crates | ||
| docs/architecture | ||
| examples | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
| rust-toolchain.toml | ||