github dmellok/tesserae v0.71.2

latest releases: mcp-v0.14.0, mcp-v0.13.0, relay-v0.1.0...
one month ago

Fixed

  • Full-bleed cells now honour the gap between neighbouring cells.
    v0.71.1's render.full_bleed handling skipped padding entirely,
    which made the status bar sit flush against the widgets below it
    (no visible matting even at large gap settings). Full-bleed now
    only drops the outer padding (edges touching the panel wall);
    inner padding between the cell and its neighbours still applies,
    so the gap slider stays visible around the bar.
  • Palette / tone editor no longer disappears from the Calibration
    tab after a save (issue #52 follow-up).
    The section is gated on
    palette_profile_slug resolving to a real profile; if the slug
    got into a state where it pointed at nothing (fresh install with no
    applied profile, or a stale slug from a deleted user profile), the
    whole palette + tone block vanished from the DOM. _palette_profile_slug_for
    now self-heals: on any read where the device has a supported
    gamut (Spectra 6 or Inky 7-colour) and the stored slug is empty or
    unresolvable, it backfills the family's default bundled slug and
    persists it. Devices whose gamut has no matching family (mono,
    bwry_4, rgb24, rgb16) are still passed through untouched.
  • Manual re-add after device delete now wipes leftover state
    (issue #48 follow-up).
    The discovery path already wiped orphan
    state on a MAC-differs signal, but the manual "Add device" form has
    no MAC to compare, so re-adding a device under the same id kept
    dashboards / history / per-device settings from the previous
    instance. devices_add now looks up the delete-marker for the
    target id and, when one exists, calls wipe_orphan_state before
    creating the new instance so the new device starts pristine.

Changed

  • History status label renamed "delivered" → "pushed" (discussion
    #62).
    The chip on the History timeline reflected the server-
    side sent status, but "delivered" implied end-to-end receipt.
    The push pipeline only guarantees a successful publish (broker
    publish, or a REST device with a new digest ready to poll); it
    doesn't know whether the panel has applied the frame yet.
    Renamed to "pushed" so the chip matches the guarantee. Separate
    receipt tracking is a follow-up.
  • OpenAPI spec version bumped to match the release (discussion
    #28).
    schema/openapi.yaml had info.version stuck at
    0.64.16. Rolled to the current version so generated SDKs carry the
    right release marker.

Added

  • Per-cell padding override (feedback from r/eink launch DMs).
    Each cell now has an optional padding_override field surfaced
    in the page editor as a Layout tweaks disclosure (collapsed by
    default so the cell edit card stays lean). Ticking "Override
    page-gap padding for this cell" turns on a 0-80 px slider whose
    value replaces the page-level gap-derived padding on that cell,
    and also beats the widget's render.full_bleed manifest flag,
    so users can dial in per-widget breathing room without touching
    the page gap the other cells share.
  • Content-checksum push skip (feedback from r/eink launch DMs).
    When the newly-rendered composition PNG matches a bound device's
    last-served digest, the push pipeline no longer publishes to that
    device. The panel isn't asked to re-paint, which is a real battery
    win on the bigger e-ink panels and the primary optimisation
    callers were doing externally (checksumming their own data and
    suppressing the webhook). Skipped renderers surface as
    unchanged=True on the per-renderer result and log a
    no_change event. When every bound renderer for a push is
    unchanged, the whole push logs as no_change too, and the
    History timeline shows a distinct "no change" chip. HTTP-polled
    devices' next fetch still returns 304 via the existing ETag path;
    MQTT-only devices skip the retained re-publish entirely.

Don't miss a new tesserae release

NewReleases is sending notifications on new releases.