Chau7 is moving to Rust/GPUI.
Here is what changes, what you can download today, and how your workspace will move.
Stable today: v0.5.1 for macOS. Rust/GPUI: an unreleased 0.6.0-rc.1 production candidate.
What is coming in the Rust/GPUI app?
The current stable download is v0.5.1, built with SwiftUI/AppKit and Rust terminal components. The Rust/GPUI production candidate is not yet a public release.
- Wrapper-aware OpenCode detection and a tab icon. Stable already recognizes direct launches and supported session resume.
- SSH host badges with accessible labels for remote tabs.
- Repository tab grouping, splits, and saved workspace restoration.
- Local performance diagnostics separated from provider latency, with telemetry source attribution.
- Metal and software/CPU rendering for the macOS window and terminal.
- A delayed startup splash only if no terminal frame has painted after 200 ms; it closes when the terminal paints.
- Explicit restoration import from Swift or Next with a dry run and separate storage.
Read the release status and safe migration plan. macOS comes first; Linux and Windows currently have CI/build coverage only.
Performance you can inspect
The candidate records local input dispatch, PTY queue, and output-to-CPU-paint timings. Provider request latency is tracked separately where telemetry is available. CPU paint timings do not measure the moment pixels reach your physical screen.
Telemetry attribution connects supported sources to tabs and provider sessions and identifies where measurements came from. It does not guarantee token counts or tokens per second for every CLI or provider. There is no universal input-to-pixel latency claim.
The startup splash is a fallback: the terminal starts immediately. If no terminal frame has painted after 200 ms, a splash may appear; the first terminal paint closes it. The threshold is a display rule, not a launch-time promise.
The planned safe upgrade
The importer is implemented, but real-profile restoration, preferences, credentials, and release acceptance still need validation. The current candidate is ad-hoc signed locally; Developer ID signing and notarization are required before public distribution.
- Keep the current app and make a dated backup of both app profiles, configuration, and the Swift preferences file.
- At the agreed cutover, close the old app normally so it saves its latest workspace, then refresh the backup to include that final saved state. Running shell processes do not move to the new app.
- Choose the source explicitly: Swift for the current Chau7 workspace, or Next for an existing test profile. Run the restoration import in dry-run mode and inspect its counts and warnings.
- Import into the new, empty Rust destination. The importer validates saved contexts, refuses an existing restoration destination, and leaves the original source data in place.
- Verify windows, tabs, splits, working directories, scrollback, and supported AI resume information. Check preferences and credentials separately before relying on the new app.
- Keep the original app and profile for rollback. Close the Rust app normally before returning to the preserved Swift app and its original data.
Production Rust configuration uses ~/.chau7/rust-v1/; state uses ~/Library/Application Support/Chau7/RustV1/. Existing Swift and Next data are not merged automatically.
Saved terminal text is restored; live PTYs and running jobs are not. Invalid resume identities and unsupported preview contexts are reported rather than silently converted into commands.
The graphical source chooser, stable CLI setup, signing/notarization, runtime acceptance, and the switch of the stable release pipeline remain release gates. This page does not announce a stable Rust release.