DenchClaw v2.0 - External OpenClaw Runtime#81
Merged
Conversation
BREAKING CHANGE: Convert repository to IronClaw-only package with strict external dependency on globally installed `openclaw` runtime. ### Changes - Remove entire OpenClaw core source from repository (src/agents/*, src/acp/*, src/commands/*, and related modules) - Implement CLI delegation: non-bootstrap commands now delegate to global `openclaw` binary via external contract - Remove local OpenClaw path resolution from web app; always spawn global `openclaw` binary instead of local scripts - Rename package.json scripts: `pnpm openclaw` → `pnpm ironclaw`, `openclaw:rpc` → `ironclaw:rpc` - Update bootstrap flow to verify and install global OpenClaw when missing - Migrate web workspace/profile logic to align with OpenClaw state paths - Add migration contract tests for stream-json, session subscribe, and profile resolution behaviors - Update build/release pipeline for IronClaw-only artifacts - Update documentation for new peer + global installation model ### Architecture IronClaw is now strictly a frontend/UI/bootstrap layer: - `npx ironclaw` bootstraps OpenClaw (if missing), runs guided onboarding - IronClaw UI serves on localhost:3100 - OpenClaw Gateway runs on standard port 18789 - Communication via stable CLI contracts and Gateway WebSocket protocol only ### Migration Users must have `openclaw` installed globally: npm install -g openclaw Existing IronClaw profiles and sessions remain compatible through gateway protocol stability. Refs: bootstrap_dev_testing, ironclaw_frontend_split, strict-external-openclaw
Collaborator
Author
…CLI detection, and agent-auth check
…ls, and respawn-policy tests
…d env override detection
… and port allocation
…r-version gating Refactor bootstrap to use a managed web runtime lifecycle instead of ad-hoc standalone server spawning. The managed runtime copies packaged Next.js assets into ~/.openclaw-dench/web-runtime/, tracks deployment state via manifest/process metadata, and cleanly separates Dench-owned processes from foreign listeners on the target port. - Fix false-negative web readiness when /api/profiles returns null activeProfile (first-run regression). - Add `dench start` (start without updating assets), `dench stop` (terminate only Dench-managed web server), and `dench update` (refresh web runtime with major-version OpenClaw update gate). - Major-version transitions (e.g. v2->v3) require mandatory OpenClaw update; non-interactive mode fails closed without --yes. - All lifecycle commands show the ASCII banner/logo animation. - Deploy smoke checks now verify update/stop/start --help paths.
- Bump version of denchclaw to 2.0.2 in package.json. - Add posthog-node and posthog-js dependencies with specified versions. - Update chokidar dependency in web package.json. - Modify deploy script to publish an alias package (dench) alongside denchclaw.
- Fix bootstrap-command test: mock ensureManagedWebRuntime to probe directly instead of requiring standalone build on disk - Add PostHog telemetry to CLI and web app with opt-out support - Add dench alias package (npm rejects name; kept for future use) - Bump version to 2.0.4 and publish to npm
Always pass --skip-ui and --accept-risk to openclaw onboard so the wizard never prompts for TUI/Web UI selection — bootstrap manages the web UI lifecycle itself. Add a post-onboard spinner to eliminate the silent gap while config-set calls, gateway probing, and web runtime startup run. Fix remediation messages to use `npx denchclaw`.
Documents required environment variables so new contributors can onboard without guessing.
pnpm standalone output contains symlinks that break after npm pack; dereference ensures real files are copied.
…lags Onboard command now passes --accept-risk and --skip-ui by default; align test expectations.
pnpm's standalone output uses symlinks that npm pack silently drops, breaking require('next') on user machines. This flattens the virtual store into a standard node_modules layout.
Adds deploy convenience scripts, wires flatten-standalone-deps into web:prepack, and updates test:cli to include the new test file.
|
hey @kumarabhirup any instructions for migrating the old ironclaw 1.0 to 2.0 ? |
Collaborator
Author
|
Setup |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements IronClaw v2.0, a major architectural refactor that converts the repository from a monolithic OpenClaw+IronClaw bundle to a clean IronClaw-only frontend/bootstrap layer with strict external dependency on a globally-installed OpenClaw runtime.
openclawbinary (no local script resolution)openclawpnpm openclaw→pnpm ironclawChange Type
Scope
Linked Plans
.cursor/plans/bootstrap_dev_testing_0b5817e5.plan.md.cursor/plans/ironclaw_frontend_split_1c02d591.plan.md.cursor/plans/strict-external-openclaw_7c0d1717.plan.mdUser-visible / Behavior Changes
npm install -g openclawbefore running IronClawnpx ironclawrun checks for global OpenClaw, prompts to install if missingpnpm openclaw→pnpm ironclaw,openclaw:rpc→ironclaw:rpcironclawprofile by default, isolating from main OpenClawSecurity Impact
NoNoNo(same gateway protocol)Yes- now delegates to globalopenclawbinaryNoCompatibility / Migration
No- requires global OpenClaw installationNoYes- runnpm install -g openclawif not already installedKnown Issues (Post-Migration)
Remaining type errors from deleted module imports (expected for major refactor):
openclaw/plugin-sdkpathsThese will be resolved in follow-up commits before final release.
Test Plan
npx ironclawinstalls OpenClaw, launches UIopenclawRisks and Mitigations
Note: This is a draft PR for the v2.0 architectural refactor. Some TypeScript errors remain from the migration and will be resolved before merge.