Skip to content

v0.3.1

Choose a tag to compare

@steeb-k steeb-k released this 07 Jul 05:24
· 45 commits to main since this release

Nullgate v0.3.1

A stability release focused on connection reliability.

Fixed

  • Intermittent connection drops to remote peers. Two root causes in the engine:
    • The maintenance tick re-dialed every member — including unreachable ones — on every
      roster-sync and presence tick, minting permanent entries in iroh's unbounded mapped-address
      cache (iroh#4293). Daemon memory grew until
      the watchdog restarted it, dropping every connection at once. Re-seeding is now throttled to
      reachable members, while a membership change still re-seeds everyone immediately so
      additions/removals keep propagating within seconds.
    • A duplicate-connection race: when both peers dialed each other at once, the orphaned
      connection's close-watcher could evict the live connection — a spurious per-peer drop. Both
      ends now apply a deterministic tie-break and the close-watcher only evicts the entry that
      actually closed.
  • A freshly created (or rotated) network briefly rejected joiners with "this invite code is no
    longer valid," because the creator hadn't folded its own genesis entry into its in-memory roster
    yet. The roster is now refreshed immediately after creation/rotation.

Added

  • Mesh connection lifecycle logging in the daemon log — connections log when they're
    established, replaced by a duplicate, and closed (with the QUIC close reason), so intermittent
    drops are diagnosable from the default log.

Changed

  • Refreshed the app + tray icon artwork — a new circular "gate" mark across every platform.

Install: Windows MSI, Linux tarball (curl … | sh), macOS .app tarball, and an Android APK
(auto-updates via Obtainium). Desktop apps auto-update to this release.