lowfire.
← The daily journal

October 2, 2026

34 merged pull requests · 34 direct commits · 38 detailed notes

The first working Mac client brought encrypted conversations, organisations, files, device linking, recovery and one-to-one audio calls together. Rich messaging, multilingual text and everyday editing also took shape, while video and the other platforms remained future work.

New and improved

21 notes
  • Encrypted local history

    Local history was connected to an encrypted database, with its key held in the Mac keychain. Reading that key was moved into background work so it would not hold up the first window.

  • The first encrypted conversations

    The chat core gained accounts, encrypted conversations and message sending and receiving. A client without a graphical window and real-server tests exercised the same underlying chat behaviour.

  • Account setup and chat screens

    The first chat screens covered account setup, conversation lists, messages, composing and starting a conversation. They were built as first-party plugins over the shared chat core.

  • Unread messages and local notifications

    New messages gained local notifications, a Dock badge, an unread divider and a way to jump back to the newest message. Notification content is prepared on the device rather than put into a server push.

  • Managing a conversation

    People could copy a message, add participants and rename a conversation. These controls accompanied the first round of message-list polish.

  • Text across writing systems

    The Mac text renderer gained shaping, fallback fonts, colour emoji and right-to-left text support. This was text-rendering work, with further editing and word-selection refinements still to follow.

  • Organisations and channels

    An account could belong to several organisations, browse their encrypted channel directories, request to join channels and leave them. Organisation administrators and channel membership became part of the chat model.

  • Replies, edits and reactions

    Messages gained replies, reactions, editing and deletion for everyone, with edits and deletion restricted to the original author. The composer could enter reply or edit mode, and people could mention colleagues by name.

  • Encrypted attachments

    Files and pictures could be attached, sent encrypted and previewed using the client’s image decoders. Deleting for everyone and leaving a conversation gained confirmation before the action went through.

  • Recovery kits and encrypted backups

    Account setup gained a recovery kit shown once and checked by typing it back, with an option to skip it. Encrypted backups and restore could recover history and backed-up attachments using that kit; the server alone could not restore it.

  • Preferences and drafts across devices

    Linked devices gained synchronisation for read markers, drafts, preferences, device names and conversations the person had left. Settings also gained device management and backup controls.

  • Safer device and organisation management

    Revoking a device gained a confirmation sheet, and administrators could approve or decline private-channel join requests. Leaving an organisation was added, with checks that prevent its sole administrator from abandoning it.

  • One-to-one audio calls on the Mac

    Direct conversations gained encrypted audio calls with call, answer, decline, mute and hang-up controls, plus a call record in the conversation. Video, screen sharing, group calls and calling on other platforms were still design work at this point.

  • Calls find their own connection

    Audio calls tried a direct connection and relay alternatives automatically, including relay connections over UDP, TCP and TLS. No person had to choose a connectivity mode; real-device and network-change checks still remained.

  • Selecting and copying message text

    Messages gained text selection instead of requiring the whole message to be copied. Keyboard and multilingual word-selection gaps were addressed in later work.

  • Drag, drop and paste

    The Mac gained file and text drag-and-drop, pasting, copying, Quick Look and undo as part of the everyday chat interactions. This was followed by more fixes for staged-file persistence and export handling.

  • Photo details removed before sending

    Pictures had location and other photo metadata removed by default before upload, while preserving their intended orientation. Attachment names, keys and previews travelled inside the encrypted conversation, and received files stayed encrypted on disk.

  • Files wait in the draft until Send

    Dropped and pasted files, pictures and screenshots were staged with previews and remove controls instead of sending immediately. Dropping onto a conversation in the sidebar put the item into that conversation’s draft, while folders received a clear refusal.

  • Copy and preview attachments

    Pictures and files could be copied or dragged back out to other applications, with Quick Look available from the keyboard. Early verification used simulated native transfers, so real cross-application drag and preview checks remained on the manual checklist.

Fixes and polish

6 notes
  • Connecting to the mailbox

    The server learned to accept the client’s authentication header when opening its live connection. This repaired the connection path used to receive new messages.

  • Room for recipients

    The recipient field now uses the remaining width of a wrapping row. It no longer loses that space when the people chips wrap.

  • Retrying message changes

    Failed edits, reactions and deletions gained retry support. Reactions were also added to transferred history and backups so they would not disappear on another device.

  • Membership changes stay tied to their moment

    Leaving a conversation was bound to the membership state in which it was requested, preventing an old leave from removing someone who had since rejoined. Devices also took turns adding a person’s newly linked device, and revoked-device backup objects gained cleanup.

  • Message actions without moving the conversation

    Message actions floated above the selected message instead of shifting the list. Reply quotes, reaction chips and attachment buttons were adjusted to fit their messages more consistently.

  • First-call permissions and useful failures

    The call interface handled microphone permission waits, permission refusal and a missing media component with clear status and next steps. Call controls, tones and audio-device handling also received their first polish.

Designs and foundations

4 notes

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

  • The first client foundation

    The application shell, networking, mailbox server and encryption library were assembled before the full chat experience. The network client gained encrypted connections and stopped retrying when access was refused.

  • Audio-call groundwork

    An audio prototype established the approach for encrypted one-to-one calls, including the Mac’s voice processing. This was the prototype and stack decision before the call experience was connected to the application.

  • Signed application updates

    The update mechanism checked a signed release list and verified a downloaded application before replacement and restart. It remained disabled until release keys and a feed were configured; development builds were excluded from update offers.

  • Product direction and pilot planning

    The roadmap recorded platform priorities, pilot organisations, channel joins and attachment limits. The product bar was made explicit: automatic connections, familiar everyday interactions, complete screens and recoverable failures.

Behind the scenes

7 notes
Read all 7 notes behind the scenes
  • The privacy and product contracts

    The initial requirements set out end-to-end encryption, an untrusted server, recovery controlled by the person, an open protocol and strict startup and memory budgets. The first architecture records also defined the text, calls and platform boundaries.

  • Identity and membership checks

    The encryption and server foundations were aligned around authenticated device identities, controlled key-package claims and signed device removal. Server request limits were added alongside those checks.

  • Mac packaging and compatibility

    The build gained Mac distribution archives, reproducibility checks and installation instructions. The encryption library’s minimum Mac version was aligned with the rest of the application.

  • Deployment and live-server checks

    Deployment configuration was kept out of version control and checked for drift before use. Live-server checks covered connecting, sending messages and transferring an attachment.

  • Separate test accounts and restart checks

    Test tools could run two clients with separate profiles on one Mac, asked before deleting those profiles and checked that reopening preserved the account. These changes supported verification rather than adding a new chat feature.

  • Plugin and text contracts

    The plugin-facing chat interface was documented, and text-input findings were recorded for the shared client foundation. Media test code tied to the Mac was moved out of the portable media implementation.

  • Early microphone and speaker checks

    A hand check of the Mac audio prototype confirmed sound through real hardware, including speaker echo cancellation. Those observations concerned the prototype and did not establish that every later application call and network path had been tried.

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 ↑