Spaces:
Running
Running
Merge pull request #31 from anurag162008/codex/find-automatic-package-installation-method-d90k9g
d65efac Changelog
All notable changes to this project will be documented in this file.
[1.6.0] - 2026-05-14
Added
- Merged JupyterLab terminal β added the Hugging Face JupyterLab template login page and
/terminal/routing alongside the HuggingClaw dashboard and/app/OpenClaw Control UI. - HF template parity files β restored Git LFS defaults and project metadata/docs that were missing from the merged repository.
Fixed
- HF Spaces subpath routing β normalized internal redirects and WebSocket forwarding so
/app/and/terminal/stay mounted behind the single public Spaces port. - Startup log noise β removed the stale disabled
plugins.entries.acpxconfig entry, switched Jupyter token/cookie options toIdentityProvider.*, and printed/app/with the trailing slash. - Private Space navigation β dashboard buttons now stay in-frame and startup logs print relative routes, avoiding raw
.hf.spacelinks that can show Hugging Face's outer 404 page on private Spaces.
[1.5.0] - 2026-05-13
Added
- NVIDIA key-rotation support β added
nvidia-key-rotator.cjswiring and startup integration so deployments can rotate NVIDIA credentials similarly to other provider key-rotation flows. - Cloudflare keep-alive automation β added/expanded
cloudflare-keepalive-setup.pyflow and startup wiring to provision keep-alive through Cloudflare Worker automation instead of the older UptimeRobot-first approach. - Sync metadata marker model β introduced a structured workspace marker
(file_count, total_size, newest_mtime, metadata_hash)to support stronger change introspection in sync code.
Changed
- Workspace sync script rename finalized β
workspace-sync.pyflow was migrated toopenclaw-sync.pyin Docker/startup/docs so restore/sync behavior is centralized under one script. - Sync trigger behavior hardened for config churn β OpenClaw config sync now debounces until JSON settles before immediate sync, reducing false/partial syncs during rapid config writes.
- Gateway restart flow now saves state first β restart path was updated to run a pre-restart one-shot state sync so gateway reloads are less likely to drop recent state.
- Shutdown backup now uses a two-step pass β graceful shutdown now attempts
sync-once-settledthen a finalsync-oncepass to better capture last-second writes. - Telegram allowlist simplified β consolidated Telegram allowlist into
TELEGRAM_ALLOWED_USERSand aligned docs/examples. - Plugin startup behavior aligned β startup-installed plugins are synced into
plugins.allowbefore gateway launch so runtime-installed plugins are recognized cleanly. - Cloudflare proxy path matured β multiple iterations improved fetch/proxy behavior (header handling, endpoint scoping, API root routing, URL parsing, and logging noise reduction), then simplified unstable undici patching paths.
- Health dashboard polish β sync timestamps now show local time, footer credits were corrected, and status rendering/docs were updated for the Cloudflare keep-alive model.
- CI workflow churn documented β GitHub workflow files for HF sync were added/renamed/cleaned multiple times as space/repo naming stabilized.
Fixed
- Missed rapid backup updates β sync logic now relies on content fingerprint checks for no-op decisions so same-second or quick successive changes are less likely to be skipped.
- Non-deterministic metadata hashing β metadata hashing now iterates paths deterministically to avoid hash jitter from traversal order.
- Transient file race sync failures β sync fingerprinting/snapshot copy paths now tolerate transient
OSError(file rotated/deleted mid-scan) instead of aborting the whole sync pass. - State restore migration edge cases β restore flow includes migration/cleanup behavior for legacy hidden state paths and stale backup entries.
- Startup/env robustness β fixed shell export formatting/syntax issues (e.g., NVIDIA/XAI lines) and unbound-variable pitfalls in startup scripts.
- Proxy runtime errors and noise β fixed specific proxy runtime issues (including
UND_ERR_INVALID_ARG, fetch duplex handling, and upstream error visibility) and reduced noisy stdout logs that interfered with clean process output. - HF workflow/repo reference mismatches β corrected and later cleaned workflow repository references during repo migration/restructure.
Docs
- README/.env/security docs were refreshed across multiple commits to reflect:
- Cloudflare keep-alive replacing UptimeRobot setup path,
- updated secrets and startup environment behavior,
- provider/key-rotation options,
- backup/sync behavior and troubleshooting guidance.
[1.4.0] - 2026-04-25
Added
- Custom OpenAI-compatible provider registration β HuggingClaw can now register a custom provider at startup with
CUSTOM_PROVIDER_NAME,CUSTOM_BASE_URL, andCUSTOM_MODEL_ID, so you can pointLLM_MODELat your own OpenAI-compatible endpoint without modifying the OpenClaw CLI - Automatic Cloudflare outbound proxy setup β HuggingClaw can now provision and use a Cloudflare Worker proxy for blocked outbound traffic from a
CLOUDFLARE_WORKERS_TOKEN, using the same transparent proxy model used in Hugging8n
Changed
- HF backup flow simplified β HuggingClaw now uses
huggingface_hubdirectly for restore and sync, matching the safer dataset-based pattern used in Hugging8n - HF username no longer required in most cases β backup namespace resolution now works from
HF_USERNAME,SPACE_AUTHOR_NAME, or the authenticated HF token, soHF_TOKENis usually enough on its own - Startup restore path modernized β startup now restores workspace and hidden state through
openclaw-sync.py restoreinstead of configuring a token-bearing git remote - README refreshed for the new backup model β documentation now describes token-only backup setup, the removed git sync assumptions, and the hardened dashboard helper behavior
- Telegram networking simplified β removed the channel-specific Telegram transport tweaks in favor of the generic Cloudflare outbound proxy path
- DNS monkey-patch removed β HuggingClaw now relies on the Cloudflare outbound proxy path instead of the old
dns-fix.jspreload
Fixed
- HF token exposure risk in git remotes β removed the old authenticated remote URL pattern that could leave
HF_TOKENembedded in workspace git configuration - Backup status detection mismatch β dashboard and startup summary now treat backup as enabled when
HF_TOKENis present, which matches the new auto-namespace flow - UptimeRobot setup hardening gap β dashboard setup now supports explicit enable/disable control, request rate limiting, origin validation, and earlier API-key validation
[1.3.0] - 2026-04-04
Added
- Built-in browser support β HuggingClaw now includes headless Chromium support in the Docker image, with automatic startup detection and a warmed managed browser profile for first-run browser actions
- Full OpenClaw state backup β backup sync now stores and restores broader hidden OpenClaw state, including agent/session data, so restarts can recover more than just the visible workspace
- Shutdown sync path β graceful shutdown now runs a real one-shot backup sync before exit instead of relying only on the periodic sync loop
Changed
- Workspace sync hardened β startup now restores saved OpenClaw state, periodic sync runs an immediate first pass after startup, and the default sync interval is now
180s - Workspace sync card improved β the dashboard now shows a clearer configured state, better alignment, and more accurate backup status messaging
- Keep-awake card simplified β dashboard messaging now changes based on public/private Space state and whether UptimeRobot setup was already completed
Fixed
- Private Space dashboard loading β fixed dashboard status fetching and Control UI linking for HF private Spaces where signed URLs and routed paths behave differently
- Backup snapshot failures from live browser locks β excluded transient Chromium runtime files from state backup so browser lock/socket files no longer break sync
[1.2.0] - 2026-04-03
Added
- Dashboard-based UptimeRobot setup β users can now paste their UptimeRobot Main API key directly in the dashboard and create an external uptime monitor
- Optional WhatsApp mode β WhatsApp now stays fully disabled unless
WHATSAPP_ENABLED=true
Changed
- Documentation simplified β README now explains the simple dashboard flow for external keep-alive, which key to use, and where to paste it
Removed
- Internal self-ping keep-alive β removed
keep-alive.shand all startup wiring because internal self-pings do not reliably prevent free-tier HF Space sleep
[1.1.0] - 2026-03-31
Added
- Pre-built Docker image β uses
ghcr.io/openclaw/openclaw:latestmulti-stage build for much faster builds (minutes instead of 30+) - Python huggingface_hub sync β
openclaw-sync.pyuses thehuggingface_hublibrary for more reliable HF Dataset sync (handles auth, LFS, retries). Falls back to git-based sync automatically - Password auth β
OPENCLAW_PASSWORDfor simpler login (optional alternative to token) - Trusted proxies β
TRUSTED_PROXIESenv var fixes "Proxy headers detected from untrusted address" errors on HF Spaces - Allowed origins β
ALLOWED_ORIGINSenv var to lock down Control UI access - 40+ LLM providers β Added support for OpenCode, OpenRouter, DeepSeek, Qwen, Z.ai, Moonshot, Mistral, xAI, NVIDIA, Volcengine, BytePlus, Cohere, Groq, HuggingFace Inference, and more
- OpenCode Zen/Go β support for OpenCode's tested model service
Changed
- Provider detection now uses
casestatement (cleaner, faster) with correct OpenClaw provider IDs - Model IDs now sourced from OpenClaw docs (not OpenRouter) for accuracy
- Google API key env var corrected to
GEMINI_API_KEY
[1.0.0] - 2026-03-30
π Initial Release
Features
- Any LLM provider β Anthropic (Claude), OpenAI (GPT-4), Google (Gemini)
- Telegram integration β connect via @BotFather, supports multiple users
- Built-in keep-alive β self-pings to prevent HF Spaces 48h sleep
- Auto-sync workspace β commits + pushes to HF Dataset every 10 min
- Auto-create backup β creates HF Dataset automatically on first run
- Graceful shutdown β saves workspace before container stops
- Health endpoint β
/healthon port 7861 for monitoring - DNS fix β bypasses HF Spaces internal DNS restrictions
- Version pinning β lock OpenClaw to a specific version
- Startup banner β clean summary of all running services
- Zero-config defaults β just 2 secrets to get started
Architecture
start.shβ config generator + validation + orchestratorworkspace-sync.shβ periodic workspace backuphealth-server.jsβ lightweight health endpoint