openclaw-upgrade
Skill23 starsChanged 3 months agoMITView on GitHub
Safe OpenClaw version upgrade with regression checklist. Use when kcn says "升级 openclaw" / "openclaw 有没有更新" / "/openclaw-upgrade", or after noticing a newer npm version. Checks for in-flight crons, uses the built-in updater, reapplies all host-local dist patches, and runs the full regression gate without reducing context, skills, tools, thinking, or token budgets. Different from `openclaw-tune` (periodic maintenance, no version bump).
1 other project uses a version of this.
Adopted by
Most recently taken up by
- delorenj/skillstheir own version, first seen Nov 7, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- delorenj/skills★ 17same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository14 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- site/llms.txtllms.txt
- daily-deep-briefSkill
- earnings-reviewSkill
- entry-gateSkill
- hk-stock-analysisSkill
- openclaw-tuneSkill
- portfolio-risk-reviewSkill
- portfolio-swarm-reviewSkill
- scraplingSkill
- serenity-skillSkill
- tavilySkill
- us-stock-analysisSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 4 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈4
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Read the host runbook above for the target version's traps.
- Distinctive: line 15
Use the structured runtime field, not a text grep:
- Very specific: line 22
If this is not true, wait.
- Distinctive: line 43
Do not edit or invoke them to update the managed kit.
- Very specific: line 45
Run bash ops/host/reapply_openclaw_patches.sh --plan first to rehearse against isolated copies.
- Distinctive: line 99
Do not import legacy jobs or enable a job merely to make a count pass.
- Very specific: line 101
Run one complete isolated cron after the cheap checks.
- Very specific: line 104
all allowed workspace bootstrap files are present with truncatedFiles=0
- Very specific: line 113
Do not use --light-context, a tool allowlist, lower thinking, smaller token budgets, or prompt trimming as an upgrade workaround.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
OpenClaw Safe Upgrade
Kcn runs a live automated trading system on OpenClaw. An upgrade that loses crons, breaks embeddings, or orphans an in-flight cron is a production incident. This is the battle-tested flow (5.28→6.1→6.5→6.6→6.8). The current host runbook is /root/.shared-memory/project-openclaw-upgrade-runbook.md; historical version traps are in the archive it links. Read these only on this host, never copy them into the public repository.
0. Check + decide
openclaw --versionvsnpm view openclaw version(latest). Pull the changelog (npm pack openclaw@<v>→package/CHANGELOG.md) and judge relevance — don't upgrade reflexively.- Read the host runbook above for the target version's traps; use the installed version's changelog/source when the runbook has no entry.
1. 🔴 Never restart the gateway while a cron is in-flight
Use the structured runtime field, not a text grep:
openclaw cron list --json \
| jq -e '[.jobs[] | select(.state.runningAtMs != null)] | length == 0'If this is not true, wait. A SIGTERM mid-run can orphan the cron into
permanent running. Use --no-restart and pick a quiet window between slots
(bash ops/host/check_crons.sh --timeline).
2. Update (built-in updater, since 6.x)
openclaw update --tag <version> --no-restart --yesThis auto-reinstalls/links managed plugins (weixin, llama-cpp, codex) — no manual pnpm add, no systemd edits, no restore-llama-embeddings.sh needed. (Pre-6.x manual flow is in the memory file.)
3. 🔴 Reapply all upgrade-sensitive local patches before restart
The updater replaces the installed dist/ tree. From the live workspace run:
bash ops/host/reapply_openclaw_patches.shThe versioned patch kit owns the entire dist edit set. Its ordered inventory and
per-bundle postconditions are in ops/host/openclaw-patches/manifest.json; source
adapters live beside it (the two Python dreaming adapters remain under ops/host/).
The historical scripts under /root/tools/openclaw/current/ are not upgrade inputs.
Do not edit or invoke them to update the managed kit.
Run bash ops/host/reapply_openclaw_patches.sh --plan first to rehearse against
isolated copies. It resolves each bundle unambiguously, runs every manifest adapter and
checks postconditions and JavaScript syntax before any installed bundle is written.
apply retains a transaction receipt and recovery copies; on write failure it
restores the pre-run bytes. A process kill can leave a prepared receipt: use the
hash-guarded rollback command in docs/operations/openclaw-patch-kit.md before
retrying. A multi-file install is not one atomic filesystem operation; keep the
gateway idle and do not restart until the whole wrapper succeeds.
The JSON report identifies the package version, manifest and adapter hashes, patch
IDs, and before/after bundle hashes. A version outside validated_versions is a
compatibility-review signal, not automatic proof of safety from passing anchors.
For supported native upstream fixes, record the accepted postconditions in the
manifest; do not delete a failing patch just to pass the gate.
MiniMax service_tier: "priority" was retired on 2026-10-19: MiniMax bills it at
1.5x the standard rate against the Token Plan. Do not reapply
patch-minimax-m3-priority.sh.
It also replays ops/host/install_skillhub_plugin.sh and ops/host/install_memory_corpus_plugin.sh, restoring the two versioned host extensions outside pnpm. The skill registry policy is stable system context, never a user-turn prefix. --check-only verifies the installed extension bytes as well.
The kit checks each patch on its specific bundle (including the header deadline value
and every dreaming race forwarding hop), then runs node --check. It does not
restart the gateway. --check-only rehearses the kit without writing installed files;
any proposed edit means the installation is not yet aligned.
Any missing script, changed source anchor, syntax error, or missing marker is a hard stop: do not restart and do not declare the upgrade complete. Inspect the new OpenClaw source, revise the relevant patch script deliberately, and rerun the wrapper. Never skip a failed patch just to make the new version start.
4. Restart once, in a clean window
Re-run the structured no-in-flight check from step 1, then:
openclaw gateway restart
bash ops/host/reapply_openclaw_patches.sh --check-only5. Regression gate (ALL must pass before declaring done)
| Check | Command | Pass = |
| version | openclaw --version | shows target |
| cron contract | openclaw cron list --json; clawock system check; bash ops/host/check_crons.sh --timeline | names, schedules, enabled state, payloads and host triggers match config/cron-schedules.json; inspect the cron runtime/watchdog contract results, not only the total count |
| embedding | openclaw memory search "<q>" --max-results 2 --json | returns results, no Unknown memory embedding provider (6.8 has no --limit) |
| local patches | bash ops/host/reapply_openclaw_patches.sh --check-only | all local patches' markers and JS/Python syntax pass |
| MiniMax transport | transport log + fallback smoke | Anthropic protocol; retired service_tier: "priority" absent; transport/timeouts match config/models.toml and the manifest postconditions |
| weixin delivery | tail /tmp/openclaw/openclaw-*.log | weixin monitor started + gateway ready, no crash loop |
| model chain | the cron run log / a throwaway openclaw agent call | a model answers (⚠️ see note) |
| clean startup | gateway log + structured cron listing | scheduler starts the contract's enabled OpenClaw jobs; no plugin load errors |
Derive expected job identities, enabled states and host triggers from
config/cron-schedules.json, not a fixed count in this skill. Some jobs intentionally
remain disabled in OpenClaw and are queued by a host trigger; verify both sides.
Do not import legacy jobs or enable a job merely to make a count pass.
Run one complete isolated cron after the cheap checks. Inspect its actual
session and systemPromptReport, not only the final summary. Pass means:
- all allowed workspace bootstrap files are present with
truncatedFiles=0 - the full skill catalog is present and the payload-required
SKILL.mdbody was actually read before analysis - the full tool set is present (no stale cron
toolsallowlist) - normal prompt/context window, output budget, thinking level, and whole-turn timeout are unchanged
- postflight reports zero issues and the expected delivery/dashboard results
- the model fallback chain still advances on a retryable provider failure
Do not use --light-context, a tool allowlist, lower thinking, smaller token
budgets, or prompt trimming as an upgrade workaround. MiniMax token usage is
not a constraint for this deployment.
6. Known-benign post-6.8 noise (don't chase)
adp-openclawplugin disabled (ships TS source, nodist/) — staleplugins.entrieswarning; harmless, offer to delete the entry.- systemd unit shows "installed by
<old ver>" — cosmetic metadata; daemon runs the new global package.openclaw doctor --repairfixes it (non-blocking). plugins.allow is emptyaudit WARN — long-standing, harmless.
⚠️ Model fallback chain (verify, escalate to kcn)
The model chain breaks silently from billing/auth, not upgrades. If cron runs show FallbackSummaryError: All models failed, check each provider (MiniMax overload, glm/deepseek balance, openai/anthropic auth expiry, openai-proxy quota) and tell kcn which to top up / re-login — you can't fix billing/auth yourself. Compare config/models.toml and docs/operations/models.md; report the failing hop without changing the configured chain.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

