Commit Graph
100 Commits
Author SHA1 Message Date
Ian GulliverandClaude Opus 4.5 6ae561b968 Include config in status response and push on SIGHUP
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 08:30:23 -08:00
Ian GulliverandClaude Opus 4.5 85780b9419 Cap bubble width at 95% of node and fix mode-specific hover rules
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 23:02:51 -08:00
Ian GulliverandClaude Opus 4.5 ccd6956d6a Fix ARP incomplete entries and Art-Net broadcast reception
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 22:57:53 -08:00
Ian GulliverandClaude Opus 4.5 25f8f410c1 Preserve hover state during page updates with stable DOM structure
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:11:23 -08:00
Ian GulliverandClaude Opus 4.5 c90275d664 Improve Art-Net hover display with device correspondence
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 16:08:55 -08:00
Ian GulliverandClaude Opus 4.5 b2f7d44fe9 Sort hover popup lists for Art-Net, sACN, and Dante
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 15:54:46 -08:00
Ian GulliverandClaude Opus 4.5 17d7889d54 Add heartbeat timeout to detect server disconnection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:23:00 -08:00
Ian GulliverandClaude Opus 4.5 d173e8bac6 Add granular click-to-copy for popup values and refactor helpers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:19:28 -08:00
Ian GulliverandClaude Opus 4.5 5ec5e8e3e5 Fall back to IP or MAC in DisplayName when no names available
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:50:55 -08:00
Ian GulliverandClaude Opus 4.5 0baa208b99 Improve hover cards with wrapper pattern and consistent behavior
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 14:45:31 -08:00
Ian GulliverandClaude Opus 4.5 dbf449c447 Fix mode bubble overflow and adjust colors
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:59:47 -08:00
Ian GulliverandClaude Opus 4.5 35822122bd Use cyan for mode bubbles, fix error-info width constraint
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:47:45 -08:00
Ian GulliverandClaude Opus 4.5 3e2fa79325 Improve mode styling and fix bubble overflow
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:40:38 -08:00
Ian GulliverandClaude Opus 4.5 9bc44d4ee5 Add sACN tab showing universe consumers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:37:21 -08:00
Ian GulliverandClaude Opus 4.5 4c6da837e9 Improve hover popup styling consistency and formatting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:24:55 -08:00
Ian GulliverandClaude Opus 4.5 e43982df4e Unify hover bubble styling across network, Dante, and Art-Net modes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 13:05:46 -08:00
Ian GulliverandClaude Opus 4.5 0aa20ac6bf Add Art-Net layer showing device universe mappings
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:35:00 -08:00
Ian GulliverandClaude Opus 4.5 4746c2b7f1 Separate switch name display from external warning indicator
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:21:15 -08:00
Ian GulliverandClaude Opus 4.5 2af5ad51d7 Add link speed and utilization tracking to interface stats
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 12:16:44 -08:00
Ian GulliverandClaude Opus 4.5 3255c1cfe5 Add top padding to nodes for bubble clearance
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:58:15 -08:00
Ian GulliverandClaude Opus 4.5 608c9f1b30 Improve visual consistency of bubbles and nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:51:45 -08:00
Ian GulliverandClaude Opus 4.5 5666f85b01 Hide node hover popup on dimmed nodes in dante mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:18:06 -08:00
Ian GulliverandClaude Opus 4.5 7c978d28ac Add per-interface packet and byte rate statistics
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 11:16:32 -08:00
Ian GulliverandClaude Opus 4.5 353c1ad701 Add node hover popup with IPs and MACs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 10:53:35 -08:00
Ian GulliverandClaude Opus 4.5 8fc1d675f2 Fix switch uplink port direction and stats perspective
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:33:22 -08:00
Ian GulliverandClaude Opus 4.5 49f9a714e7 Add interface error counts to port bubble hover
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 09:26:14 -08:00
Ian GulliverandClaude Opus 4.5 04e22b03cb Track node reachability across all IPs, increase ping interval
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 21:03:15 -08:00
Ian GulliverandClaude Opus 4.5 5cd5db1e4a Add broadcast packet bucketing by protocol/port
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:16:53 -08:00
Ian GulliverandClaude Opus 4.5 c701d26f0e Require 3 consecutive ping failures before marking unreachable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 20:05:29 -08:00
Ian GulliverandClaude Opus 4.5 0b65998d07 Add link speed coloring to port bubbles
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:57:31 -08:00
Ian GulliverandClaude Opus 4.5 bbd938b924 Add broadcast packet tracking with rate monitoring
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:40:39 -08:00
Ian GulliverandClaude Opus 4.5 b2ec349c51 Track unreachable nodes separately for diagram highlighting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:05:13 -08:00
Ian GulliverandClaude Opus 4.5 1eef7319cc Suppress cleared unreachable errors until node becomes reachable
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 19:02:36 -08:00
Ian GulliverandClaude Opus 4.5 c8be46b739 Add per-node ping monitoring with unreachable error tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:56:12 -08:00
Ian GulliverandClaude Opus 4.5 a94f816f3d Add SSE endpoint for real-time status updates
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:49:39 -08:00
Ian GulliverandClaude Opus 4.5 a96eb7db8c Add port error tracking with UI display
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:43:23 -08:00
Ian GulliverandClaude Opus 4.5 93c3cbb585 Fix getLabel to fall back to IPs and MACs for unnamed nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:31:00 -08:00
Ian GulliverandClaude Opus 4.5 2bc6b1054b Add Dante overlay with TX/RX highlighting and channel info
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:22:22 -08:00
Ian GulliverandClaude Opus 4.5 d7bb971edd Fix switch-to-switch link detection by finding all valid last hops
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 18:01:43 -08:00
Ian GulliverandClaude Opus 4.5 b503c96252 Add switch uplink display with spanning tree topology
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:32:32 -08:00
Ian GulliverandClaude Opus 4.5 6e7600ae0c Add switch port labels to nodes with location-aware external detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:24:37 -08:00
Ian GulliverandClaude Opus 4.5 0e6db94b83 Replace Cytoscape with DOM-based grid layout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 17:16:21 -08:00
Ian Gulliver 19fabc71e4 Rotate mDNS query order to avoid repeated blocking 2026-01-25 11:53:32 -08:00
Ian Gulliver 1d6075d395 Add mDNS support for _netaudio-chan service with channel@device format 2026-01-25 11:52:28 -08:00
Ian Gulliver f9afd3abb6 Always enable HTTPS, require config.yaml 2026-01-25 11:33:15 -08:00
Ian Gulliver 2ab66520b6 Switch to HTTPS with auto-generated self-signed certificate 2026-01-25 11:31:00 -08:00
Ian Gulliver 81796dbdb6 Add mDNS SRV linkage for Dante devices and improve UI 2026-01-25 11:28:56 -08:00
Ian Gulliver 221ee2477b New pcap 2026-01-25 10:01:37 -08:00
Ian Gulliver 4c149ecdf7 Fix IP deduplication and filter link interfaces in JSON 2026-01-25 09:53:31 -08:00
Ian Gulliver 3a33ece7d9 Add SIGHUP handler to reload config file 2026-01-25 09:38:52 -08:00
Ian Gulliver 142143f8d4 Remove swap file and add swap patterns to gitignore 2026-01-25 09:34:33 -08:00
Ian GulliverandClaude Opus 4.5 67f4f23192 Filter out reverse DNS names from mDNS hostname extraction
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:30:55 -08:00
Ian GulliverandClaude Opus 4.5 cc3d84b97e Query DHCP binding table from Netgear switches via SNMP
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 23:11:55 -08:00
Ian Gulliver 1f2b2c2156 Updated config for realistic layout 2026-01-24 22:52:31 -08:00
Ian GulliverandClaude Opus 4.5 6801cb7f68 Add mDNS service queries for SMB, AirPlay, QLab, Blackmagic, and HyperDeck
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 22:43:20 -08:00
Ian GulliverandClaude Opus 4.5 6492456ce0 Add alternating layout direction by nesting depth
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 21:24:05 -08:00
Ian Gulliver 4123b49a98 Add broadcast pinging and fix node merging by shared IP 2026-01-24 20:02:43 -08:00
Ian GulliverandClaude Opus 4.5 f72f716349 Center top-level location boxes on same vertical axis
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:37:32 -08:00
Ian GulliverandClaude Opus 4.5 01f14cc3f7 Reorder top-level location boxes after ELK layout
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:33:56 -08:00
Ian GulliverandClaude Opus 4.5 a6ce2e4696 Convert config from maps to lists for ordering
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 16:00:26 -08:00
Ian Gulliver 997868949a Switch to ELK layout engine for proper compound node support 2026-01-24 15:37:04 -08:00
Ian Gulliver 8b50762c92 Add location grouping with cola layout 2026-01-24 15:04:42 -08:00
Ian Gulliver c662ff80f4 Fix gitignore and remove log file 2026-01-24 14:51:54 -08:00
Ian Gulliver d6f3debd73 Fix duplicate node creation from pre-joined DisplayName 2026-01-24 14:50:19 -08:00
Ian Gulliver 77e523a302 Position edge labels near their respective nodes 2026-01-24 14:44:23 -08:00
Ian Gulliver 8acda6902d Remove log file and add to gitignore 2026-01-24 14:41:06 -08:00
Ian Gulliver c687ace65c Fix node overlap in network diagram layout 2026-01-24 14:40:07 -08:00
Ian Gulliver fdd60a39e1 Replace mermaid.js with cytoscape.js for network diagram 2026-01-24 14:26:38 -08:00
Ian Gulliver 7c0d4ad05a Fix switch-to-switch link detection for downstream nodes 2026-01-24 11:48:24 -08:00
Ian GulliverandClaude Opus 4.5 bf787209a5 Add web UI with mermaid.js network diagram
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 11:22:35 -08:00
Ian Gulliver 9aebe8b83d Add HTTP API with JSON status endpoint and typeid support 2026-01-24 11:03:34 -08:00
Ian GulliverandClaude Opus 4.5 168cdedbcb Add flow status parsing and DOWN indicator for inactive dante flows
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 10:28:10 -08:00
Ian GulliverandClaude Opus 4.5 894e355f56 split nodes.go into focused files and refactor Update function
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:31:57 -08:00
Ian GulliverandClaude Opus 4.5 f02b25ca29 fix goroutine leak and reduce code duplication
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:28:58 -08:00
Ian GulliverandClaude Opus 4.5 7e8ec697ae refactor codebase and fix bugs
- merge dante.go and dante_control.go into single dante.go
- consolidate buildDantePacket and buildDantePacket28 into one function
- fix broken comparison logic in SetDanteClockMaster
- split ARP parsing into platform-specific files with build tags
- implement Linux ARP table parsing via /proc/net/arp
- run gofmt on all files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:21:51 -08:00
Ian GulliverandClaude Opus 4.5 f4b2351de8 add 0x0006 dante channel type and default 0x3000 subscriptions to audio
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:16:09 -08:00
Ian GulliverandClaude Opus 4.5 604123559b remove mdns dante node discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:05:04 -08:00
Ian GulliverandClaude Opus 4.5 92040c832b fix 0x141a record parsing and add dante channel type detection
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:01:35 -08:00
Ian GulliverandClaude Opus 4.5 111cb51fdb update node references in flows and memberships when nodes are merged
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:24:18 -08:00
Ian GulliverandClaude Opus 4.5 528f58dca1 add yamaha speaker discovery via tcp:50000 and move pollNode to tendrils.go
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:21:35 -08:00
Ian GulliverandClaude Opus 4.5 a374b34b18 improve link display formatting and sorting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:15:18 -08:00
Ian GulliverandClaude Opus 4.5 0e8dfc46b1 refactor dante flows and artnet to use node references instead of names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 22:09:44 -08:00
Ian Gulliver 5c4729333a handle loopback subscriptions where device name is . 2026-01-23 21:51:59 -08:00
Ian Gulliver 694a51eade fix 0x3400 parsing to use offset-based string references 2026-01-23 21:49:12 -08:00
Ian GulliverandClaude Opus 4.5 71aa3bfc3e add 0x3400 fallback for dante unicast subscription discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 17:32:29 -08:00
Ian Gulliver fdb8740a0a add 0x3400 command fallback for dante subscription discovery 2026-01-23 16:35:41 -08:00
Ian Gulliver c16146f2d8 fix dante flow count and zero-pad rx channel numbers 2026-01-23 16:30:53 -08:00
Ian Gulliver c694efade5 fix dante discovery bugs: filter .in-addr names, dedupe multicast flows, fix unicast channel numbers 2026-01-23 16:28:41 -08:00
Ian GulliverandClaude Opus 4.5 66f98075e4 fix multicast flow tx device identification via igmp correlation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 16:12:36 -08:00
Ian Gulliver 3222e20e84 track multiple names per node 2026-01-23 13:11:38 -08:00
Ian GulliverandClaude Opus 4.5 29a0c80fea remove dante channel extraction from mdns discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 13:00:06 -08:00
Ian GulliverandClaude Opus 4.5 84876dd595 improve dante flow display format and remove meaningless multicast channel info
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 12:00:27 -08:00
Ian GulliverandClaude Opus 4.5 9c7bd671ba add multicast flow transmitter discovery via mdns _netaudio-chan service
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:53:30 -08:00
Ian GulliverandClaude Opus 4.5 47b48337b3 add dante subscription discovery via arc protocol
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:30:40 -08:00
Ian GulliverandClaude Opus 4.5 a157a2a5e4 add well-known multicast address names for shure, ssdp, slp, ptp
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:52:18 -08:00
Ian GulliverandClaude Opus 4.5 c7db24b1fd add shure slp discovery and comma-separate group member lists
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:47:51 -08:00
Ian GulliverandClaude Opus 4.5 6394b55191 send mdns queries from listener socket for multicast responses
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:27:45 -08:00
Ian GulliverandClaude Opus 4.5 f3b85fc8f2 add skaarhoj device discovery and remove unused dante query
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:12:09 -08:00
Ian GulliverandClaude Opus 4.5 e73c591e34 add hyperdeck and videohub discovery via tcp probing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 08:58:41 -08:00
Ian GulliverandClaude Opus 4.5 26f0aac587 implement full atem handshake to get product names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 07:20:09 -08:00