hermes-agent/optional-skills
Teknium 6c87371815
fix(openclaw-migration): case-preserving brand rewrite + one-time ~/.openclaw residue banner (#16327)
Two related fixes for OpenClaw-residue problems after an OpenClaw→Hermes
migration (especially migrations done via OpenClaw's own tool, which
doesn't archive the source directory).

1. optional-skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py:
   rebrand_text() was rewriting ~/.openclaw/config.yaml → ~/.Hermes/config.yaml
   (capital H — a directory that doesn't exist). Now case-preserving:
   "OpenClaw" → "Hermes" (prose), but "openclaw" → "hermes" (so filesystem
   paths land on the real Hermes home). Regex logic unchanged — replacement
   function now checks if the matched text was all-lowercase and emits the
   replacement in the matching case.

2. agent/onboarding.py + cli.py: one-time startup banner the first time
   Hermes launches and finds ~/.openclaw/. Tells the user to run
   `hermes claw cleanup` to archive it, gated on the existing onboarding
   seen-flag framework (onboarding.seen.openclaw_residue_cleanup in
   config.yaml). Fires once per install; re-running requires wiping that
   flag or running cleanup directly.

Tests:
- 4 new TestDetectOpenclawResidue tests (present / absent / file-instead-
  of-dir / default-home smoke)
- 2 TestOpenclawResidueHint tests (content check)
- 2 TestOpenclawResidueSeenFlag tests (flag isolation + round-trip)
- test_rebrand_text_preserves_filesystem_path_casing regression test
  with 4 scenarios including the exact ~/.openclaw/config.yaml case
- Existing test_rebrand_text_* tests updated to the new case-preserving
  contract (lowercase input → lowercase output)

Co-authored-by: teknium1 <teknium@noreply.github.com>
2026-04-26 20:57:26 -07:00
..
autonomous-ai-agents feat(honcho): wizard cadence default 2, surface reasoning level, backwards-compat fallback 2026-04-18 22:50:55 -07:00
blockchain feat: add Base blockchain optional skill 2026-03-17 01:50:03 -07:00
communication feat(skills): add one-three-one-rule communication skill (#3797) 2026-03-29 15:25:12 -07:00
creative refactor(creative): promote pixel-art from optional to built-in skills 2026-04-19 11:57:51 -07:00
devops feat(plugins): convert disk-guardian skill into a bundled plugin 2026-04-20 04:46:45 -07:00
dogfood feat(skills): add adversarial-ux-test optional skill 2026-04-21 01:51:20 -07:00
email/agentmail fix: correct agentmail skill — API key goes in config.yaml env block 2026-03-08 23:34:50 -07:00
health feat(skills): add fitness-nutrition skill to optional-skills 2026-04-13 22:10:00 -07:00
mcp skills: move 7 niche mlops/mcp skills to optional (#12474) 2026-04-19 05:14:17 -07:00
migration fix(openclaw-migration): case-preserving brand rewrite + one-time ~/.openclaw residue banner (#16327) 2026-04-26 20:57:26 -07:00
mlops skills: move 7 niche mlops/mcp skills to optional (#12474) 2026-04-19 05:14:17 -07:00
productivity feat(skills): consolidate find-nearby into maps as a single location skill 2026-04-19 05:19:22 -07:00
research Update SKILL.md 2026-04-20 04:15:04 -07:00
security feat(skills): add Sherlock OSINT username search skill 2026-03-17 02:48:21 -07:00
web-development feat(optional-skills): add page-agent skill under new web-development category (#13976) 2026-04-22 04:54:26 -07:00
DESCRIPTION.md fix: review fixes — path traversal guard, trust_style consistency, edge cases 2026-03-06 01:40:01 -08:00