Files
logos-chat-ui/.github/workflows/group-chat.yml
osmaczko e6f2682e70 feat: take chat storage from the host-assigned session directory (#43)
* 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.
2026-07-22 20:13:03 +02:00

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