Spaces:
Runtime error
Runtime error
Commit History
29 days ago
-
Upload sync_hf.py
Verified signature3ee8a74 -
Upload sync_hf.py
Verified signatureb6a037a -
Update scripts/sync_hf.py
Verified signaturea534b04 -
Update scripts/sync_hf.py
Verified signature7618c61 -
Update scripts/sync_hf.py
Verified signaturec398d2f -
Update scripts/sync_hf.py
Verified signature7492305 -
Update scripts/sync_hf.py
Verified signature8aeb175 -
Update scripts/sync_hf.py
Verified signature31d3e49 -
Update scripts/sync_hf.py
Verified signature1cfac89
-
fix: chatroom not showing Adam/Eve messages — use localhost for self-referencing calls
conversation-loop.py runs inside the Home Space container but was posting to its own external URL (https://...hf.space/api/chatlog), which round-trips through HF's reverse proxy and silently fails. - Add HOME_LOCAL (localhost:7860) for internal API calls - post_chatlog() and set_bubble(HOME) now use localhost - Replace silent except:pass with error logging - Frontend: fix stale comparison (check content, not just array length) - Frontend: fetch chatlog immediately on page load Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>d320b08 -
fix: stop overriding OpenClaw provider config — pass all env vars through
sync_hf.py was hardcoding a provider registry and overwriting models.providers on every startup, blocking OpenClaw's native env var support. Users setting NVIDIA_API_KEY or other provider keys got no effect because the code didn't know about them. Now HuggingClaw acts as a transparent deployment layer: - Removed PROVIDER_REGISTRY and all per-provider if/else blocks - Removed redundant env var pass-through (os.environ.copy() already includes everything) - Only clean up stale providers from dataset backup (keys no longer in environment) - Let OpenClaw handle provider discovery from env vars natively Fixes #2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>29370f7
-
refactor: redefine God as system architect, not micro-manager
God now thinks at the system/architecture level: - Observes structural patterns, not individual conversations - Redesigns mechanisms when fundamentally flawed - Evolves the framework, doesn't just patch symptoms - Thinks like a CTO, not a manager Removed push-frequency obsession from God's context. God now receives condensed system state for architectural evaluation. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>e8e5621
-
fix: use AGENT_NAME for officeName instead of hardcoded God's Home
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9053698
-
refactor: God pushes to own repo, not Home
God CC worker now targets GOD_SPACE_ID instead of HOME_SPACE_ID. God improves itself (its own conversation-loop.py), no longer modifies Home Space. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a9ee15b -
god: implement Emergency Override Protocol for discussion loops
Claude Code +1: Claude Opus 4.6- Define MAX_IDLE_TURNS = 3 for override trigger threshold - Trigger when discussion_loop_count > 3 AND push_count == 0 - Override action:terminate_cc timeout restrictions (10s idle threshold) - Force PUSH_ONLY mode with SYSTEM OVERRIDE message - Reset _emergency_override_active flag on timeout Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a081e30 -
god: implement Hard Reset override for discussion loops
Claude Codea67fdae -
refactor: separate orchestrator from frontend — RUN_ORCHESTRATOR env var
conversation-loop.py is now launched by RUN_ORCHESTRATOR=1 (not OFFICE_MODE). - Home Space: OFFICE_MODE=1 (frontend only, no orchestrator) - God Space: RUN_ORCHESTRATOR=1 (runs conversation-loop.py) This means Home no longer self-modifies — God Space pushes to Home from the outside, which should not trigger abuse detection. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>6a122fb -
refactor: remove push-pressure supervision from orchestrator — God's job
Removed all embedded supervision logic that was forcing Adam/Eve to push: - EMERGENCY LOOP BREAK forced task injection - DISCUSSION vs EXECUTION STRATEGY injected into turn messages - ZERO-PUSH WARNING / STOP DISCUSSING escalation - Auto-terminate CC based on push frequency - Aggressive dynamic timeout reduction (20s/45s/60s) - Push frequency crisis detection and forced task submission These are all God's responsibility. God monitors via A2A and proposes mechanism fixes to conversation-loop.py when needed. The orchestrator should only handle basic task routing (mutex, cooldown, timeout). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>31b2a3c -
feat: make God the main star character (cat on sofa)
- /status now returns God's remote state so the star reflects God - /agents filters out God (no longer shown as guest wanderer) - God is the main cat sitting on the sofa in star position - SILENT_AGENTS set prevents Cain from showing speech bubbles Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>a0a7502 -
refactor: extract God to separate OpenClaw instance via A2A
Architecture v5: God is now an independent OpenClaw instance (HuggingClaw-God) that communicates via A2A protocol, just like Adam and Eve. conversation-loop.py is now a pure orchestrator. Changes: - Created GOD_SOUL.md and GOD_IDENTITY.md templates for God's OpenClaw instance (mechanism optimizer role) - Added do_god_turn_a2a() — sends system metrics to God via A2A, parses [OK] or [TASK] responses - Added action_claude_code_god() and cc_submit_task_god() — separate CC worker targeting Home repo (not Cain) - Removed embedded God code (~370 lines): do_god_turn(), _god_diagnose(), _prepare_god_context() - Added God to A2A health tracking and fallback personas - Updated architecture diagram to v5 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>65855c0 -
god: Fix cooldown check for alive state - prevent stuck task submission cycles
Claude Code05f6d06 -
god: Detect and reset corrupted conversation history
Claude Code[PROBLEM] When A2A communication fails partway through, it leaves corrupted messages (empty, cut-off with '-') that poison all subsequent agent responses. The emergency override would trigger, but the cycle would repeat because the corrupted history persisted. [FIX] Added CONV-RESET mechanism that: - Detects empty messages, messages ending with '-' (cut off) - Detects repeated emergency loop breaks (stuck pattern) - Resets history, keeping only recent God messages for continuity - Clears chatlog on frontend - Resets discussion_loop_count to 0 This allows agents to start fresh with clean context instead of being stuck in an infinite loop of poisoned responses.d079764 -
god: Fix alive field - don't let /api/state override HF API stage
Claude Code- action_check_health() and init_child_state() were incorrectly setting alive=True and stage=RUNNING when /api/state endpoint responded - This masked RUNTIME_ERROR state because the container still responds on /api/state even when app has crashed - HF API space_info().runtime.stage is the source of truth for stage/alive - Health check should only return status string, not modify state543ee28 -
god: Fix emergency override - use alive field as source of truth
Claude CodeWhen Cain is in RUNTIME_ERROR, stage stays 'RUNNING' but alive:False. The old code treated stage==RUNNING as alive, breaking emergency detection. Now we use the alive field directly and trigger after just 1 discussion turn when child is not alive and CC is idle.26b6531 -
fix: ban Gradio from agent discussions + sanitize history
1. Add explicit "⛔ BANNED: Gradio" instruction at top of every turn message 2. Replace Gradio mentions in conversation history with [BANNED-WORD] to prevent agents from re-discussing old Gradio approaches Root cause: Eve kept discussing Gradio because old conversation turns mentioning it were fed back as context, causing a feedback loop. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>c32d600 -
god: Force task assignment at 2 discussion turns (was 3)
Claude Code67854aa -
god: Clear pending task flag when CC not running (fix infinite loop)
Claude Code +1: Claude Opus 4.6After auto-termination for handoff, cc_status["result"] is cleared to "" which caused cc_just_finished to be False. This prevented _pending_task_just_submitted from being cleared, causing agents to stay blocked and EMERGENCY LOOP BREAK to keep re-assigning the same task. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>861c45e -
god: Clear CC result after auto-terminate for rapid iteration
Claude CodeWhen CC is auto-terminated (zero pushes, 20s+ elapsed), the old result persisted in cc_status, causing agents to see stale 'FINISHED' status. This led to discussion loops instead of rapid push iterations when Cain was broken. Fix: Clear cc_status['result'] immediately after auto-terminate so agents don't see stale finished status. Enables trial-and-error workflow - push fixes fast, fail fast, iterate.dbad2c4 -
god: Fix push detection when Claude Code commits+pushes itself
Claude Code62cae5b -
fix: strip markdown ** from God's chatroom messages
God's Claude Code was wrapping [PROBLEM] and [FIX] text in markdown bold markers (**), causing chatroom to display "Found issue: **. Fixed: **." instead of the actual content. Now strips * from extracted text and instructs skill to output plain text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>ca398b8 -
god: Fix task blocking - agents write [TASK] when CC is busy
Claude Code +1: Claude Opus 4.6When CC finishes with EARLY FAILURE (very short result, failed during init), agents must immediately re-assign the task, not discuss. The turn message now detects early failure and forces immediate [TASK] re-assignment. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>274b48d -
god: Fix task blocking - agents write [TASK] when CC is busy
Claude Code6842c99 -
god: Fix task blocking - agents write [TASK] when CC is busy
Claude CodeChange BLOCKED message from 'Wait for it to finish or discuss the current task's progress' to 'Wait for it to finish. DO NOT write a new [TASK] block.' This prevents agents from writing [TASK] blocks when CC is already working on a task assigned by another agent.027cbd3 -
god: Fix task blocking - allow faster handoff when CC stuck
Claude Code- Lower auto-terminate thresholds: 45s for 0-push (was 90s), 40s for low-push (was 60s) - Lower turns-since-push threshold: 5 turns (was 10) - Lower warning threshold: tell agents to terminate at 50s (was 120s) - This allows ANY agent to take over stuck tasks faster, preventing discussion loops2943b6a -
god: Fix manual terminate+task blocking - allow immediate task reassignment
Claude Code10a592e -
god: Fix manual terminate+task blocking - allow immediate task reassignment
Claude Code +1: Claude Opus 4.6[PROBLEM] When agents sent [ACTION: terminate_cc] followed by [TASK] in the same message, the task submission condition was checked BEFORE the terminate_cc action was processed. This caused: 1. has_manual_terminate bypass allowed submission even with cc_status["running"]=True 2. Race condition where terminate_cc was processed after task submission 3. Duplicate action history entries [FIX] Process [ACTION: terminate_cc] BEFORE [TASK] block (now #1b, before #2). This ensures cc_status["running"] is False when task submission condition runs, eliminating the need for has_manual_terminate bypass and preventing race conditions. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>f729048 -
god: Fix manual terminate+task blocking - allow immediate task reassignment
Claude Code +1: Claude Opus 4.6When Cain is in ERROR state and CC is working, agents were getting generic "PLAN your next [TASK]" guidance instead of aggressive "push now" guidance. This caused discussion loops with no task assignment when CC was stuck. The fix: Check child ERROR state BEFORE cc_busy check. When Cain is broken, agents get aggressive guidance to either terminate CC immediately or have an exact [TASK] ready — no "planning" discussion allowed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>5cbdd00 -
god: Fix manual terminate+task blocking - allow immediate task reassignment
Claude Code0aa89f3 -
god: Faster CC timeout + forbid discussion when CC busy with zero pushes
Claude Coded66055d -
god: Faster CC timeout + forbid discussion when CC busy with zero pushes
Claude Code83f9fff -
god: Faster CC timeout + forbid discussion when CC busy with zero pushes
Claude Code +1: Claude Opus 4.6- Lower auto-terminate timeout from 90s → 45s when Cain in ERROR state - Faster trial-and-error iteration when child is broken - Prevents agents waiting 90s for stuck CC while Cain remains in RUNTIME_ERROR Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>19f3054 -
god: Faster CC timeout + forbid discussion when CC busy with zero pushes
Claude Code +1: Claude Opus 4.6- Lower zero-push CC timeout from 90s to 30s — escalate critical warnings faster - Strengthen messages to explicitly forbid discussion during CC busy state - Change "discuss and plan" to "PLAN concrete work only" - Stale CC message now demands specific planning, not discussion Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>8f735cf -
god: Auto-terminate stuck CC tasks unconditionally in main loop
Claude CodeBreaks deadlock when Claude Code is stuck with 0 pushes. Previously, auto-terminate only ran when agents submitted [TASK], but agents can't submit tasks when CC is stuck. This caused infinite discussion loops. Now checks every main loop iteration and auto-terminates stuck CC, allowing agents to submit new fix attempts.46cea78 -
perf: all Claude Code calls use Skills (/fix-cain, /fix-loop)
Static instructions now live in .claude/commands/ as custom slash commands: - /fix-cain: worker skill for Cain tasks (rules, Dockerfile/FastAPI, speed) - /fix-loop: God skill for fixing conversation-loop.py (commit convention, rules) Prompts only pass dynamic content (task description or diagnosis). Claude Code caches skill instructions, reducing per-call token usage. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>119850e -
perf: God 2-step monitoring — diagnose first, Claude Code only when needed
God now polls every 2min with a 2-step process: 1. Lightweight LLM call (~150 tokens, cheap model) to assess system health 2. Only if [PROBLEM] detected → launch Claude Code to fix (expensive) When system is healthy, God costs ~150 tokens per check instead of ~10k+. Estimated savings: ~80% of God's token budget since most checks are healthy. Also includes heuristic fallback if LLM diagnosis call fails. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>3bd2669 -
perf: API budget pacing — stretch usage from 3h to 5h
- God interval: 2min → 5min (biggest consumer, ~60% of budget) - God timeout: 10min → 5min - God skips when nothing changed (no new turns/pushes/stage changes) - CC Worker timeout: 5min → 3min (faster iteration, less token per task) - Turn interval: 15s → 25s (reduce A2A fallback frequency) Estimated savings: ~40% reduction, extending 3h budget to ~5h. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>eddf38e -
merge: adopt God's 25 iterations on discussion/execution balance
God received our push-frequency tracking and iterated 25 times to refine CC timeout, auto-completion detection, pending task tracking, and zero-push warnings. Adopting God's latest version as canonical. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>d737f0d -
feat: enforce discussion/execution balance — push frequency + trial-and-error
Merge God's improvements + add discussion/execution balance: - Push frequency tracking (_push_count, _turns_since_last_push, _last_push_time) - God monitors push frequency as #1 metric for "all talk no action" - Emergency loop-break lowered from 5→3 turns with concrete fix tasks - Discussion warning escalates at 1 turn (reminder) and 2 turns (stop) - Cooldown reduced from 6→3 min, clears on error states too - Turn message includes discussion vs execution strategy - God CLAUDE.md prioritizes push frequency over other issues Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>2b1ad32 -
feat: enforce discussion/execution balance — push frequency tracking + trial-and-error
- Add push count, turns-since-push, last-push-time tracking - God now monitors push frequency as #1 metric for detecting "all talk no action" - Lower emergency loop-break from 5→3 turns, discussion warning from 2→1 turn - Reduce cooldown from 6→3 minutes to enable faster iteration - Add explicit discussion vs execution strategy to turn messages - Forced emergency tasks now target actual errors (e.g. Gradio→Docker fix) - Update README with discussion/execution balance documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>00f5dcc
-
feat: migrate all Claude Code invocations to ACP protocol via acpx
All Claude Code calls now go through ACP (Agent Client Protocol) using acpx as the backend, replacing direct CLI invocations. This includes conversation-loop.py, coding-agent extension, and infrastructure config. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>9d3acbc