Overview
The core component is a Rust library that implements the majority of The Test Cabinet’s functionality. Most other The Test Cabinet components link against this library and expose its functionality through their own interface — a CLI, an HTTP API, a desktop GUI — rather than re-implementing any of it. Keeping the orchestration here, and out of the interfaces, is what lets runs be driven identically whether they are launched from a script, a remote request, or a window. See Architecture.
Responsibilities
Section titled “Responsibilities”The core owns everything that happens during a run, and defines the data contracts the rest of the system is built around:
- Test cases — resolving a test case version
and its selected variant, and reading
the
test-case.tomlmanifest that says what gets seeded, rendered, and checked. - Execution — seeding a fresh git repository, running the harness inside an isolated container, and collecting the produced working tree.
- Agent harnesses — a single abstraction for invoking any supported third-party coding harness, absorbing each one’s quirks.
- Harness events — translating each harness’s raw output into one normalized, live event stream.
- Metrics — recording the run time, token, and cost data every run produces.
- Validation — the automated first pass that builds, loads, and optionally screenshot-compares an implementation.
- Run records — the fixed data contract a run emits.
- Results — publishing a finished run: releasing its code, uploading its record to the backend, and recording its review.
Wrapping the Core
Section titled “Wrapping the Core”The wrapping components are deliberately thin:
- The CLI exposes the core as the
tcabbinary. - The worker exposes the same run functionality over an HTTP API.
- The Tauri app exposes it as an interactive desktop GUI.
Each adds only the surface its interface requires; the behavior of a run lives here.