openclaw/STATUS.md
Claude 260278c0fb
docs(STATUS): add recent ra2 fixes to project status
Documents the blocker list limit fix, redact-before-compress change,
and ledger JSON resilience improvement.

https://claude.ai/code/session_01K7BWJY2gUoJi6dq91Yc7nx
2026-03-19 13:16:30 +00:00

3.8 KiB

OpenClaw (RA 2.0) — Project Status & Installation

Overview

OpenClaw is a local-first, multi-channel AI assistant platform that runs on your own devices. It bridges 13+ messaging channels (WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Teams, Matrix, …) to LLM providers (Claude, GPT, Gemini) with a single always-on gateway.

Version: 2026.2.19 License: MIT Runtime: Node.js ≥ 22.12.0, pnpm 10+


Current Status

Area State Notes
Gateway / core Stable WebSocket control plane on ws://127.0.0.1:18789
Messaging channels 13+ integrations WhatsApp, Telegram, Slack, Discord, Signal, Teams, Matrix, etc.
Native apps macOS, iOS, Android Menu-bar daemon + mobile clients
Voice Active ElevenLabs TTS + speech-to-text
Browser automation Active Playwright-based Chrome control
Skills 52 bundled GitHub, email, coding-agent, canvas, 1Password, …
Extensions 37 modules BlueBubbles, Zalo, Google Gemini CLI auth, …
ra2/ context layer Phase 1 Python — context engine, ledger, sigil, redact, token gate
Test coverage ~1 176 test files 70 % line/function threshold; 55 % branch threshold

Recent fixes (ra2/)

  • Blocker list limitcontext_engine.py was slicing blockers by token_gate.MAX_TOKENS (6 000) instead of ledger.MAX_BLOCKERS (10). Fixed to use the correct constant.
  • Redact-before-compressbuild_context now runs redact.redact_messages() before _run_compression, preventing raw credentials from being persisted to ledger/sigil files on disk. The old flow only redacted the final assembled prompt, leaving at-rest secret leakage via the compression pass.
  • Ledger JSON resilienceledger.load() now catches JSONDecodeError/ValueError and falls back to an empty ledger (matching sigil.load's existing pattern), so a corrupted file no longer permanently breaks build_context for that stream.

Installation

Quick install (npm)

npm install -g openclaw@latest   # or: pnpm add -g openclaw@latest
openclaw onboard --install-daemon

From source (development)

git clone https://github.com/openclaw/openclaw.git
cd openclaw

pnpm install
pnpm ui:build        # builds the web UI (auto-installs UI deps)
pnpm build           # compiles TypeScript → dist/

openclaw onboard --install-daemon

Development mode

pnpm dev              # run via tsx (no build step)
pnpm gateway:watch    # auto-reload on file changes

Running Tests

# Full suite
pnpm test

# Subsets
pnpm test:fast          # unit tests only
pnpm test:e2e           # end-to-end
pnpm test:live          # live model tests
pnpm test:coverage      # unit + coverage report

# Python (ra2 module)
cd ra2 && pytest tests/

Configuration

Set environment variables in .env or ~/.openclaw/.env:

Variable Purpose
ANTHROPIC_API_KEY Claude access
OPENAI_API_KEY GPT access
GEMINI_API_KEY Gemini access
TELEGRAM_BOT_TOKEN Telegram channel
DISCORD_BOT_TOKEN Discord channel
SLACK_BOT_TOKEN Slack channel
OPENCLAW_GATEWAY_TOKEN Gateway auth

Config lives in ~/.openclaw/openclaw.json (or OPENCLAW_CONFIG_PATH).


Project Structure (abridged)

src/            TypeScript core (agents, channels, gateway, CLI, plugins)
extensions/     37 extension packages
skills/         52 bundled skills
ra2/            Python context-sovereignty layer
apps/           Native apps (macOS / iOS / Android)
ui/             Web dashboard + WebChat
docs/           Comprehensive documentation
test/           Integration & e2e tests

Pre-PR Checklist

pnpm check      # format + lint + type-check
pnpm test       # full test suite
pnpm build      # production build