lowfire.
← The daily journal

October 7, 2026

143 merged pull requests · 64 detailed notes

Video calls and screen sharing advanced alongside recovery, account setup and stronger organisation boundaries. Smaller changes improved attachment handling, keyboard use, update downloads and explanations when a server refuses something, with extensive reliability and security work underneath.

New and improved

16 notes
  • Video calls on the Mac

    Video calling is available on the Mac without a developer switch. Camera selection and higher picture quality, including 1080p when the connection permits, are part of the call controls.

  • Share a screen or window

    Mac calls can share a screen or window chosen with the system picker, and participants can watch it in the call. Capture follows the current selection and stops safely when that selection is no longer valid.

  • Screen sharing adapts separately

    Shared screens now have their own picture quality and connection handling, including a sharper refresh after movement stops. This is the first screen encoding implementation; further work on fine text and difficult connections remains.

  • A compact window for audio calls

    Audio calls have a compact floating strip with call status and controls, making it easier to keep chatting while a call continues.

  • Keep the conversation beside a call

    The conversation can appear in the right panel during a call, so messages stay within reach alongside the call.

  • Recovery for the last remaining member

    A recovery kit can bring back the organisation and its groups even when the restoring person was their sole member. Recovery still depends on the person’s kit and encrypted backup.

  • Restore beside a working account

    Restore from Recovery Kit is available while another account is already working. It can restore a different server’s account or resume an unfinished restore without replacing the working accounts.

  • Finish an interrupted account setup

    Settings shows accounts whose registration did not finish, with Try again and Remove actions. A failure in the final setup step now leaves the account in that recoverable state.

  • Conversation menus from the sidebar

    Right-clicking a conversation opens its action menu. Show Details and Hide Details are also available from the Conversation menu.

  • Emoji while you type

    The composer gains emoji shortcodes and emoticon completion, offering a faster way to enter familiar emoji.

  • Familiar text editing keys

    Text fields use the platform’s expected editing key bindings, bringing everyday keyboard behavior closer to the system’s own fields.

  • Updated app artwork

    Lowfire uses the owner’s app artwork, fitted consistently for the icon sizes the app needs.

  • Storage information for server operators

    Server operators can inspect storage use and limits for each organisation. This provides administration information without access to message contents.

  • Organisation removal for operators

    The operator interface can delete an organisation. The app explains when its server operator has removed one, instead of leaving people with an unexplained failure.

  • Conversations belong to an organisation

    Every direct conversation and group belongs to one organisation. This strengthens the separation between workspaces and makes membership and removal apply consistently to their conversations.

  • Read and navigate a shared screen

    A viewer can choose actual size, fit or full screen, and zoom or pan the shared picture. Clear permission and capture-failure messages offer system settings or Share Again where supported.

Fixes and polish

26 notes

Designs and foundations

6 notes

Designs, contracts and foundations are work in progress; they do not by themselves mean a finished feature is available.

  • Presence storage groundwork

    The server gains storage and checks for presence updates, including changes in device and organisation membership. This is the server foundation; the visible presence interface is still a later step.

  • Private push groundwork

    The private push design and its server and client core pieces landed: registrations are sealed and wakes carry no message or call contents. These pieces are groundwork for platform delivery rather than a claim that sleeping phones already receive notifications.

  • Group call design and contracts

    Work defines small group calls, their participants and protected connection descriptions. The design and shared contracts landed here; the media and interface implementation follows separately.

  • Organisation emoji and animation design

    A proposed design covers encrypted organisation emoji, including animated images and controls on who may manage them. It does not add usable custom emoji yet.

  • Planned version retirement and security updates

    The protocol gains an explicit version retirement policy, server dates and version usage information for operators. Signed update information can identify security releases; the user-facing advance warning follows separately.

Behind the scenes

16 notes
Read all 16 notes behind the scenes
  • Thorough cleanup when forgetting

    Forgetting accounts and conversations removes their associated keyed records. Cleanup also reports allocation failures safely instead of proceeding with an incomplete copy.

  • Revocation protects future backups

    Revoking a device changes the backup protection so that the revoked device cannot read later backup writes. The change also fixes a crash when linking another device after recovery.

  • Check removal notices against device records

    The client checks device and account removal notices rather than relying only on the server’s assertion. Device identity matching also works when the notice’s membership position is wrong.

  • Stronger checks on keys and membership records

    Key checks reject invalid weak inputs, organisation log entries and proofs have a canonical form, and devices compare verified device-history heads inside encrypted conversations.

  • Stricter parsing of outside data

    The app rejects ambiguous encoded data and repeated fields in incoming structured input. Linux drag previews use the bounded image decoder, and empty roster or directory identifiers are handled safely.

  • Bound server connection and key requests

    The server limits device connections, connection attempts, device churn and repeated requests for joining material. Relay credentials have a strictly checked short lifetime, while held join messages get another chance to finish.

  • Better call and screen quality checks

    Video and screen sharing receive documented quality targets and revised measurement tools. Call timing, frame comparisons, self-view checks and simulated clocks are made more reliable without presenting those test changes as new call features.

  • More trustworthy build and release checks

    Debug builds use the development Rust library, while release checks measure the binaries that ship. Build, cache and language-boundary checks now include the effective compiler environment, actual module lists, structure layouts and the performance budget used to judge a pass.

  • Reliable server lifecycle tests

    Server tests now wait for the actual admission, delivery, alarm and cleanup events they need. This removes races in restart, revocation, backup rotation and message ordering checks, and conversation creation reconciles its scheduled work.

  • Reliable interface and launch tests

    Interface checks use stable sample dates, wait for actual rendering and keychain work, and reset call state consistently. Launch tests also handle newer Python, cached executables and observer failures more safely.

  • Consistent automation actions and timing

    Automation setup copying, log clearing and popover closing use the same command registry as other actions. Interface automation work is less dependent on the timing of individual requests.

  • Broader checks and leaner development work

    Server tests and type checks join the regular change gate, with end-to-end checks scheduled separately. Continuous integration uses path-based work, parallel runner slots and less repeated setup; unused inherited code is removed and dependency advisory review gains a schedule.

  • Clearer development coordination and contracts

    Agent instructions tighten branch pushing and update the landing workflow. Issue priorities, module dependency checks, the command reference and the description of what the server retains are brought into line with the project.

  • Exercise backup failures directly

    Backup upload tests cover bounded allocation failures through the real loading and upload path, improving the checks around interrupted encrypted backups.

  • Stronger upload and administration checks

    The server authorises attachment parts before reading their bodies and limits repeated attachment and backup setup requests. Administration requests also have stricter credential and attempt checks.

Updated · . Expanded from the first draft to cover the full day’s reviewed work, including smaller improvements and fixes.

Back to the top ↑

Good things take care.

Lowfire is in development. These notes cover the project’s reviewed changes, grouped into plain-English topics. Pull requests are reviewed changes to the project; the counts also include maintenance and early direct commits. Internal coordination records are accounted for privately.

Designs and foundations are labelled as work in progress. Genuine screenshots show fictional demo content. Current reference captures do not recreate historical builds or imply earlier device availability.

Checked through . The latest day covers work reviewed through the pinned snapshot, not the whole calendar day. The notes were expanded on October 25 to cover the full reviewed history.

Back to the beginning ↑