mirror of
https://github.com/logos-co/logos-chat-ui.git
synced 2026-08-27 09:11:11 +00:00
* feat: take chat storage from the host-assigned session directory The platform assigns every module instance its own persistence directory, so picking one here duplicated a decision the host had already made and left the init contract claiming an owner it did not have. The standalone runner's `--user-dir` now selects the session directory the multi-instance dev and CI flows key off, so one host-level knob keeps two instances' state apart instead of a chat-specific environment variable. * feat: stop choosing the delivery node's port Running several instances on one host meant inventing a distinct delivery port for each and threading it through an environment variable, the docs, and both doc-test drivers, a coordination burden that bought nothing the transport cannot decide for itself. chat_module's init no longer takes a port and its delivery node listens on ports it picks itself, so a session directory is the only thing that has to differ per instance.
61 lines
2.1 KiB
YAML
61 lines
2.1 KiB
YAML
name: Group chat
|
|
|
|
# Forms a real three-party group conversation across three logos-chat-ui windows
|
|
# over logos-qt-mcp (doctests/group/run-group.sh): Alice creates the group,
|
|
# invites Bob and Carol, and once the roster converges sends a message that fans
|
|
# out to both. This doubles as an end-to-end GUI integration test — the job fails
|
|
# if the group does not form or the message does not arrive — and captures the
|
|
# screenshots as an artifact for review.
|
|
#
|
|
# This job is Linux only: it launches three standalone app instances on one host,
|
|
# which the script keeps apart via distinct data dirs and inspector ports. macOS
|
|
# still exercises the group flow through the chat-ui-group
|
|
# spec in doctests.yml; this job is the dedicated, race-free gate for it (it runs
|
|
# the flow against the checked-out tree rather than a freshly pushed github ref).
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches: [master, main]
|
|
workflow_dispatch:
|
|
|
|
concurrency:
|
|
group: group-chat-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
group:
|
|
name: group chat (ubuntu-latest)
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 90
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install Nix
|
|
uses: DeterminateSystems/nix-installer-action@main
|
|
|
|
- name: Setup Cachix
|
|
uses: cachix/cachix-action@v15
|
|
with:
|
|
name: logos-co
|
|
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
|
|
|
|
# The flow runs against the commit under test (FLAKE defaults to the
|
|
# checked-out tree) and needs a real network: the three delivery nodes find
|
|
# each other on the configured fleet, and init publishes each instance's key
|
|
# package to the key-package registry.
|
|
- name: Form the group and capture screenshots
|
|
run: |
|
|
nix shell nixpkgs#nodejs --command \
|
|
bash doctests/group/run-group.sh "$PWD/docs/images/group"
|
|
|
|
- name: Upload group screenshots
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: group-chat-screenshots
|
|
path: docs/images/group/*.png
|
|
if-no-files-found: warn
|