name: Model Capability Regenerate-Then-Diff on: pull_request: paths: - 'scripts/model-capabilities.json' - 'scripts/generate-model-capabilities.mjs' - 'crates/buzz-agent/src/generated_model_capabilities.rs' - 'desktop/src/features/agents/ui/modelCapabilities.ts' - 'scripts/generated-model-capabilities-coverage.json' - '.github/workflows/model-capability-regen-diff.yml' # Differential harness and fixtures — any change to old/new side or inputs re-runs. - 'scripts/run-differential.mjs' - 'scripts/normative-corpus.json' - 'scripts/catalog-sample-fixture.json' - 'desktop/src/features/agents/ui/effortTable.fixture.json' - 'desktop/src/features/agents/ui/buzzAgentConfig.ts' - 'crates/buzz-agent/src/config.rs' - 'crates/buzz-agent/src/llm.rs' push: branches: [main, release, 'duncan/databricks-model-label-registry'] jobs: regen-diff: name: Regenerate and diff model capability artifacts runs-on: ubuntu-latest timeout-minutes: 5 permissions: contents: read steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Set up Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: '22' package-manager-cache: false - name: Regenerate artifacts run: node scripts/generate-model-capabilities.mjs - name: Diff check — fail if generated files are stale run: | if ! git diff --exit-code \ crates/buzz-agent/src/generated_model_capabilities.rs \ desktop/src/features/agents/ui/modelCapabilities.ts \ scripts/generated-model-capabilities-coverage.json; then echo "" echo "ERROR: Generated model-capability files are stale." echo "Run: node scripts/generate-model-capabilities.mjs" echo "Then commit the regenerated files." exit 1 fi echo "✓ All generated files are up to date." - name: Run corpus (TS interpreter via --experimental-strip-types) run: node --experimental-strip-types scripts/run-corpus.mjs - name: Validate manifest (schema-negative tests) run: node --test scripts/test-manifest-validator.mjs - name: Run differential harness (old vs new, all input sets) run: node --experimental-strip-types scripts/run-differential.mjs