mirror of
https://github.com/logos-co/logos-chat-ui.git
synced 2026-08-27 09:11:11 +00:00
* feat: group conversations UI The UI surfaced only 1:1 conversations, but chat_module now exposes GroupV2 groups, so the UI needs to create them, display their roster, and grow them. - ChatBackend gains create_group_conversation / add_group_member and exposes the current conversation's group view state (currentIsGroup, currentDisplayName, memberCount) as replicated backend properties: across the QtRO boundary a model replica carries roles and data() but not the source model's custom Q_INVOKABLE methods or a reliable rowCount(), so that whole-model state is derived on the source side and pushed as properties. refreshMembers reads the roster as [GroupMember] records. - MemberListModel drives the members panel; a member with no confirmed account renders as "unknown_account". - ConversationListModel marks group rows; ChatView shows the members panel and per-message sender labels only for groups; MembersPane hosts the roster and the add-member field. - Pin chat_module to the merged GroupV2 commit on chat-module master (#43): its GroupV2 contract (create_group_conversation, add_group_member, list_group_members, the conversation kind and message sender fields) isn't in a released tag yet, so pin the exact commit and re-pin as chat_module advances. * test: add a three-party group-chat doc-test and CI gate Exercise the group UI end to end: three headless app instances form a group, grow it member by member, and render the roster, captured as a screenshot. - doctests/chat-ui-group.test.yaml plus doctests/group/ drive three instances on ports distinct from the exchange spec, so both specs can run in one job without their module hosts colliding; nix run .#group launches the screenshot app. - doctests.yml runs the group spec alongside exchange; group-chat.yml is a dedicated Ubuntu gate that runs the three-party driver from the checkout. * docs: document running multiple instances on one machine Running side-by-side instances was only covered in the linked two-instance-exchange doc. Add it to the README's How to Run directly: the per-instance env vars (CHAT_MODULE_INSTANCE_PATH, CHAT_MODULE_DELIVERY_PORT, and QML_INSPECTOR_PORT when driving an instance via the inspector), a copy-paste two-window example and how to scale to more, with the exchange/group drivers linked for the full flow. * docs: correct delivery-module version in README The Dependencies and Related Repositories tables listed the delivery-module runtime pin as v0.1.2; the flake pins v0.1.3. Match them.
32 lines
813 B
JSON
32 lines
813 B
JSON
{
|
|
"name": "chat_ui",
|
|
"display_name": "Chat",
|
|
"version": "0.2.0",
|
|
"type": "ui_qml",
|
|
"interface": "universal",
|
|
"category": "chat",
|
|
"description": "Chat App for Logos - Private messaging interface",
|
|
"main": "chat_ui_plugin",
|
|
"view": "qml/ChatView.qml",
|
|
"dependencies": ["chat_module", "delivery_module"],
|
|
"codegen": {
|
|
"rep": "src/ChatBackend.rep",
|
|
"backend_class": "ChatBackend",
|
|
"backend_header": "ChatBackend.h"
|
|
},
|
|
"dependency_overrides": {
|
|
"delivery_module": {
|
|
"input": "chat_module",
|
|
"file": "rust-lib/deps/delivery_module.lidl"
|
|
}
|
|
},
|
|
"nix": {
|
|
"packages": {
|
|
"build": [],
|
|
"runtime": ["qt6.qtdeclarative", "zstd", "krb5", "abseil-cpp"]
|
|
},
|
|
"external_libraries": [],
|
|
"cmake": { "find_packages": [], "extra_sources": [] }
|
|
}
|
|
}
|