Skip to content

fix(cli): suppress systemd hints for live gateway#85336

Merged
steipete merged 2 commits into
mainfrom
codex/85094-status-systemd-rpc
May 22, 2026
Merged

fix(cli): suppress systemd hints for live gateway#85336
steipete merged 2 commits into
mainfrom
codex/85094-status-systemd-rpc

Conversation

@steipete

Copy link
Copy Markdown
Contributor

Summary

  • Keep openclaw status --deep from printing systemd user-service setup hints when Gateway RPC is already reachable.
  • Add regression coverage for a Linux status payload where the local user service probe is unavailable but a Gateway is responding.

Verification
Behavior addressed: status output no longer reports a false systemd user-service problem for externally managed/system-scoped Gateways that respond over RPC.
Real environment tested: local macOS source checkout with Linux platform mocked in the focused unit test.
Exact steps or command run after this patch: node scripts/run-vitest.mjs src/cli/daemon-cli/status.print.test.ts; git diff --check; .agents/skills/autoreview/scripts/autoreview --mode local
Evidence after fix: regression test forces isSystemdUnavailableDetail() true with rpc.ok: true and asserts the systemd hints are not printed.
Observed result after fix: focused test passed, diff check passed, autoreview reported no accepted/actionable findings.
What was not tested: live Linux systemd system-service Gateway install.

Fixes #85094

@openclaw-barnacle openclaw-barnacle Bot added cli CLI command changes size: S maintainer Maintainer-authored PR labels May 22, 2026
@clawsweeper

clawsweeper Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

Latest ClawSweeper review: 2026-05-22 12:18 UTC / May 22, 2026, 8:18 AM ET.

Workflow note: Future ClawSweeper reviews update this same comment in place.

How this review workflow works
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

Summary
The branch changes daemon status printing to skip Linux systemd-unavailable hints when RPC succeeds, adds a focused daemon-printer test, and adds a changelog entry.

Reproducibility: yes. source-reproducible: the linked report gives concrete Linux system-unit steps, and current main formats top-level service rows without considering gatewayReachable. I did not run a live Linux host in this read-only review.

PR rating
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🧂 unranked krab
Summary: Not merge-ready: the patch misses the reported status surface and the after-fix proof is mock-only.

Rank-up moves:

  • Move or extend the fix to the top-level openclaw status --deep service rows and add a regression for that path.
  • Add redacted Linux terminal output, live logs, or a recording showing a system-scoped Gateway is reachable and the status rows no longer report the user service as missing.
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Real behavior proof
Needs real behavior proof before merge: The PR body reports only a mocked Linux unit test from a macOS source checkout, with no live Linux systemd-system Gateway proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

Maintainer options:

  1. Cover the status overview path first (recommended)
    Extend the fix and regression coverage to the openclaw status --deep service rows before allowing the linked issue to close.
  2. Retarget as gateway-status-only cleanup
    If this PR is intentionally limited to openclaw gateway status, remove the closing linkage and leave the top-level status report open.
  3. Pause for live Linux proof
    Hold the PR until a redacted Linux terminal transcript or logs show a system-scoped Gateway is reachable and the status rows no longer claim the user service is missing.

Next step before merge
A maintainer should require the top-level status fix and real Linux proof before merge; missing contributor proof makes this unsuitable for an automated repair marker.

Security
Cleared: The diff is limited to CLI output logic, a regression test, and changelog text; I found no concrete security or supply-chain concern.

Review findings

  • [P2] Fix the top-level status rows too — src/cli/daemon-cli/status.print.ts:323
Review details

Best possible solution:

Update the top-level status overview or service-summary path so a reachable Gateway suppresses or reclassifies user-systemd not installed rows for externally managed system services, while preserving gateway-status failure hints when RPC is not reachable.

Do we have a high-confidence way to reproduce the issue?

Yes, source-reproducible: the linked report gives concrete Linux system-unit steps, and current main formats top-level service rows without considering gatewayReachable. I did not run a live Linux host in this read-only review.

Is this the best way to solve the issue?

No. Suppressing the daemon-printer hint is useful but not sufficient; the fix should cover the top-level openclaw status --deep overview/service-row path with focused regression coverage.

Label justifications:

  • P2: This is a focused CLI diagnostics bug fix with limited blast radius but real operator confusion.
  • merge-risk: 🚨 automation: The PR body can automatically close the linked report even though the reported top-level status surface is not fixed by the current diff.
  • rating: 🧂 unranked krab: Current PR rating is 🧂 unranked krab because proof is 🧂 unranked krab, patch quality is 🧂 unranked krab, and Not merge-ready: the patch misses the reported status surface and the after-fix proof is mock-only.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR body reports only a mocked Linux unit test from a macOS source checkout, with no live Linux systemd-system Gateway proof. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Full review comments:

  • [P2] Fix the top-level status rows too — src/cli/daemon-cli/status.print.ts:323
    This guard only affects printDaemonStatus, which is used by openclaw gateway status; openclaw status --deep still builds the Gateway service and Node service rows through readServiceStatusSummary and formatStatusServiceValue, so a reachable system-scoped Gateway can still show systemd user not installed. Because the PR body closes openclaw status --deep reports 'systemd user not installed' false positive when gateway runs under systemctl system #85094, please move or extend the fix to the top-level status overview path before merge.
    Confidence: 0.9

Overall correctness: patch is incorrect
Overall confidence: 0.9

What I checked:

  • PR diff targets daemon status output: The changed condition is in printDaemonStatus, the openclaw gateway status printer, not the top-level openclaw status --deep overview path named in the linked report. (src/cli/daemon-cli/status.print.ts:323, 84329182a7c4)
  • Top-level status uses separate service rows: openclaw status --deep builds its overview surface from gatewayService and nodeService summaries, then formats Gateway service and Node service rows through the shared overview row formatter. (src/commands/status.command.ts:268, 84329182a7c4)
  • False-positive row path remains on main: When the user-scope service is not installed and runtime is not detected as running, formatStatusServiceValue returns <label> not installed; this path does not receive or check gatewayReachable. (src/commands/status-all/format.ts:151, 84329182a7c4)
  • Service summary only treats runtime-running as external management: readServiceStatusSummary marks a service externally managed only when the service command is absent and state.running is true; a healthy system-scoped Gateway reachable over RPC is not used here. (src/commands/status.service-summary.ts:26, 84329182a7c4)
  • Mock-only proof in PR body: The PR body says the real environment tested was a local macOS checkout with Linux mocked in the focused unit test, and explicitly says live Linux systemd system-service Gateway install was not tested. (7bccc6678fca)
  • Current source attribution: Local blame attributes the central service-summary, overview formatter, and daemon-printer lines to commit 2b1c01f769a898964c6937564864c947f1541746; this is useful for routing current-main context, not for assigning fault. (src/commands/status.service-summary.ts:19, 2b1c01f769a8)

Likely related people:

  • vincentkoc: Current-main blame for the top-level status formatter, service summary, and daemon status printer points to Vincent Koc's commit in the available local history. (role: recent area contributor; confidence: medium; commits: 2b1c01f769a8; files: src/commands/status-all/format.ts, src/commands/status.service-summary.ts, src/cli/daemon-cli/status.print.ts)

Codex review notes: model gpt-5.5, reasoning high; reviewed against 84329182a7c4.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. labels May 22, 2026
@clawsweeper

clawsweeper Bot commented May 22, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper PR egg

🎁 Pass real behavior proof to wake the egg and unlock a hatchable treat.

Where did the egg go?
  • The egg game starts only after the PR passes the real-behavior proof check.
  • Before that, no creature or rarity is rolled. The treat waits for real proof.
  • This is still just collectible flavor: proof affects review readiness, not creature quality.

@steipete steipete force-pushed the codex/85094-status-systemd-rpc branch from 6caddd5 to 1531ebc Compare May 22, 2026 12:08
@steipete steipete force-pushed the codex/85094-status-systemd-rpc branch from 7bccc66 to 1becfa8 Compare May 22, 2026 12:46
@steipete steipete merged commit a00c583 into main May 22, 2026
99 checks passed
@steipete steipete deleted the codex/85094-status-systemd-rpc branch May 22, 2026 12:52
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 24, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
galiniliev pushed a commit to galiniliev/openclaw that referenced this pull request May 25, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SebTardif pushed a commit to SebTardif/openclaw that referenced this pull request May 26, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
SYU8384 pushed a commit to SYU8384/openclaw that referenced this pull request Jun 3, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
* fix(cli): suppress systemd hints for live gateway

* test(cli): type systemd hint mock
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cli CLI command changes maintainer Maintainer-authored PR merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: S status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

openclaw status --deep reports 'systemd user not installed' false positive when gateway runs under systemctl system

1 participant