Commit graph

102 commits

Author SHA1 Message Date
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
15778ba6ec Clean up temporary VRS test files 2025-08-31 11:02:43 +02:00
073acb7304 Add VRS JSON format support for readsb integration
Added comprehensive support for VRS (Virtual Radar Server) JSON format
as a simpler alternative to Beast binary protocol, enabling integration
with readsb --net-vrs-port output.

## Key Features:
- **VRS JSON Parser**: Stream parsing of newline-delimited JSON aircraft data
- **VRS Client**: TCP client with automatic reconnection and error recovery
- **Mixed Format Support**: Use Beast and VRS sources simultaneously
- **Enhanced Aircraft Data**: Added VRS-specific fields (registration, type, operator)
- **Position Source Tracking**: Identifies ADS-B, MLAT, TIS-B, and satellite positions

## Implementation:
- `internal/vrs/parser.go`: VRS JSON message parsing and validation
- `internal/client/vrs.go`: VRS TCP client implementation
- Enhanced `MultiSourceClient` to support both Beast and VRS formats
- Extended `Aircraft` struct with validity flags and additional metadata
- Updated configuration to include `format` field ("beast" or "vrs")

## Testing:
- Successfully tested against svovel:33005 VRS JSON stream
- Verified aircraft data parsing and position tracking
- Confirmed mixed-format operation with existing Beast clients

## Documentation:
- Updated README.md with VRS format configuration examples
- Enhanced ARCHITECTURE.md with VRS parser documentation
- Added data format comparison and configuration guide

This enables simpler integration with modern readsb installations while
maintaining full backward compatibility with existing Beast deployments.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-31 11:02:27 +02:00
3d92ce4481 Bump version to 0.0.6 v0.0.6
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 10:59:33 +02:00
b5210faa96 Merge pull request 'Fix aircraft track orientation propagation to web frontend' (#26) from fix/issue-23-track-propagation into main
Reviewed-on: #26
2025-08-25 10:49:55 +02:00
1fe15c06a3 Fix aircraft track propagation issues in web frontend
This commit addresses issue #23 where aircraft track changes were not
propagating properly to the web frontend. The fixes include:

**Server-side improvements:**
- Enhanced WebSocket broadcast reliability with timeout-based queueing
- Increased broadcast channel buffer size (1000 -> 2000)
- Improved error handling and connection management
- Added write timeouts to prevent slow clients from blocking updates
- Enhanced connection cleanup and ping/pong handling
- Added debug endpoint /api/debug/websocket for troubleshooting
- Relaxed position validation thresholds for better track acceptance

**Frontend improvements:**
- Enhanced WebSocket manager with exponential backoff reconnection
- Improved aircraft position update detection and logging
- Fixed position update logic to always propagate changes to map
- Better coordinate validation and error reporting
- Enhanced debugging with detailed console logging
- Fixed track rotation update thresholds and logic
- Improved marker lifecycle management and cleanup
- Better handling of edge cases in aircraft state transitions

**Key bug fixes:**
- Removed overly aggressive position change detection that blocked updates
- Fixed track rotation sensitivity (5° -> 10° threshold)
- Enhanced coordinate validation to handle null/undefined values
- Improved WebSocket message ordering and processing
- Fixed marker position updates to always propagate to Leaflet

These changes ensure reliable real-time aircraft tracking with proper
position, heading, and altitude updates across multiple data sources.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 10:14:03 +02:00
8ffb657711 Remove generated changelog.gz from version control
The debian/usr/share/doc/skyview-adsb/changelog.gz file is automatically
generated during the Debian package build process and should not be
tracked in version control. It's created fresh from git history each
time the package is built.

- Removed changelog.gz from git tracking
- Added to .gitignore to prevent re-addition
- Ensures clean builds without git conflicts

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 08:53:21 +02:00
f13f1da2a3 Bump version to 0.0.5 v0.0.5
New release includes:
- Renamed Debian package from skyview to skyview-adsb to avoid conflicts
  with NASA's SkyView Virtual Observatory package
- Implemented incremental changelog generation for Debian packages
  showing complete version history

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 08:43:57 +02:00
a5faddf900 Merge pull request 'Implement incremental changelog generation for Debian packages' (#25) from feature/incremental-changelog into main
Reviewed-on: #25
2025-08-25 08:38:30 +02:00
7c9f7dc8c9 Implement incremental changelog generation for Debian packages
Fixes #22: Improve Debian package changelog to show incremental version history

The Debian package changelog now includes the complete version history
instead of just changes since the previous release. This provides users
with full visibility into the software's evolution when reviewing
package updates.

Changes:
- Rewrote changelog generation to iterate through all git tags
- Generate entries for each tagged version in reverse chronological order
- Include current development version if commits exist after latest tag
- Fixed shellcheck warnings for better script quality
- Added -f flag to gzip to force overwrite existing changelog.gz files

Benefits:
- Complete version history visible in every package
- Standard Debian changelog format compliance
- Better integration with apt changelog and dpkg tools
- Improved transparency for users reviewing updates
- Proper audit trail for administrators

The changelog now shows all versions with their respective changes,
making it easier for users to understand what has changed between
their installed version and the available update.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 08:32:43 +02:00
be5369c195 Rename Debian package from skyview to skyview-adsb
The official Debian repositories already contain a package named
"skyview" which is associated with NASA's SkyView Virtual Observatory
(https://skyview.gsfc.nasa.gov/), a tool for astronomical data
visualization.

To avoid package naming conflicts and potential confusion for users,
this commit renames our ADS-B aircraft tracking application package
to "skyview-adsb". This clearly indicates the package's purpose
(ADS-B tracking) while maintaining the SkyView brand identity.

Changes:
- Package name: skyview → skyview-adsb
- System user/group: skyview → skyview-adsb
- Config directory: /etc/skyview → /etc/skyview-adsb
- Data directory: /var/lib/skyview → /var/lib/skyview-adsb
- Log directory: /var/log/skyview → /var/log/skyview-adsb
- Systemd service: skyview.service → skyview-adsb.service
- Documentation path: /usr/share/doc/skyview → /usr/share/doc/skyview-adsb

The binaries (/usr/bin/skyview and /usr/bin/beast-dump) remain
unchanged as they don't conflict at the filesystem level.

This ensures clean installation alongside any existing skyview
packages and prevents apt/dpkg conflicts during installation.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-25 08:23:11 +02:00
61b735b226 Correct algorithm development description to reflect iterative process
Update study to accurately reflect that complex algorithms like CPR decoding
required multiple iterations, but the speed of these iterations far exceeded
manual development cycles - completing refinements in hours vs days/weeks.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 23:46:23 +02:00
97a30b4274 Add AI development acceleration study documenting 40-56x speedup
Comprehensive analysis comparing traditional development estimates (6-8 weeks)
against actual AI-assisted timeline (1 day). Documents complete elimination
of manual coding requirement and transformation from implementation-focused
to requirements-focused development paradigm.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 23:43:11 +02:00
65d602a6f8 Update architecture documentation to reflect in-memory ICAO database
Remove outdated SQLite references and update documentation to accurately
describe the current in-memory ICAO allocation database implementation
with binary search lookups.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 23:28:08 +02:00
a5e542844f Bump version to 0.0.4 v0.0.4
Release includes critical CPR position decoding fix that resolves
systematic eastward bias in aircraft positioning.

Changes:
- Updated Debian control file version
- Updated web UI version display

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 23:14:23 +02:00
60ba5ae825 Merge pull request 'Fix CPR zone ambiguity causing systematic eastward position bias' (#20) from fix/cpr-zone-ambiguity into main
Reviewed-on: #20
2025-08-24 23:10:48 +02:00
cb79e0b3b7 Fix CPR zone ambiguity causing systematic eastward position bias
This addresses Issue #18 by correcting the CPR global decoding algorithm
implementation that was causing aircraft to appear tens of kilometers
east of their actual positions.

Root Cause:
- CPR longitude zone calculation always used NL-1 regardless of frame type
- Specification requires: even frames use NL zones, odd frames use NL-1 zones
- This caused systematic eastward displacement for all aircraft positions

Changes:
- Implement frame-consistent zone calculations per RTCA DO-260B specification
- Even frame (i=0): ni = max(1, NL - 0) = max(1, NL)
- Odd frame (i=1): ni = max(1, NL - 1)
- Add comprehensive documentation with authoritative source references
- Ensure latitude and longitude use same frame choice for consistency

Testing:
- Aircraft south of Oslo now appears correctly (was near Skarlandsvatnet)
- Aircraft north of Oslo should now appear correctly (was east of Lillestrøm)
- Systematic eastward bias eliminated

References:
- RTCA DO-260B / EUROCAE ED-102A: ADS-B Performance Standards
- ICAO Annex 10, Volume IV: Surveillance Systems
- "Decoding ADS-B position" by Edward Lester
- PyModeS reference implementation

Fixes #18

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 23:07:56 +02:00
b0a5ab412b Add DEBIAN/conffiles to protect configuration files during upgrades
Added conffiles entry for /etc/skyview/config.json to ensure that user
customizations are preserved during package upgrades. This follows
Debian packaging best practices for configuration file handling.

The conffiles mechanism will:
- Prevent overwrites of modified config files during upgrades
- Prompt users for action when package config differs from local config
- Maintain backup files (.dpkg-old, .dpkg-new) for reference

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 22:08:13 +02:00
2d7fda717c Bump version to 0.0.3 v0.0.3
Update all version references in preparation for v0.0.3 release:
- Debian package control file
- Manual pages for skyview and beast-dump
- Web interface header display
- README installation instructions
- Documentation examples

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-24 21:59:46 +02:00