Releases: itsDNNS/docsight
v2026-03-17.1 — Traceroute Burst Capture
New Features
Connection Monitor: Traceroute Burst Capture (#196)
- Event-triggered traceroute — automatically captures hop-level network path when outages or packet loss are detected (5-min cooldown per target)
- Manual traceroute — "Run Traceroute" button in the Connection Monitor detail view
- Trace history — clickable trace list with hop detail expansion showing per-hop IP, hostname, latency, and probe response count
- New C helper binary (
docsight-traceroute-helper) with setuid privilege dropping and per-hop stdout flushing for partial results on timeout - New API endpoints —
POST /api/connection-monitor/traceroute/<id>,GET /api/connection-monitor/traces/<id>,GET /api/connection-monitor/trace/<id> - Demo mode — realistic sample traces for Cloudflare and Google DNS targets
- i18n — all 4 languages (EN/DE/FR/ES)
UX Improvements
- Chart zoom persistence — zoom state survives the 10-second auto-refresh cycle
- Reset Zoom button — visible button appears when zoomed in, with hover tooltip ("Drag to zoom, double-click to reset")
- Dynamic Y-axis scaling — adapts to actual latency data instead of hardcoded 200ms ceiling (40ms floor for low-latency connections)
- No more scroll jumps — container height is pinned during chart refresh to prevent page jumping
Bugfixes
- Security: check
seteuid()return value in traceroute helper, drop privileges in--checkpath - Flaky test: mock
utc_nowin Smart Capture timeline test (was date-dependent) - i18n: correct German umlaut in
traceroute.running
Stats
- 23 files changed, +1956 lines
- 39 new tests (1769 total, all passing)
v2026-03-16.3 -- Community Module Installer & Official VFKD Thresholds
Community Module Installer
Browse and install community modules directly from Settings > Extensions, no manual file copying needed.
- Module browser in Settings > Extensions with one-click install/uninstall
- Generic module downloader with recursive GitHub directory download and SSRF protection
- Security: path traversal protection, manifest validation, ID conflict checks, installed modules disabled-by-default
- Registry: modules are fetched from the docsight-modules registry
First module in the registry: VFKD Community Thresholds (alternative signal threshold profile with more lenient values from vodafonekabelforum.de).
Official VFKD Thresholds
The default VFKD threshold profile is now based on the official Vodafone pNTP Interface Specification v1.06 instead of community forum values.
- DS power critical upper limits corrected to spec absolute maximum (16 dBmV)
- SNR critical values aligned with spec absolute minimums
- Added OFDM (DOCSIS 3.1) SNR thresholds
- Analyzer fallback thresholds fully aligned with all QAM levels (64QAM through 4096QAM)
Users who prefer the previous community-derived thresholds can install them via Settings > Extensions.
Smart Capture Sub-Settings (from v2026-03-16.2)
- Per-trigger sub-settings: direction filter, QAM threshold dropdown (all levels from 4096QAM to 8QAM with "at or below" semantics), error delta, health level, packet loss %
- Connection Monitor integration: packet loss events trigger Smart Capture
- Shared DOCSIS utility for QAM ranking
v2026-03-16.2 -- Smart Capture Sub-Settings & Connection Monitor
Smart Capture Sub-Settings
Fine-tune when each trigger fires with per-trigger configuration. Expanding on the Smart Capture engine from v2026-03-16.1.
What's new
- Per-trigger sub-settings that appear when a trigger is enabled:
- Modulation downgrade: Filter by direction (DS/US/Both) and minimum QAM level (full dropdown from 4096QAM down to 8QAM, "at or below" semantics)
- Error spike: Configurable minimum error delta (0 = any spike)
- Health change: Any degradation vs. critical only
- Packet loss warning: Minimum packet loss % threshold
- Connection Monitor integration -- Packet loss events from the Connection Monitor module now trigger Smart Capture. The 5th trigger source alongside modulation, SNR, error spike, and health change.
- Shared DOCSIS utility -- QAM ranking extracted to
app/docsis_utils.py. Modulation change events now includeprev_rankandcurrent_rankfields for downstream consumers.
Fixes
- fix: QAM threshold dropdown now includes all levels (4096QAM to 8QAM) with "at or below" semantics instead of "below" (community feedback from #234)
- fix: 512QAM was missing from threshold dropdown
Community
- Closed #234 (community feature request that started Smart Capture)
- Updated docsight-modules documentation with current API patterns, theme docs, and Smart Capture integration guide
v2026-03-16.1
Smart Capture
Automatically triggers speedtests when DOCSight detects signal degradation. Instead of manually running a speedtest after noticing a problem, Smart Capture fires one at the exact moment the issue occurs.
What's new
- Event-driven triggers -- Reacts to modulation downgrades, SNR drops, error spikes, and health state changes
- Configurable guardrails -- Global cooldown, per-trigger cooldown, max actions per hour, and flapping detection prevent excessive testing
- Execution history -- Every trigger decision is logged with status (pending, fired, completed, suppressed, expired) and reason
- Correlation integration -- Smart Capture entries appear in the correlation timeline alongside signal and speedtest data
- Settings panel -- Enable triggers, adjust guardrails, and review execution history from Settings > Smart Capture
Requires Speedtest Tracker integration. See the Smart Capture wiki page for setup and configuration.
Other changes
- fix: default theme to Classic instead of first alphabetical theme
- fix: include
utils.json settings page forescapeHtmlin Smart Capture history - fix: use
fromisoformat()for timestamp parsing to handle offsets and fractional seconds - fix: use
-infsentinel for guardrail timestamps to prevent false blocks in fresh containers
v2026-03-15.1 — Speedtest Diagnostics & Backup Reliability
Features
- Speedtest Tracker "Test Connection" button on settings page — shows actual errors (connection refused, 401 unauthorized, timeout) instead of silent failure (#238, #239)
Fixes
- Duplicate backups on container restart — backup schedule now survives restarts by seeding from the newest backup file on disk (#240)
v2026-03-14.2 — Theme Library & Export Fixes
Features
- 11 new curated themes — SynthWave, Matrix, Amber Terminal, GameBoy, Doom, Nord, Catppuccin Mocha, Dracula, Gruvbox, One Dark, Tokyo Night (#229)
- Channel frequency labels in Prometheus metrics (#228)
Fixes
- Data export crash when error counts are None
- Error metrics omitted for channels without error data
- Backup list not showing in settings — load backups for module panel, accept array API response, parse ISO timestamps (#233)
v2026-03-14.1 - Health Insights, Channel Timeline & Config Hardening
Features
- Health Insights panel on dashboard replaces static Active Issues with actionable, prioritized insights (#224)
- Channel Timeline UX with URL-persistent state, per-direction memory, compare mode, and distinct empty states (#221)
Fixes
- Backup module config coercion — safely cast string-backed
backup_interval_hoursandbackup_retentionto int; honor configured interval (#226) - Surfboard HTTP fallback — harden transport fallback for SB8200/S33/S34 connections (#184)
- MQTT TLS bool handling — handle bool config value for
mqtt_tls_insecure(#165)
Docs
- README rewrite — evidence-first conversion flow, grouped features/hardware, new hero screenshot (#225)
v2026-03-13.1 - Navigation Simplification & Settings UX
What's New
- UI: Simplified navigation and settings (#217, #220) - Mobile-first sidebar with collapsible Analysis group, unified Extensions panel with alphabetical toggle rows, collapsible per-event cooldowns, tablet breakpoint fix (768px -> 640px)
- Settings: Unsaved changes guard (#216) - Warns before module toggles and theme apply when form has unsaved changes
- i18n: German umlaut normalization (#212) - Fixed inconsistent umlauts in German UI copy
- Channel history fix (#211) - Fixed empty channel history for Vodafone Station and UltraHub7 caused by float-string channel IDs
v2026-03-12.3 - SB6190, Compare Presets & Correlation Fixes
What's New
Arris SB6190 Support
DOCSight now supports the Arris SB6190 modem. This adds HTTPS login handling, CGI-based authentication, and channel parsing for a modem model that previously was not supported.
All-Channel Compare Presets
The channel compare view now includes All Downstream and All Upstream presets, making it practical to compare entire DS or US groups without selecting channels one by one.
Correlation Timeline Fixes & Polish
Segment load overlays are visible again in the Correlation view after fixing the timestamp range mismatch. The chart is also cleaner by default: Poor Signal starts disabled, SNR and Download render line-only without area fills, and Segment DS now has its own color instead of sharing SNR purple.
Included Changes
v2026-03-12.2
What's New
Pin This Day (Connection Monitor)
You can now pin specific days in the Connection Monitor to preserve their raw-resolution samples permanently. Pinned days are excluded from automatic cleanup and aggregation, so you never lose granular evidence from important outage days.
- Pin button appears in the 24h view
- Pinned days show as clickable chips below the time range buttons
- Clicking a pinned day loads the full 24h at raw resolution
- Unpin anytime to allow normal cleanup
Modulation Health Index Fix
The downstream health index now scores each channel against its own observed baseline instead of the theoretical maximum QAM. Channels that consistently run at a lower QAM order (e.g. fixed 64QAM in mixed DOCSIS 3.0 segments) no longer drag down the health score. A channel is only flagged as degraded when it drops below its own baseline.
All Changes
- feat(connection-monitor): pinned days to preserve raw data (#204)
- fix(connection-monitor): pin button icon rendering
- fix(modulation): normalize DS health by channel baseline