name: Comms Regression
on:
workflow_dispatch:
pull_request:
branches:
- main
paths:
- 'src/lib/api-client.ts'
- 'src/lib/host-api.ts'
- 'src/stores/gateway.ts'
- 'src/stores/chat.ts'
- 'electron/gateway/**'
- 'electron/main/ipc-handlers.ts'
- 'electron/utils/logger.ts'
- 'scripts/comms/**'
- 'tests/unit/gateway-events.test.ts'
- '.github/workflows/comms-regression.yml'
jobs:
comms-regression:
runs-on: ubuntu-latest
env:
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
cache: 'pnpm'
- name: Prefer HTTPS for public GitHub git dependencies
run: |
git config --global "url.https://github.com/.insteadOf" "git@github.com:"
git config --global --add "url.https://github.com/.insteadOf" "ssh://git@github.com/"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run comms replay
run: pnpm run comms:replay
- name: Compare with baseline
run: pnpm run comms:compare
- name: Upload comms artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: comms-regression-artifacts
path: artifacts/comms