What
cargo test --workspace is red on main, and has been for some time, for
a reason that is not what DEBT-REGISTER CI-1 says it is.
The actual cause, measured 2026-09-22
integration/Cargo.toml requires both:
testcontainers ^0.28
testcontainers-modules ^0.15, which itself requires testcontainers ^0.27
^0.27 and ^0.28 are disjoint under Cargo's semver rules for 0.x releases.
This is unsatisfiable at the manifest level, so no Cargo.lock can fix it,
cargo fails during dependency resolution, and no crate in the workspace is
ever compiled — including clients/rust/hypatia-client.
⚠ The debt register currently records the wrong cause
DEBT-REGISTER CI-1 states the failure is "a stale
dtolnay/rust-toolchain@stable pin … 13 jobs die at Set up job".
That is no longer true. The jobs start fine; they die at cargo resolution,
which is a later phase with a different fix. Anyone acting on the register
today would bump a toolchain pin and find nothing changed.
Consequence for the wire contract
The five Rust tests that pin the connector enum (count_is_sixteen,
wire_ids_are_stable, names_round_trip, from_id_round_trip,
port_layout_matches_v_lang) do not execute in CI and have not for as long
as this conflict has existed. They were verified green for PR #811 only by
extracting the crate into a standalone workspace: 5 passed, 0 failed.
Acceptance criteria
What
cargo test --workspaceis red onmain, and has been for some time, fora reason that is not what
DEBT-REGISTER CI-1says it is.The actual cause, measured 2026-09-22
integration/Cargo.tomlrequires both:testcontainers ^0.28testcontainers-modules ^0.15, which itself requirestestcontainers ^0.27^0.27and^0.28are disjoint under Cargo's semver rules for 0.x releases.This is unsatisfiable at the manifest level, so no
Cargo.lockcan fix it,cargofails during dependency resolution, and no crate in the workspace isever compiled — including
clients/rust/hypatia-client.⚠ The debt register currently records the wrong cause
DEBT-REGISTER CI-1states the failure is "a staledtolnay/rust-toolchain@stablepin … 13 jobs die atSet up job".That is no longer true. The jobs start fine; they die at cargo resolution,
which is a later phase with a different fix. Anyone acting on the register
today would bump a toolchain pin and find nothing changed.
Consequence for the wire contract
The five Rust tests that pin the connector enum (
count_is_sixteen,wire_ids_are_stable,names_round_trip,from_id_round_trip,port_layout_matches_v_lang) do not execute in CI and have not for as longas this conflict has existed. They were verified green for PR #811 only by
extracting the crate into a standalone workspace: 5 passed, 0 failed.
Acceptance criteria
cargo test --workspace --lockedexits 0 onmain, and its output showshypatia-client's five tests actually running — a non-zerodenominator, not a skip.
DEBT-REGISTER CI-1is corrected to name the resolution conflict, withthe old toolchain-pin explanation struck rather than deleted, so the
record shows it was wrong rather than appearing never to have said it.
testcontainersmajor, or drop one), not a[patch]— a patch makeslocal and CI resolve differently.
in
connector_generated.rs, confirmwire_ids_are_stablegoes red.