Go to file
DaiChaoXiong 676dc1503e feat(tui): add focus-tui terminal UI
- 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
2026-08-09 21:35:58 +08:00
crates feat(tui): add focus-tui terminal UI 2026-08-09 21:35:58 +08:00
docs/architecture INIT 2026-07-16 17:59:16 +08:00
examples INIT 2026-07-16 17:59:16 +08:00
.gitignore docs(workspace): whitelist ratatui/crossterm for focus-tui 2026-08-09 21:35:58 +08:00
AGENTS.md docs(workspace): whitelist ratatui/crossterm for focus-tui 2026-08-09 21:35:58 +08:00
Cargo.lock docs(workspace): whitelist ratatui/crossterm for focus-tui 2026-08-09 21:35:58 +08:00
Cargo.toml docs(workspace): whitelist ratatui/crossterm for focus-tui 2026-08-09 21:35:58 +08:00
README.md chore(workspace): sync manifests, docs and lockfile 2026-08-09 21:00:04 +08:00
rust-toolchain.toml INIT 2026-07-16 17:59:16 +08:00

README.md