Skip to content

feat(baker+ci): substrate coverage checker + ambientcg JPG fallback (#293)#444

Open
gerchowl wants to merge 1 commit into
devfrom
feature/293-coverage-checker-clean
Open

feat(baker+ci): substrate coverage checker + ambientcg JPG fallback (#293)#444
gerchowl wants to merge 1 commit into
devfrom
feature/293-coverage-checker-clean

Conversation

@gerchowl
Copy link
Copy Markdown
Contributor

Summary

  • Substrate coverage checker (scripts/check_substrate_coverage.py) — compares canonical release matrix + upstream material catalogs against live HF substrate state. Reports per-(source, tier) coverage: missing tiers, missing material IDs, unexpected extras.
  • ambientcg JPG fallback_TIER_ATTRS now tries PNG first, falls back to JPG. JPG→PNG conversion at extraction time via PIL. Unlocks 28 previously unbakeable materials (1949 → 1977 bakeable).
  • Dagger CI functioncheck_substrate_coverage() wraps the script for CI pipelines.
  • physicallybased in snapshot_upstream_catalog_ids_for_source() now handles all 4 sources.
  • 24 tests — full coverage of detection, reporting, waivers, CLI exit codes, JSON output.

What it found on gerchowl/mat-vis-tst @ v2026.04.99-tst-full-369

Issue Finding
#436 ktx2-512 never derived for any source; ambientcg/ktx2-1k missing from manifest
#435 18 gpuopen procedural materials + 17 ambientcg no-download placeholders are permanent false positives — discover() needs capability classification
#437 Vision: upstream delta detection → auto-PR → bake to tst → preview on Pages → accept via PR merge

Test plan

  • uv run pytest tests/test_check_substrate_coverage.py -v — 24 passed
  • ruff check — clean
  • Live run against gerchowl/mat-vis-tst — produces correct coverage report
  • JPG fallback E2E: downloaded Asphalt001 JPG ZIP, extracted 4 channels as PNG (1024x737)
  • No regressions in test_release_registry, test_release_matrix, test_check_upstream_content_drift (82 passed)

🤖 Generated with Claude Code

…293)

Wire up the "wanted vs actual" substrate coverage checker that compares
the canonical release matrix + upstream catalogs against live HF state.

New:
- scripts/check_substrate_coverage.py — CLI + Dagger function
- tests/test_check_substrate_coverage.py — 24 tests

Changed:
- ambientcg adapter: JPG fallback in _TIER_ATTRS + JPG→PNG conversion
  at extraction time (unlocks 28 previously unbakeable materials)
- snapshot_upstream_catalog: add physicallybased to _ids_for_source()
- Dagger: add check_substrate_coverage() function

Closes #293
@github-actions github-actions Bot added area:testing Test infrastructure, BATS, pytest area:workspace Workspace tooling, justfile, templates area:baker Baker pipeline, Dagger, data fetchers labels May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:baker Baker pipeline, Dagger, data fetchers area:testing Test infrastructure, BATS, pytest area:workspace Workspace tooling, justfile, templates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant