Skip to content

Feat/clawhub integration sprint 2026 04 17#151

Merged
solomon2773 merged 14 commits intomasterfrom
feat/clawhub-integration-sprint-2026-04-17
Apr 23, 2026
Merged

Feat/clawhub integration sprint 2026 04 17#151
solomon2773 merged 14 commits intomasterfrom
feat/clawhub-integration-sprint-2026-04-17

Conversation

@JustinaChano04
Copy link
Copy Markdown
Collaborator

feat: complete ClawHub integration flow

Summary

This PR adds the end-to-end ClawHub integration for OpenClaw agents in Nora.

It includes:

  • ClawHub catalog browse, search, and skill detail retrieval
  • Deploy-time skill selection for new agents
  • Runtime skill installation for existing running agents
  • Durable persistence of selected/installed skills in agents.clawhub_skills
  • Post-deploy reconciliation so saved skills are reinstalled when needed
  • Focused backend test coverage for ClawHub routes and reconciliation behavior

What Changed

Backend

  • Added a ClawHub client for catalog/search/detail data retrieval
  • Replaced the stub ClawHub route with real browse/search/detail/install/job endpoints
  • Added BullMQ queue plumbing for ClawHub install jobs
  • Extended agent deploy flow to persist selected clawhub_skills
  • Added reconciliation helpers to compare saved skills vs installed runtime skills
  • Updated the provisioner worker to:
    • run clawhub install inside Docker-backed OpenClaw agents
    • verify installs against the ClawHub lockfile
    • persist successful installs
    • reconcile missing saved skills after deploy
  • Added schema support for agents.clawhub_skills

Frontend

  • Added a dedicated ClawHub selection page for the new-agent deploy flow
  • Added ClawHub UI on the agent page for:
    • browse/search
    • detail view
    • multi-select
    • install polling/state
    • selected-skill tray with clear/remove flows
  • Wired the agent detail page and deploy flow into the new ClawHub experience

Reliability / Operational Fixes

  • Removed the nested in-container timeout wrapper that was causing Nora-triggered installs to hang even when manual clawhub install succeeded
  • Hardened lockfile reads to avoid transient parse failures
  • Preserved post-deploy readiness checks and runtime auth sync when reconciling with the latest origin/master

Testing

Verified with:

docker compose exec worker-provisioner npm run typecheck
docker compose exec frontend-dashboard npm run typecheck
docker compose exec backend-api npx jest __tests__/clawhub.test.ts __tests__/clawhubReconciliation.test.ts --runInBand

Results:

  • Backend ClawHub suites passed (19/19)
  • Worker typecheck passed
  • Frontend typecheck passed

Notable Behavior

  • ClawHub installs are currently supported for Docker-backed OpenClaw agents
  • Saved skills are reconciled after deploy, but per-skill reconciliation failures do not fail the entire deployment
  • Skill stats on search results were intentionally simplified so detail stats are shown after opening a skill instead of eagerly on search cards

Merge Note

  • This branch also includes the latest origin/master merged in.
  • The main shared conflict in workers/provisioner/worker.ts was resolved by preserving both:
  • Upstream readiness/auth-sync behavior
  • Local ClawHub install/reconciliation behavior

Comment thread backend-api/server.ts Fixed
JustinaChano04 and others added 5 commits April 22, 2026 21:50
…erpreted as HTML'

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
…2026-04-17' into feat/clawhub-integration-sprint-2026-04-17
@solomon2773 solomon2773 merged commit f4ff71e into master Apr 23, 2026
42 of 43 checks passed
solomon2773 pushed a commit that referenced this pull request Apr 23, 2026
…e healthchecks

Resolves the CI Quality / prettier failure on PR #151 by reformatting
three files to match the repo's prettier config:

- agent-runtime/lib/clawhubReconciliation.js — trailing comma in array
- docker-compose.yml, docker-compose.e2e.yml — wrap long healthcheck
  command array onto multiple lines. YAML parses to the identical
  runtime value; no behavioral change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
solomon2773 pushed a commit that referenced this pull request Apr 23, 2026
agent-runtime/lib/clawhubReconciliation.js, docker-compose.yml, and
docker-compose.e2e.yml came in from PR #151's squash-merge without
prettier. No behavioral change; YAML healthcheck command parses
identically.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
solomon2773 added a commit that referenced this pull request Apr 23, 2026
PR #151 changed the deploy flow to a two-step walk: /app/deploy
routes to /clawhub for skill selection, and /clawhub is where the
actual 'Deploy Agent & Open Validation' button fires POST
/api/agents/deploy and redirects to /app/agents/:id.

The test still clicked the old single-page button and waited for
the agent-detail URL, which timed out under the new flow. The
admin-role failure on test 1 was a cascade: Playwright's serial
retries re-ran the signup after test 2 failed, and the second
signup no longer got role 'admin' because the first attempt had
already seeded one.

Fix: add the intermediate /clawhub hop.

Co-authored-by: underwater research <muw0523@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.

3 participants