codeclaw-backup / CHANGELOG.md
somratpro's picture
feat: add headless browser support and workspace sync improvements, and restrict control UI allowed origins
07aee41
# Changelog
All notable changes to this project will be documented in this file.
## [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** β€” `workspace-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
- `dns-fix.js` β€” DNS override for HF network restrictions