From 31d0c8a4f47ead36c9a63ac4d3bf27b55c05095a Mon Sep 17 00:00:00 2001 From: Erik Thorelli Date: Mon, 5 Oct 2026 19:29:26 -0700 Subject: [PATCH] chore(lint): require a reason on every lint and type-checker suppression (#16294) --- .../src/project/ProjectSetupScriptRunner.ts | 4 +- .../components/files/BrowserDocumentFrame.tsx | 2 +- oxlint-plugin-t3code/index.ts | 2 + .../rules/require-suppression-reason.test.ts | 117 ++++++++++++++++++ .../rules/require-suppression-reason.ts | 70 +++++++++++ packages/shared/src/qrCode.ts | 2 +- vite.config.ts | 1 + 7 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 oxlint-plugin-t3code/rules/require-suppression-reason.test.ts create mode 100644 oxlint-plugin-t3code/rules/require-suppression-reason.ts diff --git a/apps/server/src/project/ProjectSetupScriptRunner.ts b/apps/server/src/project/ProjectSetupScriptRunner.ts index f97c0f4df9c0a1fc346aa6e86cd3e82462bf324a..956733ba8506afd5e0cb962a91bed1a9ddcf7364 100644 --- a/apps/server/src/project/ProjectSetupScriptRunner.ts +++ b/apps/server/src/project/ProjectSetupScriptRunner.ts @@ -144,11 +144,11 @@ function stripTerminalControl(text: string): string { return ( text .replace( - // eslint-disable-next-line no-control-regex + // eslint-disable-next-line no-control-regex -- ANSI escape sequences start with ESC. /\x1b\[[0-9;?]*[ -/]*[@-~]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\x1b[()][A-Za-z0-9]|\x1b[=>]/g, "", ) - // eslint-disable-next-line no-control-regex + // eslint-disable-next-line no-control-regex -- removing control characters is the point. .replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g, "") ); } diff --git a/apps/web/src/components/files/BrowserDocumentFrame.tsx b/apps/web/src/components/files/BrowserDocumentFrame.tsx index 1665fccd29d436ea7b4e6c9b3e276fc2d25b2886..827a81f2c6ed3e60ef104392eab2264ebe210151 100644 --- a/apps/web/src/components/files/BrowserDocumentFrame.tsx +++ b/apps/web/src/components/files/BrowserDocumentFrame.tsx @@ -35,7 +35,7 @@ export function BrowserDocumentFrame(props: { }) { const className = "min-h-0 flex-1 border-0 bg-white"; return props.pdf ? ( - // oxlint-disable-next-line react/iframe-missing-sandbox + // oxlint-disable-next-line react/iframe-missing-sandbox -- the built-in PDF viewer needs an unsandboxed frame.