Skip to content

feat: offer OpenClaw migration during first-time setup wizard#981

Merged
teknium1 merged 3 commits intoNousResearch:mainfrom
kshitijk4poor:fix/issue-829-openclaw-setup-revived
Mar 12, 2026
Merged

feat: offer OpenClaw migration during first-time setup wizard#981
teknium1 merged 3 commits intoNousResearch:mainfrom
kshitijk4poor:fix/issue-829-openclaw-setup-revived

Conversation

@kshitijk4poor
Copy link
Contributor

@kshitijk4poor kshitijk4poor commented Mar 11, 2026

Summary

  • Move the OpenClaw import flow into the first-time hermes setup wizard, before provider/tool configuration begins.
  • Keep the implementation wizard-only: no setup CLI flags, no installer handoff, and no shared wrapper module.
  • Add focused setup-wizard migration tests and keep the branch rebased on current main.

Context

Test plan

  • python -m pytest tests/hermes_cli/test_setup.py tests/hermes_cli/test_setup_openclaw_migration.py -q
  • python -m hermes_cli.main setup --help
  • python -m pytest tests/ -q

teknium1 and others added 2 commits March 12, 2026 02:40
When a new user runs 'hermes setup' for the first time and ~/.openclaw/
exists, the wizard now asks if they want to import their OpenClaw data
before API/tool configuration begins.

If accepted, the existing migration script from optional-skills/ is
loaded dynamically and run with the 'full' preset — importing settings,
memories, skills, API keys, and platform configs. Config is reloaded
afterward so imported values (like API keys) are available for the
remaining setup steps.

The migration is only offered on first-time setup (not returning users)
and handles errors gracefully without blocking setup completion.

Closes NousResearch#829
@teknium1 teknium1 merged commit 68fdc62 into NousResearch:main Mar 12, 2026
1 check passed
teknium1 added a commit that referenced this pull request Mar 12, 2026
- Add hermes_cli/claw.py with full CLI migration handler:
  - hermes claw migrate (interactive migration with confirmation)
  - --dry-run, --preset, --overwrite, --skill-conflict flags
  - --source for custom OpenClaw path
  - --yes to skip confirmation
  - Clean formatted output matching setup wizard style

- Fix Python 3.11+ @DataClass compatibility bug in dynamic module loading:
  - Register module in sys.modules before exec_module()
  - Fixes both setup.py (PR #981) and new claw.py

- Add 16 tests in tests/hermes_cli/test_claw.py covering:
  - Script discovery (project root, installed, missing)
  - Command routing
  - Dry-run, execute, cancellation, error handling
  - Preset/secrets behavior, report formatting

- Documentation updates:
  - README.md: Add 'hermes claw migrate' to Getting Started, new Migration section
  - docs/migration/openclaw.md: Full migration guide with all options
  - SKILL.md: Add CLI Command section at top of openclaw-migration skill
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.

2 participants