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.2.1.tar.gz (11.2 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.2.1-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for healspace-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d387cfb4460575c8d9cc32fe4558065d35e8fd98e2c4f57bc44658eafd350eb8
MD5 1e3c20698faccf458e736f31a22fb951
BLAKE2b-256 b25cdc55182227f48efca2a133fb7a184d2818bb93d061ccba25b99471b712c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: healspace-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.7 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.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 651dc8a8587bda954d7359ad9575471d94e85cb973115905fea67c18ad1b8cc0
MD5 f1d436a87d30b94cf8a38dc6520c526d
BLAKE2b-256 9355fbba31c6abb9bf14b81f918cc65bb7ee2264191fa7cb449f0d2d5cecec22

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