Skip to content

Open Tabletop 0.20.0

Choose a tag to compare

@github-actions github-actions released this 27 Sep 23:07
· 45 commits to main since this release

Upgrade notes

  • From 0.19.0, startup applies additive migration 022_notecard_templates.sql using the existing
    migration-role connection. If automatic migration is disabled, apply pending migrations with
    the schema-owner connection before starting this version.
  • Restart the server and refresh all browsers. Source installs should run npm ci first.
    Existing assets and saved games remain compatible; no new service, environment variable or
    exposed port is required. See upgrade instructions.

Added

  • Rearranged notecard editor and custom drawing ink. Desktop editing controls sit beside the
    card, with single-row shape and view toolbars using shared compact controls. Phone layouts stack
    the card above placement actions. A native color swatch selects custom drawing ink, and Text
    toggles its settings below Undo/Redo/Clear, returning to the previous drawing tool when closed.
    Restart the server and refresh browsers to enable custom ink validation.
  • Restricted private notecard passing. Only Helpers, GMs and room owners can send notecards
    privately; ordinary active players can still receive them. Server checks cover existing cards
    and new template drafts, including role changes during editing. Regular-player editors hide
    the recipient/pass row while keeping hand and table placement available.
  • Portrait and landscape notecards. Choose orientation in the private editor with compact
    Tabler controls. Existing ink and text fit proportionally, with Undo/Redo; orientation follows
    templates, hands, private passing, Show, stack entries and saved games. Shared dimensions keep
    meshes, physics and collider diagnostics aligned. Older content defaults to landscape. Restart
    the server and refresh browsers; no database migration is needed for this extension.
  • Saveable notecard templates. Save paper, ink and editable text to your account, private by
    default, with optional sharing across the server. Library templates create independent private
    drafts or face-down stacks; owners and site admins can rename, replace, change sharing or delete
    templates. Revision checks prevent stale overwrites, and failed saves/placements preserve drafts.
    Includes a collapsible Notecard Templates section under Boards, Mats & Notecards, using shared Library card styles,
    two desktop columns, always-visible thumbnails, and compact Tabler controls. Migration 022 adds
    template storage; restart the server and refresh browsers after upgrading.
  • Editable notecard text boxes. Add up to eight multiline boxes with size, ink color and
    alignment; move them and resize their wrapping width with mouse, touch or keyboard. Text stays
    above ink and remains editable through hands, private passing, Show, stacks and saves. Shared
    Undo/Redo covers ink and text; Eraser/Clear ink preserve text. Includes the approved Tabler
    controls, accessible box selection and an overflow warning that keeps the draft open.
  • Notecard paper styles and drawing helpers. Choose blank, ruled, grid or dotted paper in
    ivory, white or pale yellow. Each card retains its paper through hands, private passing,
    Show, stacks and saves; concealed backs remain indistinguishable. Line, rectangle and ellipse
    tools create single undoable strokes, with a Constrain toggle/Shift for 45° lines, squares
    and circles. Eraser/Clear affect ink only. Includes keyboard cursor drawing and the approved
    Tabler icons; older saves default to blank ivory paper.
  • Notecard stacks. Spawn 2–16 blank notecards as a finite stack, draw privately to hand or
    editor, return edited artwork to the top, play the top face-down, shuffle, split, and combine
    selected loose notecards/stacks. Contents and order remain server-private and survive saves;
    contained cards count toward the existing 16-notecard room limit. Includes the approved
    Tabler controls, keyboard stack-menu access, focus navigation and accessible hints.
  • Drawable notecards. Spawn individual landscape notecards from the Library, privately draw
    with mouse/touch/pen using colors, pen widths, eraser and undo/redo, then place face-up or
    face-down. A single editor reserves each card; concealed artwork stays server-side, and
    committed drawings survive scene/game saves. Cancel or interrupted editing preserves the
    previous artwork. Includes an undoable Clear and spectator-safe public inspection.
  • Notecard zoom/pan and private hands. Wheel or pinch to zoom, pan with a tool or two
    fingers, and reset with Fit card. Keep drawings in account-owned hands, reopen/edit them,
    play them face-up/down, or pass them privately to an active player. Reuses hand saves,
    reconnects, reorder and selective Show; failed transfers retain inventory and drafts.
    Drawing controls use the user-approved Tabler icon set with compact-mode labels/tooltips.

Changed

  • Rename the two human placard choices to Type 1 and Type 2, preserving saved selections.
  • Library exports use a brief bottom-center toast instead of a persistent message above the
    assets. Desktop source and collection filters now share sizing, typography and borders in
    compact/full modes; the tested touch layout is preserved.
  • Grouped Library browsing. Six tabs contain collapsible Decks/Tiles, Dice/Objects/Dispensers,
    Boards/Mats/Notecards, Games/Scenes, Skyboxes and collection management. Search still spans
    asset categories, reveals matching collapsed sections and restores their previous state when
    cleared. Select operates across visible sections. The Filters funnel exposes source choices
    and personal collection visibility; Show all/none still leaves Uncollected independent.
    ZIP/JSON importing now opens a separate dialog; exports report status through the shared toast.
    Existing template scope/pagination and server permissions are preserved. The user confirmed
    functional browsing and good mobile layout, then accepted the follow-up toast/desktop filter
    styling and tile classification fix.
  • Replace the built-in procedural Marbled finish with Behrtron's CC0 white-marble texture.
    Preserve the supplied 4K source; render with one shared 512px WebP, retain colored dice and
    numbering, and wait for marble loading before generating finish previews. Remove the old
    per-color procedural marble caches.
  • Add independent code tuning for built-in coin/coin-stack metallic metalness and roughness
    in PROPS.coin.finishTuning.metallic; dice keep the FINISHES.metallic settings. Other
    selected coin finishes retain their normal response. Tune metallic dice to metalness 0.75
    while coins retain 1.0.

Fixed

  • Custom tile assets now appear in the Library's Tiles section. Deck listings include the
    existing tile flag, preserving classification for public and private assets without reimporting.
    Restart the server and refresh browsers; no database migration is needed.
  • Stabilize the notecard browser regression by retaining the held mouse button during CDP
    drag moves; assert the first stroke commits before testing zoom/pan. Fixes intermittent CI
    cancellation of the synthetic stroke.
  • Restore generated library thumbnails on Safari by accepting PNG canvas-export fallback as
    well as WebP. Covers 3D models/boards, dice, built-in cards and tile sets while retaining
    bounded thumbnail dimensions and rendering-resource cleanup.
  • Reduce generated dice textures to 256px on Low/Medium and 512px on High. Share polyhedral
    number masks across ink colors; release replaced/removed dice and inspection previews, including
    their owned canvases and late model loads. Dispose generated dice thumbnails and temporary
    thumbnail canvases; defer dice thumbnails until visible in the library.
  • Load bundled and uploaded skyboxes at the selected Low/Medium/High resolution through cached
    WebP derivatives, avoiding full-image download/decode before downscaling on iPad. Ultra preserves
    original sources; legacy URLs retain local downscaling. Release downscaled sky canvases on swap.
    Restart the server and refresh browsers to use the new sky derivative variants. No migration.

Documentation

  • Record successful user testing and commit approval for editable notecard text boxes.
  • Record successful user testing and commit approval for notecard stacks.
  • Require an approved mock-up or example before adding, modifying or removing UI elements;
    document accessibility expectations for keyboard use, focus, accessible labels, hints and touch.
  • Record user approval of drawable notecards, zoom/pan, private hands and the compact icon set.
  • Require concrete Tabler icon options and user selection during UI work, with compact-mode
    accessibility and shared icon/sprite integration recorded in AGENTS.md.
  • Record user-confirmed iPad performance improvement after the dice/sky memory fixes and
    successful library-thumbnail verification after the PNG fallback fix.
  • Record successful user-reported 0.19.0 deployment tests on Docker, bare metal and Proxmox,
    along with successful asset-pack uploads.