Hugging Face Spaces — Quick Deploy for an AI Demo or Agent Backend — source notes
Source notes and claim audit for the ABS Setup guide draft on Hugging Face Spaces — Quick Deploy for an AI Demo or Agent Backend.
hugging-face-spaces-quick-deploy source notes — v2 fix pass
Draft path: /opt/data/cron-state/abs-guides-drafts/hugging-face-spaces-quick-deploy.md Review URL target: /guides/review/hugging-face-spaces-quick-deploy/ Sources checked: current Hugging Face overview, pricing, SDK, configuration, storage, embedding, and forum pages Drafter: MiniMax M3 (2026-07-22) Independent reviewer: MiniMax M3 in a separate fresh context (2026-07-22) Fix pass: Hermes subagent (2026-07-22)
Priority-fix evidence
1. Account-plan and visibility gating
- Spaces Overview states that Static Spaces are free for everyone. Creating Gradio or Docker compute Spaces requires PRO for personal accounts or Team/Enterprise for organizations, except that free personal accounts in good standing may host up to two Gradio ZeroGPU Spaces.
- Spaces Overview lists CPU Basic as 2 vCPU, 16 GB RAM, 50 GB ephemeral disk, and no hourly cost. This is a hardware price, not free-plan eligibility.
- The same page explicitly gates protected visibility to PRO/Team/Enterprise. It does not state that private visibility requires PRO. Private apps return
404to users without access, so anonymous curl is not a valid private-Space smoke test. - Pricing lists PRO at $9/month and CPU Basic hardware at $0/hour, confirming that the two prices describe different layers.
Verdict: prior claims that a free account/no credit card sufficed for CPU Basic compute creation, and that private visibility required PRO, were wrong. Corrected throughout the draft. The unchanged “Before you start” section still contains the old free-tier/no-credit-card statements because the task explicitly prohibited changing that section; this residual conflict is recorded for the parent.
2. Persistence, lifecycle, secrets, and embedding
- Disk usage on Spaces says default disk is ephemeral and Storage Buckets can be attached as volumes at a path the user specifies. Attachment is available during Space creation, through Space Settings, or through
huggingface_hub; volumes can be read-write or read-only. - Storage Buckets describes buckets as mutable, non-versioned S3-like object storage. Deletions are immediate and permanent.
- Spaces Configuration Reference contains no
storage_bucket:key. Legacysuggested_storageis ignored. - Spaces Overview says each push rebuilds and restarts, but does not promise last-known-good rollback after a failed deploy.
- Overview/Docker docs support runtime environment-variable injection for secrets. They do not support the removed absolutes “encrypted at rest,” “never logged,” or “logs are public.”
- Embed your Space documents a plain iframe URL for public/protected Spaces; it does not require generic
?embed=truebehavior.
Verdict: removed invented storage_bucket: metadata, mandatory /data, rollback guarantee, unsupported secret/log assertions, and generic embed-query claim.
3. Common failures
- Spaces Configuration Reference documents
startup_duration_timeout, default 30 minutes. - Docker Spaces documents Docker’s default
app_port: 7860and the requirement that the app and exposed port align. - The prior forum citations did not prove the precise causes assigned to them. Thread 63685 did not prove a port mismatch; 78367 concerned runtime DNS rather than a build-stage prohibition; 161180 did not establish torch/large ADD as the cause; 70822 was an unresolved report.
Verdict: every failure row now either relies on official configuration/runtime facts or says the condition may be transient and directs readers to their exact logs. Removed “Cloudflare 520 is common.” The current forum category is /c/spaces/24.
4. Setup contract
- Added explicit
## Installand## Configuresections. - Retained a six-row command map with one job and one observable success state per row.
- Replaced the Gradio-only build prompt with a branch-aware prompt covering Gradio, Docker+Streamlit, and generic Docker.
- Verification remains callout-exempt.
5. Length and focus
- Gradio is now the single fast path.
- Docker is a compact alternative; legacy direct Streamlit is no longer presented as a co-equal creation path.
- Removed repeated port prose, speculative diagnoses, redundant implementation details, and unsupported recommendations.
- Image frontmatter was deliberately left unchanged under the hard constraint not to change the image path. The source-notes filename mismatch from v1 is therefore superseded rather than “fixed” in frontmatter.
Corrected claim audit
| Claim | Evidence | Verdict |
|---|---|---|
| Static Spaces are free; Gradio/Docker compute creation is plan-gated, with a narrow free ZeroGPU exception. | Spaces Overview; Pricing | PASS |
| CPU Basic has no hourly charge but is not itself proof of free-account eligibility. | Spaces Overview; Pricing | PASS |
| Protected visibility is plan-gated; private visibility is not documented as PRO-only. | Spaces Overview | PASS |
| Current SDKs are Gradio, Docker, and static; new Streamlit deployments should use Docker. | Spaces Overview; Streamlit docs | PASS |
Docker defaults to app_port: 7860 and runs as UID 1000. | Docker docs; Config Reference | PASS |
| A pushed commit triggers rebuild/restart; rollback continuity is not guaranteed by cited docs. | Spaces Overview | PASS |
| Runtime secrets are environment variables; secret values cannot be reread in Settings. | Spaces Overview; Docker docs | PASS |
| Storage Buckets attach as volumes at a chosen path through creation UI, Settings, or API. | Spaces storage; Storage Buckets | PASS |
No accepted README storage_bucket: field exists. | Config Reference | PASS |
| Public/protected embeds use the documented iframe URL; private apps are not anonymously reachable. | Embed docs; Spaces Overview | PASS |
| Public/protected smoke test should expect a 2xx without requiring HTTP/2 or HEAD. | Visibility/embed contract; conservative HTTP check | PASS |
| Failure causes must come from exact logs; DNS/queue issues may be transient. | Official config/runtime facts; reviewer correction | PASS |
Accuracy verdict
Accuracy grade after fix pass: B+/A- pending parent verification. The five blocking classes identified by the independent review have been addressed in the editable article body and this audit. The only known residual contradiction is inside the immutable “Before you start” section, which the task explicitly prohibited editing.
Model and review provenance
Drafted by MiniMax M3 in a fresh subagent context on 2026-07-22. Independently reviewed by MiniMax M3 in a separate fresh context on 2026-07-22 with a NEEDS_FIXES verdict. A dedicated fix-pass subagent applied all five priority fixes. No build, deployment, or additional review subagent was run, per task constraints.