Skip to content

force-update.sh reports completion after setup-app bootstrap without handing off to the full updater #285

Description

@jamesachurchill

What happened?

Summary

The documented emergency command for force-update.sh hard-syncs and rebuilds the ClawBox setup app, then reports Done, but it does not run or clearly require the normal full updater/post-update recovery path.

That distinction matters during gateway recovery: an operator can reasonably interpret the final success message as a completed ClawBox/OpenClaw update even though only the updater UI was bootstrapped.

Steps to reproduce

Observed behaviour

Running the documented command:

bash <(curl -fsSL https://raw.githubusercontent.com/id-robots/clawbox/main/scripts/force-update.sh)

performed a hard fetch/reset/clean of the ClawBox checkout, rebuilt the Next.js app, restarted clawbox-setup, and printed Done when that service became active.

It did not:

  • run the normal full updater workflow;
  • update OpenClaw;
  • perform gateway verification/channel smoke checks;
  • restore supported local post-update extensions after git clean -fd;
  • explain that a second updater step was still required.

In the observed recovery, neither OpenClaw nor ClawBox advanced because the checkout was already at the target commit. The hard clean removed locally maintained post-update extensions, and follow-up smoke checks failed until they were restored.

Expected behaviour

Keep the hard reset as an explicit recovery tool, but make its bootstrap-only contract unmistakable.

Preferred options:

  1. After clawbox-setup is healthy, automatically hand off to the same full updater API/workflow used by the UI; or
  2. Stop with a prominent message that recovery is incomplete and provide the exact next step to run the normal updater and post-update verification.

Before destructive reset/clean, the script should also state clearly that uncommitted and untracked checkout content will be discarded. If ClawBox supports local extension hooks, invoke their documented backup/restore boundary rather than silently deleting them.

Acceptance criteria

  • Final output distinguishes updater UI restored from full update complete.
  • The default recovery path reaches normal post-update gateway verification.
  • The script never claims OpenClaw was updated when it was not.
  • Destructive checkout cleanup is disclosed before execution.
  • Tests cover an already-current checkout, an updater-code recovery, and a failed gateway after setup-app recovery.

Related

PRs #263 and #265 added post-update gateway verification to the normal updater. The issue is that the standalone bootstrap script can stop before that verified path.

ClawBox version

ClawBox main at commit 8cb6a43

OpenClaw version

OpenClaw 2026.7.1

Jetson model / JetPack

Ubuntu 22.04 LTS, AArch64

Logs and screenshots

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions