Skip to main content

HealSpace — Guardian AI for Hugging Face Spaces

Project description

HealSpace

PyPI License Python

HealSpace is a guardian AI package for Hugging Face Spaces.

It automatically detects backend errors, attempts auto-fixes, and injects a live healing panel into your Gradio app — all in one line of code.


✨ Features

  • Auto-detects 9 common Space error types: missing deps, port conflicts, GPU OOM, Gradio mismatches, disk quota, startup timeouts, syntax errors, auth errors, and generic RuntimeErrors
  • Auto-fixes what it can: installs missing packages at runtime, clears CUDA cache, frees locked ports
  • Gradio UI panel — paste any traceback and get a structured report + fix steps
  • "Error this Space" demo button — trigger a live healing demo in your app
  • Background monitor — watches stderr continuously and heals without intervention
  • Lineage seal🛡️ Protected by HealSpace footer on every protected app

📦 Installation

Add to your Space's requirements.txt:

healspace

Or install locally:

pip install healspace

🚀 Quickstart

Minimal — one line in app.py

import gradio as gr
from healspace import heal

with gr.Blocks() as demo:
    gr.Markdown("# My Space")
    # ... your UI ...

heal(demo)          # inject guardian panel + start monitor
demo.launch()

That's it. HealSpace will:

  1. Add a collapsible 🛡️ HealSpace accordion to your app
  2. Start a background monitor watching for errors
  3. Stamp the lineage seal in the footer

Diagnose a log snippet

from healspace import diagnose

log = """
Traceback (most recent call last):
  File "app.py", line 3, in <module>
    import mylib
ModuleNotFoundError: No module named 'mylib'
"""

reports = diagnose(log)
for r in reports:
    print(r)

Output:

[HealSpace] ERROR: Missing dependency: mylib
  The package 'mylib' is not installed in this Space.
  Suggested fixes:
    1. Add 'mylib' to your requirements.txt
    2. Trigger a factory reboot via Space Settings → Factory reboot
    3. If it's a system package, add it to packages.txt instead

Auto-fix

from healspace import diagnose, fix

reports = diagnose(open("space.log").read())
for r in reports:
    fix(r)       # attempts auto-fix; prints steps if no auto-fix available

Full control

from healspace import HealSpace

hs = HealSpace(auto_fix=True, verbose=True)

# Start background stderr monitor
hs.watch()

# Inject UI into your Gradio app
hs.protect(demo)

demo.launch()

🩺 Detected Error Types

Error type Trigger Auto-fix
missing_dep ModuleNotFoundError ✅ pip-installs at runtime
port_conflict Address already in use ✅ frees port 7860
gpu_oom CUDA out of memory ✅ clears CUDA cache
gradio_mismatch Gradio AttributeError / bad import ❌ suggests pinning version
disk_full No space left on device ❌ suggests cache cleanup
startup_timeout Space timeout errors ❌ suggests lazy loading
syntax_error SyntaxError / IndentationError ❌ points to exact file
auth_error 401/403 / RepositoryNotFoundError ❌ guides to HF_TOKEN secret
runtime_error Generic RuntimeError ❌ suggests restart + debug

🗂 Project Structure

healspace/
├── healspace/
│   ├── __init__.py   ← public API: heal, diagnose, fix, HealSpace
│   ├── core.py       ← HealSpace class + auto-fixers + Gradio injection
│   └── errors.py     ← KnownError pattern registry + ErrorReport dataclass
└── pyproject.toml

📋 Changelog

v0.2.0

  • Complete rewrite — v0.1.0 was an empty package (no source files)
  • HealSpace class with diagnose, fix, heal, protect, watch
  • 9 known error patterns with structured ErrorReport output
  • Auto-fixers for missing deps, port conflicts, GPU OOM
  • Gradio UI panel injection with "Diagnose & Heal" + "Error this Space" buttons
  • Background stderr monitor thread
  • heal(), diagnose(), fix() convenience functions at module level

v0.1.0

  • Initial (incomplete) release

📄 License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

healspace-0.6.0.tar.gz (27.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

healspace-0.6.0-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file healspace-0.6.0.tar.gz.

File metadata

  • Download URL: healspace-0.6.0.tar.gz
  • Upload date:
  • Size: 27.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for healspace-0.6.0.tar.gz
Algorithm Hash digest
SHA256 f030fa2f32462c321b6a2d2e4f7c0659c53b41d8a02ecc5c0b9cd6fa304259dc
MD5 a689d7e168f8793db11274ee71ef6a48
BLAKE2b-256 040a1a55ec8f45e0e0f7224a02ae3fe9f8cf437904cf2d92e3cb758329c4726b

See more details on using hashes here.

File details

Details for the file healspace-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: healspace-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 28.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for healspace-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c8df6b8278bd36162c6195bbc0d432a034619a5a09913826944ee96d170d077
MD5 d5d0754a36d976a061a36531229be618
BLAKE2b-256 a59cf90188059c4122f2baea37c732899fe3fa6fcef5f4b7195d1551fcd4ba4a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page