Resources Required for 2026H1:
- 2 Chat engineers
Once done, apps like Status can build a chat experience which includes support for multiple devices and multiple participants in a given group chat.
Group chat features will be limited at this stage and extended with further milestones. Support for plugging Status Communities on top of Logos Chat is not expected — further group size scaling and extension of membership management API would be needed.
Encryption approach: de-MLS (decentralised MLS) from the AnonComms team, which provides multi-steward group management. de-MLS API is consumed as a dependency from the AnonComms team.
Identity: A simple identity model must be in place for this milestone. A “user” is a set of installations (devices), with basic association between them. Key rotation and device recovery are included at a basic level. Full identity (binding to external identities, provenance logs, advanced recovery) is planned for Chat — Developer Preview.
Remove unnecessary Nim shim: This milestone includes an attempt to remove the unnecessary Nim layer in Logos Chat by rewriting it in Rust. Currently the Nim layer exists primarily to manage the async runtime and Logos Delivery integration, but adds complexity with no clear benefit. This rewrite is only feasible if Logos Chat can remain fully synchronous on the Rust side. If successful, it would significantly simplify development going forward.
FURPS
- Group Chat: all
Risks
| Type/Level | Risk | (Accept, Own, Mitigation) |
|---|---|---|
| Schedule/Medium | Milestone dependency | This milestone depends on Chat — Foundations. Delays there translate into delays here. |
| Technical/Low | Group chat bugs | Group chat is prone to bugs even when using existing encryption protocols. Extra time allocated to testing and debugging. |
| Technical/High | SDS and de-MLS ordering conflict | SDS works backward in the dependency tree, but de-MLS requires forward construction from checkpoints. Specific deliverable scheduled to design and define integration. |
| Technical/High | Nim shim removal feasibility | Removing the Nim layer is only possible if Logos Chat remains fully synchronous. If async is required (e.g. for data storage), the removal may not be feasible. |
Deliverables
Add Group Chat
Owner: Chat Team
Feature: Group Chat
FURPS:
-
F1. Accounts can receive a message in multiple locations (e.g. devices) by registering new installations.
-
F2. Accounts can view and remove installations as needed.
-
F3. Accounts can create group chats between multiple accounts.
-
F4. Participants can set a group name and description for all participants in the group.
-
F5. Account can view all provisioned installations.
-
F6. Account can revoke other installations in case of a lost device.
-
R1. Group participants in a conversation can tell if a message is missing, and who sent it.
-
P1. The number of network messages for a single outbound group message does not scale with the number of group members.
-
+PRIV1. Non-participants cannot correlate a group conversation to any of its participants.
-
+PRIV2. No identifying information is visible when registering an installation.
Implement simple identity model
Owner: Chat Team
- A “user” is represented as a set of installations (devices)
- Basic association between installations belonging to the same user
- Basic key rotation: ability to add/remove installations
Implement contact discovery
Owner: Chat Team
The implementation should replace v0.1 out-of-band intro bundle sharing. Current agreement is to use on-chain storage.
Risk
Requires research into whether Logos Blockchain supports the needed functionality by this timeline. Fallback is to continue with out-of-band sharing.
Design SDS and de-MLS integration
Owner: Chat Team
Define how SDS reliability (backward dependency resolution) integrates with de-MLS encryption (forward checkpoint construction). This is a design deliverable that feeds into the Reliable Channel API General Availability milestone.
Dependency: de-MLS API from AnonComms team must be available.
Remove unnecessary Nim shim from Logos Chat
Owner: Chat Team
Evaluate and attempt removing the Nim layer of Logos Chat (logos-chat) by rewriting it in Rust. The Nim layer currently handles async runtime management and Logos Delivery integration but adds development complexity. If Logos Chat can remain fully synchronous, this layer can be replaced with Rust, unifying the codebase.
Perform test integration of Logos Chat into Status App
Owner: Chat Team + Status Team
Initial validation that Logos Chat (1:1 + group chats) can be consumed by Status. This is an exploratory integration, not a production milestone. The goal is to get feedback on the API from a production app.