Lightning 0.6.5
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
boltInktoken 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 rawmatrix.tomarkdown. - 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.startinstead 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 runLightning.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 SHA256SUMSon Linux, orCertUtil -hashfile <file> SHA256on
Windows, and compare against the published value. - All assets are built from the exact
v0.6.5application commit; the full
source commit is recorded in each binary's--build-infooutput. - No GIF provider key setup is required — configuration is embedded at build
time and never printed by--build-infoor--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:
- Lightning 0.6.5 — SHA-256 checksums
- Lightning 0.6.5 — Windows x86_64 setup EXE (unsigned)
- Lightning 0.6.5 — Windows x86_64 MSI installer (unsigned)
- Lightning 0.6.5 — Windows x86_64 portable (unsigned)
- Lightning 0.6.5 — Snap amd64
- Lightning 0.6.5 — AppImage x86_64
- Lightning 0.6.5 — Flatpak amd64
- Lightning 0.6.5 — RPM x86_64
- Lightning 0.6.5 — Debian amd64