Skip to content

Add CrabDeck - #1

Draft
chase-us wants to merge 2 commits into
mainfrom
claude/new-session-yqxkq3
Draft

Add CrabDeck #1
chase-us wants to merge 2 commits into
mainfrom
claude/new-session-yqxkq3

Conversation

@chase-us

Copy link
Copy Markdown
Owner

Summary

  • Adds the full CrabDeck v2.2 project source extracted from CrabDeckv2.2clean.zip
  • Includes all five services: React/Vite UI, Node.js Gateway, FastAPI Orchestrator, Hermes agent, and OpenClaw agent
  • Hardens security over v2.1: gateway requires a shared GATEWAY_TOKEN, OpenClaw shell execution is off by default (ENABLE_SHELL_EXEC=1 opt-in), and CORS is locked to an explicit origin list

Components added

Path Description
gateway/server.js Token-authenticated WebSocket agent bus
orchestrator/main.py FastAPI health tracker (port 8000)
agents/hermes_agent.py Ollama-backed LLM chat agent
agents/openclaw_agent.py Sovereign task agent with optional shell exec
ui/src/CrabDeck.jsx React frontend (Hermes + OpenClaw tabs)
ollama/Modelfile Custom crabdeck Ollama model definition
installer/Install-CrabDeck.ps1 Windows installer (generates GATEWAY_TOKEN)
installer/Install-CrabDeck-Linux.sh Linux/WSL installer
Start-CrabDeck.ps1 / Stop-CrabDeck.ps1 Dev launchers
SECURITY.md Deployment security guidance

Test plan

  • Run Linux installer and verify all services start cleanly
  • Open http://localhost:5173 and confirm Hermes tab sends/receives messages via Ollama
  • Confirm OpenClaw tab processes a task (shell exec remains off unless ENABLE_SHELL_EXEC=1)
  • Verify WebSocket connection rejected without valid GATEWAY_TOKEN
  • Verify CORS rejects requests from unlisted origins

🤖 Generated with Claude Code

https://claude.ai/code/session_013VSy1kXNVWqgwXtzWR11uS


Generated by Claude Code

Full project source: gateway (token-authed WebSocket bus), orchestrator
(FastAPI health tracker), Hermes and OpenClaw agents (Ollama-backed),
React/Vite UI, Ollama Modelfile, Windows and Linux installers, and
management scripts. Shell exec is off by default; CORS locked to an
explicit origin list per SECURITY.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VSy1kXNVWqgwXtzWR11uS
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: efec86aa-296e-4604-a64f-8f1976ef6cbc

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/new-session-yqxkq3

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Note

Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

1 similar comment
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Note

Unit test generation is a public access feature. Expect some limitations and changes as we gather feedback and continue to improve it.


Generating unit tests... This may take up to 20 minutes.

@chase-us chase-us changed the title Add CrabDeck v2.2 — Hermes + OpenClaw Edition Add CrabDeck Jun 26, 2026
@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

✅ Created PR with unit tests: #2

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown

Request timed out after 900000ms (requestId=17eac645-632e-4897-a595-18dc2d4ee184)

hermes_agent.py and openclaw_agent.py call requests/subprocess
synchronously from inside their asyncio run() loop. Ollama generation
can take up to 120s, but the gateway's heartbeat watchdog trips after
just 20s of silence — so any slow prompt or task stalled the event
loop long enough to starve the heartbeat coroutine and get the agent
incorrectly marked missed_heartbeat while it was still working. Offload
these calls with asyncio.to_thread so heartbeats keep flowing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants