Files
rookiestar28 5939330cda feat(h3): add MiniMax H3 schedule and parity lanes
Implement explicit Base FL2VA and Ref2VA profiles, sigma node and native workflow contracts; add Diffusers and ComfyUI-native parity runners, golden evidence, CI jobs, compatibility contracts, and package/release updates.

Progress: tracked index and reviewed .secrets.baseline reconciled across 56 public paths; performance matrix regenerated; local Diffusers and native ComfyUI H3 parity PASS; wheel audit PASS (102 files, zero mandatory runtime dependencies). Linux full gate passed pre-pytest stages and reached 2603 passed, 3 skipped, 2 failed.

Blockers: the remaining pytest failures are stale native-Windows receipt/matrix fingerprints; this WSL environment cannot execute powershell.exe, cmd.exe, wsl.exe, or PE32+ Windows Python. Hosted Actions evidence is unavailable because GH_TOKEN is invalid. Canonical pinned H1/H2 was not launched because reference/ComfyUI requires comfy-aimdo==0.4.11 while the selected executable environment has 0.4.10.

Handoff: regenerate tests/compatibility/fixtures/windows_py313_v1.json natively, regenerate/check the derived compatibility matrix, rerun the Linux full gate, publish the candidate through authenticated hosted CI, then run scripts/run_comfyui_e2e.py --minimax-h3-only against ComfyUI 14b05228 with comfy-aimdo==0.4.11. Keep M6-05 IN_PROGRESS until all gates pass. Detailed local-only records remain in ignored .planning/ and reference/; no weights or credentials are included.
2026-08-05 14:11:20 +08:00

321 lines
11 KiB
YAML

name: Foundation CI
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
concurrency:
group: foundation-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
full-gate:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
python:
- "3.10"
- "3.13"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: ${{ matrix.python }}
- name: Set up Node.js
# actions/setup-node v6.4.0
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # pragma: allowlist secret
with:
node-version: "20"
package-manager-cache: false
- name: Create Windows environment
if: runner.os == 'Windows'
shell: pwsh
run: |
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
- name: Run Windows full gate
if: runner.os == 'Windows'
shell: pwsh
run: powershell -File scripts/run_full_tests_windows.ps1
- name: Create Linux environment
if: runner.os == 'Linux'
shell: bash
run: |
python -m venv .venv-wsl
.venv-wsl/bin/python -m pip install -e '.[dev]'
- name: Run Linux full gate
if: runner.os == 'Linux'
shell: bash
run: bash scripts/run_full_tests_linux.sh
parity-pinned:
runs-on: ubuntu-latest
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: "3.13"
- name: Create isolated parity environment
shell: bash
run: |
python -m venv .venv-parity
.venv-parity/bin/python -m pip install -e '.[dev]'
.venv-parity/bin/python -m pip install --no-cache-dir \
--index-url https://download.pytorch.org/whl/cpu \
torch==2.9.0+cpu
.venv-parity/bin/python -m pip install --no-cache-dir \
-r requirements/parity-krea2-turbo.txt
- name: Regenerate pinned Krea 2 Turbo parity report
shell: bash
run: |
.venv-parity/bin/python -m scripts.run_krea2_turbo_parity \
--output .tmp/krea2_turbo_parity_v1.json
- name: Verify committed parity evidence
shell: bash
run: |
cmp --silent \
tests/parity/fixtures/krea2_turbo_parity_v1.json \
.tmp/krea2_turbo_parity_v1.json
- name: Publish parity evidence
if: always()
# actions/upload-artifact v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pragma: allowlist secret
with:
name: krea2-turbo-parity-python-3.13
path: .tmp/krea2_turbo_parity_v1.json
if-no-files-found: warn
retention-days: 14
minimax-h3-diffusers-parity-pinned:
runs-on: ubuntu-latest
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: "3.13"
- name: Create isolated MiniMax H3 parity environment
shell: bash
run: |
python -m venv .venv-h3-parity
.venv-h3-parity/bin/python -m pip install -e '.[dev]'
.venv-h3-parity/bin/python -m pip install --no-cache-dir \
--index-url https://download.pytorch.org/whl/cpu \
torch==2.9.0+cpu
.venv-h3-parity/bin/python -m pip install --no-cache-dir \
-r requirements/parity-minimax-h3-diffusers.txt
- name: Run pinned MiniMax H3 Diffusers parity
shell: bash
run: |
.venv-h3-parity/bin/python -m scripts.run_minimax_h3_diffusers_parity \
--output .tmp/h3-diffusers-parity-report.json
- name: Verify generated MiniMax H3 parity evidence
shell: bash
run: test -s .tmp/h3-diffusers-parity-report.json
- name: Publish MiniMax H3 parity evidence
if: always()
# actions/upload-artifact v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pragma: allowlist secret
with:
name: minimax-h3-diffusers-parity-python-3.13
path: .tmp/h3-diffusers-parity-report.json
if-no-files-found: warn
retention-days: 14
minimax-h3-comfyui-native-parity-pinned:
runs-on: ubuntu-latest
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: "3.13"
- name: Fetch pinned ComfyUI H3 source
shell: bash
run: |
git init .tmp/ComfyUI-H3
git -C .tmp/ComfyUI-H3 remote add origin https://github.com/Comfy-Org/ComfyUI.git
git -C .tmp/ComfyUI-H3 fetch --depth 1 origin \
57500fc5bc92566a63f2046824f522cd55c335ca # pragma: allowlist secret
git -C .tmp/ComfyUI-H3 checkout --detach FETCH_HEAD
- name: Create isolated native H3 parity environment
shell: bash
run: |
python -m venv .venv-h3-comfy-native
.venv-h3-comfy-native/bin/python -m pip install -e '.[dev]'
.venv-h3-comfy-native/bin/python -m pip install --no-cache-dir \
-r requirements/parity-comfyui-h3-native.txt
- name: Regenerate native ComfyUI H3 parity report
shell: bash
run: |
.venv-h3-comfy-native/bin/python -m scripts.run_minimax_h3_comfy_native_parity \
--comfyui-root .tmp/ComfyUI-H3 \
--output .tmp/minimax_h3_comfy_native_parity_v1.json
- name: Verify committed native H3 evidence
shell: bash
run: |
cmp --silent \
tests/parity/fixtures/minimax_h3_comfy_native_parity_v1.json \
.tmp/minimax_h3_comfy_native_parity_v1.json
- name: Publish native H3 parity evidence
if: always()
# actions/upload-artifact v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pragma: allowlist secret
with:
name: minimax-h3-comfy-native-parity-python-3.13
path: .tmp/minimax_h3_comfy_native_parity_v1.json
if-no-files-found: warn
retention-days: 14
raw-parity-pinned:
runs-on: ubuntu-latest
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: "3.13"
- name: Create isolated RAW parity environment
shell: bash
run: |
python -m venv .venv-parity
.venv-parity/bin/python -m pip install -e '.[dev]'
.venv-parity/bin/python -m pip install --no-cache-dir \
--index-url https://download.pytorch.org/whl/cpu \
torch==2.9.0+cpu
.venv-parity/bin/python -m pip install --no-cache-dir \
-r requirements/parity-krea2-turbo.txt
- name: Regenerate pinned Krea 2 RAW parity report
shell: bash
run: |
.venv-parity/bin/python -m scripts.run_krea2_raw_parity \
--output .tmp/krea2_raw_parity_v1.json
- name: Verify committed RAW parity evidence
shell: bash
run: |
cmp --silent \
tests/parity/fixtures/krea2_raw_parity_v1.json \
.tmp/krea2_raw_parity_v1.json
- name: Publish RAW parity evidence
if: always()
# actions/upload-artifact v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pragma: allowlist secret
with:
name: krea2-raw-parity-python-3.13
path: .tmp/krea2_raw_parity_v1.json
if-no-files-found: warn
retention-days: 14
native-comfyui-parity-pinned:
runs-on: ubuntu-latest
steps:
- name: Checkout
# actions/checkout v6.0.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # pragma: allowlist secret
- name: Set up Python
# actions/setup-python v6.2.0
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # pragma: allowlist secret
with:
python-version: "3.13"
- name: Fetch pinned ComfyUI source
shell: bash
run: |
git init .tmp/ComfyUI
git -C .tmp/ComfyUI remote add origin https://github.com/Comfy-Org/ComfyUI.git
git -C .tmp/ComfyUI fetch --depth 1 origin \
e651b7bef55a5376343dcb1c0edb79f0142c985e # pragma: allowlist secret
git -C .tmp/ComfyUI checkout --detach FETCH_HEAD
- name: Create isolated native parity environment
shell: bash
run: |
python -m venv .venv-comfy-parity
.venv-comfy-parity/bin/python -m pip install -e '.[dev]'
.venv-comfy-parity/bin/python -m pip install \
-r requirements/parity-comfyui-native.txt
- name: Regenerate native ComfyUI parity report
shell: bash
run: |
.venv-comfy-parity/bin/python -m scripts.run_krea2_comfy_native_parity \
--comfyui-root .tmp/ComfyUI \
--output .tmp/krea2_turbo_comfy_native_parity_v1.json
- name: Verify committed native evidence
shell: bash
run: |
cmp --silent \
tests/parity/fixtures/krea2_turbo_comfy_native_parity_v1.json \
.tmp/krea2_turbo_comfy_native_parity_v1.json
- name: Publish native parity evidence
if: always()
# actions/upload-artifact v7.0.1
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # pragma: allowlist secret
with:
name: krea2-turbo-comfy-native-parity-python-3.13
path: .tmp/krea2_turbo_comfy_native_parity_v1.json
if-no-files-found: warn
retention-days: 14