Skip to content

Lightning 0.6.5

Choose a tag to compare

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

Lightning 0.6.5

A design, scrolling, and correctness release. The new Storm design language
restyles every menu, picker, and dialog in the client and arrives as a
selectable application theme; reading-position handling while scrolling through
history was overhauled end to end; and device verification and account-store
handling received significant correctness fixes. Platform coverage is unchanged
from 0.6.4: Linux and Windows x86_64, and every shipped build uses only the
Rust Matrix backend.

Highlights

  • The Storm design language across the entire menu system: redesigned
    menus, popovers, pickers, and dialogs with keycap accelerators, section
    labels, and the bundled Space Grotesk brand face.
  • Storm as a full application theme — deep navy panels with a bolt-yellow
    accent, first in the theme picker. Existing theme choices are untouched, and
    a new ink-on-accent token fixes contrast defects app-wide.
  • Redesigned message and room context menus: a keyboard-operable
    quick-reaction strip, keycap accelerators, a per-room notifications flyout,
    Copy room link, and a confirmed Leave room action.
  • A major scrolling and reading-position overhaul: loading history no
    longer teleports the view, image pop-in no longer throws the reader, wheel
    glides survive pagination, and the storm of redundant history requests near
    the top of a room is stopped.
  • Display names resolve everywhere: mentions, reply headers, and thread
    summary cards now show real names instead of raw Matrix IDs.
  • Device verification fixes: Lightning now initiates verification (it sends
    m.key.verification.start) instead of waiting in Ready — the cause of
    verification with Element X stalling — and the SAS (emoji) flow now handles
    either side initiating.
  • Each account is now bound to the SDK store it actually uses, ending a
    class of permanent sign-in failures — and cleanup can no longer delete the
    wrong account's crypto store.
  • Same packages as 0.6.4: Linux .deb/.rpm/Flatpak/AppImage/Snap and
    Windows x86_64 portable ZIP, MSI, and setup EXE. Windows packages remain
    unsigned.

The Storm design language

  • One language for every menu surface. The shared menu system was
    redesigned from the ground up — menus and menu items, keycap accelerators,
    section labels, and new shared primitives — and applied across the message
    menu, room menu, account switcher, quick switcher, emoji and GIF pickers,
    mention popup, member profile, the new-conversation, invite, and poll
    dialogs, and the Settings shell.
  • Storm as a selectable theme. The eleventh full-application theme: deep
    navy panels and a bolt-yellow accent, first in the theme picker. The System
    theme resolves dark to Storm and light to Moss Light. Persisted theme
    choices are never rerouted — nobody's stored selection changes — and the
    legacy themes keep their own semantic menu tones rather than inheriting
    Storm's literals.
  • Readable ink on accent fills. A new boltInk token governs text drawn
    on bolt/accent fills app-wide; some previously broken pairs went from
    roughly 1.0:1 contrast to between 8.7:1 and 13.7:1.
  • Redesigned context menus. The message menu gained a six-cell,
    keyboard-operable quick-reaction strip and keycap accelerators (R, T, E,
    Ctrl+C). The room menu gained a notifications flyout with real per-room
    mode radio rows, a canonical-alias-aware Copy room link, and a confirmed
    danger action for Leave room.
  • Redesigned pickers and popups. The emoji picker has an 8-column grid,
    a compact category rail, and recents; the GIF picker shares the same search
    treatment with section chips and keyboard Space activation; the mention
    popup is now a menu surface.
  • Identity and trust surfaces. The account switcher shows vertical
    identity cards with live space counts; a Trust card bound to real
    crypto-health state appears in the switcher and embedded in Settings →
    Sessions; the member profile popover was redesigned and gained Copy ID.
  • Quick switcher and dialogs. The quick switcher was rebuilt with
    navigate and command modes and scope chips; the new-conversation omnibox
    and the invite-people and create-poll dialogs use the shared dialog
    language; the Settings shell is searchable, with featured theme cards.
  • Brand marks and type. The Lightning wordmark and bolt mark appear in
    the room-list header and boot screen; the room-list search and the in-room
    find bar were rebuilt as composer-family cards, with the room-list search
    carrying a Ctrl+K keycap hint; the Space Grotesk brand font (OFL) is
    bundled.

Scrolling and reading position

  • Your place survives history loading. One scroll anchor is kept alive
    across a near-top multi-batch loading run, and the view no longer jumps to
    the anchor row on every backfilled batch — fixing a cascade that could
    teleport the reader to the top of history.
  • Wheel glides survive pagination. Restoring the anchor after a page of
    older messages no longer discards concurrent scrolling or freezes an
    in-flight wheel glide, and a new upward gesture keeps history loading.
  • Image pop-in no longer throws the view. Content growth above the reader
    is compensated while a self-driven scroll is in flight.
  • The near-top loading storm is stopped. History loading now uses real
    distance-from-top proximity, gates on progress at dispatch, and accounts
    for model growth per page — stopping the storm of redundant, overlapping
    history requests it previously fired while scrolling up near the top of a
    room.
  • One preservation mechanism. Reading-position preservation was unified
    into a single mechanism, and a displaced anchor's shift is computed directly
    instead of rebuilding the row to measure it.
  • Constant-time thread roles. Per-row thread-role queries are answered
    from an index instead of scanning the timeline, so scrolling no longer
    degrades as loaded history accumulates.
  • The thread panel holds its place too. Thread pagination gained its own
    scroll anchor, so loading older thread replies no longer teleports the
    panel.

Messaging and display improvements

  • Display names resolve everywhere the member roster knows them: mentions,
    reply headers, and thread summary cards use the member cache, which was
    previously left unpopulated on the Rust backend. The roster hydrates on
    room open, so mention chips resolve without first opening the member panel.
  • Reply-quote and thread previews normalize Lightning-sent mentions to
    display-name labels instead of raw matrix.to markdown.
  • Reply cards are content-width with an accent bar; mention highlighting is
    quieter — a tint with a left edge bar, bolt-colored for personal mentions
    and neutral for @room; your own reactions get a ring; the selected room
    shows a bolt edge.
  • The GIF picker sends exactly the GIF you picked: never a re-resolved row
    after a model refresh, a debounced search can no longer send the previous
    query's result, and a double-click sends one GIF instead of two.
  • Overflow and containment defects across the redesigned surfaces were fixed,
    the Settings navigation rhythm was tightened, and account and session cards
    adopted the trust-card language.

Verification and account-store fixes

  • Lightning now initiates verification. It sends
    m.key.verification.start instead of waiting in Ready for the other side —
    the cause of verification with Element X stalling. A leaked single-flow
    slot can no longer brick outbound verification for the session, QR is no
    longer advertised when Lightning cannot answer it (SAS only), and failures
    are surfaced instead of invisible.
  • SAS completes in both directions. Emoji verification now completes
    whether Lightning or the other device initiates, and flows tear down
    cleanly on logout and cancellation.
  • Each account is bound to the SDK store it actually uses. The store
    location is recorded when the store is opened, never re-derived — so a
    mismatch between the name typed at login and the server-canonical user id
    can no longer make sign-in fail forever, and cleanup can no longer delete
    the wrong account's crypto store. Suspect stores are quarantined, never
    deleted on a guess, and a locked keyring is treated as a transient
    credential failure rather than evidence that an account does not exist.
  • Sanitized support diagnostics. A support-diagnostics export — offered
    from the sign-in screen's repair panel when a session-store failure is
    detected — carries hashed account identifiers with a fresh per-report salt,
    no filesystem paths, and no tokens.
  • Verification trust semantics are unchanged: trust labels still come from
    SDK state, and nothing in this release promotes local UI confirmation to
    SDK trust.

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.5 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 reading-position overhaul is validated by automated tests
    at the wiring and guard level; physical touchpad and wheel feel on a real
    desktop has not been confirmed for this build, and some jitter while holding
    a near-top history load may remain.
  • Live Element / Element X interoperability of the verification fixes has
    never been tested and remains untested. The automated tests cover the C++
    verification state machine and the Rust single-flow slot rules, not the SAS
    handshake itself.
  • QR verification is not offered; verification is SAS (emoji) only.
  • A pre-existing issue not introduced by this release: reopening the GIF
    picker after choosing a favorite can crash the client in some sequences.
    This is known, is not a 0.6.5 regression, and a fix is planned.
  • 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.5 — installation packages are hosted on GitLab: