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

enbility / ship-go
93%

Build:
DEFAULT BRANCH: dev
Repo Added 14 Jan 2024 07:40PM UTC
Files 45
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

LAST BUILD ON BRANCH dev
branch: dev
CHANGE BRANCH
x
Reset
  • dev
  • auto_accept_stalls_ship
  • bug/attempt_reconnect_when_device_reappears
  • bug/autoAcceptAnnouncement
  • bug/avahi_dead_lock
  • bugfix/race-condition
  • feat/dynamicMdnsInterfaceManagement
  • feat/hub-bound-port
  • feature/action-update
  • feature/analysis-docs
  • feature/bugfixes
  • feature/hub-improvements
  • feature/json-parsing-improvements
  • feature/maintenance
  • feature/mdns-restart-improvements
  • feature/register-improvements
  • feature/shippairing-2
  • feature/tls-improvements
  • fix/double-connection-outgoing-dedup
  • fix/hub-connection-bugs
  • fix/hub_connections_test
  • fix/pairing-issues-and-trust-dupes
  • fix/pairing-reactivate-listener-on-addCu-removal
  • fix/remove-unused-announcement-cancel-ctx
  • fix/spine-write-error-teardown
  • fix/trusted-reconnect-mdns-drop
  • fix_issue_49
  • main
  • safer-connection-attempt-running-handling
  • update-to-zeroconf-v3

06 Jul 2026 01:40PM UTC coverage: 92.972% (-0.01%) from 92.985%
28795888195

push

github

web-flow
hub: prevent concurrent duplicate outgoing connections to the same SKI (#85)

`connectFoundService` only dedupes outgoing dials via `isSkiConnected`,
which becomes true after `registerConnection` (i.e. after the websocket
dial + SHIP handshake). Two concurrent outgoing dials to the same SKI
can both pass that check, both establish, and then `keepThisConnection`
tears one down mid-discovery. Some remotes then stop answering
measurement reads on the surviving connection until the whole service is
restarted.

Reserve the SKI for the duration of the dial via a new
`connectionsInitiating` set (guarded by `muxCon`), so a concurrent
outgoing dial returns early instead of racing to a second handshake. The
incoming-vs-outgoing case is still handled by `keepThisConnection`.

This is a real-live issue observed as a stalled EEBus meter on a
Vaillant heatpump in evcc-io/evcc#30889. PR is done by Claude but lgtm.

20 of 20 new or added lines in 2 files covered. (100.0%)

4 existing lines in 2 files now uncovered.

5821 of 6261 relevant lines covered (92.97%)

11672.24 hits per line

Relevant lines Covered
Build:
Build:
6261 RELEVANT LINES 5821 COVERED LINES
11672.24 HITS PER LINE
Source Files on dev
  • Tree
  • List 45
  • Changed 4
  • Source Changed 2
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28795888195 dev hub: prevent concurrent duplicate outgoing connections to the same SKI (#85) `connectFoundService` only dedupes outgoing dials via `isSkiConnected`, which becomes true after `registerConnection` (i.e. after the websocket dial + SHIP handshake). T... push 06 Jul 2026 01:43PM UTC web-flow github
92.97
28788123488 dev ship: tear down connection on a failed spine data write (#86) Fix https://github.com/evcc-io/evcc/issues/31465 Found while chasing an intermittent double-connection related test hang in evcc (evcc-io/evcc#31493) that reproduces on top of #85's d... push 06 Jul 2026 11:29AM UTC web-flow github
92.99
26030742651 dev Fix pairing issues and trust duplications (#82) Fixes pairing-flow correctness issues and eliminates duplicate ServiceDetails entries that were causing already-registered devices to be rejected. ## Hub — duplicate service entries - Introduce me... push 18 May 2026 11:33AM UTC web-flow github
92.95
25171174759 dev Fix calls to ServiceFor* in hub_connections_unit_test (#81) push 30 Apr 2026 02:34PM UTC web-flow github
93.11
24991636226 dev SHIP Pairing Implementation and API redesign (#66) Implements SHIP Pairing Service specification including automatic device pairing, HMAC-based authentication, and Device Replacement Timing Logic for AddCu devices. BREAKING CHANGE: ServiceIdenti... push 27 Apr 2026 11:14AM UTC web-flow github
93.04
24657161027 dev Hub.SetAutoAccept stalls SHIP stack (#76) Hello, this pull request tries to solve issue #75 . Please have a look and tell me what you think. Thank you very much. push 20 Apr 2026 08:48AM UTC web-flow github
94.71
24188525287 dev Disable TLS session resumption to prevent trust bypass (#71) (#72) Resumed TLS sessions skip VerifyPeerCertificate, allowing a device whose trust was removed to re-establish a TLS connection via a cached session ticket. Disable session tickets on... push 09 Apr 2026 11:50AM UTC web-flow github
94.81
24188290012 dev feat: add dynamic mDNS interface management with runtime monitoring (#61) ## Summary Implements dynamic mDNS interface management that gracefully handles network interface availability changes at runtime. Fixes #62 **Note**: While the primary f... push 09 Apr 2026 11:44AM UTC web-flow github
94.78
23893306287 dev Fix Hub lifecycle bugs: double-start guard and restart panic (#70) - Add duplicate-start guard in Hub.Start() returning ErrHubAlreadyStarted - Reset lifecycle state (hasStarted, serverStarted, serverStartErr) in Shutdown() - Capture serverStarted... push 02 Apr 2026 09:18AM UTC web-flow github
95.06
23892701812 dev [mDNS] Fix handling of mdns service shutdown and restart (#69) When using the zeroconf provider, after stopping and restarting the service (calling Start/Shutdown/Start on the same MdnsManager), mDNS announcements would become invisible to other ... push 02 Apr 2026 09:03AM UTC web-flow github
95.1
See All Builds (240)
  • Repo on GitHub
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