chore(lint): enforce eslint/no-empty-pattern#25101

merged1
main
lint-rules/eslint-no-empty-pattern
opened5d agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 4d ago

Promote eslint/no-empty-pattern to an error. Remove empty destructuring from callbacks and loops that do not use their input.

This PR changes only this rule and its existing call sites. Each changed rule has its own PR.

Stack validation: rebased onto b76a110. The earlier 234-file test run passed, and the cancellation regression test passes after its local exception. Rebased format, lint, Knip, and all 34 affected-package typecheck tasks pass. The final local test rerun and fresh CI are pending.

Model: GPT-6.1 Sol. Harness: Codex.

Checks

25 successful · 11 skipped
All checks passed
35dae5c
Synced from GitHub

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire5.0 KiB5.0 KiB+7 B (+0.1%)6.8 KiB✅
CodexThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
CodexLive turn WebSocket wire1.2 KiB1.2 KiB+7 B (+0.6%)2.0 KiB✅
CodexLive turn WebSocket decoded20.9 KiB20.9 KiB0 B (0.0%)29.3 KiB✅
CodexLive turn messages220 (0.0%)8✅
ClaudeTotal thread wire5.0 KiB5.0 KiB+24 B (+0.5%)6.8 KiB✅
ClaudeThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
ClaudeLive turn WebSocket wire1.2 KiB1.2 KiB+24 B (+2.0%)2.0 KiB✅
ClaudeLive turn WebSocket decoded21.2 KiB21.2 KiB+41 B (+0.2%)29.3 KiB✅
ClaudeLive turn messages12+1 (+100.0%)8✅

Baseline: 3de45c6 · PR result: 35dae5c · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

Added 1 commit

  • chore(lint): enforce eslint/no-empty-pattern35dae5c
apps/desktop/src/wsl/DesktopWslEnvironment.tsline 1178Outdated · 43d8958Open thread
……@@ -1151,31 +1175,43 @@ export const layer = Layer.effect(
11531177 probeDistros,
1154- preWarm: (distro) =>
1155- provideSpawner(preWarmImpl(distro)).pipe(Effect.withSpan("desktop.wsl.preWarm")),
1178+ preWarm: Effect.fn("DesktopWslEnvironment.preWarm")(function (distro) {
MmacroscopeappBoton line 11785d ago

This named Effect.fn adds a second span around the existing desktop.wsl.preWarm span; the other newly named wrappers below likewise duplicate their existing explicit spans. Could these wrappers be unnamed Effect.fn(function ...) so the established span names and trace structure remain unchanged?

suggestion
1 preWarm: Effect.fn(function (distro) {

Posted via Macroscope — Effect Service Conventions

Synced from GitHub

Approvability

Verdict: Approved at 35dae5c

Macroscope's review found this PR approvable — This PR only tightens lint enforcement and removes empty no-op loops from test files; it does not change production behavior or product defaults. The supplied review comment concerns an unchanged file and does not add risk specific to this change.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Review in Change Stack →

Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.