docs(guide): session entries — figure batch (paste/aspect/pathmodes/r… #18
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
| name: ci | |
| # Correctness gate on every push/PR to main. The blocking `test` job is fully | |
| # headless (no browser, no network): type-check → hermetic pure verify tier → | |
| # build (which proves BOTH the Vite bundle and the CLI+MCP node bundles) → | |
| # CLI/MCP stdio handshakes against the built bundles. A broken commit can't reach | |
| # a release tag (release.yml runs the same gate first). | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| - run: npm ci | |
| - name: Type-check (svelte-check must be 0 errors) | |
| run: npm run check | |
| - name: Pure verify tier (hermetic — no network, no dev server) | |
| run: node scripts/run-verifies.mjs --tier pure --jobs 4 | |
| - name: Upload verify summary | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: pure-verify-summary | |
| path: test-results/summary.json | |
| - name: Build (Vite bundle + dist/flux-cli.mjs + dist/flux-mcp.mjs) | |
| run: npm run build | |
| - name: Assert the packaged bundles were emitted | |
| run: | | |
| for f in dist/flux-cli.mjs dist/flux-mcp.mjs dist/slide-export-assets.json; do | |
| test -f "$f" || { echo "::error::missing build artifact $f"; exit 1; } | |
| done | |
| - name: Bundle handshakes (CLI + MCP over stdio against the built bundles) | |
| run: node scripts/run-verifies.mjs --tier bundle | |
| # Browser gate (WS-7.2) — the FULL de-flaked ui tier (post sleep→condition | |
| # conversion: 41 scripts, retryOnce on the known-sensitive ones). Currently | |
| # OBSERVING: continue-on-error keeps it non-blocking until 5 consecutive | |
| # green runs on main, then the flip is deleting the single line below (the | |
| # plan's promotion condition — do not flip early, do not loosen a script to | |
| # get there). | |
| ui-gate: | |
| runs-on: ubuntu-latest | |
| continue-on-error: true # WS-7.2: DELETE THIS LINE after 5 consecutive green main runs | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| - run: npm ci | |
| - uses: browser-actions/setup-chrome@v1 | |
| id: chrome | |
| - name: Start the dev server | |
| run: npm run dev & | |
| - name: Wait for the dev server on :1420 | |
| run: npx wait-on tcp:127.0.0.1:1420 --timeout 120000 | |
| - name: Full ui tier | |
| env: | |
| FLUX_CHROME: ${{ steps.chrome.outputs.chrome-path }} | |
| run: node scripts/run-verifies.mjs --tier ui | |
| - name: Upload ui verify summary | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ui-verify-summary | |
| path: test-results/summary.json |