feat(contracts): add typed Forge runtime probes

#8

Outcome

Add exact, typed GET compatibility contracts without converting the Space to Docker or replacing its managed Gradio UI/API.

Contracts

  • GET /.well-known/szl-source.json ? fail-closed deployment-source evidence
  • GET /healthz ? transport health separated from model quality and source parity
  • GET /api/status ? runtime envelope around the existing packaged /status contract

Honesty boundary

  • PENDING_GITHUB_SYNC; GitHub/HF byte parity is not claimed
  • Hub repository-head evidence is not described as exact serving-process identity
  • no SLSA provenance, reproducible-build, training-quality, or promotion claim
  • source route returns typed 503 if Hub revision evidence cannot be measured

Runtime preservation

  • keeps sdk: gradio
  • pins current verified sdk_version: 6.20.0
  • uses public Blocks.launch(prevent_thread_lock=True), the returned FastAPI app, then normal Gradio blocking
  • no private Gradio monkey-patch and no Docker migration

Verification

  • 17/17 unit and integration tests pass
  • Python compilation passes
  • full local Forge launch: root, /config, Gradio OpenAPI, and all three exact routes return expected 200 content types/schemas
  • base app.py and README.md exact-match main 2c16be5... before this patch

Promotion boundary

Do not merge on source review alone. Merge only with a rollback path, then require exact RUNNING revision, root/config/API preservation, three live typed route probes, and the existing cold-cache asset/mobile gate.

Controlled promotion after 17/17 tests, compilation, full managed-Gradio launch, exact blob verification, and rollback preparation. Live revision/routes/assets/mobile gates now begin; revert to 2c16be5 on any required failure.

betterwithage changed pull request status to merged

Sign up or log in to comment