Commit graph

120 commits

Author SHA1 Message Date
ec86ec6829 Merge pull request 'feat: Comprehensive 3D radar enhancements with trails, labels, and visual differentiation - resolves #41' (#44) from feature/3d-radar-enhancements-issue-41 into main v0.0.12
Reviewed-on: #44
2025-09-02 19:31:01 +02:00
275a346e85 feat: Implement comprehensive signal quality visualization and enhanced trail effects
Adds advanced visual feedback system for 3D radar aircraft with real-time signal quality indicators:

Signal Quality Visualization:
- Opacity mapping based on signal strength (-60 to -5 dBFS range)
- Emissive glow intensity reflects signal quality (Excellent/Good/Fair/Poor)
- Multi-source data indicators (small spheres for aircraft with multiple receivers)
- Dynamic signal strength analysis from aircraft sources data
- Real-time updates with changing signal conditions

Enhanced Trail System:
- Gradient coloring with age-based fading (30% to 100% intensity)
- Aircraft type-based trail colors (cyan=helicopter, blue=heavy, yellow=light, teal=medium)
- Signal quality affects trail brightness and visibility
- Custom BufferGeometry with per-vertex colors
- Memory-efficient geometry disposal and rebuilding

Technical Improvements:
- Modular signal data extraction from aircraft sources
- Linear signal strength to opacity mapping
- Quality multiplier system for visual feedback
- Proper Three.js BufferAttribute management
- Dynamic visual updates synchronized with aircraft data

Visual Results:
- Strong signals = bright, opaque aircraft with vivid trails
- Weak signals = dim, transparent aircraft with faded trails
- Multi-source aircraft display small indicator spheres
- Trail colors match aircraft types for consistency
- Smooth gradient effects enhance flight path visualization

Addresses core signal quality and trail enhancement requirements from issue #42.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 21:29:53 +02:00
51a74ac85e feat: Implement aircraft type differentiation and movement indicators
Adds comprehensive visual differentiation system for 3D radar aircraft:

Aircraft Type Differentiation:
- Different 3D geometries for aircraft categories (helicopter, heavy, medium, light)
- Color coding: cyan=helicopter, blue=heavy, green=medium, yellow=light
- Size scaling based on aircraft weight class
- Emergency override: red color for emergency squawks and alerts

Movement Indicators:
- Aircraft orientation based on track/heading data
- Climb/descent indicators with 500 fpm threshold
- Green upward arrows for climbing aircraft
- Red downward arrows for descending aircraft
- Dynamic indicator management (add/remove based on vertical rate)

Technical Implementation:
- Modular aircraft geometry creation system
- Visual type detection based on Category field
- Enhanced material system with emissive properties
- Proper cleanup of climb/descent indicators
- Updated selection system to restore original aircraft colors

Addresses core visual enhancement requirements from issue #42.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 21:22:14 +02:00
c6aab821a3 feat: Enhance flight trails with historical altitude data and fix label display
- Extend PositionPoint struct to include altitude field in position history
- Update position history population to store altitude with each position
- Fix 3D aircraft labels to show GroundSpeed instead of undefined Speed field
- Enable true 3D flight trails with proper altitude visualization
- Improve trail accuracy by using historical altitude data per position

Resolves trails showing flat paths and labels showing N/A for speed.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 21:08:43 +02:00
fec2f111a1 feat: Complete 3D radar enhancements with labels, interactions, and trails
Implements comprehensive 3D radar view enhancements:

- Fixed map tile alignment using proper Web Mercator projection calculations
- Added dynamic aircraft labels showing callsign, altitude, and speed
- Implemented click interactions with raycasting for aircraft selection
- Created flight trail visualization with toggle functionality
- Enhanced visual feedback with selection highlighting
- Improved tile positioning with precise geographic calculations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 21:02:22 +02:00
2ba2192044 fix: Clean up excessive debug logging in JavaScript console
- Add conditional verbose logging controlled by ?verbose URL param or localStorage
- Reduce frequent WebSocket message logging to verbose mode only
- Minimize aircraft position update logging to prevent console spam
- Make 3D radar initialization logging conditional on verbose flag
- Reduce WebSocket message counter frequency from every 10 to every 500 messages
- Preserve important error messages and connection status logging

Users can enable verbose logging with:
- URL parameter: http://localhost:8080?verbose
- localStorage: localStorage.setItem('skyview-verbose', 'true')

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 20:30:41 +02:00
7d54aa4fae Merge pull request 'feat: Implement 3D Radar View Controls - resolves #9' (#40) from feature/3d-radar-controls-issue-9 into main
Reviewed-on: #40
2025-09-01 20:23:50 +02:00
a2cf9d8fdb feat: Implement 3D Radar View Controls - resolves #9
- Add Reset View button functionality to reset camera to default position
- Implement Auto Rotate toggle with visual feedback and button text updates
- Add Range slider (10-500km) with real-time aircraft distance filtering
- Use server-provided origin coordinates via /api/origin API endpoint
- Implement Haversine formula for accurate geographic distance calculations
- Add deferred initialization to prevent black screen issue
- Enhanced lighting and ground plane visibility for better 3D orientation
- Add comprehensive debugging and error handling for WebGL/Three.js
- Style 3D radar controls with proper CSS for consistent UI
- Remove construction notice as controls are now fully functional

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 20:22:26 +02:00
4c9215b535 fix: Gate embedded files debug output behind verbose flag
The embedded files debug output was showing on every database page visit,
cluttering the logs with unnecessary information. Made it conditional on
the -verbose flag to reduce noise in production logs.

Changes:
- Added 'debug' field to Server struct
- Updated NewWebServer constructor to accept debug parameter
- Pass verbose flag from main.go to server constructor
- Made debugEmbeddedFiles() conditional on debug flag

Now debug output only appears when -verbose flag is used, keeping
normal operation clean while preserving debugging capability.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:59:34 +02:00
11eda62e8b fix: Update SQLite driver name from 'sqlite3' to 'sqlite'
The modernc.org/sqlite package registers its driver as 'sqlite', not 'sqlite3'.
Updated the sql.Open() call to use the correct driver name.

This fixes the database connection error:
'sql: unknown driver "sqlite3" (forgotten import?)'

Verified working:
- Database initialization succeeds
- skyview-data status command works
- Main skyview server starts with database connection

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:54:24 +02:00
41c7758f69 feat: Eliminate CGO dependency by switching to pure Go SQLite
Replaced github.com/mattn/go-sqlite3 (CGO-based) with modernc.org/sqlite
(pure Go implementation) to enable CGO-free builds while maintaining
full SQLite functionality.

Benefits:
-  Cross-compilation without C compiler requirements
-  Simplified build environment (no CGO_ENABLED=1)
-  Reduced deployment dependencies
-  Easier container builds and static linking
-  Full SQLite compatibility maintained

Changes:
- Updated go.mod to use modernc.org/sqlite v1.34.4
- Updated database import to use pure Go SQLite driver
- Removed CGO_ENABLED=1 from all Makefile build targets
- Verified all binaries (skyview, beast-dump, skyview-data) build successfully

The modernc.org/sqlite package is a cgo-free port of SQLite that transpiles
the original C code to Go, providing identical functionality without CGO.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:53:07 +02:00
9381ca8f8d fix: Load all aircraft icon types to prevent fallback to circles - resolves #14
Added missing icon types (heavy, large, light, medium) to the loadIcons() function.
The icon cache was only loading 6 out of 10 available SVG icons, causing aircraft
with weight-based classifications to display as plain circles instead of proper
aircraft icons.

Fixed icon types now loaded:
-  commercial, helicopter, military, cargo, ga, ground (existing)
-  heavy, large, light, medium (newly added)

This ensures all aircraft with known ADS-B emitter categories display the correct
type-specific icons instead of falling back to generic circle markers.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:46:14 +02:00
1bf030da53 fix: Correct signal strength CSS class names to match JavaScript - resolves #12
Changed CSS class names from 'rssi-*' to 'signal-*' to match the naming
used in JavaScript code (ui-manager.js:187-190). This fixes signal strength
color indicators that were not displaying properly due to the mismatch.

Signal strength colors now work correctly:
- signal-strong: bright green (#00ff88)
- signal-good: yellow (#ffff00)
- signal-weak: orange (#ff8c00)
- signal-poor: red (#ff4444)

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 19:44:11 +02:00
049ae37c12 Merge pull request 'feat: Add SkyView logo, favicon, and branding assets' (#39) from feature/logo-and-branding-issue-38 into main
Reviewed-on: #39
2025-09-01 17:43:45 +02:00
5f0892f652 fix: Improve logo text visibility with outlines and brighter colors
Enhanced the SkyView logo text visibility against dark backgrounds:

- Changed text gradient from dark gray to bright white/light gray
- Added dark stroke outlines (3px) around text for better contrast
- Used stroke-linejoin="round" for smoother outline appearance
- Text now has white fill with dark outline for maximum visibility

This ensures the logo text is clearly readable on both light and dark
backgrounds commonly used in web applications.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 17:42:19 +02:00
49f584016e feat: Add SkyView logo, favicon, and branding assets - resolves #38
Created comprehensive branding package for SkyView including:

Assets Created:
- SVG logo with animated radar theme for header
- Multi-size favicon set (16px, 32px, 48px)
- High-resolution app icon (512x512) for mobile/desktop
- Aviation-themed radar design with animated aircraft blips

UI Updates:
- Updated HTML with proper favicon links and theme color
- Enhanced header layout to include logo alongside version info
- Added responsive CSS styling for new branding elements
- Logo features animated radar sweep and aircraft tracking theme

Technical Details:
- All assets use SVG format for scalability and crisp display
- Radar theme with cyan/blue color scheme matching app design
- Logo includes animated elements (radar sweep, blinking aircraft)
- Favicons optimized for different display sizes
- Added proper meta tags for mobile app integration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 17:39:42 +02:00
57e63975db fix: Sort sources alphabetically in UI for consistent display
Changed Sources list and dropdown to sort alphabetically by name instead of
dynamically by last data arrival time. This provides a stable, predictable
order that is less distracting during use.

- Modified updateSourcesLegend() in map-manager.js to sort sources by name
- Modified updateSourceFilter() in ui-manager.js to maintain consistent sorting
- Sources now use localeCompare() for proper alphabetical ordering

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 17:32:03 +02:00
978d1c0859 fix: Correct UTC and Last Update clock display issues
Fixes incorrect time calculations in the interface clocks:

UTC Clock Issues Fixed:
- Remove incorrect timezone offset addition that was causing wrong UTC display
- Use proper getUTCHours() and getUTCMinutes() methods directly on current time
- Ensure UTC clock shows actual UTC time for aviation coordination

Last Update Clock Issues Fixed:
- Stop using UTC methods for local "last update" time display
- Use getHours() and getMinutes() for proper local time representation
- Last update clock now shows meaningful local time when data was received

Technical Changes:
- Add useUTC parameter to updateClock() method for proper time zone handling
- Simplify time calculations by using appropriate Date methods
- Add clear comments explaining clock behavior and timezone usage

Expected Behavior:
- UTC clock displays current UTC time (aviation standard)
- Last update clock displays local time of most recent data update

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 11:19:02 +02:00
9d1dc63a9b Bump version to 0.0.11 v0.0.11 2025-09-01 10:48:44 +02:00
10b3cd3b6b Merge pull request 'fix: Implement dynamic age calculation for aircraft tracking' (#37) from fix/aircraft-age-calculation into main
Reviewed-on: #37
2025-09-01 10:34:11 +02:00
10508c2dc6 fix: Implement dynamic age calculation for aircraft tracking
Resolves issue #3 where aircraft age field was always showing 0 seconds.

Backend Changes:
- Fix MarshalJSON in merger.go to calculate age dynamically using time.Since(a.LastUpdate)
- Add comprehensive tests for age calculation in merger_test.go

Frontend Changes:
- Add calculateAge() utility method to both aircraft-manager.js and ui-manager.js
- Update popup content and aircraft table to use client-side age calculation
- Implement real-time age updates every second in app.js
- Add updateOpenPopupAges() function to refresh popup displays

Key Benefits:
- Aircraft age now shows actual seconds since last transmission
- Real-time updates in UI without requiring new WebSocket data
- Proper data staleness indicators for aviation tracking
- No additional server load - client-side calculation using last_update timestamp

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 10:29:35 +02:00
6efd673507 Merge pull request 'feat: Improve aircraft legend clarity and icon differentiation - resolves #13' (#36) from feature/improve-aircraft-legend-issue-13 into main
Reviewed-on: #36
2025-09-01 10:06:30 +02:00
2bffa2c418 style: Apply code formatting with go fmt
- Run 'make format' to ensure all Go code follows standard formatting
- Maintains consistent code style across the entire codebase
- No functional changes, only whitespace and formatting improvements
2025-09-01 10:05:29 +02:00
4fd0846127 fix: Replace simplified helicopter icon with proper detailed rotorcraft design
- Updated legend to use the actual helicopter.svg design instead of abstract simplified version
- Now shows proper helicopter with main rotor, fuselage, cockpit, tail boom, tail rotor, and landing skids
- Much more recognizable as rotorcraft in the legend display
2025-09-01 10:02:17 +02:00
7461d881cf feat: Improve aircraft legend clarity and icon differentiation
Resolves issue #13 by implementing comprehensive aircraft legend improvements:

## New Features
- **Size-based aircraft icons**: Created distinct SVG icons for light, medium, large, and heavy aircraft with progressively larger visual representations
- **Visual aircraft icons in legend**: Replaced colored squares with actual aircraft silhouettes showing relative sizes and types
- **Enhanced categorization**: Added military category to legend and improved icon selection logic

## Improvements
- **Better differentiation**: Each weight class now has a unique icon shape, not just color
- **Accurate ADS-B mapping**: Icons correctly map to decoded ADS-B emitter categories
- **Clearer legend display**: Users can now see actual aircraft shapes instead of generic colored rectangles

## Technical Changes
- Created 4 new SVG icons: light.svg, medium.svg, large.svg, heavy.svg
- Updated legend HTML to embed aircraft SVG icons inline
- Enhanced JavaScript logic to better match categories to appropriate icon types
- Simplified color mapping function for cleaner code

This addresses the original concerns about confusing legend entries and lack of visual differentiation between aircraft types.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-01 09:57:39 +02:00
93b74e3d5c fix: Update Debian package control file
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 20:21:32 +02:00
939cf135f2 docs: Rewrite and enhance CLAUDE.md development guidelines
- Add comprehensive build system documentation with Makefile targets
- Document development workflow and pre-commit checks
- Add security and safety guidelines for process management
- Include container strategy with Podman preferences
- Expand UX guidelines for mobile responsiveness
- Document command line tools (beast-dump, skyview-data)
- Add database integration requirements (CGO, SQLite)
- Enhance release management with version update requirements

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 20:20:57 +02:00
66a6b5b9a2 fix: Enable CGO for SQLite3 database support v0.0.10
- Set CGO_ENABLED=1 in Makefile for all build targets
- Set CGO_ENABLED=1 in Debian build script
- Resolves "go-sqlite3 requires cgo to work" runtime error
- Ensures proper SQLite3 database functionality

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 20:09:50 +02:00
779384b748 fix: Correct systemd configuration and Debian package setup v0.0.9
- Fix database update service to include config path parameter
- Move ConditionACPower from [Timer] to [Unit] section in timer config
- Add database directory to ReadWritePaths in main service
- Set explicit database path in Debian package config template
- Simplify postinst script to be quiet and use consistent skyview-adsb user
- Update README.Debian with comprehensive systemd service documentation
- Remove confusing dual-user setup in favor of single skyview-adsb user

SystemD Configuration Summary:
- Main service: skyview-adsb.service with database pre-update
- Database service: skyview-database-update.service (oneshot)
- Weekly timer: skyview-database-update.timer (Sunday 3AM with randomization)
- All services use skyview-adsb user consistently
- Database path: /var/lib/skyview-adsb/skyview.db
- Config path: /etc/skyview-adsb/config.json

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:59:29 +02:00
0b0de87be0 Merge pull request 'feat: Enhanced database status monitoring and configuration management' (#34) from feature/sqlite-database-integration into main
Reviewed-on: #34
2025-08-31 19:45:26 +02:00
d80bb3a10f docs: Update DATABASE.md with comprehensive schema and usage documentation
- Document complete database schema including aircraft history and callsign cache
- Add external data source tables and relationships
- Include optimization and maintenance procedures
- Document indexes, performance considerations, and storage requirements
- Provide examples of database queries and operations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:44:15 +02:00
8019049c63 feat: Enhance web interface with database integration and callsign management
- Add callsign management module for enhanced aircraft information
- Integrate database status display in web interface
- Update aircraft manager with database-backed callsign resolution
- Enhance user interface with database connectivity indicators
- Add embedded asset management for new database interface components

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:43:58 +02:00
5733209251 test: Add comprehensive test suite for database functionality
- Add unit tests for database operations and optimization
- Test external data source loading and caching
- Add callsign manager functionality tests
- Create test helpers for database testing utilities
- Ensure database reliability and performance validation

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:43:41 +02:00
0f16748224 feat: Enhance core database functionality and optimization
- Add comprehensive database optimization management
- Enhance external data source loading with progress tracking
- Add optimization statistics and efficiency calculations
- Update Go module dependencies for database operations
- Implement database size and performance monitoring

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:43:24 +02:00
7b16327bd2 docs: Update README with database management and configuration sections
- Add database management commands and optimization examples
- Reference new CONFIGURATION.md documentation
- Update systemd service references to use skyview-adsb
- Enhance skyview-data status command with optimization statistics

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:40:44 +02:00
55776939ae docs: Add comprehensive configuration documentation
- Create detailed CONFIGURATION.md covering all SkyView settings
- Document external aviation data sources (OpenFlights, OurAirports)
- Explain origin vs sources distinction for map center vs receivers
- Include privacy controls, database optimization, and validation
- Provide environment-specific configuration examples
- Cover database management commands and troubleshooting

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:40:29 +02:00
ce7710d1b4 feat: Add comprehensive database status web interface
- Create /database page showing database statistics, size, and location
- Display storage efficiency, page statistics, and optimization info
- Show external data sources with license information and load status
- Include auto-refresh functionality and navigation links
- Implement CSS overrides to fix scrolling issues

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:40:12 +02:00
96f90b1543 feat: Enhance database status API with comprehensive information
- Add database file size, path, and modification timestamp to /api/database/status
- Include storage efficiency metrics and page statistics
- Add optimization statistics using database manager
- Import "os" package for file system operations

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:39:56 +02:00
d0dfd3ed46 fix: Correct callsign database column name from cache_expires to expires_at
- Fix SQL queries in ClearExpiredCache() and GetCacheStats() functions
- Resolves "no such column: cache_expires" database error
- Column name now matches schema definition in migrations.go

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:39:41 +02:00
d7e0a8ee68 fix: Update systemd services to use skyview-adsb user consistently
- Change User and Group from 'skyview' to 'skyview-adsb' in service files
- Update ReadWritePaths in database update service accordingly
- Add external data source configuration to example config

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 19:39:23 +02:00
37c4fa2b57 feat: Add SQLite database integration for aircraft history and callsign enhancement
- Implement comprehensive database package with versioned migrations
- Add skyview-data CLI tool for managing aviation reference data
- Integrate database with merger for real-time aircraft history persistence
- Support OurAirports and OpenFlights data sources (runtime loading)
- Add systemd timer for automated database updates
- Fix transaction-based bulk loading for 2400% performance improvement
- Add callsign enhancement system with airline/airport lookups
- Update Debian packaging with database directory and permissions

Database features:
- Aircraft position history with configurable retention
- External aviation data loading (airlines, airports)
- Callsign parsing and enhancement
- API client for external lookups (OpenSky, etc.)
- Privacy mode for complete offline operation

CLI commands:
- skyview-data status: Show database statistics
- skyview-data update: Load aviation reference data
- skyview-data list: Show available data sources
- skyview-data clear: Remove specific data sources

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 16:48:28 +02:00
cd51d3ecc0 Merge pull request 'Implement transponder code (squawk) lookup and textual descriptions (Issue #30)' (#33) from feature/transponder-lookup-issue-30 into main
Reviewed-on: #33
2025-08-31 12:08:13 +02:00
62ace55fe1 Implement transponder code (squawk) lookup and textual descriptions
Resolves #30

- Add comprehensive squawk code lookup database with emergency, standard, military, and special codes
- Implement squawk.Database with 20+ common transponder codes including:
  * Emergency codes: 7700 (General Emergency), 7600 (Radio Failure), 7500 (Hijacking)
  * Standard codes: 1200/7000 (VFR), operational codes by region
  * Special codes: 1277 (SAR), 1255 (Fire Fighting), military codes
- Add SquawkDescription field to Aircraft struct and JSON marshaling
- Integrate squawk database into merger for automatic description population
- Update frontend with color-coded squawk display and tooltips:
  * Red for emergency codes with warning symbols
  * Orange for special operations
  * Gray for military codes
  * Green for standard operational codes
- Add comprehensive test coverage for squawk lookup functionality

Features:
- Visual emergency code identification for safety
- Educational descriptions for aviation enthusiasts
- Configurable lookup system for regional variations
- Hover tooltips with full code explanations
- Graceful fallback for unknown codes

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 12:02:02 +02:00
a63d8d5cd7 Bump version to 0.0.8 v0.0.8
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 11:43:57 +02:00
ec676f678a Merge pull request 'Fix issue #21 and add aircraft position tracking indicators' (#29) from feature/position-tracking-fixes into main
Reviewed-on: #29
2025-08-31 11:41:48 +02:00
4715e8ef4e Fix Beast decoder to set PositionValid flag when position is decoded
The Beast decoder was not setting PositionValid=true after successfully
decoding aircraft positions, causing position tracking statistics to
show 0 positioned aircraft even when aircraft had valid coordinates.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 11:40:52 +02:00
66a995b4d0 Fix issue #21 and add aircraft position tracking indicators
- Fix Debian package upgrade issue by separating upgrade vs remove behavior in prerm script
- Add aircraft position tracking statistics in merger GetStatistics() method
- Update frontend to display position tracking indicators in both header and stats view
- Format Go code to maintain consistency

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 11:25:42 +02:00
0db12a1ddc Update Debian package description to include VRS JSON support 2025-08-31 11:14:35 +02:00
276c51517f Bump version to 0.0.7 for VRS JSON support release v0.0.7 2025-08-31 11:13:14 +02:00
1476d50f97 Merge pull request 'Add VRS JSON format support for readsb integration' (#28) from feature/vrs-json-support into main
Reviewed-on: #28
2025-08-31 11:11:18 +02:00