195 lines
6.2 KiB
Markdown
195 lines
6.2 KiB
Markdown
# Upgrade Playbook
|
|
|
|
> Migration strategy for upgrading OpenClaw core while maintaining protocol compatibility.
|
|
> Part of COMPATIBILITY-STRATEGY.md §F.
|
|
|
|
---
|
|
|
|
## §1 Pre-Upgrade Checklist
|
|
|
|
Before any upgrade:
|
|
|
|
```markdown
|
|
- [ ] Run `node scripts/upgrade-test.mjs` — record baseline PASS count
|
|
- [ ] Run `node scripts/audit-all.mjs` — record baseline WARN/FAIL counts
|
|
- [ ] Commit all outstanding changes (`git status` should be clean)
|
|
- [ ] Read OpenClaw changelog for the target version
|
|
- [ ] Check version-contract.md §3 Required Interfaces for changes
|
|
```
|
|
|
|
---
|
|
|
|
## §2 Patch Upgrade (v0.9.1 → v0.9.2)
|
|
|
|
**Definition:** Bugfix release. No breaking changes.
|
|
|
|
### Procedure
|
|
|
|
```
|
|
1. Upgrade OpenClaw ← per OpenClaw install instructions
|
|
2. Run upgrade-test ← node scripts/upgrade-test.mjs
|
|
3. Run full audit ← node scripts/audit-all.mjs
|
|
4. Verify ← all PASS, no regressions
|
|
```
|
|
|
|
**Expected changes:** 0 files modified.
|
|
|
|
**Rollback:** `openclaw restart` with previous version.
|
|
|
|
---
|
|
|
|
## §3 Minor Upgrade (v0.9.x → v0.10.x)
|
|
|
|
**Definition:** Feature release. Possible tool name additions, config format changes.
|
|
|
|
### Procedure
|
|
|
|
```text
|
|
PRE-CHECK
|
|
├─ Read OpenClaw changelog for:
|
|
│ ├─ Tool name changes
|
|
│ ├─ Cron format changes
|
|
│ └─ Config format changes
|
|
├─ Run baseline tests (upgrade-test + audit-all)
|
|
└─ git stash or commit
|
|
|
|
MIGRATION
|
|
├─ [IF tool names changed] Update AGENTS.md §3b, §6, §CPB
|
|
│ ├─ s/old_name/new_name/ in ctx_search references
|
|
│ └─ s/old_name/new_name/ in memory_search references
|
|
├─ [IF cron format changed] Re-register Dream Cycle job:
|
|
│ cron(action="remove", ...) → cron(action="add", ...)
|
|
├─ [IF config format changed] Update `.openclaw/` config files
|
|
└─ git commit -m "chore: adapt to OpenClaw v0.10.x"
|
|
|
|
VERIFICATION
|
|
├─ node scripts/upgrade-test.mjs ← all PASS
|
|
├─ node scripts/audit-all.mjs ← baseline match
|
|
└─ Manual: verify Dream Cycle runs at next scheduled time
|
|
|
|
ROLLBACK
|
|
├─ git revert the migration commit
|
|
├─ Re-register old cron job format
|
|
└─ openclaw restart
|
|
```
|
|
|
|
### Common Minor Upgrade Actions
|
|
|
|
| Change | Affects | Action |
|
|
|--------|---------|--------|
|
|
| Tool API signature change | AGENTS.md §3b | Update search parameter format |
|
|
| New tool addition | — | Optional: add to protocol if relevant |
|
|
| Cron syntax change | .openclaw/cron/ | Re-register all jobs |
|
|
| Memory format change | None (protocol uses abstract) | No action |
|
|
|
|
---
|
|
|
|
## §4 Major Upgrade (v0.x → v1.0)
|
|
|
|
**Definition:** Breaking change release. Requires full compatibility review.
|
|
|
|
### Procedure
|
|
|
|
```text
|
|
PRE-CHECK
|
|
├─ Same as minor upgrade, PLUS:
|
|
├─ Read full migration guide from OpenClaw
|
|
├─ Review COMPATIBILITY-STRATEGY.md §A (Surface Map)
|
|
├─ Review version-contract.md §3 (Required Interfaces)
|
|
├─ Review version-contract.md §4 (Forbidden Interfaces)
|
|
└─ Create recovery branch: git checkout -b upgrade/v1.0-prep
|
|
|
|
MIGRATION
|
|
├─ Phase 1: Update tool references
|
|
│ ├─ Update all tool name references in AGENTS.md
|
|
│ ├─ Update guard-memory-backend.mjs string comparisons
|
|
│ └─ Run: node scripts/upgrade-test.mjs
|
|
│
|
|
├─ Phase 2: Update cron integration
|
|
│ ├─ List current cron jobs: cron(action="list")
|
|
│ ├─ Remove all: cron(action="remove", ...)
|
|
│ ├─ Re-register with new format
|
|
│ └─ Verify: cron(action="list")
|
|
│
|
|
├─ Phase 3: Update runtime if needed
|
|
│ ├─ Check if runtime.mjs still compiles
|
|
│ ├─ Check src/agent-runtime/* imports
|
|
│ └─ Update import paths if needed
|
|
│
|
|
├─ Phase 4: Run full verification
|
|
│ ├─ node scripts/upgrade-test.mjs ← must PASS all
|
|
│ ├─ node scripts/audit-all.mjs ← 0 FAIL, baseline WARN
|
|
│ └─ Manual walkthrough of one complex task
|
|
│
|
|
└─ git commit -m "chore: migrate to OpenClaw v1.0"
|
|
|
|
VERIFICATION
|
|
├─ Same as minor, PLUS:
|
|
├─ Verify all 3 protocol layers are self-consistent
|
|
├─ Verify audit-report.md generates correctly
|
|
└─ Mark tested version in version-contract.md §1
|
|
|
|
ROLLBACK
|
|
├─ git checkout main (pre-upgrade branch)
|
|
├─ Restore .openclaw/cron/ from git backup
|
|
├─ openclaw restart
|
|
└─ Note: Any data created during v1.0 may be incompatible
|
|
```
|
|
|
|
### Major Upgrade Risk Areas
|
|
|
|
| Area | Breakage Likelihood | Recovery Difficulty |
|
|
|------|---------------------|---------------------|
|
|
| Tool names | MEDIUM (known to be stable) | LOW (5 refs to update) |
|
|
| Cron format | LOW | LOW (re-register) |
|
|
| Session context | LOW (not relied upon) | NONE |
|
|
| runtime.mjs imports | MEDIUM | MEDIUM (port to new API) |
|
|
| LLM behavior changes | MEDIUM (prompt sensitivity) | LOW (adjust prompts) |
|
|
|
|
---
|
|
|
|
## §5 OpenClaw Deprecation / Self-Host Mode
|
|
|
|
**Definition:** OpenClaw core is no longer available or maintained.
|
|
|
|
### Procedure
|
|
|
|
```text
|
|
PRE-CHECK
|
|
├─ Read SELF-HOSTING READINESS in COMPATIBILITY-STRATEGY.md §G
|
|
├─ Score is 80/100 — protocol layer is portable
|
|
└─ Identify which features to maintain vs drop
|
|
|
|
MIGRATION OPTIONS
|
|
├─ Option A: Replace with basic CLI
|
|
│ ├─ Audit scripts run via: node scripts/audit-all.mjs (STILL WORKS)
|
|
│ ├─ Protocol docs are static markdown (readable anywhere)
|
|
│ └─ Lost: memory_search, ctx_search, cron-Triggered Dream Cycle
|
|
│
|
|
├─ Option B: Replace with custom agent runtime
|
|
│ ├─ Build minimal tool executor (5-10 tools)
|
|
│ ├─ Use system cron or launchd for Dream Cycle
|
|
│ ├─ Use grep/ripgrep + sqlite for memory search (reduced capability)
|
|
│ └─ Keep: all protocol docs, audit scripts, templates
|
|
│
|
|
└─ Option C: Hybrid
|
|
├─ Keep protocol docs and audit scripts
|
|
├─ Replace only cron + memory with POSIX equivalents
|
|
└─ Import protocol docs into new toolchain
|
|
|
|
SELF-HOSTED VERIFICATION
|
|
├─ node scripts/upgrade-test.mjs ← all PASS (no OpenClaw dep!)
|
|
├─ node scripts/audit-all.mjs ← all PASS
|
|
└─ Manual: verify cron/launchd triggers Dream Cycle
|
|
```
|
|
|
|
---
|
|
|
|
## §6 Upgrade History Log
|
|
|
|
| Date | From | To | Type | Changed Files | Duration | Issues |
|
|
|------|------|----|------|---------------|----------|--------|
|
|
| — | — | — | — | — | — | — |
|
|
|
|
*(Populate on each upgrade)*
|