diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 538c9262c..58bd1a7eb 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "13770167a06cc1d43b28365efeffecb6eecd6459", - "syncedAt": "2026-05-07T00:43:20.480Z" + "sha": "a8801350d89a776c3503e0b34c1bc3247464437d", + "syncedAt": "2026-05-07T00:43:58.475Z" } diff --git a/docs/cli/plugins.md b/docs/cli/plugins.md index bea958a76..6457fbbe0 100644 --- a/docs/cli/plugins.md +++ b/docs/cli/plugins.md @@ -139,7 +139,7 @@ is available, then fall back to `latest`. Use `npm:` when you want to make npm resolution explicit. Bare package specs also install directly from npm during the launch cutover. - Bare specs and `@latest` stay on the stable track. OpenClaw date-stamped correction versions such as `2026.5.3-1` are stable releases for this check. If npm resolves either of those to a prerelease, OpenClaw stops and asks you to opt in explicitly with a prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as `@1.2.3-beta.4`. + Bare specs and `@latest` stay on the stable track. Legacy OpenClaw correction versions such as `2026.5.3-1` are still treated as stable releases for this check so older packages keep updating safely. New monthly support-line work is planned to use normal SemVer patch numbers instead of hyphen correction suffixes. If npm resolves a default-line spec to a prerelease, OpenClaw stops and asks you to opt in explicitly with a prerelease tag such as `@beta`/`@rc` or an exact prerelease version such as `@1.2.3-beta.4`. If a bare install spec matches an official plugin id (for example `diffs`), OpenClaw installs the catalog entry directly. To install an npm package with the same name, use an explicit scoped spec (for example `@scope/diffs`). @@ -337,6 +337,8 @@ Updates apply to tracked plugin installs in the managed plugin index and tracked `openclaw plugins update` reuses the tracked plugin spec unless you pass a new spec. `openclaw update` additionally knows the active OpenClaw update channel: on the beta channel, default-line npm and ClawHub plugin records try `@beta` first, then fall back to the recorded default/latest spec if no plugin beta release exists. Exact versions and explicit tags stay pinned to that selector. + OpenClaw does not yet expose LTS or monthly support plugin channels. Planned support-line work will need plugin package and ClawHub tags to follow the same support line as the core package. + Before a live npm update, OpenClaw checks the installed package version against the npm registry metadata. If the installed version and recorded artifact identity already match the resolved target, the update is skipped without downloading, reinstalling, or rewriting `openclaw.json`. diff --git a/docs/cli/update.md b/docs/cli/update.md index 47780f80c..dbe7e4afb 100644 --- a/docs/cli/update.md +++ b/docs/cli/update.md @@ -96,6 +96,11 @@ install method aligned: - `beta` → prefers npm dist-tag `beta`, but falls back to `latest` when beta is missing or older than the current stable release. +OpenClaw does not yet have an LTS or monthly support channel. We are working +toward monthly support lines, but `--channel` currently accepts only +`stable`, `beta`, and `dev`. Use `--tag ` for a one-off +target when you need a specific package artifact. + The Gateway core auto-updater (when enabled via config) launches the CLI update path outside the live Gateway request handler. Control-plane `update.run` package-manager updates force a non-deferred, no-cooldown update restart after the package swap, diff --git a/docs/install/development-channels.md b/docs/install/development-channels.md index 05c8efccd..026be7d3e 100644 --- a/docs/install/development-channels.md +++ b/docs/install/development-channels.md @@ -23,6 +23,28 @@ changing the version number. Maintainers can also publish a stable release directly to `latest` when needed. Dist-tags are the source of truth for npm installs. +## Planned monthly support lines + +OpenClaw does not yet ship an LTS or monthly support channel. We are working +toward SemVer-compatible monthly support lines so users can stay on a quieter +line while `latest` keeps moving quickly. + +The planned version shape is `YYYY.M.PATCH`: + +- `YYYY` is the year. +- `M` is the monthly release line, without a leading zero. +- `PATCH` increments within that monthly line and can grow past 100 if needed. + +Example future tags: + +- `v2026.6.0`, `v2026.6.1`, `v2026.6.2` for the June line. +- `v2026.6.3-beta.1` for a prerelease on the fast/latest train. +- A future support-line dist-tag such as `stable-2026-6` or `lts-2026-6` may + point at a monthly line, but no such channel is available today. + +Until that migration lands, the public update channels remain `stable`, `beta`, +and `dev`. + ## Switching channels ```bash @@ -112,10 +134,12 @@ source (config, git tag, git branch, or default). ## Tagging best practices -- Tag releases you want git checkouts to land on (`vYYYY.M.D` for stable, - `vYYYY.M.D-beta.N` for beta). +- Tag releases you want git checkouts to land on (`vYYYY.M.D` for current + stable releases, `vYYYY.M.D-beta.N` for current beta releases). - `vYYYY.M.D.beta.N` is also recognized for compatibility, but prefer `-beta.N`. -- Legacy `vYYYY.M.D-` tags are still recognized as stable (non-beta). +- Legacy `vYYYY.M.D-` tags are still recognized as stable (non-beta), + but the planned monthly support model will use normal patch numbers + (`vYYYY.M.PATCH`) instead of a hyphen correction suffix. - Keep tags immutable: never move or reuse a tag. - npm dist-tags remain the source of truth for npm installs: - `latest` -> stable diff --git a/docs/install/updating.md b/docs/install/updating.md index c609c5c2b..39dd57c34 100644 --- a/docs/install/updating.md +++ b/docs/install/updating.md @@ -35,6 +35,10 @@ installer has its own `--verbose` flag, but that flag is not part of the beta tag is missing or older than the latest stable release. Use `--tag beta` if you want the raw npm beta dist-tag for a one-off package update. +OpenClaw does not yet expose an LTS or monthly support update channel. We are +working toward SemVer-compatible monthly support lines, but today the supported +channels are still `stable`, `beta`, and `dev`. + See [Development channels](/install/development-channels) for channel semantics. ## Switch between npm and git installs diff --git a/docs/reference/RELEASING.md b/docs/reference/RELEASING.md index d25f072d2..85d6d03fa 100644 --- a/docs/reference/RELEASING.md +++ b/docs/reference/RELEASING.md @@ -1,10 +1,11 @@ --- -summary: "Release lanes, operator checklist, validation boxes, version naming, and cadence" +summary: "Release lanes, operator checklist, validation boxes, version naming, planned monthly support lines, and cadence" title: "Release policy" read_when: - Looking for public release channel definitions - Running release validation or package acceptance - Looking for version naming and cadence + - Planning monthly support or LTS release lines --- OpenClaw has three public release lanes: @@ -17,18 +18,38 @@ OpenClaw has three public release lanes: - Stable release version: `YYYY.M.D` - Git tag: `vYYYY.M.D` -- Stable correction release version: `YYYY.M.D-N` +- Legacy stable correction release version: `YYYY.M.D-N` - Git tag: `vYYYY.M.D-N` - Beta prerelease version: `YYYY.M.D-beta.N` - Git tag: `vYYYY.M.D-beta.N` - Do not zero-pad month or day - `latest` means the current promoted stable npm release - `beta` means the current beta install target -- Stable and stable correction releases publish to npm `beta` by default; release operators can target `latest` explicitly, or promote a vetted beta build later +- Stable and legacy correction releases publish to npm `beta` by default; release operators can target `latest` explicitly, or promote a vetted beta build later - Every stable OpenClaw release ships the npm package and macOS app together; beta releases normally validate and publish the npm/package path first, with mac app build/sign/notarize reserved for stable unless explicitly requested +### Planned monthly support versioning + +OpenClaw does not yet have an LTS or monthly support channel. Maintainers are +working toward SemVer-compatible monthly support lines, but the shipped update +channels today are still `stable`, `beta`, and `dev`. + +The planned version shape is `YYYY.M.PATCH`: + +- `YYYY` is the year. +- `M` is the monthly release line, without a leading zero. +- `PATCH` increments within that monthly line and can grow as high as needed. + +For example, `2026.6.0`, `2026.6.1`, and `2026.6.2` would all be on the June +2026 line. A future monthly support dist-tag such as `stable-2026-6` or +`lts-2026-6` may point at that line, while `latest` continues to move quickly. + +This future model replaces the need for new `YYYY.M.D-N` correction releases. +Existing legacy correction versions remain recognized so older packages and +upgrade paths keep working. + ## Release cadence - Releases move beta-first @@ -239,7 +260,7 @@ Validation` or from the `main`/release workflow ref so workflow logic and `preflight_run_id` and `validate_run_id` - the real publish paths promote prepared artifacts instead of rebuilding them again -- For stable correction releases like `YYYY.M.D-N`, the post-publish verifier +- For legacy stable correction releases like `YYYY.M.D-N`, the post-publish verifier also checks the same temp-prefix upgrade path from `YYYY.M.D` to `YYYY.M.D-N` so release corrections cannot silently leave older global installs on the base stable payload diff --git a/docs/tools/plugin.md b/docs/tools/plugin.md index c13a43c5d..e9dd13996 100644 --- a/docs/tools/plugin.md +++ b/docs/tools/plugin.md @@ -594,6 +594,10 @@ When `openclaw update` runs on the beta channel, default-line npm and ClawHub plugin records try `@beta` first and fall back to default/latest when no plugin beta release exists. Exact versions and explicit tags stay pinned. +OpenClaw does not yet expose LTS or monthly support plugin channels. Planned +monthly support-line work will need plugin npm and ClawHub tags to follow the +same support line as the core package instead of silently using `latest`. + `--pin` is npm-only. It is not supported with `--marketplace`, because marketplace installs persist marketplace source metadata instead of an npm spec.