New and improved
1 notesScreen readers hear new activity
Toasts, announcements and incoming messages are delivered as accessibility announcements.
Fixes and polish
35 notesClipboard read buffers are erased
Linux clipboard reads now erase the real temporary buffers after use, extending cleanup beyond copies of the data.
Small windows keep status text readable
A toast sits above a tall update offer again, and the sidebar connection status shortens with an ellipsis at the largest text size.
Unambiguous desktop shortcuts
Registry shortcuts no longer assign the same chord to two commands. The familiar Settings, Close and Find shortcuts are included in the correction.
Notification hours follow their switch
Notification pause hours follow the setting’s checkbox instead of acting independently.
More meaningful screen-reader controls
Static text, multiline fields, dialogs, toggles and organisation tabs now expose their proper roles and state. Call toggles keep stable names, and a text line is read once instead of through a redundant labelled container.
Full disks pause work without losing the draft
When storage is full, incoming messages and organisation records wait and retry with backoff instead of repeatedly hammering the disk. An outgoing message keeps its draft and explains the actual send refusal.
Failed store checkpoints still retry
A failed checkpoint remains scheduled for retry. The store no longer mistakes its own bookkeeping write for new content and silently clears the retry.
Linux key storage handles concurrent clients safely
Clients sharing the same Linux key service now use one shared lock even when their configuration folders differ. Concurrent creation or updates can no longer overwrite each other’s secure-store records.
Explain why a profile cannot open
If the app cannot use a selected profile, a window explains why in plain language instead of failing without a useful message.
Call state ends cleanly
A call that never finished connecting leaves no phantom Join action or duration. A group participant whose ringing expires is shown as Not in the call.
Ask before closing during a call
Closing a window that would end the app asks before dropping a call. On the Mac, the red window button and Quit also confirm before ending an active call.
A refused invite leaves setup ready to retry
A refused invite is explained once, then setup resets cleanly with keyboard focus still in the invite field.
A disabled account keeps its readable history
When the server turns off the only account, the app keeps the history visible with its explanatory banner instead of sending the person back to setup.
Restore waits for the right account state
Restore waits for the account to be ready before deciding that no device was lost. In a direct conversation, the peer can accept the restored device’s rejoin after removing the lost one.
Recovery-kit errors point to the right problem
Text that is not a Recovery Kit is refused immediately, before asking for a server. Local kit-format errors are kept distinct from failures to restore the account.
More responsive device linking
A code that nobody is displaying is refused promptly. The linking sheet also scrolls its body between the title and buttons so its actions stay accessible.
Swedish call labels use the right word
The call card, strip and mini window are named Samtal in Swedish.
Linux calls offer supported controls
Linux hides video controls on devices without video support and avoids offering a mini call window where floating windows are unavailable.
Linux audio waits for real devices
Lowfire’s own echo-cancellation nodes do not appear as selectable or default audio devices. If no real device is available, the app explains once and waits for one.
Terminal setup keeps kit and server fields usable
The Swedish Recovery Kit offer fits its terminal card, and the restore Server field receives the first keystroke.
Terminal installation messages keep long paths whole
Installing or removing the terminal command keeps the complete explanation even with long folder paths, including when a declined location causes a fallback.
Automation cannot pretend a protected press succeeded
When an automation drive attempts to press a control reserved for the person, its result says so instead of returning a misleading success.
Large text keeps lists and sheets usable
The sidebar is one list, and sheets at the largest text size scroll as one region. People keep their names when roles must yield, long row text wraps beside buttons, and channel tabs no longer overlap.
Create after onboarding waits for membership
Creating immediately after onboarding waits for the organisation’s verified member list instead of racing ahead of it.
Message metadata stays visible beside long names
In a message’s name line, only the name shortens; the edited marker and delivery tick remain whole.
Code blocks use the message column
Code blocks can use the message column up to its intended maximum width instead of being unnecessarily cramped.
Scrolled history reaches the composer
While reading older messages, the log continues down to the composer instead of leaving unused space at the bottom.
Avoid unnecessary startup audio delay
The media path avoids an extra playout delay at call startup, with more detailed traces to diagnose the affected call stages.
Terminal skin-tone emoji stay in their columns
Emoji with skin-tone modifiers stay inside their allocated terminal columns instead of disturbing adjacent text.
Window controls use the selected language
Window-control names go through translation, including Swedish labels for accessibility.
Designs and foundations
1 notesDesigns, contracts and foundations are work in progress; they do not by themselves mean a finished feature is available.
Accepted video and private-release plans
Design work records Linux video backend choices, isolated codec work with stall recovery, and private signed Mac beta releases. These plans do not themselves ship Linux video or publish a beta download.
Behind the scenes
10 notesRead all 10 notes behind the scenes
Linux memory accounting and reductions
Linux idle-memory work records the process footprint and its contributors, with targeted reductions. The new measurement is initially reported without enforcing a pass or fail; this does not claim that all Linux workloads meet the memory target.
Owner decisions recorded
The project records decisions about saved drafts, secure profile naming, Linux memory accounting, leak checks, video support and stalled-codec recovery. The record directs implementation rather than adding all of those behaviours itself.
More trustworthy builds and focused verification
Call statistics keep related observations together, and probes count the connection’s actual bytes. Test suites are selected from one table, compiler caches are bounded and track headers, builds notice older input timestamps, missing shader tools fail clearly, and drivers reject stale executables.
Track completed development sessions
Coordination now records completed-session cleanup and custody of retained evidence.
More realistic end-to-end failure checks
The end-to-end harness can slow connections and fill or lock local storage. Scripts wait for actual server conditions, respect Linux media capabilities and avoid sending a synthetic client address to a real remote deployment.
Interface tests wait for the screen they judge
Checks judge wholly visible rows, wait for navigation to rest and unread counts to appear, and control the typing-state lifetime. Touch tests read after transitions, and large-text clipping checks use the correct rectangles.
Native tests respect their runtime environment
The media hold test no longer treats a busy machine as a codec failure, Linux audio can use the continuous-check machine’s audio-policy version, and secure-key tests handle the full sanitized run.
More precise boundary and failure fixtures
Checks observe queued arguments before cleanup, handle long temporary paths, and distinguish update-card controls from sidebar buttons. Update extraction is bounded by CPU work, terminal replacement is detected without a file watch, server-test output drains correctly, and failed automation launches retain their state.
Updated · . Expanded from the first draft to cover the full day’s reviewed work, including smaller improvements and fixes.
Back to the top ↑