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

Alan-Jowett / sonde / 26568593957
82%

Build:
DEFAULT BRANCH: main
Ran 28 May 2026 10:24AM UTC
Jobs 1
Files 130
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

28 May 2026 05:02AM UTC coverage: 82.278% (-0.3%) from 82.58%
26568593957

push

github

web-flow
Wire gateway ACTUAL_STATE emission and rotation engine in binary startup (GW-2003, GW-2004) (#1076)

* Wire gateway ACTUAL_STATE emission and rotation engine in binary startup (GW-2003, GW-2004)

Wire the gateway binary (in/gateway.rs) to call existing library
infrastructure for ACTUAL_STATE publication and DESIRED_STATE handling,
completing the binary-level plumbing for the escrow/rotation subsystem.

Binary startup additions (per gateway-design.md §23.11):

- Step 2a: Call RotationEngine::resume_pending_rotation() to recover
  from crash-interrupted rotations. If a pending rotation is found and
  completed, re-emit gateway ACTUAL_STATE with updated master_key_id
  and master_key_epoch.
- Steps 2c/2d: Initialize master_key_id, master_key_epoch via
  init_master_key_id() and otation_code via init_rotation_code().

Channel wiring:

- Create DESIRED_STATE channel and wire to
  ConnectorService::set_gateway_desired_state_tx() and
  RotationEngine::new().
- Create rotation gRPC channel and wire to
  AdminService::with_rotation_tx() and RotationEngine::new().
- Create otation_complete and state_changed notification channels
  for the re-emission task.
- Spawn RotationEngine::run() as a tokio task.

ACTUAL_STATE emission (§23.11 step 9a, §23.14):

- Emit initial gateway ACTUAL_STATE after connector starts, with all
  required fields: ntity_id, channel, master_key_id,
  master_key_epoch, x25519_public_key, ingerprint_words,
  missing_key_hints, salt, kdf_params, gateway_version,
  gateway_commit, otation_in_progress.
- Spawn re-emission task with three trigger sources:
  1. otation_complete_rx — immediate re-emission on rotation complete
  2. state_changed_rx — immediate re-emission on salt/KDF adoption
  3. missing_hints_notify — 60-second debounced re-emission when
     MissingKeyHintTracker accepts a new hint

Engine changes:

- Add missing_hints_notify: Arc<Notify> to Gateway struct.
- Add eport_missing_hint() helper that combines eport() +

oti... (continued)

224 of 436 new or added lines in 4 files covered. (51.38%)

8 existing lines in 2 files now uncovered.

39644 of 48183 relevant lines covered (82.28%)

236.85 hits per line

Uncovered Changes

Lines Coverage ∆ File
196
66.34
-5.97% crates/sonde-gateway/src/bin/gateway.rs
9
91.86
0.06% crates/sonde-gateway/src/rotation_engine.rs
5
81.77
0.31% crates/sonde-gateway/src/connector.rs
2
83.93
0.57% crates/sonde-gateway/src/engine.rs

Coverage Regressions

Lines Coverage ∆ File
7
81.5
-0.27% crates/sonde-azure-companion/src/main.rs
1
66.34
-5.97% crates/sonde-gateway/src/bin/gateway.rs
Jobs
ID Job ID Ran Files Coverage
1 26568593957.1 28 May 2026 10:24AM UTC 130
82.28
GitHub Action Run
Source Files on build 26568593957
  • Tree
  • List 130
  • Changed 5
  • Source Changed 4
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26568593957
  • 7f82ef8f on github
  • Prev Build on main (#26550860189)
  • Next Build on main (#26583936041)
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