Fix mobile chat viewport and thread navigation #3494
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # CI test workflow. Runs on every PR + push to main. | |
| # | |
| # Runs the full ./run-tests.sh battery: | |
| # - Node-side tests (native-dialog guard, lens-local-utils, dev-server | |
| # origin guard) | |
| # - Playwright-driven web-app suite | |
| # - Cold mobile-load resource budgets | |
| # - Focused Firefox smoke coverage for critical browser flows | |
| name: Tests | |
| on: | |
| pull_request: | |
| branches: [main] | |
| push: | |
| branches: [main] | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: npm | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Run typecheck | |
| run: npm run typecheck | |
| - name: Run full-app checkJs | |
| run: npm run typecheck:checkjs | |
| - name: Enforce strict-null debt ratchet | |
| run: npm run typecheck:strict-null | |
| - name: Verify architecture map and boundaries | |
| run: npm run architecture:check | |
| - name: Verify production bundle and performance budgets | |
| run: npm run production:check | |
| - name: Run quality guardrails | |
| run: npm run quality | |
| - name: Cache Playwright browsers | |
| uses: actions/cache@v6 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: playwright-browsers-${{ runner.os }}-${{ hashFiles('package-lock.json') }} | |
| restore-keys: | | |
| playwright-browsers-${{ runner.os }}- | |
| - name: Install Playwright browsers | |
| run: npx playwright install --with-deps chromium firefox | |
| - name: Resolve catalog file (fetch from private source if creds set, else use stub) | |
| env: | |
| CATALOG_FETCH_URL: ${{ secrets.CATALOG_FETCH_URL }} | |
| CATALOG_FETCH_TOKEN: ${{ secrets.CATALOG_FETCH_TOKEN }} | |
| run: node scripts/fetch-catalog.mjs | |
| - name: Run Firefox smoke suite | |
| run: npm run test:firefox | |
| - name: Run test suite with coverage ratchet | |
| run: COVERAGE=1 SKIP_TYPECHECK=1 ./run-tests.sh | |
| - name: Upload test logs on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-logs | |
| path: /tmp/dev-server.log | |
| if-no-files-found: ignore | |
| retention-days: 7 |