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

prisma-risk / tsoracle / 26319868546
95%

Build:
DEFAULT BRANCH: main
Ran 23 May 2026 01:34AM UTC
Jobs 1
Files 72
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

23 May 2026 01:30AM UTC coverage: 94.345% (-1.0%) from 95.315%
26319868546

push

github

web-flow
feat(driver-paxos): StandaloneHost and PaxosDriver public façade (#182)

* feat(driver-paxos): StandaloneHost with apply pipeline and builder

StandaloneHost owns an OmniPaxos handle, the toolkit's PaxosRunner, a
spawned apply task, and the in-memory ApplyState. It implements
PaxosHighWaterHost so the driver can drive it directly.

The apply task awaits PaxosRunner::apply_notify, drains the decided
suffix into the AtomicU64 high-water, and triggers compaction via the
configured SnapshotPolicy. Blocking-read methods (current_high_water,
submit_advance) snapshot decided_idx, append a Barrier or Advance, and
loop on ApplyState::apply_notifier until their wait condition holds.

StandaloneHostBuilder provides an ergonomic construction surface with
required-field validation (omnipaxos handle, my_node_id) and sensible
defaults for tick_interval and snapshot policy.

* feat(driver-paxos): PaxosDriver wrapping any host, with fence + epoch re-derivation

PaxosDriver implements tsoracle_consensus::ConsensusDriver against any
PaxosHighWaterHost. The wrapper layer is thin and serves two purposes
that the toolkit runner cannot satisfy on its own:

1. Leader-event epoch re-derivation. The toolkit emits Leader events
   with a process-local counter-based placeholder epoch; the driver
   maps the stream to derive epoch via encode_epoch(omnipaxos.get_promise())
   so the value matches what persist_high_water's fence check expects.

2. Fence pre-flight. persist_high_water compares the supplied epoch
   against the current ballot-derived epoch and returns
   ConsensusError::Fenced on mismatch, avoiding a wasted log slot when
   a stale leader attempts to advance. The check + submit are not
   atomic across the OmniPaxos handle, but a stale ballot's append
   would be rejected downstream anyway.

leadership_events() is take-once: subsequent calls return an empty
stream. load_high_water and persist_high_water delegate to the host
after the fence check.

136 of 244 new or added lines in 2 files covered. (55.74%)

9392 of 9955 relevant lines covered (94.34%)

519194.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
99
33.56
crates/tsoracle-driver-paxos/src/standalone.rs
9
90.53
crates/tsoracle-driver-paxos/src/driver.rs
Jobs
ID Job ID Ran Files Coverage
1 26319868546.1 23 May 2026 01:34AM UTC 72
94.34
GitHub Action Run
Source Files on build 26319868546
  • Tree
  • List 72
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26319868546
  • 57595f23 on github
  • Prev Build on main (#26319376617)
  • Next Build on main (#26320165026)
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