Chat and audio calls from the terminal
The terminal client gets a conversation list, composer, slash commands and audio calls. On the desktop, list sections collapse, conversations drag into order, and Linux installs signed updates.
New
Organise the conversation list
Conversation-list sections can collapse, and conversations can be dragged into a preferred order within a section.
New
Signed updates for the Linux desktop app
The Linux desktop app can install an update through the signed feed using the shared installer and its update card.
New
An interactive terminal shell
The terminal client gets a conversation list, message area and composer, and presents commands and interactions the same way as the app. The shared interface renders in terminal cells.
Also new
- Audio calls from the terminal. The terminal client can make and receive audio calls using the same call core as the app.
- Terminal links, copy and paste. Terminal messages can expose clickable links through supported terminals, and Copy and Cut use the terminal’s clipboard support. A keyboard paste action is available where the terminal supports it.
- Completions and slash commands in the terminal. The terminal composer shows completion lists and recognises the slash commands you type. It uses the same completer and command rules as the app.
Fixed
- Midnight stays midnight in notification settings. A notification time set to midnight reads back as 00:00 instead of changing its displayed value.
- Stop obsolete setup attempts retrying endlessly. Linking, registration and recovery limit how often a server-information request is retried. Waiting work can be cancelled when its operation is no longer current.
- Bound unanswered network requests. Sessions limit unanswered requests and keep their reconnect delay growing appropriately, avoiding unbounded waits or reconnect loops that reset too aggressively.
- Retry temporary attachment refusals. An attachment step answered with “not now” is retried instead of ending permanently. If progress stalls, diagnostics identify which step is waiting.
- Search follows edited attachment captions. Editing a caption removes its earlier words from search, so searching no longer finds the attachment under text that was replaced.
- Attach transferred history as one change. Adding handed-over history is all-or-nothing, preventing a failed import from leaving a partly attached history.
- Open the sheet for a bare command. Typing a core slash command without its optional text opens the associated sheet instead of failing to present it.
- Fit scrolling panels into the space left. Scrolling children use the actual remaining room instead of plugin-specific height guesses, improving layout as surrounding controls change.
- Make hidden terminal controls visible. Untrusted text displays visible marks for controls that need sanitising in terminal cells. It cannot silently use those characters as terminal instructions or invisible display changes.
- Cancel obsolete scheduled work. Interface, store, updater, chat, reminder, attachment, preview and backup delays use owned, cancellable timers. Call timers and device-head announcements also cancel obsolete wakes rather than leaving unnecessary frames scheduled.
Under the hood 7 changes · tests, tools and the server
- One owner for message storage changes. Message text changes, removal and row writes move behind shared storage owners. Consistent renumbering and search-index comparisons check that stored rows and search stay aligned.
- Shared shell and plugin interfaces. Shell chat helpers move into the plugin SDK, and the shared interface host uses public queries and declarations. Shared handler capabilities own drop, paste and composer targets instead of reaching through private shell internals.
- Refuse an unsupported membership role. Clients refuse an unsupported listed commit role instead of accepting a membership policy they cannot enforce.
- Measure terminal resource budgets. The terminal client gains startup, memory and idle measurement tooling, and terminal capture automation works across several real terminal applications.
- More reliable network and interface tests. Tests wait for settled frames, actual call clock activity and a newcomer’s own joined view. Proxy fixtures open independently, cancel promptly and release sockets and threads; memory diagnostics retain the observed idle cleanup trace.
- Keep engineering boundaries explicit. Agent conventions require fixes at the cause and features traceable to owner decisions. Architecture exceptions get bounded tracking, and the roadmap records the exact encryption-library pin and upstream regression checks for its advisory.