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

Alan-Jowett / sonde / 26616743597
82%

Build:
DEFAULT BRANCH: main
Ran 29 May 2026 03:57AM UTC
Jobs 1
Files 124
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

29 May 2026 03:47AM UTC coverage: 82.154% (-0.03%) from 82.179%
26616743597

push

github

web-flow
feat(gateway): periodic ACTUAL_STATE heartbeat (GW-2003 AC-8) (#1094)

* feat(gateway): periodic ACTUAL_STATE heartbeat (GW-2003 AC-8)

Add a 900-second periodic heartbeat to the gateway ACTUAL_STATE
re-emission task. This closes a reconciliation gap where gateway
desired state written by the SPA (e.g. \otation_payload\, salt,
recovered PSKs) could sit undelivered in Azure Tables indefinitely
because nothing triggered the gateway to emit ACTUAL_STATE and the
handler only runs reactively.

The heartbeat uses \	okio::time::interval_at\ (no immediate first
tick) with \MissedTickBehavior::Delay\, runs independently of
event-driven emissions, and cancels any active missing-hint debounce
when it fires.

Specification changes:
- GW-2003 AC-8: periodic heartbeat requirement
- Design §23.14: trigger source #4 (\heartbeat_interval\)
- Validation T-2014: periodic heartbeat test case
- Traceability: GW-2003 → T-2014

Closes the gap identified in the master key rotation flow where the
SPA → Azure Table → handler → gateway DESIRED_STATE path had no
periodic trigger.

Related: #1092 (gateway convergence UI)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

* fix(gateway): reorder heartbeat arm before debounce in biased select

Move the heartbeat.tick() arm above the debounce-sleep arm in the
biased 	okio::select! so that when both futures are simultaneously
ready, the heartbeat fires first and cancels the pending debounce
(matching the design spec intent). This avoids a theoretical
duplicate emission in the astronomically rare simultaneous-ready case.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Alan Jowett <alan.jowett@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

0 of 15 new or added lines in 1 file covered. (0.0%)

1 existing line in 1 file now uncovered.

37920 of 46157 relevant lines covered (82.15%)

251.13 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
68.83
-0.4% crates/sonde-gateway/src/bin/gateway.rs

Coverage Regressions

Lines Coverage ∆ File
1
68.83
-0.4% crates/sonde-gateway/src/bin/gateway.rs
Jobs
ID Job ID Ran Files Coverage
1 26616743597.1 29 May 2026 03:57AM UTC 124
82.15
GitHub Action Run
Source Files on build 26616743597
  • Tree
  • List 124
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26616743597
  • 2ab01f76 on github
  • Prev Build on main (#26608068360)
  • Next Build on main (#26619330596)
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