Commit Graph

788 Commits

Author SHA1 Message Date
cemaxecuter
fb31157fe9 Fix ADS-B dashboard for remote agents
- Fix device dropdown to use sdr_devices (same as agents.js fix)
- Keep dropdown/start button enabled in "All Agents" mode for control
- Disable airband controls for remote agents (audio not supported)
2026-01-27 09:54:08 -05:00
cemaxecuter
a5f574062d Fix agent/local mode state sync and process cleanup
Agent fixes:
- Fix stop not killing secondary processes (pager_rtl, aprs_rtl, rtlamr_tcp)
- Modes using piped processes now properly terminate all child processes

UI state sync fixes:
- Add syncLocalModeStates() to check local status when switching to local
- Fix switchMode() to re-sync with agent/local when changing mode tabs
- Only stop local modes when actually in local mode
- UI now correctly reflects running state when switching agents or modes
2026-01-27 09:31:14 -05:00
cemaxecuter
afccb6fe0a Fix agent mode UI state sync for pager, WiFi, and Bluetooth
- Fix device dropdown for agent mode by checking sdr_devices key
- Fix pager checkStatus() to use agent endpoint when in agent mode
- Fix WiFi checkScanStatus() to be agent-aware
- Fix Bluetooth checkScanStatus() to be agent-aware

These fixes prevent the UI from reverting to 'stopped' state when
the agent is actually running a mode.
2026-01-27 09:09:29 -05:00
cemaxecuter
f916b9fa19 Add TSCM support to distributed agent with local mode parity
- Agent TSCM uses same ThreatDetector and CorrelationEngine as local mode
- Added baseline_id parameter support using get_tscm_baseline()
- Fixed RF scan stop_check to allow agent-specific stop events
- Fixed 'undefined MHz' display for WiFi devices (added essid fallback and null check)
- Fixed signal strength type conversion (string to int) for correlation engine
- Agent threat detection matches local mode behavior:
  - No baseline: detects anomaly/hidden_camera threats only
  - With baseline: also detects new_device threats
2026-01-27 08:47:02 -05:00
cemaxecuter
d775ba5b3e Add real-time agent health monitoring and response utilities
Health Monitoring:
- Add /controller/agents/health endpoint for efficient bulk health checks
- Check all agents in one call with response time tracking
- Update agent status in real-time (30s interval)
- Show latency next to agent status in UI
- Add collapsible "All Agents Health" panel in sidebar
- Log console notifications when agents go online/offline

Response Utilities:
- Add unwrapAgentResponse() to consistently handle controller proxy format
- Add isAgentMode() and getCurrentAgentName() helpers
- Standardize error handling for agent responses

UI Improvements:
- Show response latency (ms) in agent selector dropdown
- Health panel shows status + running modes for each agent
- Better visual feedback for agent status changes
2026-01-26 12:19:20 -05:00
cemaxecuter
3372daca84 Add comprehensive agent mode tests and listening_post SDR check
- Add SDR availability check to listening_post mode startup
- Create tests/test_agent_modes.py with 29 comprehensive tests covering:
  - Mode lifecycle tests (start/stop for all modes)
  - SDR conflict detection (same device vs different device)
  - Process verification (immediate exit detection)
  - Data snapshot operations
  - Error handling (missing tools, invalid modes)
  - Cleanup verification (process termination, thread stopping)
  - Multi-mode simultaneous operation
  - GPS integration
2026-01-26 12:02:52 -05:00
cemaxecuter
b72ddd7c19 Enhance distributed agent architecture with full mode support and reliability
Agent improvements:
- Add process verification (0.5s delay + poll check) for sensor, pager, APRS, DSC modes
- Prevents silent failures when SDR is busy or tools fail to start
- Returns clear error messages when subprocess exits immediately

Frontend agent integration:
- Add agent routing to all SDR modes (pager, sensor, RTLAMR, APRS, listening post, TSCM)
- Add agent routing to WiFi and Bluetooth modes with polling fallback
- Add agent routing to AIS and DSC dashboards
- Implement "Show All Agents" toggle for Bluetooth mode
- Add agent badges to device/network lists
- Handle controller proxy response format (nested 'result' field)

Controller enhancements:
- Add running_modes_detail endpoint showing device info per mode
- Support SDR conflict detection across modes

Documentation:
- Expand DISTRIBUTED_AGENTS.md with complete API reference
- Add troubleshooting guide and security considerations
- Document all supported modes with tools and data formats

UI/CSS:
- Add agent badge styling for remote vs local sources
- Add WiFi and Bluetooth table agent columns
2026-01-26 11:44:54 -05:00
cemaxecuter
f980e2e76d Add distributed agent architecture for multi-node signal intelligence
Features:
- Standalone agent server (intercept_agent.py) for remote sensor nodes
- Controller API blueprint for agent management and data aggregation
- Push mechanism for agents to send data to controller
- Pull mechanism for controller to proxy requests to agents
- Multi-agent SSE stream for combined data view
- Agent management page at /controller/manage
- Agent selector dropdown in main UI
- GPS integration for location tagging
- API key authentication for secure agent communication
- Integration with Intercept's dependency checking system

New files:
- intercept_agent.py: Remote agent HTTP server
- intercept_agent.cfg: Agent configuration template
- routes/controller.py: Controller API endpoints
- utils/agent_client.py: HTTP client for agents
- utils/trilateration.py: Multi-agent position calculation
- static/js/core/agents.js: Frontend agent management
- templates/agents.html: Agent management page
- docs/DISTRIBUTED_AGENTS.md: System documentation

Modified:
- app.py: Register controller blueprint
- utils/database.py: Add agents and push_payloads tables
- templates/index.html: Add agent selector section
2026-01-26 06:14:42 -05:00
Smittix
ada6d5f1f1 Merge pull request #86 from xdep/testing-branch 2026-01-25 19:44:31 +00:00
Marc
7c6416ac38 New svg style icons for the AIS vessel tracking map 2026-01-25 13:40:52 -06:00
Marc
e833488425 JSON fix for AIS including latitude and longitude 2026-01-25 13:29:13 -06:00
Smittix
0b8863aaa9 Merge pull request #85 from xdep/main 2026-01-25 16:57:09 +00:00
Device
8d30c40fe2 Fixing the AIS-catcher parameter for data ingest
The -o 5 flag sets the console/stdout output format to JSON, but it does NOT configure the TCP server output format
2026-01-25 17:07:45 +01:00
Smittix
d2f2c37531 docs: Update in-app help with new features
- Add Vessels/VHF DSC documentation to help modal
- Add Spy Stations mode to help modal
- Update Aircraft section to mention history feature
- Add Spy Stations icon to Mode Tab Icons

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
v2.10.0
2026-01-25 13:23:16 +00:00
Smittix
b23a1636b0 Merge pull request #83 from JamesIOmete/local-fixes
Add ADS-B history persistence, session tracking, and reporting dashboard
2026-01-25 13:20:23 +00:00
Smittix
a73a74d1fc docs: Simplify ADS-B history setup instructions
Update README to use Docker Compose profiles instead of environment variables.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:18:54 +00:00
Smittix
d297f87115 fix: Make ADS-B history optional and add tests
- Use Docker Compose profiles to make Postgres optional
- Default `docker compose up` runs without history/Postgres
- Use `docker compose --profile history up` to enable history
- Add 11 unit tests for AdsbHistoryWriter and AdsbSnapshotWriter

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:18:33 +00:00
Smittix
88537c1119 fix: Restore flask-limiter and Werkzeug version pins
- Restore flask-limiter>=2.5.4 version constraint
- Restore Werkzeug>=3.1.5 dependency
- Group psycopg2-binary under ADS-B history section

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:12:26 +00:00
James Ward
141b34391d Document ADS-B history setup and reporting 2026-01-25 13:12:09 +00:00
James Ward
8b4b440b22 Add ADS-B history persistence and reporting UI 2026-01-25 13:11:43 +00:00
James Ward
0cccf3c9dd Document local-fixes rebase workflow 2026-01-25 13:11:43 +00:00
James Ward
e532f67c85 Add flask-limiter dependency and allow /health without login 2026-01-25 13:11:43 +00:00
Smittix
7a2b90055a Merge pull request #84 from xdep/testing-branch
feat: Add VHF DSC Channel 70 monitoring and decoding for vessels page
2026-01-25 13:06:32 +00:00
Smittix
ab2d7bfe50 docs: Update version to 2.10.0 and document DSC features
- Bump version to 2.10.0 in config.py and pyproject.toml
- Add scipy/numpy dependencies for DSC signal processing
- Add CHANGELOG entry for 2.10.0 release
- Update README.md features list with vessel tracking
- Add AIS Vessel Tracking and VHF DSC section to FEATURES.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:06:06 +00:00
Smittix
1e2810b85c fix: Correct octal literal in DSC position decoder
Change `00` to `0` in quadrant check to avoid confusion with octal syntax.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:05:14 +00:00
Smittix
164887f8a4 test: Add comprehensive tests for DSC functionality
- Add parser tests for MMSI country lookup, distress codes, format codes
- Add decoder tests for MMSI/position decoding, bit conversion
- Add database tests for DSC alerts CRUD operations
- Include constants validation tests

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:05:14 +00:00
Marc
b4d3e65a3d feat: Add VHF DSC Channel 70 monitoring and decoding
- Implement DSC message decoding (Distress, Urgency, Safety, Routine)

- Add MMSI country identification via MID lookup

- Integrate position extraction and map markers for distress alerts

- Implement device conflict detection to prevent SDR collisions with AIS

- Add permanent storage for critical alerts and visual UI overlays
2026-01-25 13:05:14 +00:00
Smittix
3b238c3c8f Merge pull request #82 from d3mocide/main
Enhance Docker environment with missing SDR dependencies
2026-01-24 20:51:10 +00:00
William Shields
93111b93c5 Enhance Docker environment with missing SDR dependencies
Added build and runtime dependencies for AIS-catcher, readsb (SoapySDR enabled), direwolf, and hcxtools. Included rx_tools build from source. Updated dependency checker to potentialy verify SoapySDR modules.
2026-01-24 12:37:20 -08:00
Smittix
6a63c13cd8 Update docs for v2.10.0: AIS vessel tracking and Spy Stations
- Add AIS Vessel Tracking and Spy Stations to GitHub Pages site
- Update mode count from 10+ to 12+
- Add feature sections to FEATURES.md
- Update README.md features list and acknowledgments
- Add AIS-catcher and Priyom.org to acknowledgments
- Bump version to 2.10.0 in config.py
- Update CHANGELOG.md with new release notes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:33:05 +00:00
Smittix
3518f7fede Merge branch 'main' of https://github.com/smittix/intercept 2026-01-24 18:12:57 +00:00
Smittix
79fc2871c9 Improve UI labels and pager filter responsiveness
- Rename "Scanner" to "Listening Post" and "RTLAMR" to "Meters" for clarity
- Change pager filter input from onchange to oninput for real-time filtering

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-24 18:12:32 +00:00
Smittix
2d21ce9303 Merge pull request #79 from xdep/testing-branch
Merge vessel-tracking: Add AIS-based vessel tracking support + Spy stations (Diplomatic + number stations)
2026-01-24 18:10:41 +00:00
Marc
28e63a1029 Couple small fixes like vessel icon and double stations text in spy page 2026-01-24 10:10:46 -06:00
Marc
cbfe46201e Adding Spystations page and 2 small fixed for the vessel page 2026-01-24 07:37:51 -06:00
Marc
1b0d39c5b0 Adding spy stations aka the number stations including diplomatic stations 2026-01-24 04:22:32 -06:00
Device
446a8f14cb Merge branch 'smittix:main' into testing-branch 2026-01-24 00:41:56 +01:00
Marc
57d448c003 Adjustment to dashboard style and 500 error 2026-01-23 16:00:13 -06:00
Smittix
eabc73ff49 Update GitHub Pages screenshots
Replace TSCM and Bluetooth screenshots with updated versions, add WiFi Scanner screenshot to gallery.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 18:55:01 +00:00
Marc
f724421ce7 Adding Vessels 2026-01-23 06:02:54 -06:00
Smittix
9134195eb1 Delete CNAME 2026-01-22 06:32:30 +00:00
Smittix
ee6971284c Merge bluetooth-overhaul: Fix Bluetooth/WiFi TSCM scanning issues
- Fix bytes conversion errors in multiple Bluetooth scanner modules
- Add monitor mode detection for WiFi interfaces
- Auto-use deep scan (airodump-ng) for monitor mode interfaces
- Fix is_known_tracker to handle hex string manufacturer data
- Add debug logging for TSCM Bluetooth scanning
2026-01-21 23:42:12 +00:00
Smittix
098fab6aca Fix is_known_tracker to handle hex string manufacturer data
The function now accepts both bytes and hex string formats for
manufacturer_data, converting hex strings to bytes before processing.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:39:38 +00:00
Smittix
bc2b2bf23b Add full traceback to Bluetooth scan error logging 2026-01-21 23:38:21 +00:00
Smittix
eb5bf55aad Fix bytes conversion in TSCM BLE scanner
Handle various data types safely when converting manufacturer_data
in the TSCM-specific BLE scanner module.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:36:10 +00:00
Smittix
17a0dddf61 Fix bytes conversion in fallback Bluetooth scanner
Handle various data types safely when converting manufacturer_data
and service_data in the bleak fallback scanner.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:31:21 +00:00
Smittix
f6bd38e3dc Add debug logging for TSCM Bluetooth scanning
Helps diagnose why Bluetooth devices appear in Bluetooth section
but not in TSCM section.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:28:45 +00:00
Smittix
12db4f5178 Auto-detect monitor mode and use deep scan in TSCM WiFi scanning
When a monitor mode interface (e.g., wlan0mon) is detected, automatically
use airodump-ng deep scan instead of quick scan which doesn't work with
monitor mode interfaces.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:27:05 +00:00
Smittix
f01502ff32 Fix Bluetooth bytes conversion and WiFi monitor mode detection
- Fix "cannot convert 'str' object to bytes" error in BLE identity engine
  by adding robust _convert_to_bytes() helper that handles bytes, hex
  strings, bytearrays, and arrays
- Improve DBus scanner to safely handle various data types for
  manufacturer_data and service_data with proper error handling
- Add monitor mode interface detection in WiFi scanner to provide clear
  error message when quick scan is attempted on monitor mode interface

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:25:22 +00:00
Smittix
54a47b03c2 Make tracker detection panel scrollable
Add max-height and overflow-y to btTrackerList for better UX when
multiple trackers are detected.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:18:07 +00:00