145: Gateway bridge + internet connectivity + CLI commands#71
Merged
forkwright merged 1 commit intomainfrom Mar 24, 2026
Merged
145: Gateway bridge + internet connectivity + CLI commands#71forkwright merged 1 commit intomainfrom
forkwright merged 1 commit intomainfrom
Conversation
Wire PacketProcessor, discovery, and router into MeshCollector run loop. Add internet connectivity health checks and CLI dispatch for gateway status, node listing, topology, and message send commands. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Gate-Passed: kanon v0.1.0 (menos, 2026-03-24T09:53:43-05:00) Gate-Checks: audit,clippy,commitlint,doc,fmt,test
a385d93 to
ab55895
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
bridge.rs): multi-gateway selection by priority and health rank, automatic failover with 30s cooldown, Healthy → Degraded → Offline transitions at 5s/20% loss thresholdsmqtt.rs):decode_service_envelope,decode_map_report,decode_proxy_message; extractsNodeNumfrom!hexidgateway ID stringscollector.rs): full implementation wiring transport connect, config handshake, PacketProcessor (topology + GeoSignals), discovery manager, heartbeat, gateway health monitor, router outbound flush, and graceful CancellationToken shutdownmesh/mod.rs):akroasis mesh status,nodes,send,topologywith comfy-table formatting; live-data helpersbuild_status_table/build_nodes_tablefor daemon integrationdocs/akroasis-mesh.toml): annotated mesh section for~/.config/akroasis/config.tomlcovering serial, TCP, PSK, store-and-forward, topology, and gateway node settingsTest coverage
238 tests across kerykeion + akroasis:
bridge.rs: 11 tests (gateway selection, failover, health transitions, health monitor cancellation)mqtt.rs: 8 tests (ServiceEnvelope, MapReport, proxy message roundtrips, gateway ID parsing)collector.rs: 13 tests (probe, packet processing, hop count, router state, flush cancellation)mesh/mod.rs: 15 tests (node ID parsing, table formatting, dispatch, gateway health display)Validation
Observations
akroasis servedaemon mode remains a stub — full collector lifecycle (start/stop, config reload) will be wired when daemon is implementedrun_discoverydispatches traceroutes via the primary connection only; multi-connection traceroute fan-out is deferredformat_gateway_healthretains a wildcard arm for forward-compatibility with#[non_exhaustive]GatewayHealth additions570ef34and8a7d306before this branch; those PRs can be closed as stale🤖 Generated with Claude Code