Spaces:
Running on Zero
Running on Zero
Commit History
-
Gate generations behind webapp grants and a public free limit
Embedded generations ask the SkyeBrowse webapp for a signed grant before any GPU work when LABS_EMBED_GRANTS is set; shared grants defer straight to the Pro fallback with the grant nonce. Public browser visits get LABS_PUBLIC_FREE_LIMIT generations per visitor, then a sign-up link. Both are inert until their Space variables are set. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>1ac53f4
-
Add Pro allowance fallback for ZeroGPU quota denials
Bobby +1: Claude CodeDefer genuine ZeroGPU quota denials to the SkyeBrowse Pro allowance and restore the result on CPU, without blocking the Space or polling. quota_fallback.py: HMAC-signed receipt/permit documents with strict base64url validation before hashing, an 8-entry bounded pending cache that never purges a running entry to admit work, session binding, and a permit-gated coordinator that logs only exception types. fallback_bridge.js: Gradio 4 preprocess hook that posts the signed ticket to an allow-listed __labs_parent embed and awaits the result. It is attached to the backend restore dependency because a js-only dependency never continues a .then() chain; the ack returns through a hidden gr.JSON input. app.py: quota denials are deferred only for same-origin allow-listed embeds with a signing key present, otherwise the original gr.Error is re-raised. Adds /run_pro_fallback([ticket, permit]) and preserves every existing API name and arity. tests: unit coverage for crypto, cache bounds, coordinat…ec59cbe