Expose WhatsApp responsiveness doctor lint findings#98406
Conversation
|
@clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review: needs maintainer review before merge. Reviewed July 3, 2026, 2:48 PM ET / 18:48 UTC. Summary PR surface: Source +66, Tests +231. Total +297 across 4 files. Reproducibility: not applicable. as a feature PR rather than a bug report. The current-main absence and PR-head selected-lint behavior are source-verifiable, with PR proof for the read-only selected path. Review metrics: 1 noteworthy metric.
Stored data model 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 the default-disabled structured doctor lint check after maintainer review, keeping the existing Do we have a high-confidence way to reproduce the issue? Not applicable as a feature PR rather than a bug report. The current-main absence and PR-head selected-lint behavior are source-verifiable, with PR proof for the read-only selected path. Is this the best way to solve the issue? Yes. Reusing the existing WhatsApp responsiveness signal and keeping the lint check default-disabled/read-only is the narrow maintainable solution; the earlier human-facing Gateway health helper approach was correctly replaced. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against df1452799b28. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +66, Tests +231. Total +297 across 4 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
|
|
Addressed ClawSweeper's P2: selected WhatsApp responsiveness lint no longer calls the human-facing gateway health helper. It now uses a quiet direct Gateway status RPC, treats unavailable status as no WhatsApp-specific finding, and the focused contribution test proves no \ call on gateway failure. Refreshed PR body with validation and source CLI no-human-output proof. @clawsweeper re-review |
|
Clean correction to my prior comment: the focused contribution test proves selected lint does not call runtime.error when Gateway status is unavailable. The PR body has the correct text and validation details. |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Codex review finding: The selected lint detector can execute exec SecretRefs even though Doctor only permits that after That means |
|
Addressed Omar's review finding about selected lint resolving exec SecretRefs without What changed:
Validation:
Noted while checking: @clawsweeper review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
9fa0243 to
80d5662
Compare
|
@clawsweeper re-review exact head 80d5662. Rebased onto current main after #98729, fixed the selected lint Gateway status probe to pass |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Maintainer note for the remaining positive-proof ask: accepted for review readiness. The concrete lint side-effect issue is fixed on I am not requiring a live degraded-Gateway/local-TUI recording before review. The positive warning path is covered by focused source tests that inject the degraded Gateway event-loop status plus local TUI process and assert the structured warning/fix hint. The real CLI proof covers the important read-only selected-lint behavior in an isolated state/config setup. |
80d5662 to
39f0039
Compare
|
@clawsweeper re-review exact head 39f0039. Fixed the CI |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
@clawsweeper re-review exact head 39f0039 after CI type-fix push. Current head has focused Vitest, changed-file oxfmt/oxlint, diff-check, and selected source CLI no-identity-write proof passing. |
|
@clawsweeper review exact current head 39f0039. The durable review is stale on 80d5662; exact-head CI is clean and proof/body are updated. |
|
Maintainer note for ClawSweeper remaining review item: accepted. I accept the new opt-in Doctor lint surface The selected lint path is read-only for the reviewed sensitive cases: exec SecretRefs are skipped unless allow-exec is enabled, and the quiet Gateway status call uses |
|
Maintainer merge closeout:
|
Adds a default-disabled Doctor lint check for WhatsApp responsiveness pressure while keeping real cleanup in the existing doctor --fix path. Verification: - Focused WhatsApp responsiveness/contribution Vitest passed (71 tests). - Changed-file oxfmt passed. - Changed-file oxlint with core tsconfig passed. - SDK surface report passed. - SDK export sync passed. - git diff --check passed. - Selected source CLI proof passed earlier on this head: doctor --lint --json --only core/doctor/whatsapp-responsiveness exited 0, ran 1 check, and did not create <state>/identity/device.json. - Exact-head hosted checks passed/skipped on 39f0039; older cancelled proof/auto-response runs were superseded by passing current runs. Maintainer notes: - ClawSweeper platinum hermit / ready for maintainer review. - Accepted the opt-in lint check id and warning copy on the PR. - No public config/plugin/SDK/persisted data contract change; default doctor --lint remains unchanged.
Summary
core/doctor/whatsapp-responsivenessstructured lint findingsdoctor --fixpath; lint only reports the actionable pressure statestatusRPC, and passdeviceIdentity: nullso lint cannot create Gateway identity statePublic contract
defaultEnabled: false; defaultdoctor --lintremains unchanged.Validation
node scripts/run-vitest.mjs src/commands/doctor-whatsapp-responsiveness.test.ts src/flows/doctor-health-contributions.test.ts(71 tests).\node_modules\.bin\oxfmt.cmd --check src/commands/doctor-whatsapp-responsiveness.ts src/commands/doctor-whatsapp-responsiveness.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.ts.\node_modules\.bin\oxlint.cmd --tsconfig config/tsconfig/oxlint.core.json src/commands/doctor-whatsapp-responsiveness.ts src/commands/doctor-whatsapp-responsiveness.test.ts src/flows/doctor-health-contributions.ts src/flows/doctor-health-contributions.test.tsnode scripts/plugin-sdk-surface-report.mjs --checknode scripts/sync-plugin-sdk-exports.mjs --checkgit diff --check origin/main...HEADNot completed:
pnpm tsgo:coretimed out on this Windows linked worktree without diagnostics after 180s.Real behavior proof
OPENCLAW_STATE_DIRandOPENCLAW_CONFIG_PATH, WhatsApp enabled, selected check only:node scripts/run-node.mjs doctor --lint --json --only core/doctor/whatsapp-responsiveness<temp-state>/identity/device.jsonwas not created (IdentityExists: false), proving the selected lint probe did not create Gateway device identity stateeventLoop.degraded === true+ local TUI process emits a warning finding withrequirement: "local-tui-event-loop-pressure"and adoctor --fixhint.callGateway({ method: "status", params: { includeChannelSummary: false }, deviceIdentity: null }), does not callcheckGatewayHealth, returns no finding without callingruntime.errorwhen Gateway status is unavailable, and does not call Gateway at all for exec SecretRefs unless exec refs are allowed.ClawSweeper follow-up
deviceIdentity: nullto the selected lint Gateway status call and asserting that in the contribution regression.psparsing on Windows.