openclaw - ✅(Solved) Fix [Bug]: update status output is ambiguous when local == latest [3 pull requests, 1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#51403Fetched 2026-04-08 01:11:36
View on GitHub
Comments
1
Participants
2
Timeline
8
Reactions
0
Participants
Timeline (top)
cross-referenced ×4closed ×1commented ×1locked ×1

openclaw update status does not clearly distinguish between:

  • no update available, latest version = X
  • update available

For package installs, the human-readable Update line can look update-positive even when the local version already equals npm latest.

Root Cause

This is not just cosmetic. The current wording is easy for automation / cron agents to misinterpret, which can lead to false-positive update alerts.

Example output on a machine already at latest:

OpenClaw update status

Install  pnpm
Channel  stable (default)
Update   pnpm · npm latest 2026.3.13

The output does not explicitly say "up to date" / "no update available".

Fix Action

Fixed

PR fix notes

PR #51409: fix(update): make up-to-date package status explicit

Description (problem / solution / changelog)

Summary

Make package-install openclaw update status output explicitly say up to date when the local version already equals npm latest.

Closes #51403.

Why

Today the human-readable output can look like this when local already equals latest:

Update   pnpm · npm latest 2026.3.13

That is readable for humans, but ambiguous for automation / cron agents. This change makes the no-update state explicit without changing update availability logic.

Changes

  • add up to date to the formatted one-liner when current == latest
  • add tests for:
    • git install + latest equal current
    • package install + latest equal current

Validation

  • pnpm exec vitest run src/commands/status.update.test.ts
  • result: 7 tests passed

Notes

Local full commit hooks were blocked by an unrelated existing repo baseline drift in lint:plugins:no-extension-imports (runtime-matrix.ts missing baseline entry), so this commit was created with --no-verify. The targeted tests for this change passed.

Changed files

  • CHANGELOG.md (modified, +3/-1)
  • src/commands/status.update.test.ts (modified, +47/-1)
  • src/commands/status.update.ts (modified, +3/-0)

PR #51524: fix(status): disambiguate update output when local == latest

Description (problem / solution / changelog)

Fixes #51403

When openclaw update status is run and the local version already equals npm latest, the output now clearly indicates (up to date) instead of just showing the version number.

Changes

  • formatUpdateOneLiner(): append (up to date) when cmp === 0
  • Status table: show checkmark up to date with green styling when no update available
  • Updated test expectations to match

Changed files


PR #51555: fix(status): disambiguate update output when local == latest

Description (problem / solution / changelog)

Fixes #51403

When openclaw update status is run and the local version already equals npm latest, the output now clearly indicates [(up to date)](cci:1://file:///Users/honwee/project/openclaw/src/commands/status.update.test.ts:9:0-16:1) instead of just showing the version number.

Changes

  • [formatUpdateOneLiner()](cci:1://file:///Users/honwee/project/openclaw/src/commands/status.update.ts:71:0-132:1): append [(up to date)](cci:1://file:///Users/honwee/project/openclaw/src/commands/status.update.test.ts:9:0-16:1) when cmp === 0
  • Status table: show ✓ up to date with green styling when no update available
  • Updated test expectations to match

Test

pnpm test -- src/commands/status.update.test.ts
✓ src/commands/status.update.test.ts (6 tests) 3ms
Test Files  1 passed (1)
Tests       6 passed (6)

Changed files

  • src/cli/update-cli/status.ts (modified, +3/-1)
  • src/commands/status.update.test.ts (modified, +1/-1)
  • src/commands/status.update.ts (modified, +1/-1)

Code Example

OpenClaw update status

Install  pnpm
Channel  stable (default)
Update   pnpm · npm latest 2026.3.13

---

Update   pnpm · npm latest 2026.3.13
RAW_BUFFERClick to expand / collapse

Summary

openclaw update status does not clearly distinguish between:

  • no update available, latest version = X
  • update available

For package installs, the human-readable Update line can look update-positive even when the local version already equals npm latest.

Why this matters

This is not just cosmetic. The current wording is easy for automation / cron agents to misinterpret, which can lead to false-positive update alerts.

Example output on a machine already at latest:

OpenClaw update status

Install  pnpm
Channel  stable (default)
Update   pnpm · npm latest 2026.3.13

The output does not explicitly say "up to date" / "no update available".

Environment

  • OpenClaw: 2026.3.13
  • Package install on local machine already matches npm latest (2026.3.13)
  • openclaw update status output still presents an Update row with latest-version information but no explicit no-update state

Reproduction

  1. Install any package version that already equals npm latest
  2. Run:
    • openclaw update status
  3. Observe the Update row

Actual result

The output is something like:

Update   pnpm · npm latest 2026.3.13

This requires downstream interpretation to infer that current == latest means "no update available".

Expected result

The command should expose a machine-safe / automation-safe no-update state more clearly in the human-readable output, for example:

  • Update: up to date · npm latest 2026.3.13
  • or Update: no update available · npm latest 2026.3.13
  • or a dedicated explicit field/label in table output

Notes

This became visible in a cron/agent workflow where the agent was asked to alert only when an update is available. Because the CLI output does not explicitly say "no update available", the automation treated the Update line as a positive update signal.

This issue is separate from install-method detection. Even with correct install-method detection, the status wording is still ambiguous for automation.

Related:

  • #51401 (update status mis-detects npm global installs as pnpm)

Relevant source pointers

  • src/commands/status.update.ts
  • src/cli/update-cli/status.ts

extent analysis

Fix Plan

To address the issue, we need to modify the openclaw update status command to clearly distinguish between "no update available" and "update available" states.

Here are the steps:

  • Modify the src/commands/status.update.ts file to check if the local version matches the npm latest version.
  • If they match, display an "up to date" or "no update available" message.
  • Update the src/cli/update-cli/status.ts file to handle the new message.

Example code changes:

// src/commands/status.update.ts
if (localVersion === npmLatestVersion) {
  console.log('Update: up to date · npm latest ' + npmLatestVersion);
} else {
  console.log('Update: available · npm latest ' + npmLatestVersion);
}

Verification

To verify the fix, run the following steps:

  • Install a package with a version that matches the npm latest version.
  • Run openclaw update status and check if the output displays "up to date" or "no update available".
  • Install a package with a version that does not match the npm latest version.
  • Run openclaw update status and check if the output displays "update available".

Extra Tips

  • Make sure to update the documentation to reflect the new output format.
  • Consider adding a test case to ensure the fix works as expected.
  • Review related issues, such as #51401, to ensure they are not affected by this change.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - ✅(Solved) Fix [Bug]: update status output is ambiguous when local == latest [3 pull requests, 1 comments, 2 participants]