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

Alan-Jowett / sonde / 26109586055
82%

Build:
DEFAULT BRANCH: main
Ran 19 May 2026 04:22PM UTC
Jobs 1
Files 129
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

19 May 2026 04:07PM UTC coverage: 82.921% (-0.07%) from 82.986%
26109586055

push

github

web-flow
fix: reconcile `current_program_hash` on WAKE when PROGRAM_ACK was lost (#966)

* fix: reconcile current_program_hash on WAKE when PROGRAM_ACK was lost (#961)

When a node completes a chunked program transfer but the PROGRAM_ACK is
lost over the radio, the gateway's stored current_program_hash becomes
permanently stale. The node reports the correct hash in subsequent WAKE
messages, but the gateway never updates the stored value. This breaks
decoder enrichment because the APP_DATA handler looks up the decoder
image using the stale current_program_hash.

Add a narrow econcile_current_program_hash storage method that
atomically sets current_program_hash only when ssigned_program_hash
still matches the WAKE-reported hash. This avoids full-record upsert
which could clobber concurrent reassignments or firmware metadata.

The reconciliation runs in the WAKE handler after command selection:
if the node's WAKE-reported hash equals the assigned hash but differs
from the stored current hash, the gateway treats the WAKE as implicit
proof that the node installed the program and updates the record.

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

* address review: fix doc, SQLite NotFound consistency, log clarity, lazy hex

- Update doc comment for reconcile_current_program_hash to cover all
  Ok(false) cases (assigned mismatch or already reconciled)
- Mirror update_node_wake_metadata pattern in SQLite impl: return
  StorageError::NotFound when node_id does not exist
- Adjust Ok(false) debug log to reflect ambiguity (concurrent
  reassignment or already reconciled)
- Move hex encoding outside tracing macro to avoid eager allocation

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

---------

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

14 of 44 new or added lines in 3 files covered. (31.82%)

7 existing lines in 1 file now uncovered.

37710 of 45477 relevant lines covered (82.92%)

249.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
26
84.05
-0.93% crates/sonde-gateway/src/sqlite_storage.rs
3
84.75
-0.07% crates/sonde-gateway/src/engine.rs
1
74.45
-0.17% crates/sonde-gateway/src/storage.rs

Coverage Regressions

Lines Coverage ∆ File
7
81.12
-0.28% crates/sonde-azure-companion/src/main.rs
Jobs
ID Job ID Ran Files Coverage
1 26109586055.1 19 May 2026 04:22PM UTC 129
82.92
GitHub Action Run
Source Files on build 26109586055
  • Tree
  • List 129
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26109586055
  • 15363bf6 on github
  • Prev Build on main (#26077670975)
  • Next Build on main (#26115014987)
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