From 928ab8003460b4c2ed41a307951942b088e20200 Mon Sep 17 00:00:00 2001 From: tupe12334 Date: Thu, 18 Jun 2026 11:56:33 +0300 Subject: [PATCH] chore(lint): enable eqeqeq rule Require strict equality (===/!==) across the codebase. Loose equality performs implicit type coercion, which hides type bugs behind surprising truthiness rules. The codebase currently has zero violations, so this is a preventive guardrail with no code changes needed. Co-Authored-By: Claude Opus 4.8 (1M context) --- eslint.config.mjs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/eslint.config.mjs b/eslint.config.mjs index 71732a6..dd30487 100644 --- a/eslint.config.mjs +++ b/eslint.config.mjs @@ -1,5 +1,15 @@ import config from "eslint-config-agent"; +// Require strict equality (`===`/`!==`) everywhere. Loose `==`/`!=` perform +// implicit type coercion (e.g. `0 == ""`, `null == undefined`), which hides +// type bugs behind surprising truthiness rules. Strict equality keeps comparisons +// predictable and type-safe. +const strictEqualityRule = { + rules: { + eqeqeq: ["error", "always"], + }, +}; + // URL strings are centralized in these files; all other src files must reference these constants. const urlConstantsOverride = { files: ["src/lib/github-url.ts", "src/lib/runner-url.ts", "src/lib/analytics-script-url.ts", "src/lib/jira-webhook-url.ts"], @@ -8,4 +18,4 @@ const urlConstantsOverride = { }, }; -export default [...config, urlConstantsOverride]; +export default [...config, strictEqualityRule, urlConstantsOverride];