mirror of
https://github.com/smittix/intercept.git
synced 2026-04-24 22:59:59 -07:00
Add start.sh as the recommended production entry point with: - gunicorn + gevent worker for concurrent SSE/WebSocket handling - CLI flags for port, host, debug, HTTPS, and dependency checks - Auto-fallback to Flask dev server if gunicorn not installed - Conditional gevent monkey-patch in app.py via INTERCEPT_USE_GEVENT env var - Docker CMD updated to use start.sh - Updated all docs, setup.sh, and requirements.txt accordingly Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 KiB
24 KiB
Changelog
All notable changes to iNTERCEPT will be documented in this file.
[2.23.0] - 2026-02-27
Added
- Radiosonde Weather Balloon Tracking - 400-406 MHz reception via radiosonde_auto_rx with telemetry, map, and station distance tracking
- CW/Morse Code Decoder - Custom Goertzel tone detection with OOK/AM envelope detection mode for ISM bands
- WeFax (Weather Fax) Decoder - HF weather fax reception with auto-scheduler, broadcast timeline, and image gallery
- System Health Monitoring - Telemetry dashboard with process monitoring and system metrics
- HTTPS Support - TLS via
INTERCEPT_HTTPSconfiguration - ADS-B Voice Alerts - Text-to-speech notifications for military and emergency aircraft detections
- HackRF TSCM RF Scan - HackRF support added to TSCM counter-surveillance RF sweep
- Multi-SDR WeFax - Multiple SDR hardware support for WeFax decoder
- Tool Path Overrides -
INTERCEPT_*_PATHenvironment variables for custom tool locations - Homebrew Tool Detection - Native path detection for Apple Silicon Homebrew installations
- Production Server -
start.shwith gunicorn + gevent for concurrent SSE/WebSocket handling — eliminates multi-client page load delays
Changed
- Morse decoder rebuilt with custom Goertzel decoder, replacing multimon-ng dependency
- GPS mode upgraded to textured 3D globe visualization
- Destroy lifecycle added to all mode modules to prevent resource leaks
- Docker container now uses gunicorn + gevent by default via
start.sh
Fixed
- ADS-B device release leak and startup performance regression
- ADS-B probe incorrectly treating "No devices found" as success
- USB claim race condition after SDR probe
- SDR device registry collision when multiple SDR types present
- APRS 15-minute startup delay caused by pipe buffering
- APRS map centering at [0,0] when GPS unavailable
- DSC decoder ITU-R M.493 compliance issues
- Weather satellite 0dB SNR — increased sample rate for Meteor LRPT
- SSE fanout backlog causing delayed updates across all modes
- SSE reconnect packet loss during client reconnection
- Waterfall monitor tuning race conditions
- Mode FOUC (flash of unstyled content) on initial navigation
- Various Morse decoder stability and lifecycle fixes
[2.22.3] - 2026-02-23
Fixed
- Waterfall control panel rendered as unstyled text for up to 20 seconds on first visit — CSS is now loaded eagerly with the rest of the page assets
- WebSDR globe failed to render on first page load — initialization now waits for a layout frame before mounting the WebGL renderer, ensuring the container has non-zero dimensions
- Waterfall monitor audio took minutes to start —
_waitForPlaybacknow only reports success on actual audio playback (playing/timeupdate), not from the WAV header alone (loadeddata/canplay) - Waterfall monitor could not be stopped —
stopMonitor()now pauses audio and updates the UI immediately instead of waiting for the backend stop request (which blocked for 1+ seconds during SDR process cleanup) - Stopping the waterfall no longer shows a stale "WebSocket closed before ready" message — the
onclosehandler now detects intentional closes
[2.22.1] - 2026-02-23
Fixed
- PWA install prompt not appearing — manifest now includes required PNG icons (192×192, 512×512)
- Apple touch icon updated to PNG for iOS Safari compatibility
- Service worker cache bumped to bust stale cached assets
[2.22.0] - 2026-02-23
Added
- Waterfall Receiver Overhaul - WebSocket-based I/Q streaming with server-side FFT, click-to-tune, zoom controls, and auto-scaling
- Voice Alerts - Configurable text-to-speech event notifications across modes
- Signal Fingerprinting - RF device identification and pattern analysis mode
- SignalID - Automatic signal classification via SigIDWiki API integration
- PWA Support - Installable web app with service worker caching and manifest
- Real-time Signal Scope - Live signal visualization for pager, sensor, and SSTV modes
- ADS-B MSG2 Surface Parsing - Ground vehicle movement tracking from MSG2 frames
- Cheat Sheets - Quick reference overlays for keyboard shortcuts and mode controls
- App icon (SVG) for PWA and browser tab
Changed
- WebSDR overhaul - Improved receiver management, audio streaming, and UI
- Mode stop responsiveness - Faster timeout handling and improved WiFi/Bluetooth scanner shutdown
- Mode transitions - Smoother navigation with performance instrumentation
- BT Locate - Refactored JS engine with improved trail management and signal smoothing
- Listening Post - Refactored with cross-module frequency routing
- SSTV decoder - State machine improvements and partial image streaming
- Analytics mode removed; per-mode analytics panels integrated into existing dashboards
Fixed
- ADS-B SSE multi-client fanout stability and update flush timing
- WiFi scanner robustness and monitor mode teardown reliability
- Agent client reliability improvements for remote sensor nodes
- SSTV VIS detector state reporting in signal monitor diagnostics
Documentation
- Complete documentation audit across README, FEATURES, USAGE, help modal, and GitHub Pages
- Fixed license badge (MIT → Apache 2.0) to match actual LICENSE file
- Fixed tool name
rtl_amr→rtlamrthroughout all docs - Fixed incorrect entry point examples (
python app.py→sudo -E venv/bin/python intercept.py) - Removed duplicate AIS Vessel Tracking section from FEATURES.md
- Updated SSTV requirements: pure Python decoder, no external
slowrxneeded - Added ACARS and VDL2 mode descriptions to in-app help modal
- GitHub Pages site: corrected Docker command, license, and tool name references
[2.21.1] - 2026-02-20
Fixed
- BT Locate map first-load rendering race that could cause blank/late map initialization
- BT Locate mode switch timing so Leaflet invalidation runs after panel visibility settles
- BT Locate trail restore startup latency by batching historical GPS point rendering
[2.21.0] - 2026-02-20
Added
- Analytics panels for operational insights and temporal pattern analysis
Changed
- Global map theme refresh with improved contrast and cross-dashboard consistency
- Cross-app UX refinements for accessibility, mode consistency, and render performance
- BT Locate enhancements including improved continuity, smoothing, and confidence reporting
Fixed
- Weather satellite auto-scheduler and Mercator tracking reliability issues
- Bluetooth/WiFi runtime health issues affecting scanner continuity
- ADS-B SSE multi-client fanout stability and remote VDL2 streaming reliability
[2.15.0] - 2026-02-09
Added
- Real-time WebSocket Waterfall - I/Q capture with server-side FFT
- Click-to-tune, zoom controls, and auto-scaling quantization
- Shared waterfall UI across SDR modes with function bar controls
- WebSocket frame serialization and connection reuse
- Cross-Module Frequency Routing - Tune from Listening Post directly to decoders
- Pure Python SSTV Decoder - Replaces broken slowrx C dependency
- Real-time decode progress with partial image streaming
- VIS detector state in signal monitor diagnostics
- Image gallery with delete and download functionality
- Real-time Signal Scope - Live signal visualization for pager, sensor, and SSTV modes
- SSTV Image Gallery - Delete and download decoded images
- USB Device Probe - Detect broken SDR devices before rtl_fm crashes
Fixed
- DMR dsd-fme protocol flags, device label, and tuning controls
- DMR frontend/backend state desync causing 409 on start
- Digital voice decoder producing no output due to wrong dsd-fme flags
- SDR device lock-up from unreleased device registry on process crash
- APRS crash on large station count and station list overflow
- Settings modal overflowing viewport on smaller screens
- Waterfall crash on zoom by reusing WebSocket and adding USB release retry
- PD120 SSTV decode hang and false leader tone detection
- WebSocket waterfall blocked by login redirect
- TSCM sweep KeyError on RiskLevel.NEEDS_REVIEW
Removed
- GSM Spy functionality removed for legal compliance
[2.14.0] - 2026-02-06
Added
- DMR Digital Voice Decoder - Decode DMR, P25, NXDN, and D-STAR protocols
- Integration with dsd-fme (Digital Speech Decoder - Florida Man Edition)
- Real-time SSE streaming of sync, call, voice, and slot events
- Call history table with talkgroup, source ID, and protocol tracking
- Protocol auto-detection or manual selection
- Pipeline error diagnostics with rtl_fm stderr capture
- DMR Visual Synthesizer - Canvas-based signal activity visualization
- Spring-physics animated bars reacting to SSE decoder events
- Color-coded by event type: cyan (sync), green (call), orange (voice)
- Center-outward ripple bursts on sync events
- Smooth decay and idle breathing animation
- Responsive canvas with window resize handling
- HF SSTV General Mode - Terrestrial slow-scan TV on shortwave frequencies
- Predefined HF SSTV frequencies (14.230, 21.340, 28.680 MHz, etc.)
- Modulation support for USB/LSB reception
- WebSDR Integration - Remote HF/shortwave listening via WebSDR servers
- Listening Post Enhancements - Improved signal scanner and audio handling
Fixed
- APRS rtl_fm startup failure and SDR device conflicts
- DSD voice decoder detection for dsd-fme and PulseAudio errors
- dsd-fme protocol flags and ncurses disable for headless operation
- dsd-fme audio output flag for pipeline compatibility
- TSCM sweep scan resilience with per-device error isolation
- TSCM WiFi detection using scanner singleton for device availability
- TSCM correlation and cluster emission fixes
- Detected Threats panel items now clickable to show device details
- Proximity radar tooltip flicker on hover
- Radar blip flicker by deferring renders during hover
- ISS position API priority swap to avoid timeout delays
- Updater settings panel error when updater.js is blocked
- Missing scapy in optionals dependency group
[2.13.1] - 2026-02-04
Added
- UI Overhaul - Revamped styling with slate/cyan theme
- Switched app font to JetBrains Mono
- Global navigation bar across all dashboards
- Cyan-tinted map tiles as default
- Signal Scanner Rewrite - Switched to rtl_power sweep for better coverage
- SNR column added to signal hits table
- SNR threshold control for power scan
- Improved sweep progress tracking and stability
- Frequency-based sweep display with range syncing
- Listening Post Audio - WAV streaming with retry and fallback
- WebSocket audio fallback for listening
- User-initiated audio play prompt
- Audio pipeline restart for fresh stream headers
Fixed
- WiFi connected clients panel now filters to selected AP instead of showing all clients
- USB device contention when starting audio pipeline
- Dual scrollbar issue on main dashboard
- Controls bar alignment in dashboard pages
- Mode query routing from dashboard nav
[2.13.0] - 2026-02-04
Added
- WiFi Client Display - Connected clients shown in AP detail drawer
- Real-time client updates via SSE streaming
- Probed SSID badges for connected clients
- Signal strength indicators and vendor identification
- Help Modal - Keyboard shortcuts reference system
- Main Dashboard Button - Quick navigation from any page
- Settings Modal - Accessible from all dashboards
Changed
- Dashboard CSS improvements and consistency fixes
[2.12.1] - 2026-02-02
Added
- SDR Device Registry - Prevents decoder conflicts between concurrent modes
- SDR Device Status Panel - Shows connected SDR devices with ADS-B Bias-T toggle
- Real-time Doppler Tracking - ISS SSTV reception with Doppler correction
- TCP Connection Support - Meshtastic devices connectable over TCP
- Shared Observer Location - Configurable shared location with auto-start options
- slowrx Source Build - Fallback build for Debian/Ubuntu
Fixed
- SDR device type not synced on page refresh
- Meshtastic connection type not restored on page refresh
- WiFi deep scan polling on agent with normalized scan_type value
- Auto-detect RTL-SDR drivers and blacklist instead of prompting
- TPMS pressure field mappings for 433MHz sensor display
- Agent capabilities cache invalidation after monitor mode toggle
[2.12.0] - 2026-01-29
Added
- ISS SSTV Decoder Mode - Receive Slow Scan Television transmissions from the ISS
- Real-time ISS tracking globe with accurate position via N2YO API
- Leaflet world map showing ISS ground track and current position
- Location settings for ISS pass predictions
- Integration with satellite tracking TLE data
- GitHub Update Notifications - Automatic new version alerts
- Checks for updates on app startup
- Unobtrusive notification when new releases are available
- Configurable check interval via settings
- Meshtastic Enhancements
- QR code support for easy device sharing
- Telemetry display with battery, voltage, and environmental data
- Traceroute visualization for mesh network topology
- Improved node synchronization between map and top bar
- UI Improvements
- New Space category for satellite and ISS-related modes
- Pulsating ring effect for tracked aircraft/vessels
- Map marker highlighting for selected aircraft in ADS-B
- Consolidated settings and dependencies into single modal
- Auto-Update TLE Data - Satellite tracking data updates automatically on app startup
- GPS Auto-Connect - AIS dashboard now connects to gpsd automatically
Changed
- Utility Meters - Added device grouping by ID with consumption trends
- Utility Meters - Device intelligence and manufacturer information display
Fixed
- SoapySDR - Module detection on macOS with Homebrew
- dump1090 - Build failures in Docker containers
- dump1090 - Build failures on Kali Linux and newer GCC versions
- Flask - Ensure Flask 3.0+ compatibility in setup script
- psycopg2 - Now optional for Flask/Werkzeug compatibility
- Bias-T - Setting now properly passed to ADS-B and AIS dashboards
- Dark Mode Maps - Removed CSS filter that was inverting dark tiles
- Map Tiles - Fixed CARTO tile URLs and added cache-busting
- Meshtastic - Traceroute button and dark mode map fixes
- ADS-B Dashboard - Height adjustment to prevent bottom controls cutoff
- Audio Visualizer - Now works without spectrum canvas
[2.11.0] - 2026-01-28
Added
- Meshtastic Mesh Network Integration - LoRa mesh communication support
- Connect to Meshtastic devices (Heltec, T-Beam, RAK) via USB/Serial
- Real-time message streaming via SSE
- Channel configuration with encryption key support
- Node information display with signal metrics (RSSI, SNR)
- Message history with up to 500 messages
- Ubertooth One BLE Scanner - Advanced Bluetooth scanning
- Passive BLE packet capture across all 40 BLE channels
- Raw advertising payload access
- Integration with existing Bluetooth scanning modes
- Automatic detection of Ubertooth hardware
- Offline Mode - Run iNTERCEPT without internet connectivity
- Bundled Leaflet 1.9.4 (JS, CSS, marker images)
- Bundled Chart.js 4.4.1
- Bundled Inter and JetBrains Mono fonts (woff2)
- Local asset status checking and validation
- Settings Modal - New configuration interface accessible from navigation
- Offline tab: Toggle offline mode, configure asset sources
- Display tab: Theme and animation preferences
- About tab: Version info and links
- Multiple Map Tile Providers - Choose from:
- OpenStreetMap (default)
- CartoDB Dark
- CartoDB Positron (light)
- ESRI World Imagery
- Custom tile server URL
Changed
- Dashboard Templates - Conditional asset loading based on offline settings
- Bluetooth Scanner - Added Ubertooth backend alongside BlueZ/DBus
- Dependencies - Added meshtastic SDK to requirements.txt
Technical
- Added
routes/meshtastic.pyfor Meshtastic API endpoints - Added
utils/meshtastic.pyfor device management - Added
utils/bluetooth/ubertooth_scanner.pyfor Ubertooth support - Added
routes/offline.pyfor offline mode API - Added
static/js/core/settings-manager.jsfor client-side settings - Added
static/css/settings.cssfor settings modal styles - Added
static/css/modes/meshtastic.cssfor Meshtastic UI - Added
static/js/modes/meshtastic.jsfor Meshtastic frontend - Added
templates/partials/modes/meshtastic.htmlfor Meshtastic mode - Added
templates/partials/settings-modal.htmlfor settings UI - Added
static/vendor/directory structure for bundled assets
[2.10.0] - 2026-01-25
Added
- AIS Vessel Tracking - Real-time ship tracking via AIS-catcher
- Full-screen dashboard with interactive maritime map
- Vessel details: name, MMSI, callsign, destination, ETA
- Navigation data: speed, course, heading, rate of turn
- Ship type classification and dimensions
- Multi-SDR support (RTL-SDR, HackRF, LimeSDR, Airspy, SDRplay)
- VHF DSC Channel 70 Monitoring - Digital Selective Calling for maritime distress
- Real-time decoding of DSC messages (Distress, Urgency, Safety, Routine)
- MMSI country identification via Maritime Identification Digits (MID) lookup
- Position extraction and map markers for distress alerts
- Prominent visual overlay for DISTRESS and URGENCY alerts
- Permanent database storage for critical alerts with acknowledgement workflow
- Spy Stations Database - Number stations and diplomatic HF networks
- Comprehensive database from priyom.org
- Station profiles with frequencies, schedules, operators
- Filter by type (number/diplomatic), country, and mode
- Tune integration with Listening Post
- Famous stations: UVB-76, Cuban HM01, Israeli E17z
- SDR Device Conflict Detection - Prevents collisions between AIS and DSC
- DSC Alert Summary - Dashboard counts for unacknowledged distress/urgency alerts
- AIS-catcher Installation - Added to setup.sh for Debian and macOS
Changed
- UI Labels - Renamed "Scanner" to "Listening Post" and "RTLAMR" to "Meters"
- Pager Filter - Changed from onchange to oninput for real-time filtering
- Vessels Dashboard - Now includes VHF DSC message panel alongside AIS tracking
- Dependencies - Added scipy and numpy for DSC signal processing
Fixed
- DSC Position Decoder - Corrected octal literal in quadrant check
[2.9.5] - 2026-01-14
Added
- MAC-Randomization Resistant Detection - TSCM now identifies devices using randomized MAC addresses
- Clickable Score Cards - Click on threat scores to see detailed findings
- Device Detail Expansion - Click-to-expand device details in TSCM results
- Root Privilege Check - Warning display when running without required privileges
- Real-time Device Streaming - Devices stream to dashboard during TSCM sweep
Changed
- TSCM Correlation Engine - Improved device correlation with comprehensive reporting
- Device Classification System - Enhanced threat classification and scoring
- WiFi Scanning - Improved scanning reliability and device naming
Fixed
- RF Scanning - Fixed scanning issues with improved status feedback
- TSCM Modal Readability - Improved modal styling and close button visibility
- Linux Device Detection - Added more fallback methods for device detection
- macOS Device Detection - Fixed TSCM device detection on macOS
- Bluetooth Event Type - Fixed device type being overwritten
- rtl_433 Bias-T Flag - Corrected bias-t flag handling
[2.9.0] - 2026-01-10
Added
- Landing Page - Animated welcome screen with logo reveal and "See the Invisible" tagline
- New Branding - Redesigned logo featuring 'i' with signal wave brackets
- Logo Assets - Full-size SVG logos in
/static/img/for external use - Instagram Promo - Animated HTML promo video template in
/promo/directory - Listening Post Scanner - Fully functional frequency scanning with signal detection
- Scan button toggles between start/stop states
- Signal hits logged with Listen button to tune directly
- Proper 4-column display (Time, Frequency, Modulation, Action)
Changed
- Rebranding - Application renamed from "INTERCEPT" to "iNTERCEPT"
- Updated Tagline - "Signal Intelligence & Counter Surveillance Platform"
- Setup Script - Now installs Python packages via apt first (more reliable on Debian/Ubuntu)
- Uses
--system-site-packagesfor venv to leverage apt packages - Added fallback logic when pip fails
- Uses
- Troubleshooting Docs - Added sections for pip install issues and apt alternatives
Fixed
- Tuning Dial Audio - Fixed audio stopping when using tuning knob
- Added restart prevention flags to avoid overlapping restarts
- Increased debounce time for smoother operation
- Added silent mode for programmatic value changes
- Scanner Signal Hits - Fixed table column count and colspan
- Favicon - Updated to new 'i' logo design
[2.0.0] - 2026-01-06
Added
- Listening Post Mode - New frequency scanner with automatic signal detection
- Scans frequency ranges and stops on detected signals
- Real-time audio monitoring with ffmpeg integration
- Skip button to continue scanning after signal detection
- Configurable dwell time, squelch, and step size
- Preset frequency bands (FM broadcast, Air band, Marine, etc.)
- Activity log of detected signals
- Aircraft Dashboard Improvements
- Dependency warning when rtl_fm or ffmpeg not installed
- Auto-restart audio when switching frequencies
- Fixed toolbar overflow with custom frequency input
- Device Correlation - Match WiFi and Bluetooth devices by manufacturer
- Settings System - SQLite-based persistent settings storage
- Comprehensive Test Suite - Added tests for routes, validation, correlation, database
Changed
- Documentation Overhaul
- Simplified README with clear macOS and Debian installation steps
- Added Docker installation option
- Complete tool reference table in HARDWARE.md
- Removed redundant/confusing content
- Setup Script Rewrite
- Full macOS support with Homebrew auto-installation
- Improved Debian/Ubuntu package detection
- Added ffmpeg to tool checks
- Better error messages with platform-specific install commands
- Dockerfile Updated
- Added ffmpeg for Listening Post audio encoding
- Added dump1090 with fallback for different package names
Fixed
- SoapySDR device detection for RTL-SDR and HackRF
- Aircraft dashboard toolbar layout when using custom frequency input
- Frequency switching now properly stops/restarts audio
Technical
- Added
utils/constants.pyfor centralized configuration values - Added
utils/database.pyfor SQLite settings storage - Added
utils/correlation.pyfor device correlation logic - Added
routes/listening_post.pyfor scanner endpoints - Added
routes/settings.pyfor settings API - Added
routes/correlation.pyfor correlation API
[1.2.0] - 2026-12-29
Added
- Airspy SDR support
- GPS coordinate persistence
- SoapySDR device detection improvements
Fixed
- RTL-SDR and HackRF detection via SoapySDR
[1.1.0] - 2026-12-18
Added
- Satellite tracking with TLE data
- Full-screen dashboard for aircraft radar
- Full-screen dashboard for satellite tracking
[1.0.0] - 2026-12-15
Initial Release
- Pager decoding (POCSAG/FLEX)
- 433MHz sensor decoding
- ADS-B aircraft tracking
- WiFi reconnaissance
- Bluetooth scanning
- Multi-SDR support (RTL-SDR, LimeSDR, HackRF)