Commit Graph

411 Commits

Author SHA1 Message Date
James Smith 31b70140d6 Fix ground track map to fill its container
Use flexbox to make map expand to fill available space in container
2025-12-29 22:21:57 +00:00
James Smith 7309cf0565 Revert "Improve satellite tab layout for better screen space usage"
This reverts commit 170f5dac36.
2025-12-29 22:21:04 +00:00
James Smith 170f5dac36 Improve satellite tab layout for better screen space usage
- Make polar plot and ground track map taller (350px min)
- Combine countdown and pass list into full-width bottom section
- Side-by-side layout: compact countdown left, scrollable pass list right
- Responsive: stacks vertically on narrow screens
- Increase ground track map height to 280px
2025-12-29 22:18:57 +00:00
James Smith 61543b8b34 Fix JavaScript errors: variable hoisting and renamed function
- Move isWifiRunning and isBtRunning declarations to top of script
  to fix 'Cannot access before initialization' errors
- Update handleWifiNetwork hook to use renamed handleWifiNetworkImmediate
- Remove duplicate variable declarations
2025-12-29 22:13:43 +00:00
James Smith ec988dd35b Fix ground track line crossing antimeridian
Split pass ground track at 180° longitude crossings to prevent
lines being drawn across the entire map.
2025-12-29 22:09:59 +00:00
James Smith 3e09140b0a Fix satellite pass track being overwritten and improve pass list
- Preserve selected pass ground track when updateRealTimePositions runs
- Only show real-time orbit track when no pass is selected
- Draw pass trajectory on polar plot with current position overlay
- Add drawCurrentPositionOnPolar helper for position marker
- Increase pass list height (250px → 400px max) to show more passes
- Add pass count to header (e.g., "UPCOMING PASSES (7)")
- Make pass items slightly more compact
2025-12-29 22:06:02 +00:00
James Smith f7a08f890d Fix browser freeze in WiFi/Bluetooth modes and add dashboard links
- Add requestAnimationFrame batching to WiFi SSE handler to prevent
  freeze with many access points
- Add requestAnimationFrame batching to Bluetooth SSE handler to
  prevent freeze with many devices
- Move channel graph updates to batched frame instead of per-network
- Throttle probe analysis updates to every 2 seconds
- Optimize aircraft tracking in main page with marker state caching,
  150 marker limit, and throttled auto-fit bounds
- Add "Full Screen Dashboard" links to aircraft and satellite modes
- Add "Main Dashboard" links to ADSB and satellite dashboards

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-29 21:55:48 +00:00
James Smith ef66929848 Fix browser freeze with many aircraft by batching UI updates
Use requestAnimationFrame to throttle expensive rendering operations.
Previously every SSE message triggered full UI re-renders causing
browser unresponsiveness with 50+ aircraft.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 08:47:16 +00:00
James Smith 3ee9f5e749 Fix duplicate aircraft cards in console output
Now updates existing cards instead of creating duplicates when
receiving updates for the same ICAO.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 12:52:23 +00:00
James Smith f661efc9ae Fix altitude field name mismatch
Backend was sending 'alt' but frontend expected 'altitude'.
Standardized on 'altitude' throughout.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 12:51:34 +00:00
James Smith ddeff002c9 Refactor into modular structure with improvements
- Split monolithic intercept.py (15k lines) into modular structure:
  - routes/ - Flask blueprints for each feature
  - templates/ - Jinja2 HTML templates
  - data/ - OUI database, satellite TLEs, detection patterns
  - utils/ - dependencies, process management, logging
  - config.py - centralized configuration with env var support

- Add type hints to function signatures
- Replace bare except clauses with specific exceptions
- Add proper logging module (replaces print statements)
- Add environment variable support (INTERCEPT_* prefix)
- Add test suite with pytest
- Add Dockerfile for containerized deployment
- Add pyproject.toml with ruff/black/mypy config
- Add requirements-dev.txt for development dependencies

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 16:28:48 +00:00