fix(status): redact channel base URLs in status-all#98599
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 2, 2026, 11:23 PM ET / 03:23 UTC. Summary PR surface: Source +1, Tests +32. Total +33 across 2 files. Reproducibility: yes. Source inspection shows current main appends 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:
Next step before merge
Security Review detailsBest possible solution: Land this focused status-all redaction or an equivalent change, then close the linked issue; broader channel-summary URL redaction can be tracked separately if maintainers want every status surface covered. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main appends Is this the best way to solve the issue? Yes for the scoped status-all bug. Reusing the existing net-policy URL redaction helper at the status-all account-note render point is narrow and avoids changing channel configuration semantics. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 898564e71aef. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +1, Tests +32. Total +33 across 2 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
|
4802b11 to
8f4cd75
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review Current PR body now includes after-fix |
|
Thanks, @ooiuuii, for the focused patch and especially the synthetic CLI proof. Your work established the Related nested-URL reports showed that the invariant needed to live at the shared redactor and final snapshot/summary boundaries rather than only in the Closing this PR as superseded by the broader merged fix—not as a rejection of the contribution. Thank you again. |
Fixes #98633
What Problem This Solves
openclaw status --allbuilds a pasteable support report, but channel account notes printedsnapshot.baseUrlverbatim. If a channel plugin or account summary includes credentials in URL userinfo or auth-like query params, those values can appear in the status report even though token fields are summarized safely.Why This Change Was Made
This redacts URL userinfo and sensitive query params before channel base URLs are added to status notes, while keeping ordinary URLs readable.
User Impact
Operators can paste
openclaw status --alloutput without leaking credentials hidden inside channel base URLs.Evidence
node scripts/run-vitest.mjs src/commands/status-all/channels.test.tspnpm exec oxlint src/commands/status-all/channels.ts src/commands/status-all/channels.test.tspnpm exec oxfmt --check src/commands/status-all/channels.ts src/commands/status-all/channels.test.tsgit diff --checknode scripts/build-all.mjs cliStartupOPENCLAW_CONFIG_PATH=<synthetic config> NO_COLOR=1 FORCE_COLOR=0 OPENCLAW_TEST_FAST=1 node openclaw.mjs status --all --timeout 1python .agents/skills/autoreview/scripts/autoreview --mode branch --base upstream/mainCLI proof excerpt from the synthetic Mattermost
baseUrl:The proof config used synthetic values
oc-user,oc-pass,oc-token-raw, andoc-api-key-raw; none appeared in thestatus --alloutput.