Architecture
Breeze is a small Rust workspace. Its own terminal engine (breeze-vt) parses the PTY stream and a CPU renderer (breeze-ui, cosmic-text into a software surface) draws it — no GPU. A per-session state machine in breeze-core watches the agent process through a per-OS backend (breeze-platform; libproc on macOS) and drives throttling, child cleanup, and disk-paged scrollback.
The session state machine
Each session is always in one of four states. The state drives both the polling interval and the CPU-throttle policy:
| State | Meaning | Throttle |
|---|---|---|
| RUNNING_TOOLS | Agent is executing tools / has active children | None — full speed |
| STREAMING_API | Streaming model output | ~10–15% duty cycle |
| WAITING_INPUT | Idle at the prompt | ~2–3% duty cycle |
| DEEP_IDLE | Background tab / long idle | Full SIGSTOP freeze |
Typing instantly suspends throttling, then it decays back to the state-appropriate policy ~300 ms after the last keystroke — so the prompt never feels sticky.
Scrollback
The in-RAM scrollback is a bounded ring. As lines scroll out of it, breeze-core appends them to a per-session file on disk, so the full history stays available to scroll back through at near-zero memory.