Skip to content

fix(wizard): no mezclar el chat al cambiar de workspace a mitad de turno #96

fix(wizard): no mezclar el chat al cambiar de workspace a mitad de turno

fix(wizard): no mezclar el chat al cambiar de workspace a mitad de turno #96

Workflow file for this run

name: CI
# Deterministic quality gates that must pass on every push + PR.
# The clean-repo guard is the important one for a public repo: it fails
# the build if mature/explicit prose or locally-generated model guides
# ever leak into tracked source (see scripts/verify_clean_repo.py).
#
# GitHub Actions are pinned to commit SHAs (immutable). Version comments
# are documentation only; do not use moving tags such as @v4 or @latest.
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
workflow_dispatch:
jobs:
guard:
name: Clean-repo guard + Python checks
runs-on: ubuntu-24.04
timeout-minutes: 20
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.10"
- name: Clean-repo boundary guard
run: python scripts/verify_clean_repo.py
- name: Dependency install/update contract smoke
run: python scripts/check_dependency_contract.py
- name: Documentation links and drift
run: python scripts/check_documentation_links.py
- name: Visible brand and compatibility contract
run: python scripts/check_brand_contract.py
- name: Python syntax check (our modules)
# compileall only compiles (never imports), so it needs no deps and
# skips heavy vendored model code. Covers the surface we edit.
run: python -m compileall -q app/services app/launch.py scripts
- name: Install lightweight test dependencies
run: >-
python -m pip install
"starlette==0.46.1"
"numpy==2.2.6"
"opencv-python-headless==4.12.0.88"
"Pillow==11.3.0"
"requests==2.32.4"
"accelerate==1.12.0"
"av==16.1.0"
"diffusers==0.36.0"
"decord==0.6.0"
"einops==0.8.2"
"fastapi==0.115.12"
"ffmpeg-python==0.2.0"
"imageio==2.37.2"
"imageio-ffmpeg==0.6.0"
"json_repair==0.59.5"
"mmgp==3.7.6"
"onnxruntime==1.23.2"
"pydantic==2.10.6"
"psutil==7.2.2"
"pytest==8.3.5"
"rembg==2.0.65"
"tqdm==4.67.3"
"transformers==4.57.1"
"websocket-client==1.9.0"
- name: Install CPU tensor test runtime
run: >-
python -m pip install
"torch==2.7.0+cpu"
"torchaudio==2.7.0+cpu"
"torchvision==0.22.0+cpu"
--extra-index-url https://download.pytorch.org/whl/cpu
- name: Install ffmpeg for media tests
run: sudo apt-get update && sudo apt-get install -y ffmpeg
- name: Pytest collection
run: python -m pytest --collect-only -q
- name: Python test suite
run: python -m pytest -q
ui-check:
name: UI tests + lint + type-check + build
runs-on: ubuntu-24.04
timeout-minutes: 10
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: "24.18.0"
check-latest: false
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Install UI deps
working-directory: ui
run: npm ci
# Split `npm run check` so a hung runner is visible in the failing step
# instead of one opaque 6-hour job (GitHub's default timeout).
- name: UI tests
working-directory: ui
run: npm test
- name: Lint with zero warnings
working-directory: ui
run: npm run lint -- --max-warnings=0
- name: Type-check, build and bundle budget
working-directory: ui
run: npm run build && npm run budget
ui-e2e:
name: UI E2E boot (Chromium + simulated API)
runs-on: ubuntu-24.04
timeout-minutes: 20
permissions:
contents: read
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: "24.18.0"
check-latest: false
cache: npm
cache-dependency-path: ui/package-lock.json
- name: Install UI deps
working-directory: ui
run: npm ci
- name: Install Playwright Chromium
working-directory: ui
run: npx playwright install --with-deps chromium
- name: UI E2E
working-directory: ui
run: npm run test:e2e
- name: Upload Playwright artifacts
if: failure()
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: ui-e2e-artifacts
path: |
ui/playwright-report
ui/test-results
if-no-files-found: ignore