Release 2026.6.4: Interactive Column Sorting, Live Countdowns, & Concurrency / Proxy ARP Fixes 🚀🕸️⏱️
Welcome to Release 2026.6.4 of the Switch Dashboard! This release introduces critical scanner optimizations, interactive column sorting, real-time sync countdown timers across all dynamic pages, and highly requested concurrency options for network discovery.
🌟 What's New in v2026.6.4
1. 🔀 Interactive Column Sorting (Subnet Scanner)
- Multi-Type Sorting: Added interactive sorting (ascending/descending) on all scanner columns.
- IP Addresses: Scans are sorted numerically by octets.
- Status: Sorted alphabetically (
ONLINE/OFFLINE). - Dates & Times: Sorted chronologically (
First Seen,Last Seen Online,Last Updated). - Alphanumeric: Natural sort order (case-insensitive) for Hostnames, MACs, Vendors, and Notes.
- Visual Indicators: Clickable headers render arrow indicators (
▲/▼) next to the active sorting column. - Drag Protection: Header clicks are ignored if the user is currently resizing columns.
2. 🛡️ Proxy ARP / VPN IP Overwrite Protection & Deletion Reset
- Proxy ARP Override Guard: Prevents multi-IP MAC addresses (such as Fritz!Box gateways responding for local virtual WireGuard VPN tunnels) from overwriting the primary IP address (like
.1for the router). - Ascending Scan Priority: Scanned host IPs are ordered numerically before insertion, guaranteeing that lower/primary IPs are processed first.
- Clean Deletion Reset: Deleting a client host sets
scanner_detected = False. Upon the next network scan, the scanner performs a fresh resolution to the primary gateway IP, ignoring subsequent VPN alias responses (like.200or.201) as long as the primary IP is reachable.
3. ⚙️ Discovery Concurrency & Timeout Customization
- Parallel Host and Port Scanning: Implemented a multi-threaded host scanner pool (
scanner_host_scan_threads) using aThreadPoolExecutorto scan multiple hosts concurrently. Ports are also scanned concurrently per-host (scanner_port_scan_threads). - Configurable Timeout (ms): Added a custom millisecond timeout setting (
scanner_port_scan_timeout_ms, default500ms) for TCP port checks, allowing fast port scans. - Web UI Controls: Added Host/Port Concurrency and Timeout parameters directly to the settings page
/config.
4. ⏱️ Live Auto-Refresh Countdowns & Smart Pausing
- Seconds Countdown: Replaced static status labels with active 1-second interval countdown timers (e.g.
Live (update in 25s)) on the Dashboard, Network Scanner, and Network Map. - Smart Pausing:
- Dashboard/Scanner: Polling and countdowns pause and show
Pausedwhile editing note/nickname input cells to prevent updates from overwriting user typing. - Network Map: Displays a header status dot and countdown. The countdown pauses automatically if the user focuses on sidebar search or inspect detail input/selectors.
- Dashboard/Scanner: Polling and countdowns pause and show
- Strict Syncing: Routed all AJAX fetches directly through the 1-second countdown clock, ensuring perfect alignment.
5. 🎨 Styling Alignment & API Overhaul
- Dark Mode Scrollbars: Integrated custom dark scrollbars and native dark browser settings (
color-scheme: dark) in/scanner/historyto match dashboard styles. - API Reference Overhaul: Documented all missing endpoints (Scanner, Clients, System Logs, and Topology) in the interactive
/api-docsinterface.
💾 Installation & Upgrading
Using the Automated Installer (Debian/Ubuntu/RHEL)
To pull the latest release and run the auto-installer:
cd switch-dashboard
git pull
sudo bash install.shUsing Docker Compose
Simply pull the updated image and recreate the containers:
docker compose pull
docker compose up -d --force-recreate🛠️ Detailed Changelog
- [app.py]: Bumped
VERSIONto"2026.6.4". - [app.py]: Implemented
ThreadPoolExecutorfor parallel host scans inupdate_scanner_state_in_config. - [app.py]: Updated
/configPOST and GET handlers to support host/port concurrency and millisecond timeout settings. - [app.py]: Added numeric IP sorting and was-detected override protection checks during scanning.
- [templates/config.html]: Added "Host Scan Concurrency", "Port Scan Concurrency", and "Port Scan Timeout" input fields.
- [templates/index.html]: Replaced
setIntervalwith a 1-second countdown loop (startCountdown()) and integrated pause/resume triggers. - [templates/scanner.html]: Implemented header sorting event listeners, arrow indicators, and a 1-second countdown loop with dynamic intervals.
- [templates/map.html]: Added a status pill and countdown in the header, pausing automatically when details sidebar fields are focused.
- [templates/scanner_history.html]: Styled tables and scrollbars to match the premium dark theme.
- [templates/api_docs.html]: Added detailed route cards for all 21 REST API endpoints.
- [README.md]: Added Release 2026.6.4 entry to the Changelog section.