Commit Graph

224 Commits

Author SHA1 Message Date
Ian Gulliver
cd5f018e0c Fix wrong-switch detection for nodes in locations with APs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 11:55:07 -08:00
Ian Gulliver
48e1e69fde Add IsSelf flag to identify tendrils server node
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 11:42:07 -08:00
Ian Gulliver
aee1487f22 Add MCP server for network discovery tools
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 11:30:23 -08:00
Ian Gulliver
93e5ff90c1 Add pointer cursor to clickable hovercards
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:44:37 -08:00
Ian Gulliver
cbaf5b0298 Merge branch 'main' of github.com:gopatchy/tendrils 2026-02-04 10:09:46 -08:00
Ian Gulliver
c405f818a6 Merge branch 'main' of github.com:gopatchy/tendrils 2026-02-04 10:08:05 -08:00
Ian Gulliver
622281a6f6 showpi1 mac 2026-02-04 10:08:02 -08:00
Ian Gulliver
870d584129 Update artnet dependency 2026-02-04 10:07:58 -08:00
Ian Gulliver
eedc4cd1d7 Add flow validity icons to artmap mappings in flow view 2026-02-04 09:33:52 -08:00
Ian Gulliver
08e8a523d0 Display Art-Net universes as x:y:z (n) format consistently 2026-02-04 09:27:46 -08:00
Ian Gulliver
8769afd17d showpi3 2026-02-02 22:22:44 -08:00
Ian Gulliver
ced0a6e599 Fix AP location and table root consistency
- Only include APs in getSwitchesInLocation for AP sub-locations
- Update table.js to include APs in switch graph like render.js

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 22:17:50 -08:00
Ian Gulliver
92ab5d8a6e Add TP-Link AP support with wireless client sub-locations
- Add NodeType enum (switch, ap, wireless_client, wired_client)
- Poll SNMPv2c and SNMPv3 in parallel to win race with ping
- Render APs with bordered sub-locations containing wireless clients
- Fall back to parent interface stats when child lacks them
- Log when unreachable nodes become reachable via merge

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 20:33:42 -08:00
Ian Gulliver
bd829eb888 Style remove button to match port label bubble
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:42:26 -08:00
Ian Gulliver
c264969016 Fix error panel buttons to display side by side
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:33:42 -08:00
Ian Gulliver
eff2635725 Add remove button for unreachable nodes not in config
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:18:06 -08:00
Ian Gulliver
d4e7a8a9b7 Move interface counter state from global map to Interface struct 2026-02-02 10:16:37 -08:00
Ian Gulliver
2a8e376cbf Add error LastSeen tracking, port uptime and last error to table/hovercards 2026-02-02 09:59:03 -08:00
Ian Gulliver
e9cbeebe55 Add grouped headers with utilization/Kp columns and sticky scroll to network table
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:49:29 -08:00
Ian Gulliver
7b96f62f31 Add utilization percentage to hovercards with compact units
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:09:41 -08:00
Ian Gulliver
451196f162 Filter out insane utilization from counter resets and log new utilization errors
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 17:05:06 -08:00
Ian Gulliver
85179bf581 Fix error panel display for port_flap and port_down types
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 14:20:22 -08:00
Ian Gulliver
32da723b2c Clear MAC table on each SNMP poll and reduce ping threshold
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:20:20 -08:00
Ian Gulliver
5a7596b456 Add port flap and port down error tracking with faster ping
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 13:01:07 -08:00
Ian Gulliver
d1b4de01e8 Add shared_names config and port uptime tracking
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 12:06:59 -08:00
Ian Gulliver
df0c999284 Log new port errors unconditionally
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 11:39:11 -08:00
Ian Gulliver
d14de5950e Remove ArtNet RDM/TOD discovery support
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:57:11 -08:00
Ian Gulliver
61e3c905b0 Use artmap sender IPs for ArtNet flow association
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:51:18 -08:00
Ian Gulliver
280e786b73 Mark config-only nodes as unreachable when they have no IPs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 10:03:38 -08:00
Ian Gulliver
bb22e16460 Add structured node config with names/macs/ips and avoid flag
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 09:52:51 -08:00
Ian Gulliver
3b8005a28c Add ArtRDM TOD discovery for real ArtNet nodes
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 07:48:02 -08:00
Ian Gulliver
09e52accdb Fix hover bubbles blocking each other with pointer-events
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 07:40:12 -08:00
Ian Gulliver
5c4266f89c Include multicast and broadcast packets in interface pps stats
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 07:35:49 -08:00
Ian Gulliver
f97bf04eef UI improvements: flow names, table tooltips, artmap mappings, sorting
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 23:27:45 -08:00
Ian Gulliver
587049616b Store and display artmap mappings on nodes in flow view 2026-01-30 22:59:58 -08:00
Ian Gulliver
d63b8192d2 Rename API endpoints to /tendrils/api/*, detect SSE via Accept header
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:31:58 -08:00
Ian Gulliver
98c7fc75b7 Add no-cache headers to static files, fix flow view multi-line names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:26:02 -08:00
Ian Gulliver
2c27ce7ff5 Use first name only in protocol hover cards
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:19:22 -08:00
Ian Gulliver
a0e71d2347 Process artmap senders as flow sources
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 22:11:43 -08:00
Ian Gulliver
e7cfe49798 Update sacn and multicast dependencies
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:47:16 -08:00
Ian Gulliver
1b2646a496 Make artmap debug logging conditional on DebugArtmap flag
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:45:11 -08:00
Ian Gulliver
1618ef1b87 Add artmap polling to discover sACN unicast receivers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 13:03:35 -08:00
Ian Gulliver
e3aa25d85f Extract CSS and JS from index.html into separate ES modules 2026-01-30 11:38:09 -08:00
Ian Gulliver
052d3b89dd Fix click targets for flow links in hover cards
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:04:37 -08:00
Ian Gulliver
068d3be46f Add flow view for visualizing network paths between protocol endpoints
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 11:00:07 -08:00
Ian Gulliver
71e9337bdb Omit empty ips arrays from interface JSON
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:09:17 -08:00
Ian Gulliver
9a39802de9 Update client for node ID references in links and dante peers
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:39:38 -08:00
Ian Gulliver
ef01aaa5c9 Reduce API response size by using node ID references
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:35:42 -08:00
Ian Gulliver
d970d1db86 Use artnet library for per-interface discovery
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:14:04 -08:00
Ian Gulliver
d40102941b Update dependencies
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:00:45 -08:00