Quiet hours, and alerts for keywords and replies
Choose keywords and replies that alert you, and set the hours when notifications may arrive. Link previews can carry a picture, and channels keep shared bookmarks.
Alerts for keywords and replies to you
Choose keywords that count as alerts, and treat replies to your messages as attention-worthy. Matching ignores case and accents, and the existing notification level decides whether those alerts notify you.
Schedule quiet hours
Set the days and local hours when notifications are allowed. Outside them, notifications are paused and colleagues can see when that pause ends; the schedule syncs encrypted to your devices.
Pictures in encrypted link previews
Link previews can include a picture inside the encrypted message record, extending the earlier text-only preview. Displaying it does not require recipients to fetch the original site.
Also new
- Bookmarks for a channel. Keep useful shared links as bookmarks on a channel. They live in the channel’s encrypted conversation state, so the server can’t read them.
- Signed updates for the terminal client. The terminal client gets signed updates and an update command. It can replace itself on Linux; on the Mac it follows updates to the app bundle instead of installing a separate copy.
- Approve each Linux scripting connection. Linux desktop scripting connections need their own approval before running actions. That trust ends when the connection closes, so a later connection cannot inherit it.
Fixed
- Keep picture previews in proportion. Image attachment previews preserve the original proportions instead of stretching the picture.
- Pasted pictures finish sending after approval. Sending a pasted picture no longer stalls after its approval is granted.
- Search the whole organisation roster. People and New Conversation search the whole roster, including people beyond the displayed results. Matching handles Latin accented capitals consistently and tells you when more people match than fit in the list.
- Preserve settings when saving fails. Settings are replaced atomically, so a crash or failed write leaves the previous file. Damaged settings are moved aside when possible, and an unreadable file disables saving for that launch rather than being overwritten.
- Reject invalid language choices consistently. Invalid or missing language options are refused before opening the profile, including in the windowless client.
- Forgotten content leaves the search index. Forgetting a conversation or account also removes its words from the search index, closing a cleanup gap that could leave old searchable terms behind.
- Opening does not scan the whole history. Opening the app reads a limited amount for each conversation instead of doing more work as that conversation’s message history grows.
- Calls continue when the caller’s network changes. A network change at the calling end can carry the existing call onto its next connection instead of interrupting it unnecessarily.
- Release Mac system and graphics memory after activity. The app avoids retaining an unnecessary copy of system application-registration data. When graphics become idle, replacing the Metal command queue can release memory held by the driver.
In the works 1 change · designs and groundwork
- The terminal executable and service. The terminal client is built and packaged on Mac and Linux, with its own profile and its own terminal input and output service. Its screen is a placeholder until the interactive shell and chat interface arrive.
Under the hood 7 changes · tests, tools and the server
- Ground terminal input in real captures. Terminal input tooling records actual responses, including sessions inside tmux, so decoding checks can use captured behaviour rather than assumptions alone.
- Clearer server upgrades and error handling. Server storage upgrades follow a version table. Shared commit rules, explicit error results between server components and checked method types reduce duplicated lifecycle and refusal logic.
- Keep test switches out of release builds. Chat-core test switches compile to false in release builds rather than leaving active test branches in the shipped client.
- One lifecycle harness for app tests. Interface, measurement and chat tests share application startup and cleanup machinery. Runtime tests start the windowless executable explicitly, and isolated graphical tests grant their test automation authority through the intended route.
- Maintain accurate checks and performance budgets. Generated-file checks avoid repeated work and development tooling shares import and cache handling. The gate’s performance allowances are recalibrated by named suite, with nightly tests drawn from the suite registry and media tools built on demand.
- Explain frames and test recovery accurately. Frames record why they ran so idle checks distinguish app work from external events. Media loss tests use controlled randomness, and the database recovery test checks the search rewrite after a failed checkpoint heals.