- Remove kismet_process global variable
- Remove Kismet from tool status display
- Remove Kismet scan mode radio button
- Simplify start/stop WiFi functions to use airodump directly
- Remove Kismet routes (/wifi/kismet/start, /wifi/kismet/stop, /wifi/kismet/devices)
- Remove Kismet from kill_all and tools check
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Simplified Bluetooth scanning to just:
- bluetoothctl (Recommended)
- hcitool (Legacy)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
These features weren't providing useful data since:
- Most BLE devices don't broadcast friendly names
- Many OUI prefixes are unregistered/private
- Classification requires identifiable device names
Kept: Bluetooth Proximity Radar (visual device tracking)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Created oui_database.json with 300+ vendor prefixes
- Code now loads from external JSON file first, falls back to built-in
- Added /bt/reload-oui endpoint to reload database without restart
- Easy to add new vendors: just edit oui_database.json
To add a new vendor, edit oui_database.json and add:
"XX:XX:XX": "Vendor Name"
Then call POST /bt/reload-oui or restart the server.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Log device_type in updateBtTypeChart to see what values are received
- Log manufacturer in updateBtManufacturerList
- This will help diagnose why types/manufacturers aren't showing
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fixed updateBtTypeChart to use device_type instead of type field
- Fixed hcitool queue data to include device_type field (was overwriting type)
- Added console.log debug statements to trace device intelligence flow
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed reconEnabled to default to true (was false when localStorage empty)
- Added else clause to properly hide panel when explicitly disabled
- Device intelligence now works by default on first run
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The device dict had a 'type' field (audio, phone, etc.) that was
overwriting the queue message 'type: device' field. Fixed by:
- Spreading device first, then setting 'type': 'device'
- Adding 'device_type' field for the device classification
- Updating frontend to use device_type for display
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added debug prints to trace device flow:
- "[BT] Queuing device:" when adding to queue
- "[BT Stream] Sending device:" when SSE sends to client
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add missing time and re imports in stream function
- Improve ANSI escape code stripping (add \x1b[K and \r removal)
- Make MAC address regex more explicit
- Add debug logging for Device lines
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change default scan mode from hcitool (deprecated) to bluetoothctl
- Rename labels: bluetoothctl (Recommended), hcitool (Legacy)
- Add power on command before scan for reliability
- Add initialization delays for bluetoothctl startup
hcitool is deprecated for Bluetooth 5.x adapters and causes
"set scan parameters failed" errors on modern systems.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Check if running as root, try sudo -n if not
- Try rfkill unblock bluetooth first
- Fall back to bluetoothctl power off/on if hciconfig fails
- Better error messaging when adapter stays down
- Suggest manual command when auto-reset fails
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Detect "set scan parameters failed" and "input/output error"
- Attempt automatic adapter reset when these errors occur
- Improve reset function: kill hcitool/bluetoothctl processes,
add delays between down/up commands for more reliable reset
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The generateDeviceId function only handled POCSAG, FLEX, and sensor
protocols. Added handlers for:
- WiFi-AP: generates WIFI_AP_<bssid>
- WiFi-Client: generates WIFI_CLIENT_<mac>
- Bluetooth/BLE: generates BT_<mac>
This fixes device tracking in the intelligence section for WiFi
and Bluetooth scans.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix hciconfig parsing to check for "UP RUNNING" in the full
interface block, not just the first line
- Use pty for bluetoothctl to get proper output (interactive tools
need a pseudo-terminal)
- Strip ANSI escape codes from bluetoothctl output
- Properly read from pty master_fd with select() for non-blocking I/O
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Rewrote escapeAttr to use simple replace chains instead of
arrow function with object lookup, which was causing JavaScript
parsing issues.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Security:
- Add escapeAttr() and validation functions to prevent XSS in onclick handlers
- Escape BSSID, MAC, channel, manufacturer, tracker names in HTML output
- Add backend is_valid_mac() and is_valid_channel() validation
- Validate MAC addresses in /wifi/deauth, /wifi/handshake/capture, /bt/ping, /bt/dos
- Add bounds checking for count/size parameters to prevent abuse
Bluetooth:
- Fix stuck scan state by checking if process is actually running
- Add /bt/reset endpoint to force reset adapter and clear state
- Add "Reset Adapter" button to UI
WiFi:
- Improve monitor interface regex to require digits (prevents matching "airmon")
- Add second fallback to look for exact interface name + "mon"
Other:
- Fix redundant CSV parsing bounds check
- Remove debug logging
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The previous regex incorrectly captured "for" from airmon-ng output
like "monitor mode enabled for [phy0]wlp3s0 on wlp3s0mon". Now uses
a more specific pattern that looks for "on <interface>mon" first,
with fallback to any word ending in "mon".
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add stderr capture and display for airodump-ng errors in WiFi scanning
- Add early failure detection with helpful error messages for WiFi scan
- Add timeout warning when no scan data received after 5 seconds
- Add error handling for Bluetooth scanning with stderr capture
- Add showError() function to display errors in red in the output panel
- Add error type handlers to WiFi and Bluetooth SSE event streams
- Hide RTL-SDR device section when in WiFi or Bluetooth modes
- Improve error messages with install instructions for missing tools
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add WiFi reconnaissance features documentation
- Add Bluetooth scanning features documentation
- Add new software requirements (aircrack-ng, BlueZ, etc.)
- Add installation instructions for WiFi and BT tools
- Add WiFi and Bluetooth API endpoints
- Expand disclaimer section with detailed terms
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add disclaimer modal requiring acceptance on first visit
- Store acceptance in localStorage to remember returning users
- Add hacker-themed rejection page for declined users
- Auto-stop running scans when switching between modes
- Rename Bluetooth tab to "BT" for cleaner UI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Audio alerts on new messages with mute toggle (persisted in localStorage)
- CSV and JSON export for captured messages
- Signal strength meter showing message activity
- Waterfall display with activity visualization
- Auto-scroll toggle (persisted in localStorage)
- Relative timestamps (e.g., "5s ago", "2m ago")
- Visual feedback on control buttons (active/muted states)
- Flash effect on waterfall canvas when messages arrive
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Features:
- Real-time POCSAG (512/1200/2400) and FLEX decoding
- Web-based interface with SpaceX-inspired dark theme
- Live message streaming via SSE
- Message logging to file
- Customizable frequency presets
- RTL-SDR device detection and selection
- Configurable gain, squelch, and PPM correction
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>