chore(lint): disable eslint/no-control-regex#25049

merged1
lint-rules/typescript-no-this-alias
lint-rules/eslint-no-control-regex
opened5d agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 4d ago

Matching control characters is required for terminal escape stripping. This rule is explicitly off, so these allowed patterns no longer emit advisory diagnostics.

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

23 successful · 14 skipped
All checks passed
86ee140
Synced from GitHub

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire—5.0 KiB—6.8 KiB✅
CodexThread snapshot wire—3.8 KiB—4.9 KiB✅
CodexLive turn WebSocket wire—1.2 KiB—2.0 KiB✅
CodexLive turn WebSocket decoded—20.9 KiB—29.3 KiB✅
CodexLive turn messages—2—8✅
ClaudeTotal thread wire—5.0 KiB—6.8 KiB✅
ClaudeThread snapshot wire—3.8 KiB—4.9 KiB✅
ClaudeLive turn WebSocket wire—1.2 KiB—2.0 KiB✅
ClaudeLive turn WebSocket decoded—21.2 KiB—29.3 KiB✅
ClaudeLive turn messages—2—8✅

Baseline: unavailable · PR result: 86ee140 · 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.

Synced from GitHub

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — The PR removes local suppressions and adds a repository-wide configuration disabling eslint/no-control-regex; the executable code remains unchanged. Because this broadens a static-analysis suppression at configuration level, the change warrants human review.

Notes:

  • Diff unchanged. Approvability was decided on eligibility alone.

No code changes detected at 86ee140. Prior analysis still applies.

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

Added 1 commit

  • chore(lint): disable eslint/no-control-regex86ee140
Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review.

External image Recent review info
External image Run configuration
External image Commits

Reviewing files that changed from the base of the PR and between 18daf8de7caf4286447e943b4f65bf7b9edf90f0 and 86ee1402628254cec1c94fecf7424721b82c9d5b.

External image Files selected for processing: 8
  • apps/mobile/src/features/terminal/terminalInput.ts
  • apps/server/src/preview/ServerBrowserPage.ts
  • apps/server/src/process/externalLauncher.ts
  • apps/server/src/project/ProjectSetupScriptRunner.ts
  • apps/server/src/terminal/Manager.ts
  • packages/client-runtime/src/work-log/commandLabel.ts
  • packages/shared/src/promptLinks.ts
  • vite.config.ts
External image Files with no reviewable changes: 5
  • apps/server/src/process/externalLauncher.ts
  • apps/server/src/preview/ServerBrowserPage.ts
  • packages/client-runtime/src/work-log/commandLabel.ts
  • apps/server/src/terminal/Manager.ts
  • apps/mobile/src/features/terminal/terminalInput.ts

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 1 remain after this review.

Walkthrough

The Vite lint configuration disables eslint/no-control-regex. Local suppressions for the rule are removed or narrowed. The terminal-control filtering logic remains unchanged.

Changes: Control-regex lint configuration

Layer / File(s)Summary
Lint policy and local suppressions
vite.config.ts, apps/mobile/src/features/terminal/terminalInput.ts, apps/server/src/preview/ServerBrowserPage.ts, apps/server/src/process/externalLauncher.ts, apps/server/src/project/ProjectSetupScriptRunner.ts, apps/server/src/terminal/Manager.ts, packages/client-runtime/src/work-log/commandLabel.ts, packages/shared/src/promptLinks.ts
The Vite configuration disables eslint/no-control-regex. Local suppressions are removed or narrowed. stripTerminalControl retains its replacement filters and is reformatted.

Priority: External image Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Other

Possibly related PRs

  • pingdotgg/t3code#23819: Updates terminal-control-string parsing in sanitizeTerminalHistoryChunk, which is also referenced by the lint-suppression changes.

Suggested reviewers: t3dotgg, macroscopeapp

Merge Risk: External image Minimal · up to 86ee1

No actionable merge-blocking risk was identified.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check nameStatusExplanationResolution
Description checkWarningThe description states the problem and the scope. It explains that matching control characters is needed for terminal escape stripping, and that the rule is now off so these patterns do not raise advi…Reorganize the description under the template headings: Problem, Change, Scope and approval, and Verification. Under Scope and approval, link the triaged issue or the discussion with explicit maintainer approval, or explain why this small c…
Passed Passed checks: 3 passed
Check nameStatusExplanation
Title checkPassedThe title "chore(lint): disable eslint/no-control-regex" names the main change: the no-control-regex rule is turned off. The raw summary confirms that vite.config.ts disables the rule and that the sup…
Linked Issues checkPassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes checkPassedCheck skipped because no linked issues were found for this pull request.
Full details: Title check

Explanation

The title "chore(lint): disable eslint/no-control-regex" names the main change: the no-control-regex rule is turned off. The raw summary confirms that vite.config.ts disables the rule and that the suppression comments are removed from the files that used it. The title is specific, follows conventional commit form, and fits the changeset. It does not describe the reason for the change, which the description gives.

Full details: Description check

Explanation

The description states the problem and the scope. It explains that matching control characters is needed for terminal escape stripping, and that the rule is now off so these patterns do not raise advisory diagnostics. It says the PR changes only this rule and its call sites. It gives verification results: an earlier 234-file test run, a cancellation regression test, and format, lint, Knip, and typecheck passes after rebase. It reports that the final test rerun and CI are pending. The template asks for a Problem, Change, Scope and approval, and Verification section. The description has none of these headings. It has no link to a triaged issue or maintainer approval, and it does not cover the Scope and approval requirement for a lint-config change. The description also does not give a conventional commit title in plain language, which the template asks for.

Resolution

Reorganize the description under the template headings: Problem, Change, Scope and approval, and Verification. Under Scope and approval, link the triaged issue or the discussion with explicit maintainer approval, or explain why this small config change qualifies without one. Under Verification, state the focused checks run for this change and their observed results. State what was not checked, such as the pending final test rerun and CI. Add a clear reason for the rule change to the Problem section, such as the specific terminal escape stripping patterns that trigger the diagnostics.

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.