fix(status): avoid false shell-wrapper audit warnings#81778
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 11, 2026, 6:09 AM ET / 10:09 UTC. Summary PR surface: Source +21, Tests +36, Docs +1. Total +58 across 3 files. Reproducibility: yes. Current main requires a top-level Review metrics: none identified. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Retain the opaque-wrapper guard and focused tests, drop the Do we have a high-confidence way to reproduce the issue? Yes. Current main requires a top-level Is this the best way to solve the issue? Yes, after the two merge-readiness fixes. Treating only recognized shell inline-command wrappers as opaque for the aggressive token assertion is narrower and safer than parsing shell syntax, and it leaves the remaining audits active. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 6268eeef15b6. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +21, Tests +36, Docs +1. Total +58 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
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. How this review workflow works
Review history (3 earlier review cycles)
|
This comment was marked as low quality.
This comment was marked as low quality.
|
Heads up: this PR needs to be updated against current |
8ba8752 to
530149f
Compare
530149f to
d2758d0
Compare
7ebc71e to
c8cec1f
Compare
c8cec1f to
add63e8
Compare
add63e8 to
aecb9a1
Compare
* origin/main: fix(cron): abort superseded reconciliation hooks (#104368) ci(release): expose Telegram runtime preflight stage (#104387) fix(status): avoid false shell-wrapper audit warnings (#81778) fix: retry live Gateway readiness proof (#104374) fix(exec-approval): stop misattributing Allow Always unavailability to policy (#97740) fix: preserve Mac bundle during live builds (#104376) chore(docs): translate with GPT-5.6 xhigh test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface (#104361) fix(ui): hide group submenu separator when New group is the only entry (#104370) fix(discord): reset progress drafts across queued turns (#102341) docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides (#94999) fix(discord): single-source thread-binding default placement and guard artifact parity (#104342) fix(agents): add tool-activity heartbeat to keep subagent alive during tool calls (#95536) fix(maint): reuse recent same-PR hosted gates (#104355)
* origin/main: fix(cron): abort superseded reconciliation hooks (openclaw#104368) ci(release): expose Telegram runtime preflight stage (openclaw#104387) fix(status): avoid false shell-wrapper audit warnings (openclaw#81778) fix: retry live Gateway readiness proof (openclaw#104374) fix(exec-approval): stop misattributing Allow Always unavailability to policy (openclaw#97740) fix: preserve Mac bundle during live builds (openclaw#104376) chore(docs): translate with GPT-5.6 xhigh test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface (openclaw#104361) fix(ui): hide group submenu separator when New group is the only entry (openclaw#104370) fix(discord): reset progress drafts across queued turns (openclaw#102341) docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides (openclaw#94999) fix(discord): single-source thread-binding default placement and guard artifact parity (openclaw#104342) fix(agents): add tool-activity heartbeat to keep subagent alive during tool calls (openclaw#95536) fix(maint): reuse recent same-PR hosted gates (openclaw#104355)
Fixes #81751
What Problem This Solves
gateway statusreports that the gateway subcommand is missing when a macOS LaunchAgent intentionally invokes OpenClaw through a POSIX shell inline command such as/bin/zsh -lc "... exec node ... gateway". The audit only sees the outer argv and cannot safely prove the inner shell command.Why This Change Was Made
Treat recognized POSIX shell
-c/combined-cwrappers as opaque for only the aggressivegateway-command-missingassertion. The audit does not parse shell text, infer inner ports, or change status/doctor/runtime behavior. Non-shell commands and shell invocations without an inline-command flag retain the exact existing audit.User Impact
Healthy shell-wrapped LaunchAgents no longer emit the misleading missing-gateway warning. Other service diagnostics remain unchanged.
Evidence
node scripts/run-vitest.mjs src/daemon/service-audit.test.ts— 46/46 passed.oxfmt --check src/daemon/service-audit.ts src/daemon/service-audit.test.ts— passed.git diff --check— passed.zsh -lcshape plus non-shell and missing-inline-flag negatives.