HuggingClaw / CHANGELOG.md
anurag008w's picture
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.acpx config entry, switched Jupyter token/cookie options to IdentityProvider.*, 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.space links 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.cjs wiring 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.py flow 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.py flow was migrated to openclaw-sync.py in 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-settled then a final sync-once pass to better capture last-second writes.
  • Telegram allowlist simplified β€” consolidated Telegram allowlist into TELEGRAM_ALLOWED_USERS and aligned docs/examples.
  • Plugin startup behavior aligned β€” startup-installed plugins are synced into plugins.allow before 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, and CUSTOM_MODEL_ID, so you can point LLM_MODEL at 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_hub directly 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, so HF_TOKEN is usually enough on its own
  • Startup restore path modernized β€” startup now restores workspace and hidden state through openclaw-sync.py restore instead 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.js preload

Fixed

  • HF token exposure risk in git remotes β€” removed the old authenticated remote URL pattern that could leave HF_TOKEN embedded in workspace git configuration
  • Backup status detection mismatch β€” dashboard and startup summary now treat backup as enabled when HF_TOKEN is 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.sh and 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:latest multi-stage build for much faster builds (minutes instead of 30+)
  • Python huggingface_hub sync β€” openclaw-sync.py uses the huggingface_hub library for more reliable HF Dataset sync (handles auth, LFS, retries). Falls back to git-based sync automatically
  • Password auth β€” OPENCLAW_PASSWORD for simpler login (optional alternative to token)
  • Trusted proxies β€” TRUSTED_PROXIES env var fixes "Proxy headers detected from untrusted address" errors on HF Spaces
  • Allowed origins β€” ALLOWED_ORIGINS env 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 case statement (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 β€” /health on 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 + orchestrator
  • workspace-sync.sh β€” periodic workspace backup
  • health-server.js β€” lightweight health endpoint