AntFleet

Disagreement · bdb225d0-anthropic-0

RSS feed crashes when a same-repo receipt has null closedAt is filtered, but cross-repo receipts with null mergedAt are not filtered before sort

mismatch
repo e24ef98c·PR #10·reviewed 1 week ago

Primary finding

RSS feed crashes when a same-repo receipt has null closedAt is filtered, but cross-repo receipts with null mergedAt are not filtered before sort

mediumbugmedium
  • apps/web/app/receipts.rss/route.ts:40-56
  • apps/web/lib/receipts.ts:100-130
mapMergedRowsToReceipts filters out null mergedAt, and the type CrossRepoReceiptRow declares mergedAt as a non-null Date, so the rss route's sort `(a, b) => b.pubDate.getTime() - a.pubDate.getTime()` is safe at the type level. This is not a real bug — withdraw.

Recommendation

No action needed.

Counterpart finding

Use of Array.prototype.toSorted requires Node 20+ — may crash on Node 18 runtimes

mediumbuild-releasemedium
  • apps/web/app/receipts.rss/route.ts:51-53
  • apps/web/scripts/backfill-benchmark-flag.ts:189-191
Array.prototype.toSorted is an ES2023 feature available in Node 20+. If this code runs in environments pinned to Node 18 (common in older Next.js/Vercel setups or developer machines), the call will throw TypeError: items.toSorted is not a function at runtime, breaking the RSS route and the admin script.

Recommendation

Either ensure the deployment and tooling are locked to Node 20+ (via engines field, CI matrix, and hosting runtime), or replace toSorted with a backward-compatible pattern: const items = [...sameRepoItems, ...crossRepoItems].sort((a,b)=>...). For the script: Array.from(...).sort(...).

Why this didn't post

This finding didn't meet AntFleet's unanimous agreement threshold. Both frontier models review every PR independently; only findings they both flag with the same severity and category are posted to the PR. This one fell through.

read the methodology →