Skip to content

Release 2026.6.4

Latest

Choose a tag to compare

@byte4geek byte4geek released this 12 Jun 12:22
· 7 commits to main since this release

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 .1 for 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 .200 or .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 a ThreadPoolExecutor to 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, default 500 ms) 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 Paused while 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.
  • 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/history to match dashboard styles.
  • API Reference Overhaul: Documented all missing endpoints (Scanner, Clients, System Logs, and Topology) in the interactive /api-docs interface.

💾 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.sh

Using 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 VERSION to "2026.6.4".
  • [app.py]: Implemented ThreadPoolExecutor for parallel host scans in update_scanner_state_in_config.
  • [app.py]: Updated /config POST 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 setInterval with 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.