New and improved
4 notesFile dialogs no longer block the app
On macOS and Linux, opening and saving files use asynchronous system dialogs so the app can continue responding while a dialog is open.
iPhone photos, files and previews
The iPhone implementation gains photo and document pickers, sharing, attachment previews and drag and drop. Staged pictures now show their preview, and Open on an attachment uses the system preview.
Typing indicators and a privacy preference
For conversations with up to 50 people, composer edits show typing indicators in the header. A synced Privacy switch can turn off both sending and showing typing activity.
Fixes and polish
12 notesHandle empty data and failed saves safely
Empty directory lists, network buffers and rendered surfaces no longer use invalid empty-memory operations. Failed history and catalog saves also release temporary data before retrying.
More stable screen sharing on changing connections
The media sender avoids cutting quality from insufficient or misleading timing samples, paces queued video at the connection’s rate and keeps independent stream sizes from interfering. Group screen sharing can resume again on slow receiving connections.
Respect safe areas and the keyboard
The shell accounts for the iPhone’s safe areas and keyboard. Linux’s portable window buttons also stay below the device’s top inset.
Select history text independently
The history notice no longer shares its selection with the first message, so selecting one does not select the other.
An interface that fits touch and larger text
The iPhone interface uses larger touch targets, touch equivalents for hover actions and haptics, with text that follows the phone’s text-size setting. Messages wrap in their column, scroll indicators fade, and the largest text size receives clipping fixes.
Safer Linux update extraction
Linux update archives are checked and extracted in a single pass, avoiding a separate validation pass over different input.
Reuse unchanged channel history
History transfers can reuse channel pages that have not changed, rather than rebuilding identical pages for each sender.
Sharper Linux app icons
Linux tray and launcher icons are generated at suitable sizes so they remain crisp.
Keep call updates moving while audio is processed
Processing audio no longer holds up checking for call events. Events that are still waiting are preserved for later delivery.
Keep unreadable store journals intact
If setting aside an unreadable local store is interrupted, its journals are preserved rather than being lost during the move.
Automation backlogs wake correctly
An automation connection with queued input no longer asks repeatedly for turns while paused. Draining below the pause threshold wakes it again, avoiding a stuck backlog.
Designs and foundations
6 notesDesigns, contracts and foundations are work in progress; they do not by themselves mean a finished feature is available.
Encrypted directory listings and profiles
Organisation listings and profiles use sealed records with a bounded local cache. This extends the encrypted-directory foundation.
Track the device’s last verified security view
Security-change timing is based on a device’s own last complete check, and a newly linked device starts from its sponsor’s verified view. These are implementation pieces of delayed security changes.
An iPhone app build takes shape
The project can build its iPhone bridge for simulator and device, render the demonstration interface and exercise lifecycle events in the simulator. This is development groundwork, not an announced iPhone distribution.
iPhone system-service connections
The iPhone bridge gains platform services and universal-link handling for invites. These additions are part of bringing the client to iPhone.
One place to grant automation access
The shared permission owner can offer Allow Once, Allow This Session, Allow Permanently and Deny, with choices that fit their sheet. Permanent access depends on caller identity and platform authentication support; this is an early slice of the wider permission rollout.
Lists capacity and offline requirements recorded
The planned Lists feature now has explicit requirements for capacity and offline synchronisation. This is requirements work, not a usable Lists interface.
Behind the scenes
11 notesRead all 11 notes behind the scenes
Updated encrypted-connection dependency
The encrypted-connection library was updated to repair published security advisories.
Cleaner memory and component boundaries
The automation adapter releases its streams, Linux sanitizers recognise memory held through mappings, and event scheduling is shared. Media and interface modules also expose clearer boundaries instead of reaching into each other’s internals.
More reliable cleanup and connection tests
Automation, interaction, chat and server fixtures now hold the exact stages they test, free what they own and remove their endpoint folders. These changes improve leak checks and reduce race-driven test failures.
Faster and more focused Linux build checks
Linux compilation uses physical-core capacity, large source units are split, and native and server checks avoid repeated setup. Software rendering produces the same pixels with less frame work, and continuous checks run the native lane when its scripts change.
Dependency advisory review recorded
A time-limited exception was recorded for advisories in an inactive cryptography dependency. This is dependency-review documentation, not a change to encryption behaviour.
Keep terminal and call evidence through cleanup
Terminal-gallery failures, server-cleanup controls and screen/group-call measurements retain the observations needed to explain their result before temporary files disappear.
Platform-correct interface fixtures
Interface checks wait for the keyboard inset and share a fixed clock, demonstration notices use the correct device name, and terminal-call expectations respect Linux video limits. A compiler warning in a drag-query fixture is also repaired.
More portable Linux native fixtures
Linux audio tests select their virtual capture source, socket paths do not depend on checkout depth, and IPv6 name checks do not depend on the host resolver. Graphics lifetime documentation records first-frame behaviour on real and software drivers.
Broader real-client verification
History checks wait for directory admission, presence is tested through two real windows and a local server, and Linux installer checks observe ordinary memory before the shutdown test.
Clearer process and test-run ownership
Development guidance keeps raw measurement evidence, interaction waits are distinguished from CPU diagnostics, and process fixtures wait for their private bus and shut down cleanly. Checkout attribution and interrupted terminal replay checks are repaired.
Verify memory-collector access with a real process
The memory-check preflight reads an actual probe process instead of treating an operating-system authorisation answer as proof that collection will work.
Updated · . Expanded from the first draft to cover the full day’s reviewed work, including smaller improvements and fixes.
Back to the top ↑