HuggingMes / CHANGELOG.md
somratpro's picture
fix: make kanban patch and Docker build fully failure-safe
ee98905

Changelog

0.2.1 - 2026-05-20

Fixes

  • Build fails after update β€” libasound2 renamed to libasound2t64 in Debian bookworm. Dockerfile now tries both names, falling back gracefully so builds succeed on all base image variants.
  • Unpinned jupyterlab breaks venv β€” uv pip install jupyterlab without a version constraint could pull a release incompatible with existing Hermes venv packages. Pinned to >=4.0,<5 range to bound resolution.
  • uv not in PATH during Docker build β€” switched from bare uv to explicit /opt/hermes/.venv/bin/uv so the install works regardless of base image PATH configuration.
  • visudo not in PATH during Docker build β€” switched to explicit /usr/sbin/visudo path.
  • Kanban patch exits with code 1 β€” entire kanban migration patch now wrapped in try/except; any unexpected error (file encoding, permission, changed upstream structure) skips silently instead of failing the Docker build.

0.2.0 - 2026-05-19

Features

  • ENV Builder β€” interactive UI at /env-builder for configuring all Space secrets. Grouped sections: Core, Backup, Telegram, Terminal, Providers, Cloudflare, Advanced. Model picker with provider/model-name presets. Import/export as HUGGINGMES_ENV_BUNDLE or plain .env.
  • JupyterLab terminal β€” full shell access at /terminal/. On by default (DEV_MODE=true). Uses GATEWAY_TOKEN as terminal password β€” no separate JUPYTER_TOKEN needed. Dashboard button added.
  • Chromium browser tools β€” installs Chromium and display/font libs so Hermes browser-use tools work out of the box.
  • Plugin persistence β€” Hermes plugin directory symlinked into the persistent volume; plugins survive container restarts.
  • Secret redaction β€” enabled by default in Hermes config (security.redact_secrets: true).
  • Cloudflare Keepalive β€” Cloudflare Worker setup for automatic space keep-awake.

Fixes

  • Space stuck at RUNNING_APP_STARTING β€” root cause: start_jupyter() called python3 -c "import jupyterlab" using system Python; JupyterLab is installed in the Hermes venv. Import failed β†’ return 1 β†’ set -euo pipefail killed start.sh β†’ container crashed every boot. Fixed to use /opt/hermes/.venv/bin/python.
  • Terminal double password prompt β€” proxy now injects Authorization: token <JUPYTER_TOKEN> header when forwarding requests to JupyterLab, bypassing its own login screen. One login instead of two.
  • Gemini 404 errors β€” strip google/ or gemini/ prefix when setting Hermes model name; Hermes gemini provider expects bare model name (e.g. gemini-2.5-flash, not google/gemini-2.5-flash).
  • Config persistence β€” use setdefault for user-configurable fields; always overwrite model.default and model.provider from env so deploy-time settings win without clobbering dashboard changes.
  • Keys disappearing after restart β€” sync state to HF Dataset on natural gateway exit (in addition to periodic sync and SIGTERM path).
  • Sync timeouts β€” set HF_HUB_DOWNLOAD_TIMEOUT=300 and enable HF_XET_HIGH_PERFORMANCE for faster dataset transfers.
  • hermes not found in terminal β€” symlink hermes CLI into $HERMES_HOME/.local/bin; add /etc/profile.d/hermes-venv.sh so PATH includes venv bin in all shell types.
  • Kanban migration crash β€” wrap ALTER TABLE ADD COLUMN in try/except; idempotent on existing databases.
  • Health endpoint returning 503 β€” /health always returns HTTP 200 (gateway status in JSON body). Returning 503 when gateway was starting caused Docker HEALTHCHECK to fail indefinitely.

Changes

  • Space emoji updated to πŸͺ½ (Hermes winged sandals) across README and dashboard.
  • Login page redesigned to match HuggingClaw dark-card aesthetic.
  • ENV Builder, Terminal, and Control UI all require session auth (single GATEWAY_TOKEN login).
  • HF_HUB_ENABLE_HF_TRANSFER (deprecated) replaced with HF_XET_HIGH_PERFORMANCE=1.
  • HEALTHCHECK start-period tuned to 60s; health endpoint always returns 200.

0.1.0 - 2026-05-03

  • Initial HuggingMes Docker Space wrapper for Nous Research Hermes Agent.
  • Added HF Space dashboard, /health, /status, /v1/* proxy, and Telegram webhook proxy.
  • Added Cloudflare Worker setup for Telegram Bot API base URL proxying.
  • Added private HF Dataset backup and restore for Hermes state.
  • Added Cloudflare Keepalive Worker setup for automatic space keep-awake.