• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

prisma-risk / tsoracle / 26494548553
95%

Build:
DEFAULT BRANCH: main
Ran 27 May 2026 06:28AM UTC
Jobs 1
Files 92
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

27 May 2026 06:22AM UTC coverage: 94.848% (-0.06%) from 94.908%
26494548553

push

github

web-flow
refactor(consensus)!: typed AdvanceOutOfRange variant end-to-end (#569)

Promote the rejected-out-of-range advance from a `Box<dyn Error>`-erased
`PermanentDriver` source to a first-class `ConsensusError::AdvanceOutOfRange(u64)`
variant. The offending value is now carried structurally from the propose-time
guard, through the server's disposition layer, into both consumers — no
downcasting, no re-boxing in `classify`.

The breaking change is the removal of the public `AdvanceOutOfRange` struct
and its `pub use` re-export from `tsoracle-consensus`. The only downcaster in
the tree was the crate's own test; no external consumer is affected.

`PersistDisposition::OutOfRange(u64)` carries the value end-to-end at the
server layer rather than collapsing into `Permanent(Box::new(...))`. This
follows the disposition module's stated design philosophy — "a new
ConsensusError variant becomes one edit here plus a compiler-forced arm at
each site" — and lets the fence path reconstruct
`ConsensusError::AdvanceOutOfRange(n)` faithfully instead of laundering it
back into `PermanentDriver`. `service.rs` reuses the variant's `Display` so
the message text stays pinned to a single source of truth in `ConsensusError`.

Three driver tests that previously asserted `matches!(_, PermanentDriver(_))`
on the OOR path are strengthened to assert the new variant carries the
expected `u64`; the unrelated `PermanentDriver(_)` assertions (storage I/O,
Raft fatal, paxos pending-reconfig, watch-task death) are unchanged.

Verified `cargo test --workspace --all-features` (1158 passed, 0 failed),
`cargo clippy --workspace --all-features --all-targets -- -D warnings`
(clean), and the license-header script.

Signed-off-by: Sebastian Thiebaud <sebastian@prismarisk.com>

23 of 36 new or added lines in 8 files covered. (63.89%)

14195 of 14966 relevant lines covered (94.85%)

360665.96 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
94.15
-2.84% crates/tsoracle-server/src/service.rs
4
94.67
-2.3% crates/tsoracle-server/src/fence.rs
1
88.68
-1.15% crates/tsoracle-consensus/src/advance.rs
1
91.79
0.0% crates/tsoracle-driver-openraft/src/driver.rs
1
95.88
0.0% crates/tsoracle-driver-paxos/src/driver.rs
1
94.0
-1.0% crates/tsoracle-server/src/persist_disposition.rs
Jobs
ID Job ID Ran Files Coverage
1 26494548553.1 27 May 2026 06:28AM UTC 92
94.85
GitHub Action Run
Source Files on build 26494548553
  • Tree
  • List 92
  • Changed 8
  • Source Changed 8
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26494548553
  • 1535b94d on github
  • Prev Build on main (#26494230007)
  • Next Build on main (#26613637332)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc