Skip to content

Lightning 0.6.4

Choose a tag to compare

@Mizerd Mizerd released this 12 Aug 07:22
· 288 commits to main since this release

Lightning 0.6.4

A scrolling, performance, and visual-polish release. Timeline scrolling on a
touchpad is steadier, near-top history loading no longer loops, and the client
does less redundant work while you scroll. Shared timeline components — message
width, media, polls, and code blocks — are refined. Platform coverage is
unchanged from 0.6.3: Linux and Windows x86_64, and every shipped build uses
only the Rust Matrix backend.

Highlights

  • Touchpad timeline scrolling is steadier: the view no longer fights the
    touchpad or gets pulled around while avatars, media, and history load.
  • Backward pagination near the top of a room no longer loops on
    zero-progress history requests, and its loading indicator no longer nudges
    the viewport.
  • Less redundant work while scrolling: cached avatars are not re-resolved on
    every continuation row, and the high-frequency media-cache logging that ran
    on the UI thread during scrolling is gone by default.
  • Visual refinements to the timeline: a readable maximum message width on wide
    windows, rounded in-process media, clearer poll result bars, and subtly
    styled inline and fenced code.
  • A refreshed README with a screenshot gallery, and new development-only
    screenshot tooling (excluded from release binaries — see Developer tooling).
  • Same packages as 0.6.3: Linux .deb/.rpm/Flatpak/AppImage/Snap and
    Windows x86_64 portable ZIP, MSI, and setup EXE. Windows packages remain
    unsigned.

Scrolling and timeline performance

  • Steadier touchpad scrolling. Deferred scroll-anchor corrections no longer
    write the scroll position in the middle of an active touchpad gesture, so the
    view stays where you put it instead of competing with the touchpad — the
    effect was worst near the top of history and over media. The Flickable is
    pinned to its bounds so a gesture cannot overshoot.
  • Bounded near-top pagination. Loading older messages near the top of a room
    is now edge-triggered with hysteresis and a bounded, controller-owned
    continuation, so a page that adds no visible rows (for example when threaded
    events are filtered out) no longer spins in a tight loop against the
    homeserver.
  • Stable loading indicator. The "loading older messages" / failure indicator
    moved out of the scrolling content into a top overlay, so toggling it no
    longer changes the content height and shoves the reader's position.
  • Fewer relayouts while paginating. The timeline's grouping refresh is
    coalesced during a backward page, so a page of older messages triggers one
    grouping update instead of one per inserted row.
  • Less repeated resolution work. A sender's continuation rows reuse an
    already-cached avatar instead of re-running avatar resolution on every cache
    completion, and the per-row media/avatar cache-hit logging is now off by
    default.

Visual improvements

  • Message, media, and mention rows are capped at a readable maximum width on
    wide windows instead of stretching edge to edge.
  • In-process media (images and video posters) is rounded, with the corner
    radius baked into the decoded bitmap.
  • Poll result bars are taller, fully rounded pills with clearer emphasis on the
    selected option and a clean empty track for options with no votes.
  • Inline and fenced code has a subtle themed background.

Developer tooling

Lightning gained a development-only screenshot-demo mode for producing
deterministic UI screenshots from fictional *.example accounts and locally
generated media, with no network and no real credentials. It is compiled in
only with the LIGHTNING_ENABLE_SCREENSHOT_DEMO CMake option (off by default),
which is mutually exclusive with the release build configuration.

This mode is not part of any release binary and is not an end-user feature.
Release builds report screenshot_demo_compiled: false in
matrix-client --build-info, and --screenshot-demo and every --demo-*
option are rejected. See docs/screenshot-demo.md.

The README was also rewritten as a project landing page with a screenshot
gallery captured from this demo mode.

Downloads

Linux

  • Debian/Ubuntu package (.deb)
  • Fedora/RHEL package (.rpm)
  • Flatpak bundle (.flatpak)
  • AppImage (.AppImage)
  • Snap package (.snap)

Windows x86_64

  • Portable package (.zip) — extract and run Lightning.exe; no installation.
  • MSI installer (.msi) — per-user install.
  • Setup EXE installer (-setup.exe) — per-user install.

macOS is not supported.

Rust-only backend

Release builds compile only the official Matrix Rust SDK backend. The HTTP and
mock development backends are excluded from the shipped binary, --backend=http
and --mock are rejected, and there is no silent fallback. matrix-client --build-info reports the backend and build invariants for verification.

Windows signing notice

The Windows packages are currently unsigned.

  • Windows may show an "Unknown publisher" prompt, and Microsoft Defender
    SmartScreen may warn before running the installer or executable.
  • The warning does not by itself mean the file is unsafe. Download Lightning
    only from the official GitLab release, and verify the SHA-256 checksum below.
  • Do not disable SmartScreen, antivirus, or Windows security to run Lightning.
  • Code signing is not yet configured; these packages are provided unsigned.

Verification

  • Every asset is listed in SHA256SUMS. Verify a download with
    sha256sum -c SHA256SUMS on Linux, or CertUtil -hashfile <file> SHA256 on
    Windows, and compare against the published value.
  • All assets are built from the exact v0.6.4 application commit; the full
    source commit is recorded in each binary's --build-info output.
  • No GIF provider key setup is required — configuration is embedded at build
    time and never printed by --build-info or --gif-status.
  • The bundled Windows FFmpeg is an LGPL build (native decoders, no GPL or
    nonfree components).

Known limitations

  • The Windows packages are unsigned (see above).
  • The scrolling and touchpad improvements are validated in automated tests at
    the wiring and guard level; on-screen scroll feel should be confirmed on real
    hardware.
  • Per-room notification modes remain device-local, not synchronized server push
    rules.
  • End-to-end encryption cannot recover historical messages whose keys were
    never backed up or shared.

Mirrored from the canonical release: https://gitlab.smetonis.net/Mizerd/lightning/-/releases/v0.6.4 — installation packages are hosted on GitLab: