chore(lint): remove underscore-dangle allow list#83542
Conversation
|
Codex review: needs maintainer review before merge. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: not applicable. this is a cleanup PR rather than a bug report with a failing user path. The relevant checks are diff review, lint proof, and merge-head CI/Testbox validation. PR rating Rank-up moves:
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. Real behavior proof Risk before merge Maintainer options:
Next step before merge Security Review detailsBest possible solution: Proceed through maintainer review and final CI/Testbox gating, then land the lint cleanup if the exact merge head remains green. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a cleanup PR rather than a bug report with a failing user path. The relevant checks are diff review, lint proof, and merge-head CI/Testbox validation. Is this the best way to solve the issue? Yes; removing the central allow list while preserving compatibility aliases for selected public/deprecated helper exports is the maintainable direction. The broad surface makes final automated validation important before landing. Label justifications:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 6a5a1353c7f0. |
|
Verification before merge: Behavior addressed: removed the
|
Summary
eslint/no-underscore-dangleallow list entirely; the rule is now plainerror__OPENCLAW_VERSION__define as a direct identifier with a narrow inline lint suppression and regression testReal behavior proof
Behavior addressed: the underscore-dangle rule has no repository allow list anymore; compatibility aliases and wire keys remain represented explicitly in code instead of via a global exception list.
Real environment tested: local OpenClaw source checkout at PR head
ca556c1bbfon macOS.Exact steps or command run after this patch:
node -e 'const fs=require("node:fs"); const cfg=JSON.parse(fs.readFileSync(".oxlintrc.json","utf8")); const rule=cfg.rules["eslint/no-underscore-dangle"]; console.log(JSON.stringify({rule,hasAllowList:Boolean(rule && typeof rule==="object" && "allow" in rule)}));'.Evidence after fix: console output from the command above:
{"rule":"error","hasAllowList":false}Observed result after fix: the configured rule value is the string
error, andhasAllowListisfalse; there is no allow-list payload left in.oxlintrc.json.What was not tested: no live provider/channel traffic was exercised; this is an internal rule/config and test-helper cleanup with compatibility aliases preserved.
Verification
git diff --checknode scripts/run-oxlint.mjsnode scripts/run-oxlint.mjs scripts/check-plugin-sdk-exports.mjs src/media-understanding/runner.auto-audio.test.tsnode scripts/run-vitest.mjs src/version.test.tsnode scripts/run-vitest.mjs src/media-understanding/runner.auto-audio.test.tsnode scripts/run-vitest.mjs extensions/codex/src/app-server/run-attempt.test.ts src/agents/subagent-announce-delivery.test.ts src/commands/doctor-auth-oauth-sidecar.test.ts src/infra/resolve-system-bin.test.ts src/media-understanding/runner.vision-skip.test.ts extensions/slack/src/monitor.threading.missing-thread-ts.test.ts extensions/slack/src/monitor/message-handler/prepare.test.ts src/media-understanding/runner.cli-audio.test.ts src/media-understanding/runtime.test.ts extensions/slack/src/monitor/monitor.thread-resolution.test.ts src/plugins/contracts/plugin-sdk-runtime-api-guardrails.test.ts src/gateway/server/ws-connection/message-handler.post-connect-health.test.ts src/version.test.tsnode scripts/build-all.mjs ciArtifactsblacksmith-testbox, idtbx_01krxm3z9vkbckwkyqv50ahapa, Actions https://github.com/openclaw/openclaw/actions/runs/26036295762, commandpnpm check:changed, exit 0AUTOREVIEW_OPENCLAW_MAINTAINER_VALIDATION=1 codex review --base origin/main