You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Repo-memory had gone stale for 25 days (last update 2026-07-08), even though the daily refinement workflow kept running throughout that window. Since this sandbox's git clone is shallow (only 1 commit visible), I reconstructed the missing history from the GitHub Issues API instead of git log, then resumed normal operation: reviewed never-before-reviewed rules and filed 2 new grounded findings.
Key metrics
Custom rules in eslint-factory: 37 (up from 12 tracked in memory — ~25 rules shipped during the gap)
Rules still awaiting first review: require-rmsync-try-catch, require-execfilesync-try-catch
New findings filed today
no-caught-error-interpolation misses EventEmitter-style handlers — the rule recognizes catch clauses and inline .catch/.then rejection params, but not an inline callback passed to .on('error', err => ...). Grounded in a live occurrence: actions/setup/js/mcp_server_core.cjs:1052 (process.stdin.on("error", err => server.debug(\stdin error: ${err}`))`).
Coverage gap between no-setfailed-then-exit-zero and no-core-error-then-process-exitcode — core.setFailed(msg); process.exitCode = 0; is invisible to both sibling rules: the first only matches process.exit(0)/process.exit() calls (not an exitCode assignment), and the second requires core.error (not setFailed) as its precondition and treats a setFailed call as a scan-stopping marker. No live occurrence found, but precedented by a prior fix (eslint-factory: require-fs-sync-try-catch treats a catch-less try/finally as protective (soundness gap in isInsideTryBlock) #44219) for an equally rare but real soundness gap.
Rules investigated with no gap found (details)
require-fetch-timeout (newest rule): signal/AbortSignal detection logic is sound; 3 live call sites are missing timeouts but those are code-fix backlog, not rule bugs.
require-fetch-try-catch: shares already-hardened try/catch utilities; no gap found.
require-fs-io-try-catch: shares already-hardened fs-sync method resolver; method-scope exclusions are by design.
prefer-get-error-message-over-string: rule logic traced as correct, but several live call sites that should already trigger it appear un-flagged in the wild. This can't be confirmed without a live lint run (npm is firewalled in this sandbox) — worth a follow-up check with real tooling to rule out an actual bug.
Next actions
Review require-rmsync-try-catch and require-execfilesync-try-catch (never reviewed) in the next run.
Consider verifying prefer-get-error-message-over-string against a real lint execution outside this sandbox.
README rule documentation coverage has likely fallen further behind (was 2/12 documented at the last full review; now 37 rules exist) — worth a doc pass, not necessarily an issue.
Repo-memory has been refreshed and pushed this run; going forward it should stay in sync run-to-run.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Overview
Repo-memory had gone stale for 25 days (last update 2026-07-08), even though the daily refinement workflow kept running throughout that window. Since this sandbox's git clone is shallow (only 1 commit visible), I reconstructed the missing history from the GitHub Issues API instead of git log, then resumed normal operation: reviewed never-before-reviewed rules and filed 2 new grounded findings.
Key metrics
eslint-factory: 37 (up from 12 tracked in memory — ~25 rules shipped during the gap)no-caught-error-interpolation,no-setfailed-then-exit-zero,require-fetch-timeout,require-fetch-try-catch,require-fs-io-try-catch,prefer-get-error-message-over-string)require-escaped-regexp-interpolation, filed 2026-07-31 — not re-filed)require-rmsync-try-catch,require-execfilesync-try-catchNew findings filed today
no-caught-error-interpolationmisses EventEmitter-style handlers — the rule recognizescatchclauses and inline.catch/.thenrejection params, but not an inline callback passed to.on('error', err => ...). Grounded in a live occurrence:actions/setup/js/mcp_server_core.cjs:1052(process.stdin.on("error", err => server.debug(\stdin error: ${err}`))`).no-setfailed-then-exit-zeroandno-core-error-then-process-exitcode—core.setFailed(msg); process.exitCode = 0;is invisible to both sibling rules: the first only matchesprocess.exit(0)/process.exit()calls (not anexitCodeassignment), and the second requirescore.error(notsetFailed) as its precondition and treats asetFailedcall as a scan-stopping marker. No live occurrence found, but precedented by a prior fix (eslint-factory: require-fs-sync-try-catch treats a catch-less try/finally as protective (soundness gap in isInsideTryBlock) #44219) for an equally rare but real soundness gap.Rules investigated with no gap found (details)
require-fetch-timeout(newest rule): signal/AbortSignal detection logic is sound; 3 live call sites are missing timeouts but those are code-fix backlog, not rule bugs.require-fetch-try-catch: shares already-hardened try/catch utilities; no gap found.require-fs-io-try-catch: shares already-hardened fs-sync method resolver; method-scope exclusions are by design.prefer-get-error-message-over-string: rule logic traced as correct, but several live call sites that should already trigger it appear un-flagged in the wild. This can't be confirmed without a live lint run (npm is firewalled in this sandbox) — worth a follow-up check with real tooling to rule out an actual bug.Next actions
require-rmsync-try-catchandrequire-execfilesync-try-catch(never reviewed) in the next run.prefer-get-error-message-over-stringagainst a real lint execution outside this sandbox.All reactions