From cb387e8d128af46918e2e7431270c9acba71ee39 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 9 Jun 2026 23:41:00 -0700 Subject: [PATCH] Prep v1.1.0 release: version string, gitignore secrets, docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add VERSION = "1.1.0" to server.py; print at startup, expose via public GET /api/config, and show it in the admin header (so deployed == released is verifiable at a glance). - Ignore config.json in .gitignore — it holds the admin password hash and session secret; fresh installs use config.json.example. - README/CLAUDE.md: document the in-app pixel editor (now with shape tools, select/move, reference overlay, custom/recent palettes), the receiver health dashboard, 9 sprite types, and the asset cache-busting convention. - Bump admin asset cache-bust to ?v=20260609d. Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 5 +++-- CLAUDE.md | 10 +++++++--- README.md | 6 ++++-- admin/admin.css | 9 +++++++++ admin/admin.html | 8 ++++---- admin/admin.js | 12 ++++++++++++ server.py | 5 ++++- 7 files changed, 43 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index da1f875..25215dc 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,6 @@ __pycache__/ .DS_Store Thumbs.db -# Local config (uncomment if you want to ignore local changes) -# config.json +# Local config — contains the admin password hash and session secret. +# Fresh installs start from config.json.example (see CONFIG.md). +config.json diff --git a/CLAUDE.md b/CLAUDE.md index 5806c6c..ee5587f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -48,11 +48,15 @@ Access at http://localhost:{web_port} (configured in config.json) - **admin/** - Admin panel (login + tabbed settings UI) - Theme management: rename display names, upload per-direction background PNGs, create new themes - Display names stored in `config.json` `theme_names` map (folder name -> display name) + - Receivers tab: live per-receiver health (via `GET /api/admin/receiver-status` and `POST /api/admin/test-receivers`), a select → SAVE & APPLY → auto-test flow, selectable scan results, and a per-interface scan selector + - Version (from `server.py` `VERSION`) is surfaced via public `GET /api/config` and shown in the admin header - **pixel-editor.js** - In-app Canvas2D pixel editor (Sprites tab "EDIT" button) - - Edits sprites at native 500x333; tools: pencil, eraser, color picker, fill bucket, pan - - Zoom/pan, undo/redo (snapshot-per-stroke), grid overlay, retro palette + native color input + - Edits sprites at native 500x333; tools: pencil, eraser, color picker, fill bucket, pan, line, rectangle, ellipse (outline/filled), rectangular select + - Select & move: marquee + floating layer, drag/arrow-nudge, Ctrl+C/X/V clipboard, Delete, Enter/Esc commit + - Zoom/pan, undo/redo (snapshot-per-stroke), grid overlay, brush size & opacity, retro + custom (localStorage) + recent palettes, adjustable reference-image overlay - Exports a 500x333 PNG via `srcCanvas.toBlob` and POSTs to the existing `/api/admin/sprites/{type}` upload endpoint (no new server route) - - Keyboard: B/E/I/F tools, Space=pan, +/-/0 zoom, Ctrl+Z/Y undo/redo, G grid, Esc close + - Keyboard: B/E/I/F/L/R/O/M tools, Space=pan, +/-/0 zoom, Ctrl+Z/Y undo/redo, Ctrl+C/X/V, arrows nudge, G grid, Esc close + - **Asset cache-busting:** `admin.html` references `admin.css`/`admin.js`/`pixel-editor.js` with a `?v=YYYYMMDD[x]` query — bump it whenever those files change so browsers reload them - **setup/** - First-run setup wizard (multi-step configuration) diff --git a/README.md b/README.md index 8230430..97720a1 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,16 @@ A retro SNES-style side-view flight tracker that displays ADS-B aircraft data wi ## Features - Real-time aircraft tracking via ADS-B receivers -- Custom pixel art sprites for 6 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter) +- Custom pixel art sprites for 9 aircraft types (small prop, regional jet, narrow body, wide body, heavy, helicopter, balloon, glider, UAV) - Animated sun and moon with accurate astronomical positions - Dynamic sky colors based on time of day - Weather visualization with cloud sprites - Directional view (N/E/S/W) with themed backgrounds -- Auto-discovery of ADS-B receivers on your network +- Auto-discovery of ADS-B receivers on your network, with per-interface scanning - Canvas-based 10 FPS retro rendering - Admin panel with password authentication +- **In-app pixel editor** — draw and edit sprites in the browser (pencil, shapes, fill, select & move, reference overlay, custom palettes) +- **Receiver health dashboard** — live per-receiver status (receiving / no data / unreachable), connection testing, and select → save → apply flow - First-run setup wizard ## Quick Start diff --git a/admin/admin.css b/admin/admin.css index 7e02dc8..08ca465 100644 --- a/admin/admin.css +++ b/admin/admin.css @@ -169,6 +169,15 @@ textarea { margin: 0; } +.admin-version { + font-family: 'Courier New', monospace; + font-size: 11px; + color: #54fc54; + text-shadow: none; + margin-left: 6px; + vertical-align: middle; +} + .header-actions { display: flex; gap: 8px; diff --git a/admin/admin.html b/admin/admin.html index b867ea6..73646a8 100644 --- a/admin/admin.html +++ b/admin/admin.html @@ -7,7 +7,7 @@ - + @@ -27,7 +27,7 @@