Native platform checksΒΆ
Unit tests use recording Screens and synthetic audio. Native checks are explicit because opening a real terminal or capturing audio requires an appropriate host. Run from a source checkout; the default command only reports platform/dependency metadata and does not open a device:
uv run --locked python scripts/check_platform.py
uv run --locked python scripts/check_platform.py --terminal --output terminal.json
# Linux/macOS: creates a real pseudoterminal and exercises a size change.
uv run --locked python scripts/check_platform.py --pty --output pty.json
# Explicitly capture a short system-audio sample; samples are never saved.
uv run --locked python scripts/check_platform.py --audio --seconds 3 --output audio.json
--terminal requires interactive stdin/stdout and restores Screen state even on
failure. It exercises native writes, styled output, a dimension refresh, and a full
repaint. --pty additionally changes terminal dimensions and verifies resize
notification on Unix. CI runs that check on Linux and macOS and uploads the report.
These checks do not establish visual correctness, keyboard behavior, or display
latency. Windows terminal resizing should also be tried manually in the dashboard.
The audio check uses the installed optional audio backend and reports a pass only when it receives nonzero samples and shuts down cleanly. Silence is inconclusive and exits nonzero, as does failure. Play known audio while running it; no audio content is retained in the JSON report. A backend importing successfully or a mocked test passing does not establish hardware support.
Before release, manually resize the dashboard and routing demo in the terminals you support, check focus/quit keys, and verify cursor/style restoration afterward. Keep the platform reports with the release evidence. Record untested platforms or devices as untested. Use Rendering performance for native write/flush measurements.