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

prisma-risk / tsoracle / 26325326024
95%

Build:
DEFAULT BRANCH: main
Ran 23 May 2026 06:09AM UTC
Jobs 1
Files 73
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 06:04AM UTC coverage: 95.345% (+0.08%) from 95.266%
26325326024

push

github

web-flow
feat(driver-paxos): generic entry type + paxos-piggyback example (#191)

* feat(driver-paxos): generic entry type on PaxosHighWaterHost

The host trait now carries `type Entry: Entry<Snapshot: Send> + Send +
'static` and returns `Arc<Mutex<OmniPaxos<Self::Entry, Self::Storage>>>`.
The bundled `StandaloneHost` keeps `type Entry = HighWaterCommand`;
piggyback hosts that run OmniPaxos for their own state can now implement
the trait with a wider envelope (e.g. `MyAppCommand::{App,
HighWater(HighWaterCommand)}`) so TSO proposals ride the same log as the
host's existing commands.

Test impls (`StubHost`, `FollowerProxyHost`) gain the `type Entry`
declaration. `PaxosDriver` is unchanged — it never assumed
`HighWaterCommand` directly; the only generic call site is
`get_promise()` on the OmniPaxos handle, which is entry-agnostic.

Unblocks #175's paxos-piggyback example.

* feat(examples): paxos-piggyback — host-envelope demo on shared OmniPaxos log

Counterpart of examples/openraft-piggyback for tsoracle-driver-paxos. A
single-binary, in-process 3-node demonstration of the envelope pattern:
the host's OmniPaxos log carries `MyAppCommand::{Kv, HighWater(_)}`, and
the apply pump folds both halves into the host's state.

Highlights:
- `host_service.rs::MyAppCommand` envelope (Kv + HighWater) with
  `From<HighWaterCommand>` and `Snapshot<MyAppCommand>` that carries both
  halves.
- `host_service.rs::drain_decided_into` apply pump folding KV and
  HighWater variants into a shared `HostState`.
- `host_service.rs::PiggybackHost` impl of `PaxosHighWaterHost` with
  `type Entry = MyAppCommand` (only possible after the trait extension
  in the prior commit).
- `demo.rs` 3-node MemNetwork cluster, scripted: leader election →
  fence → KV writes → GetTs bursts → failover → invariant assertions.
- `tests/smoke.rs` asserts the freshness invariant
  (post_failover_high_water > pre, post_failover_ts > pre, host KV
  isolated from TSO field, steady-state GetTs does not advanc... (continued)

9566 of 10033 relevant lines covered (95.35%)

509681.77 hits per line

Jobs
ID Job ID Ran Files Coverage
1 26325326024.1 23 May 2026 06:09AM UTC 73
95.35
GitHub Action Run
Source Files on build 26325326024
  • Tree
  • List 73
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26325326024
  • b77fdc12 on github
  • Prev Build on main (#26325125144)
  • Next Build on main (#26338352012)
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