spec

OpenClaw upgrade test plan, 2026-04-08

2026-04-08

Executive Summary

Do not fold this work into JAM-5. Create a new upgrade-test task for a staged OpenClaw upgrade, keep JAM-5 as a later browser-profile cleanup item, and rewrite JAM-5 because its current assumptions are partly wrong.

Current local OpenClaw is 2026.3.13. The latest published stable is 2026.4.9, but it shipped on 2026-04-08 19:41 PDT, with 2026.4.8 published earlier the same day. That is too fresh for Pete's update policy, especially because the 2026.4.x line has had real packaged-install regressions and bundled extension startup regressions reported publicly in issue #61787, issue #62923, and issue #63127. The right move is a pinned, rollback-ready test upgrade, not an unpinned jump to latest.

Recommended path: use 2026.4.1 as the first controlled test target, because it is old enough to have some burn-in and includes relevant browser/CDP and packaged-runtime fixes in release 2026.4.1. After that passes, re-check the 2026.4.9 line after 7 to 14 days of burn-in before testing or adopting it.

1. Problem Statement and Goal

Pete wants to test an OpenClaw upgrade, but not as a loose "update and see what breaks" exercise. The friction is specific:

Goal: define a staged, exact-version upgrade test plan with pre-checks, validation, rollback, and a clean follow-up task structure.

2. Success Metric

This spec succeeds if Pete can do all of the following without guesswork:

  1. Name the current version, latest stable, and recommended first test target.
  2. Run a pinned test upgrade with a prepared rollback path.
  3. Validate gateway startup, Discord operation, browser profiles, and cron health in under 30 minutes.
  4. Decide whether to keep, rewrite, or defer JAM-5 based on actual post-upgrade browser behavior.
  5. Avoid an unpinned jump to a same-day stable release.

3. Current State

Installed/runtime state

Browser state

Current runtime browser profiles from openclaw browser profiles --json:

ProfileDriverTransportRunningNotes
openclawopenclawcdpnoisolated managed browser
userexisting-sessionchrome-mcpnopreferred path for signed-in user browser per docs
chrome-relayextensioncdpyesactive today, 7 tabs open

This matters because Pete's setup is not already living on profile="user". Operationally, it is still using the extension relay.

Local browser-policy drift

The local workspace notes in /Users/vinny/.openclaw/workspace/TOOLS.md still say:

But current OpenClaw docs say:

That is a real documentation and workflow mismatch.

Task and cron state

JAM-5 in mission-control/data/tasks.json is currently:

Two problems:

  1. Current local version is 2026.3.13, not 2026.3.11.
  2. There are 5 Browser Relay Check cron jobs in ~/.openclaw/cron/jobs.json, not 4.

Relay-related cron jobs currently enabled:

NameSchedule
Browser Relay Check (5:45am weekdays)45 5 * * 1-5
Browser Relay Check (7:45am)45 7 * * *
Browser Relay Check (11:45am)45 11 * * *
Browser Relay Check (3:45pm)45 15 * * *
Browser Relay Check (9pm EOD)0 21 * * *

Skill references that need cleanup later

Current workspace files still reference legacy profile="chrome" usage:

Those are cleanup items, not reasons to mutate JAM-5 into the whole upgrade plan.

4. Platform Capabilities

OpenClaw supports the relevant pieces natively:

Important native behavior change for Pete's setup: the docs no longer treat the extension relay as the default answer for normal user-browser work. That does not mean the relay is gone. It means its scope is narrower.

5. Community Patterns

Public community-visible evidence in early April 2026 points to two patterns.

Pattern A: use exact version pins and be careful with packaged installs

The 2026.4.x line has had real regressions on packaged installs:

Conclusion: people are not treating 2026.4.x as a "blind latest" line. They are pinning exact versions and rolling back when necessary.

Pattern B: prefer user for signed-in browser work, keep chrome-relay for attach-tab cases

The docs moved toward:

That matches the public issue traffic around browser profile migration and existing-session behavior, such as issue #45889 and issue #45812.

ClawHub / Discord community note

I did not capture any useful ClawHub results for this specific upgrade path. Public evidence is good enough to plan around, but not good enough to justify same-day adoption of 2026.4.8 or 2026.4.9.

6. Options

OptionWhat it meansComplexityReliabilityMaintenanceVerdict
A. Upgrade straight to 2026.4.9 nowUse latest stable immediatelyLowLowMediumWrong fit for Pete. Too fresh, with recent packaged-install churn.
B. Staged test on 2026.4.1 first, then re-evaluate latest after burn-inPin a known recent stable first, validate browser/profile behavior, then revisit 2026.4.9 after 7 to 14 daysMediumHighLowBest fit. Gives new browser semantics and 4.x fixes without same-day risk.
C. Stay on 2026.3.13 and only do JAM-5 cleanupNo version move, only browser-relay cleanupLowMediumHighWrong order. Cleanup assumptions depend on post-upgrade reality.

Option tradeoffs

7. Recommendation

Choose Option B.

Version recommendation

RoleVersionWhy
Current local2026.3.13confirmed installed package
Latest published stable2026.4.9latest stable in registry, published 2026-04-08 19:41 PDT
First controlled test target2026.4.1has 1 week of burn-in, includes relevant packaged-runtime and CDP/profile fixes in release 2026.4.1
Hold for later review2026.4.9re-check after 7 to 14 days if no fresh packaged-install regressions appear

Why 2026.4.1 first

New task vs modify JAM-5

Create a new task. Do not overload JAM-5.

Reason:

Recommended relationship:

  1. New task: staged upgrade test and validation.
  2. Rewrite JAM-5: browser profile policy cleanup after successful validation.

8. Security Considerations

9. Implementation Scope

This is research and planning only. No upgrade is executed here.

Files and areas the upgrade task will likely touch later

Concrete upgrade test plan

Pre-upgrade checks

  1. Capture baseline:
  1. Back up:
  1. Confirm current relay dependency:
  1. Choose a pinned test target, recommended 2026.4.1.

Test upgrade

  1. Stop the gateway cleanly.
  2. Upgrade with an exact version pin, using the package-manager flow in the updating guide. Because this install is package-based, do not use an unqualified latest pull.
  3. Run openclaw doctor.
  4. Run openclaw doctor --fix only after reviewing its proposed fixes.
  5. Restart gateway.

Validation

Run this exact smoke set:

TestPass condition
CLI loadsopenclaw --version works, no missing-module crash
Gateway startsopenclaw gateway status reports healthy start
Config still loadsopenclaw doctor completes without fatal config read failure
Discord channel path survivesno startup crash from bundled channel/plugin loading
Browser profiles reconcileopenclaw browser profiles --json still shows openclaw, user, and chrome-relay sensibly
Relay path still workschrome-relay can attach when toolbar badge is on
User path worksprofile="user" can attach to signed-in Chrome if existing-session handshake is available
Cron inventory intactrelay-check jobs still exist until explicitly cleaned up

Post-upgrade cleanup

Only after validation passes:

  1. Rewrite /Users/vinny/.openclaw/workspace/TOOLS.md so browser guidance matches current docs.
  2. Replace legacy profile="chrome" instructions in affected skills.
  3. Decide per workflow whether it should use:
  1. Revisit whether all 5 Browser Relay Check cron jobs are still needed.
  2. Rewrite JAM-5 to reflect the actual cleanup scope.

Rollback posture

If any of the smoke tests fail:

  1. Stop gateway.
  2. Reinstall exact current version: 2026.3.13.
  3. Restore backed-up config and cron files if doctor --fix or startup altered them.
  4. Re-run baseline checks until the pre-upgrade state is back.
  5. Log the failing version and first failing command in Mission Control before retrying.

10. Validation Criteria

The upgrade task should not be called complete unless all of these are true:

11. Category

Behavioral Tweak

Reason: this is primarily a controlled operational change to how Pete upgrades and how browser-profile guidance is expressed. It is not a new external tool or a new skill.

12. Context Loading

For the actual implementation task, load these files in this order:

  1. ~/.openclaw/openclaw.json at start, to confirm current gateway/channel state.
  2. ~/.openclaw/cron/jobs.json before any relay-check cleanup decision.
  3. mission-control/data/tasks.json before editing or creating upgrade tasks.
  4. /Users/vinny/.openclaw/workspace/TOOLS.md before changing browser guidance.
  5. The three affected skill files only if the task reaches cleanup:
  1. Local OpenClaw docs first, then public release pages/issues if behavior or regressions need confirmation:

13. Guardrails

14. Handoff

Deliverables for Pete:

  1. This artifact in /Users/vinny/.openclaw/workspace/artifacts/openclaw_upgrade_test_plan_2026_04_08.md
  2. One new Mission Control task for the staged upgrade test
  3. One JAM-5 rewrite recommendation for the later browser cleanup
  4. A simple yes/no readiness call

New task to create

```md Run a rollback-ready test upgrade of local OpenClaw from 2026.3.13 to a pinned 2026.4.x target.

Initial test target: 2026.4.1. Latest published stable to monitor: 2026.4.9.

Steps

  1. Capture baseline status, browser profiles, cron inventory, and current version.
  2. Back up ~/.openclaw/openclaw.json, ~/.openclaw/cron/jobs.json, TOOLS.md, affected skill files, and tasks.json.
  3. Upgrade to pinned target version.
  4. Run openclaw doctor, then doctor --fix if needed.
  5. Validate gateway startup, Discord boot path, browser profiles, chrome-relay attach, and user-profile attach.
  6. If validation fails, roll back to 2026.3.13 and log first failing command.
  7. If validation passes, hand off browser-profile cleanup to JAM-5.

```

JAM-5 recommendation

Keep JAM-5, but rewrite it.

```md After a successful OpenClaw 2026.4.x upgrade test, reconcile local browser guidance with current OpenClaw browser semantics.

Steps

  1. Update TOOLS.md browser guidance so it no longer treats chrome-relay as the default for all browser work.
  2. Replace legacy profile="chrome" references in daily-twitter-briefing, linkedin-invites, and personal-one-pager.
  3. Decide which workflows should use profile="user" versus profile="chrome-relay".
  4. Reassess whether the 5 Browser Relay Check cron jobs are still needed.
  5. Run openclaw doctor --fix only if config migration or validation requires it.

```

Ready for Review

Yes. Latest release status is clear, current local version is clear, and the main uncertainty is not discovery. It is burn-in. That is already accounted for in the recommendation.