docs(onboarding): lead OpenClaw residue banner with migrate, warn that cleanup breaks OpenClaw (#17507)

The ~/.openclaw/ detection banner (#16327) had two problems flagged in #16629:

1. It only pitched 'hermes claw cleanup' (destructive archive) and never
   mentioned 'hermes claw migrate' — the actual non-destructive path that
   ports config/memory/skills into Hermes.
2. The copy anthropomorphized the bug ('the agent can still get confused',
   'dutifully reads') and framed OpenClaw as a competitor to eliminate
   ('instead of Hermes's').

Rewrite so migrate leads, cleanup is a clearly-labelled follow-up with a
warning that archiving breaks OpenClaw for users still running it.

Closes #16629
This commit is contained in:
Teknium
2026-04-29 08:08:36 -07:00
committed by GitHub
parent e0a03f3f40
commit 1bedc836b5
2 changed files with 24 additions and 11 deletions

View File

@@ -205,11 +205,22 @@ class TestDetectOpenclawResidue:
class TestOpenclawResidueHint:
def test_hint_mentions_cleanup_command(self):
def test_hint_mentions_migrate_command(self):
# `migrate` is the non-destructive path — should lead the banner.
msg = openclaw_residue_hint_cli()
assert "hermes claw cleanup" in msg
assert "hermes claw migrate" in msg
assert "~/.openclaw" in msg
def test_hint_mentions_cleanup_command(self):
# `cleanup` is mentioned as the follow-up archive step.
assert "hermes claw cleanup" in openclaw_residue_hint_cli()
def test_hint_warns_cleanup_breaks_openclaw(self):
# Archiving the directory breaks OpenClaw for users still running it —
# the banner must flag that side effect.
msg = openclaw_residue_hint_cli().lower()
assert "openclaw will stop working" in msg or "stop working" in msg
def test_hint_not_empty(self):
assert openclaw_residue_hint_cli().strip()