Spaces:
Sleeping
Sleeping
Commit History
-
Claude Code: Fix A2A communication - start a2a-proxy alongside FastAPI
Claude Code- entrypoint.sh: Now starts both FastAPI (7860) and A2A Proxy (7861) - Dockerfile: Expose ports 7860, 7861; install nodejs for proxy - a2a-proxy.cjs: Update port config; poll /health with User-Agent Fixes A2A gateway not running - proxy now forwards /a2a/* requests to FastAPI.ee3c7e7
-
fix: remove all Gradio code and references
- Deleted gradio_dashboard.py, app_analytics.py, app_broken.py - Deleted scripts/configure_space.py (Gradio cleanup script) - Removed Gradio health checks from health_monitor.py - Cleaned entrypoint.sh, README.md, SOUL.md of Gradio references - Cain uses sdk:docker + FastAPI only, no Gradio dependency Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>3d28748 -
Claude Code: Remove A2A gateway and frontend for minimal Gradio mode
Claude Code +1: Claude Opus 4.6- Remove A2A gateway installation (RUN block) - Remove frontend COPY step (missing directory) - Disable token-redirect.cjs preload (depends on A2A) - Goal: Get Cain running in minimal mode (Gradio only) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>444f882
-
Claude Code: Refactor to use FastAPI as the backend instead of standard Grad
Claude Code2f8fc36 -
Claude Code: Add a system health dashboard to the Gradio interface. Create a new tab
Claude Code8f01fef -
Trigger restart (1773447074)
Claude Code2ae65c2
-
Infrastructure migration: Align Cain with HuggingClaw architecture
Claude Code +1: Claude Opus 4.6This commit migrates Cain from the simple Python/Gradio architecture to the full HuggingClaw OpenClaw gateway system. This is critical infrastructure work to enable proper OpenClaw functionality. Major changes: - Replace Python Dockerfile with Node.js-based OpenClaw runtime - Add complete sync_hf.py for HF Dataset persistence (39KB vs 1.5KB stub) - Add entrypoint.sh with DNS resolution, proxy setup, and preload scripts - Add coding-agent extension for autonomous HF Space management - Add workspace-templates for agent identity configuration - Add proper openclaw.json configuration for gateway and providers - Include dns-fix.cjs, telegram-proxy.cjs, token-redirect.cjs for HF Spaces This migration enables Cain to run as a full OpenClaw instance with: - OpenClaw gateway system on port 7860 - A2A gateway extension support - HF Dataset persistence for ~/.openclaw state - Coding agent tools for autonomous space management - Proper Telegram and WhatsApp integration Co-Authored-By: Claude Op…8907cf8 -
Delete scripts/entrypoint.sh with huggingface_hub
Verified signature6251dfa -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature6ebe96a -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature9572f04 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature593c56d -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature4860b09 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signaturea59ba4e -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signatureea072eb -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature4fffe04 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature31b53f9 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signaturecf982d5 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature935063c -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature88c4342 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature25b7172 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature1a4fa74 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signaturef0daa92 -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature8d4595b -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signatureb4fa1fa
-
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature970eeac -
Upload scripts/entrypoint.sh with huggingface_hub
Verified signature0fa48ff -
Upload folder using huggingface_hub
Verified signature31cf062 -
feat: add A2A gateway support (activated by A2A_PEERS env var)
- Add openclaw-a2a-gateway extension to Dockerfile - Add a2a-proxy.cjs for port routing (7860 proxy → 7861 OpenClaw, 18800 A2A) - Modify sync_hf.py: port 7861, A2A config only when A2A_PEERS is set - No impact when A2A_PEERS is not set (proxy transparently forwards)8ee58f9 -
Revert "feat: add pixel animation homepage with Express proxy layer"
This reverts commit 6cf74294015c25e76d77e66dfb929c3fb8ed5a2d.86b44f8
-
feat: add pixel animation homepage with Express proxy layer
- Add Star-Office-UI pixel animation as the default homepage (/) - Create Express proxy (proxy.cjs) on port 7860, OpenClaw moves to 7861 - Admin panel accessible via /admin with auto token injection - State bridge maps OpenClaw status to animation states - Frontend assets cloned from Star-Office-UI during Docker build - Add A2A gateway plugin support in Dockerfile and config - Prepare multi-agent infrastructure (peer polling, guest rendering) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>6cf7429
-
feat: auto-fill gateway token via URL redirect
tao-shen +1: Claude Opus 4.6Add token-redirect.cjs preload script that redirects "/" to "/?token=GATEWAY_TOKEN". The Control UI reads token from URL params and auto-fills it, so users don't need to manually enter the token. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9512030 -
feat: telegram-proxy.cjs intercepts fetch() to bypass HF DNS block
HF Spaces blocks DNS for api.telegram.org. grammY uses Node 22's built-in fetch (undici) which bypasses dns.lookup monkey-patching. New approach: 1. sync_hf.py probes Telegram API endpoints at startup (no bot token needed) 2. If official API unreachable, selects first working mirror 3. Sets TELEGRAM_API_ROOT env var for the Node process 4. telegram-proxy.cjs (loaded via --require) intercepts globalThis.fetch() and rewrites api.telegram.org URLs to the working mirror Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d88aa6c -
fix: revert auth to password mode, add Telegram API auto-probe, background DNS
1. Revert auth from token back to password (fixes token_mismatch on Control UI) 2. Add Telegram API base auto-probe: probes api.telegram.org, mirrors, and Cloudflare Pages proxy at startup; selects first working endpoint 3. Revert DNS resolution from blocking (141s delay) to background 4. Add TELEGRAM_BOT_TOKEN and TELEGRAM_API_BASE env vars to README Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>55bff24 -
fix: remove chmod /etc/hosts (read-only in build), run DNS sync before app
Removed chmod 666 /etc/hosts from Dockerfile (HF build filesystem is read-only). Changed DNS resolution from background to blocking so /tmp/dns-resolved.json and /etc/hosts entries are ready before OpenClaw starts — needed for undici/fetch which bypasses dns.lookup patching. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>eaa74b0 -
fix: add Telegram domains to DNS-over-HTTPS pre-resolution
Telegram Bot API (api.telegram.org) was failing with network errors on HF Spaces due to DNS resolution issues. Added api.telegram.org to the DoH pre-resolve list alongside WhatsApp domains. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>429c637
-
fix: only set NODE_MEMORY_LIMIT when explicitly configured
tao-shen +1: Claude Opus 4.6The default 512MB limit was too restrictive for OpenClaw startup. Now NODE_MEMORY_LIMIT only applies if the env var is explicitly set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>2083ee0 -
feat: professional README, .env.example, architecture diagram
tao-shen +1: Claude Opus 4.6- New .env.example with documented environment variables (required/recommended/optional, with descriptions) - Architecture SVG diagram as project logo - Professional README with quick start, config reference, data flow - Dynamic SPACE_HOST for allowedOrigins (auto-detected by HF runtime) - OPENCLAW_DEFAULT_MODEL env var for configurable default model - NODE_MEMORY_LIMIT env var for tuning Node.js heap size - Remove hardcoded tao-shen-huggingclaw.hf.space from config - Clean up Telegram env vars (prefer Control UI configuration) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>7cd8723 -
feat: switch to password auth + project README
tao-shen +1: Claude Opus 4.6- Auth: password mode (default: "huggingclaw", override via OPENCLAW_PASSWORD secret) - Removed: inject-token.sh, global-token-fallback patch (no longer needed) - CSP: reverted script-src to 'self' (no inline scripts) - README: project intro, quick start, architecture, security docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>af9539c -
fix: set OPENCLAW_VERSION from package.json for correct version display
tao-shend8e86ce -
fix: use fixed auth token + python-based token injection + restore entrypoint inject
tao-shen2dfffd7 -
fix: disable auth (mode:none) + patch CSP frame-ancestors for HF iframe embedding
tao-shen1469692 -
fix: move inject-token to runtime entrypoint (build-time injection ignored by OpenClaw)
tao-shen90ba944 -
feat: add timing to all stages, fix OPENROUTER_API_KEY crash, async DNS
tao-shen0d9d280 -
deploy: HuggingClaw with original Dockerfile
tao-shenb19d31a