Admin: in-app sprite pixel editor + receiver health UX & restart-crash fix #6
Reference in New Issue
Block a user
Delete Branch "feature/pixel-editor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two areas of work, verified end-to-end against a live receiver.
1. In-app pixel editor for sprites (closes #5)
Dependency-free Canvas2D editor in the Sprites tab (EDIT button): pencil/eraser/picker/fill/pan, zoom & pan, undo/redo, grid overlay, load existing, export 500x333 PNG. Reuses the existing sprite upload endpoint — no new server route.
2. Receiver management overhaul
GET /api/admin/receiver-statusandPOST /api/admin/test-receivers.3. Critical fix — server crash on receiver restart
Receiver tasks were awaited in
main()'s top-levelasyncio.gather; restarting receivers cancelled them and theCancelledErrorkilled the whole server process. Receiver tasks now run independently and are cancelled/awaited withreturn_exceptions=True.Also: cache-bust admin assets (
?v=) so updates load without a manual hard-refresh.🤖 Generated with Claude Code
Build a dependency-free Canvas2D pixel editor integrated into the admin Sprites tab. Each sprite card gains an EDIT button that opens a full-screen editor for the sprite at its native 500x333 resolution. Tools: pencil (1-8px brush, Bresenham interpolation), eraser, color picker (palette + native input + pick-from-canvas), fill bucket (flood fill), pan. Features: cursor-centered zoom, space-drag pan, undo/redo (snapshot per stroke), pixel grid overlay, transparency checkerboard, load existing sprite, and keyboard shortcuts (B/E/I/F, Space, +/-/0, Ctrl+Z/Y, G, Esc). Export reuses the existing POST /api/admin/sprites/{type} upload endpoint via srcCanvas.toBlob, so no server changes are required. Closes #5 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>Add in-app pixel editor for sprites in admin UIto Admin: in-app sprite pixel editor + receiver health UX & restart-crash fix