HealSpace — Guardian AI for Hugging Face Spaces
Project description
HealSpace
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 HealSpacefooter 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:
- Add a collapsible 🛡️ HealSpace accordion to your app
- Start a background monitor watching for errors
- 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)
HealSpaceclass withdiagnose,fix,heal,protect,watch- 9 known error patterns with structured
ErrorReportoutput - 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file healspace-0.2.0.tar.gz.
File metadata
- Download URL: healspace-0.2.0.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0e2df83326febcaf7386505385914d8a9d5a5e31ebf7899712c09023ea25d4a
|
|
| MD5 |
13aced0d864267e393b49508a13b2d2f
|
|
| BLAKE2b-256 |
f867a18c45defc347d7ea04808613d8bb61788c2a723fde67c8524be91b45c46
|
File details
Details for the file healspace-0.2.0-py3-none-any.whl.
File metadata
- Download URL: healspace-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9629193e59aa26f0b83b6bad613991b91f0996dfe4c418dd6dd0b965e4bb08ab
|
|
| MD5 |
b464df1896f30aaa3933d206b9b89627
|
|
| BLAKE2b-256 |
f7ff1810288d98531068e9e14493ed17f7baf6281b15381cf4784dd15492e9a9
|