Move probe cadence and finite-run scheduling from SessionMachine into a
crate-private ProbeSchedule owned by the blocking client and each managed
target.
Architectural rationale
SessionMachine now owns only protocol lifecycle, sequence allocation, pending
probes, reply classification, and terminal protocol state. Scheduling deadlines,
finite-run boundaries, cadence advancement, and missed-slot handling have one
separate owner.
This preserves absolute opening-time cadence, exclusive finite-run completion,
missed-slot skipping, and the requirement to drain pending replies after the
final scheduled send.
Test stabilization
Replace the burst and staggered pacing tests' opposing 20 ms loopback thresholds
with deterministic explicit-Instant assertions over private scheduling
helpers. Existing loose multi-target loopback smoke coverage remains.
Focused managed pacing, delayed pacing, target-update, finite-run, and
pending-reply tests
Five repeated passes of both deterministic pacing replacements
## Summary
Move probe cadence and finite-run scheduling from `SessionMachine` into a
crate-private `ProbeSchedule` owned by the blocking client and each managed
target.
## Architectural rationale
`SessionMachine` now owns only protocol lifecycle, sequence allocation, pending
probes, reply classification, and terminal protocol state. Scheduling deadlines,
finite-run boundaries, cadence advancement, and missed-slot handling have one
separate owner.
This preserves absolute opening-time cadence, exclusive finite-run completion,
missed-slot skipping, and the requirement to drain pending replies after the
final scheduled send.
## Test stabilization
Replace the burst and staggered pacing tests' opposing 20 ms loopback thresholds
with deterministic explicit-`Instant` assertions over private scheduling
helpers. Existing loose multi-target loopback smoke coverage remains.
## Testing
- `cargo fmt --all -- --check`
- `cargo check --workspace`
- `cargo test --workspace`
- `cargo test -p irtt-client --no-default-features`
- `cargo clippy -p irtt-client --all-targets --no-default-features -- -D warnings`
- Focused managed pacing, delayed pacing, target-update, finite-run, and
pending-reply tests
- Five repeated passes of both deterministic pacing replacements
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Move probe cadence and finite-run scheduling from
SessionMachineinto acrate-private
ProbeScheduleowned by the blocking client and each managedtarget.
Architectural rationale
SessionMachinenow owns only protocol lifecycle, sequence allocation, pendingprobes, reply classification, and terminal protocol state. Scheduling deadlines,
finite-run boundaries, cadence advancement, and missed-slot handling have one
separate owner.
This preserves absolute opening-time cadence, exclusive finite-run completion,
missed-slot skipping, and the requirement to drain pending replies after the
final scheduled send.
Test stabilization
Replace the burst and staggered pacing tests' opposing 20 ms loopback thresholds
with deterministic explicit-
Instantassertions over private schedulinghelpers. Existing loose multi-target loopback smoke coverage remains.
Testing
cargo fmt --all -- --checkcargo check --workspacecargo test --workspacecargo test -p irtt-client --no-default-featurescargo clippy -p irtt-client --all-targets --no-default-features -- -D warningspending-reply tests