Releases: zyoung11/nz
Releases · zyoung11/nz
Release list
0.3.1
nz v0.3.1
refactor:
- remove dead code: msgPing/msgPong/msgRouteReport chain (~180 lines)
- remove unused handlePong/handleRouteReport/handlePing/reconnectPeer/reportRoutes
- remove staleReported/peerRoutes fields and related logic
- remove unused routeP2P/routeRelay constants
- route reporting now handled by node reportRoutes via msgRouteReport
0.3.0
nz v0.3.0
feat:
- add Android mobile client (Flutter/Kotlin)
- add VPN service with TUN device
- add connecting/disconnecting UI states with loading animation
- add node list view on mobile
- add keepalive route reporting from nodes to server
- add SharedPreferences cross-process state sync
- add MODE_MULTI_PROCESS for VPN service communication
fix:
- fix VPN status detection (use SharedPreferences instead of interface check)
- fix disconnect message timing (wait 100ms before closing socket)
- fix server peer cleanup on disconnect (clear realAddr)
- fix route detection logic (node reports priority)
- fix node IP detection in ls command
refactor:
- simplify status to online/offline only
- remove Route column from CLI/web/mobile
- reduce keepalive interval from 20s to 5s
- reduce server timeout from 90s to 15s
- remove unused imports
doc:
- update README with Android support
- update README with simplified status
- update mobile README with new keepalive interval
- add mobile build instructions (arm64 only, ~19MB)
0.2.0
nz v0.2.0
feat:
- msgData carries source VPN IP
receivers identify peers by decrypted source IP and auto-correct NAT address drift - relay data carries source/target VPN IP
server corrects its state table on drift instead of source-address lookup - ls probing chain: node Pong reports stale P2P peers, server sends bidirectional PeerIntro to trigger reconnect, status shows reconnecting
- data path falls back to relay and re-probes when a connected peer has no replies for p2pStaleTimeout
- punching-state peers periodically re-issue requestPeerInfo to keep refreshing drifted addresses
- Windows install stops running instance, registers task, and starts it immediately (schtasks /Run), matching Linux restart behavior
- Windows uninstall deletes task and stops the running tray instance via named shutdown event
- ls table and web dashboard gain Route column showing p2p/relay between the local node and each peer
Pong now carries per-peer route modes - server infers route mode from relay activity: online pair with recent relay forwarding shows relay, otherwise p2p, filling gaps where nodes did not report
- local row is now fully blue (status cell included) in both ls table and web dashboard
fix:
- keepalive-triggered setConnected now fills sendKey/recvKey
- server PeerIntro direction was inverted (introduced the target to itself), now introduces the querying peer
- server keepalive ack now refreshes lastSeen of the server peer on nodes
- schtasks delete failure now surfaces as an error
- shutdown event uses SDDL (Everyone EVENT_MODIFY_STATE, Low integrity) so non-elevated CLI can signal elevated tray
- stopRunningInstance ends with taskkill cleanup to remove instances without event listener (old binaries)
- ls table alignment now uses display width (runewidth) instead of byte length for CJK/em-dash cells
- route placeholder changed from em-dash to ASCII hyphen to avoid double-width rendering in CJK fonts
- server row shows p2p by default since nodes always talk to server directly
- protocol version bumped to 0x02
chore:
- remove logToFile file logging from Windows tray
- gitignore adds mobile_nebula
0.1.8
nz v0.1.8
fix: rework keepalive to carry VPN IP; server updates node addr, restores dead peers, replies ack, re-registers after restart
fix: stop dropping PeerQuery for disconnected targets; re-probe peers 3x before declaring dead
fix: switch node socket to unconnected UDP so hole punching actually works (WriteToUDP was silently failing)
fix: send P2P data directly to peer instead of via server (real P2P path)
feat: add P2P keepalive with stale fallback to relay + re-probing
feat: add node auto-reconnect to server with DNS re-resolution
chore: gofmt peer.go and systray_windows.go
chore: remove nz.log file logging on Windows (restore original console-only logging)