• v1.8.0 7a669767f5

    brian released this 2026-08-23 21:59:34 +00:00 | 6 commits to main since this release

    Bug Fixes

    Puzzle Piece Stuck/Locked Bug (v1.0.1)

    • Fixed pieces getting stuck in wrong positions when dragged from tray to puzzle area
    • Fixed pieces becoming unmovable after being returned to tray via "Return unlocked pieces to tray" button
    • Root cause: cross-coordinate-system snapping between tray and board pieces
    • Fixed trySnapNeighbors to skip tray and locked neighbors
    • Fixed checkAndLockCluster to skip tray pieces when checking lock conditions
    • Fixed lockCluster to skip tray pieces
    • Fixed trayAllUnlocked to properly reset piece clusters
    • Added cluster isolation when picking up pieces from tray or board
    • Added 8 new Playwright E2E tests to prevent regression
      Wall of Glory Drag & Resize (v1.4.0 → v1.4.8)
    • Fixed frames not responding to drag or resize interactions
    • Root cause: PIXI stage was not receiving pointer events
    • Fixed by setting stage.eventMode = 'static' and stage.hitArea = app.screen
    • Fixed async React state issue in drag/resize handlers by passing itemId directly
    • Switched from WebGL to Canvas2D renderer (pixi.js-legacy) to resolve persistent WebGL context loss crashes
    • Added puzzle piece outlines (light white lines at 30% opacity) to framed puzzles in gallery

    New Features

    App Rename (v1.0.2)

    • Renamed application from "Puzzle Platform" to "Get Puzzles" across all pages
      Add to Wall of Glory (v1.0.3)
    • Added "Add to Wall of Glory" button on puzzle completion modal
    • Users can now add completed puzzle photos directly to their gallery from the completion screen
      Social Sharing (v1.1.0)
    • Share individual completed puzzles via public links
    • Share entire Wall of Glory gallery via public links
    • Per-puzzle toggle to allow viewers to see the full gallery
    • View count tracking for shared content
    • Public share pages with puzzle stats (piece count, solve time, hints used)
    • Interactive PixiJS gallery on shared gallery pages
    • Audit logging for all share actions
    • 18 new backend tests for share functionality

    Wall of Glory Enhancements (v1.2.0)

    • Gallery now shows only completed puzzles (status='solved'), not all photos
    • Added proportional scaling with resize handles on puzzle frames
    • Frames constrained to canvas bounds (cannot be dragged off-canvas)
    • Added puzzle piece outlines to framed puzzles (light white lines showing piece boundaries)
    • Modal shows puzzle piece count and completion date
      Automatic Database Migrations (v1.3.0)
    • Added docker/run-migrations.sh script for automatic migration execution
    • Migrations tracked in schema_migrations table to prevent re-running
    • Migrations run automatically on container startup
    • All migrations are idempotent (safe to run multiple times)
    • No manual database intervention required for updates
      Gallery Background Customization (v1.5.0 → v1.7.0)
    • Custom Color Picker: Added "Custom Color" option with color picker input and hex value display
    • Wood Grain Texture: Realistic wood grain pattern with wavy lines, color variations, and random knots
    • Cinder Block Texture: Realistic cinder block pattern with alternating rows, mortar lines, and subtle color variations per block
      Gallery Preference Persistence (v1.8.0)
    • Selected background style persists across browser sessions via localStorage
    • Custom color choice persists across browser sessions via localStorage
    • Preferences automatically load on page visit

    Technical Changes

    • Added pixi.js-legacy package for stable Canvas2D rendering
    • Added shared_puzzles and shared_galleries database tables
    • Added puzzle_id column to wall_items table
    • Added GET /api/photos/:id/encrypted endpoint for client-side decryption
    • Added GET /api/share/puzzle/:token and GET /api/share/gallery/:token public endpoints
    • Added GET /api/user/encryption endpoint for encryption status
    • Added PUT /api/share/puzzle/:id and DELETE /api/share/puzzle/:id endpoints
    • Added PUT /api/user/encryption/change endpoint for passphrase changes with re-encryption
    • Added docker/run-migrations.sh and backend/migrations/ directory
    • Updated Dockerfile to include migration files and runner script
    • Updated init.sql with all new tables and indexes

    Test Coverage

    • 128 backend tests (up from 106)
    • 46 frontend unit tests
    • 8 new Playwright E2E tests for piece stuck bug
    • 18 new tests for social sharing functionality
    • All existing tests continue to pass

    Docker Images

    Version Description
    1.0.1 Fix stuck pieces bug
    1.0.2 Rename to Get Puzzles
    1.0.3 Add to Wall of Glory button
    1.1.0 Social sharing
    1.2.0 Wall of Glory polish
    1.3.0 Automatic migrations
    1.4.x Gallery drag/resize fixes
    1.5.0 Custom color picker
    1.6.0 Wood grain texture
    1.7.0 Cinder block texture
    1.8.0 Persist gallery preferences <- Latest

    Downloads