Spaces:
Paused
Paused
Commit History
-
fix(terminal): inject GATEWAY_TOKEN into JupyterLab proxy to skip double login prompt
health-server.js reads JUPYTER_TOKEN at process start, but start_jupyter() only exports it later — so the env var is empty and no auth header is injected, causing JupyterLab to show its own login screen after the user already authenticated with GATEWAY_TOKEN. Fix: fall back to API_SERVER_KEY (== GATEWAY_TOKEN), which is exactly what JupyterLab was started with. User authenticates once; no second prompt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>b8fda45
-
fix(health-server): resolve iframe redirect causing 'refused to connect' (#11)
- health-server.js: guard private-space redirect behind iframe detection (window.top !== window.self) — fixes X-Frame-Options DENY on huggingface.co blocking iframe navigation - health-server.js: add privacyDetectionReady Promise to eliminate race condition where fail-secure default triggered false redirects on public spaces - health-server.js: add /api/is-private endpoint + client-side syncPrivacy() - health-server.js: add SPACE_PRIVACY env var override to skip HF API detection - health-server.js: add isFromHFApp referer guard to skip redirect inside HF UI - cloudflare-proxy-setup.py: remove AI provider domains from DEFAULT_ALLOWED to prevent routing API keys through worker without explicit opt-in - env-builder.js: add tag badge system (critical/credential/feature/optional/ advanced/build) with per-field tags; add SPACE_PRIVACY field - env-builder.js: split bundle generation — explicit generateBundle() button vs auto refresh() for summary/counts only - env-builder.html: ad…aa128fa
-
feat: self-healing gateway, package replay, private space guard, key rotation, readme sync
- start.sh: gateway restart loop, shell capture wrappers (apt/pip/uv/npm/hermes), pool key promotion for 16 providers, HUGGINGMES_RUN startup scripts, env-driven package installs, JupyterLab PID guard, enhanced boot banner - health-server.js: private space guard (HF API detect + redirect), embed-aware dashboard buttons, /hf-redirect route - .env.example: add HUGGINGMES_RUN, package installs, key rotation pools, gateway restart vars, terminal vars, webhook URL - README.md: document all new features, fix terminal section (on by default), add ephemeral package replay and key rotation sections Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>43301b6 -
fix: auth on env-builder, single login for terminal, new login UI
- Protect /env-builder and /env-builder.js with requireAuth (same as /app) - Inject Authorization: token <JUPYTER_TOKEN> when proxying to JupyterLab so JupyterLab skips its own login screen — one password instead of two - New login page: HuggingClaw-style dark card (matches project aesthetic) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>715f4a5 -
feat: add ENV Builder at /env-builder
Port env-builder from HuggingClaw, adapted for HuggingMes/Hermes vars: - 8 sections: Core, Backup, Telegram, Terminal, Providers, Cloudflare, Advanced, Custom - Model catalog with provider/model prefix format (gemini/, anthropic/, openrouter/, etc.) - Import/export as HUGGINGMES_ENV_BUNDLE base64 or plain .env - No auth required (useful before GATEWAY_TOKEN is set) - Dashboard button: "ENV Builder →" beside Open Hermes Agent and Open Terminal Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>b25ba68 -
fix: health endpoint always 200 so Docker HEALTHCHECK passes on startup
/health was returning 503 when the Hermes gateway hadn't started yet. Docker HEALTHCHECK uses curl -f which treats 503 as failure, so the container stayed in "starting" state until the gateway was fully up (~120s). Combined with start-period=180s, HF Space was stuck at RUNNING_APP_STARTING indefinitely. Fix: always return HTTP 200 from /health (gateway status in JSON body). Reduce start-period to 30s since health server starts in ~2s. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>79d2b7b -
feat: terminal on by default, uses GATEWAY_TOKEN, add dashboard button
- DEV_MODE defaults to true — no extra secret needed - JUPYTER_TOKEN falls back to GATEWAY_TOKEN (single password) - Add "Open Terminal →" button beside "Open Hermes Agent →" on dashboard - Update README to reflect new defaults Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>617d143 -
feat: add JupyterLab terminal at /terminal/ (DEV_MODE=true)
Install JupyterLab in the venv. When DEV_MODE=true and JUPYTER_TOKEN is set (strong token required — full shell access), start JupyterLab on port 8888 with /terminal/ base URL. health-server proxies HTTP and WebSocket (required for kernels/terminals) to JupyterLab. Usage: set DEV_MODE=true and JUPYTER_TOKEN=<openssl rand -hex 32> in HF Space secrets, then visit /terminal/. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>775b8b3
-
fix: update footer to credit the author in the dashboard
abaeee7
-
fix: add local time display for backup timestamp in renderDashboard function
9a3eec7 -
fix: improve keepalive status message handling in renderDashboard function
Co-authored-by: Copilot <copilot@github.com>79e2809 -
fix: correct spelling of 'HuggingMes' across multiple files
Co-authored-by: Copilot <copilot@github.com>1428d20
-
refactor: update cron interval to 10 minutes and streamline keepalive request logging and handling
e69d277 -
chore: increase keepalive frequency to every minute and add logging for health check requests
8b514c9 -
refactor: remove redundant startup CLI logging, update linting instructions, and simplify dashboard UI presentation
bf48a19 -
refactor: remove mini-grid and secondary panels from dashboard and update hero-action styling
d1ca953 -
Add Cloudflare keepalive worker and restyle dashboard
728bb65 -
Simplify dashboard actions and forward API auth
b596ce2 -
Improve dashboard and browser API auth flow
15f10b1 -
Use token-only login for app route
00136ee -
Protect Hermes app route with gateway token
e04b24a -
Serve Hermes dashboard under app route
777fb99 -
Add HuggingMess Hermes Space wrapper
b9d12d1