Skip to content

chore(deps): drop the unused feather package and its moment@1.3.0 - #311

Merged
saiemgilani merged 1 commit into
mainfrom
chore/deps-feather-moment
Oct 8, 2026
Merged

saiemgilani merged 1 commit into
mainfrom
chore/deps-feather-moment

Conversation

@saiemgilani

@saiemgilani saiemgilani commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Summary

Follow-up to #295. Removes the feather npm dependency. Nothing imports it: the feather icons the site draws come from the vendored astro/public/assets/js/feather.min.js. #295 bumped it from 0.0.5 to 0.0.6, and 0.0.6 depends on moment@1.3.0, which carries CVE-2017-18214 (ReDoS) and CVE-2022-24785 (locale path traversal), the two findings Sourcery raised on #295. Dropping the package takes feather, moment and utest out of package-lock.json. The lockfile change only deletes those three entries.

CodeRabbit's other #295 findings:

  • "Restore the Git source override": already true at Update astro depends to see if #205 is fixed #295's merged head. [tool.uv.sources] still pins sportsdataverse-py main, and uv.lock carries the git SHA the Dockerfile extracts. The review ran against a commit that was force-pushed away.
  • "Pin the esbuild script approval": allowScripts is read by npm 11. CI and the droplet run npm 10.9, which ignores the field, so it is left as is for now.

Tests

  • npx vitest run (full suite) passes locally.
  • npm run build (Cloudflare adapter, workerd prerender) passes locally.
  • python/ is untouched; CI's pytest covers it.

Evidence

see evidence comment

Evidence routes: /game/401856682
Walkthrough steps:

Walkthrough

see evidence comment

Checklist

  • vitest + pytest pass locally (vitest yes; pytest left to CI, python/ unchanged)
  • Evidence routes: names the pages this change affects most
  • The pr-evidence comment is green, or every regression it flags is explained here
  • The evidence comment links a walkthrough clip for every affected route/flow (Walkthrough steps: names any new interaction), or one is attached above
  • Preview-gated work stays behind its flag in astro/src/utils/features.ts

Summary by Sourcery

Enhancements:

  • Remove the unused Feather package dependency and its transitive vulnerable dependencies from the project lockfile.

Summary by CodeRabbit

  • Chores
    • Removed an internal package; no user-facing changes.

Nothing imports the feather npm package; the icons come from the vendored
public/assets/js/feather.min.js. #295 moved it to 0.0.6, whose moment@1.3.0
carries CVE-2017-18214 and CVE-2022-24785. Removing it takes feather, moment
and utest out of the lockfile.
@sourcery-ai

sourcery-ai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Sorry @saiemgilani, this account has used its review budget of 1,500,000 diff characters for the last 7 days.

You can request another review in 1 day and 6 hours by commenting @sourcery-ai review. Upgrade to get a review now.

@sourcery-ai

sourcery-ai Bot commented Oct 8, 2026

Copy link
Copy Markdown
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Removes the unused feather npm package from the Astro project and updates the lockfile to eliminate its vulnerable moment@1.3.0 and transitive utest dependencies, while preserving the vendored Feather runtime and confirming frontend tests and the production build pass.

File-Level Changes

Change Details Files
Remove the unused Feather npm dependency and its transitive vulnerable packages from dependency metadata.
  • Delete the direct feather dependency.
  • Regenerate the lockfile to remove feather, moment@1.3.0, and utest entries.
  • Retain the vendored astro/public/assets/js/feather.min.js as the source for site icons.
astro/package.json
astro/package-lock.json
Validate that the dependency cleanup does not affect the application build or frontend behavior.
  • Run the full Vitest suite successfully.
  • Run the Cloudflare adapter/workerd prerender build successfully.
  • Leave Python tests to CI because the python/ tree is unchanged.
astro/package.json
astro/package-lock.json

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 13a5fc21-5ea3-42ae-afcb-be411c4980cd
📥 Commits

Reviewing files that changed from the base of the PR and between 879a3b3 and e5120b1.

⛔ Files ignored due to path filters (1)
  • astro/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (1)
  • astro/package.json
💤 Files with no reviewable changes (1)
  • astro/package.json

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


📝 Walkthrough

Walkthrough

The Astro package manifest removes the feather dependency and its version constraint.

Changes

Astro dependency update

Layer / File(s) Summary
Remove feather dependency
astro/package.json
The manifest no longer lists feather with the ^0.0.6 version constraint.

Priority: ➖ Normal

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

Change: Other

Merge Risk: ⚪ Minimal · up to e5120

No actionable merge-blocking issue is established for this dependency removal. Complete normal build and test checks before merging.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: removing the unused feather dependency and its moment transitive dependency.
Description check ✅ Passed The description includes the required Summary, Tests, Evidence, Walkthrough, and Checklist sections. It explains the dependency removal, reports local Vitest and build results, identifies the deferred…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown

PR evidence: e5120b1

Generated by the pr-evidence workflow and updated on every push · run log. Choose pages with an Evidence routes: /a /b line in the PR description (default /game/401856682).

Preview screenshots

PR branch (merged onto base 879a3b3), rendered with preview flags on.

/game/401856682

light dark
desktop 1280×800 /game/401856682 desktop light /game/401856682 desktop dark
mobile 390×844 /game/401856682 mobile light /game/401856682 mobile dark

Thumbnails show the first screen; click one for the full page.

Walkthrough

Recorded against the PR build: a scroll-through of each evidence route, plus any Walkthrough steps: flow the PR names. Each link downloads the clip (a few hundred KB).

flow clips
game-401856682 desktop light · mobile light

Lighthouse: PR vs base

Base 879a3b3 → head 87e4923 · 3 runs per preset, median (min–max) · preview flags forced on: game-page-v2, scoreboard-compact, nfl, coaches, source-switch, player-pages, game-links, game-colours, five-factors

/game/401856682: frontend-only (saved HTML + built assets, gzip, no server wait)

base mobile PR mobile base desktop PR desktop
Performance 63 (54–64) 61 (60–61) 90 (90–91) 90 (90–92)
Accessibility 82 82 82 82
Best Practices 96 96 96 96
SEO 100 100 100 100
FCP / LCP 3.5 s / 4.1 s 3.5 s / 4.1 s 0.7 s / 0.8 s 0.7 s / 0.8 s
TBT 43 ms (31 ms–47 ms) 41 ms (39 ms–43 ms) 0 ms 0 ms
CLS 0.335 (0.321–0.410) 0.377 (0.359–0.377) 0.188 (0.175–0.188) 0.188 (0.165–0.191)
Speed Index 3.5 s 3.5 s 0.7 s 0.7 s
HTML / JS transfer 157 KB / 157 KB 157 KB / 157 KB 157 KB / 157 KB 157 KB / 157 KB
DOM elements 14,995 14,995 14,995 14,995
  • ⚪ No frontend change: base and PR serve identical HTML (ignoring Astro's random island ids) and identical built client files for this page, so any difference in the table is run-to-run noise.
Method
  • Builds: base is the PR's base commit; head is the PR merged onto it, so only this PR's changes differ. Each is a production astro build from its own worktree, with every preview feature flag forced on in both.
  • Frontend-only: each tree's server-rendered HTML plus its own dist/client, served gzip-compressed with no server wait, so the numbers measure what the branch ships. Base and PR runs alternate.
  • Runs: Lighthouse CLI with simulated throttling, mobile and desktop presets. A delta is flagged only when the gap between the base and PR run ranges clears an absolute floor and the median moved by a relative floor (lighthouse-verdicts.mjs; Performance, already a 0–100 score, needs only the 3-point gap); Performance moves 10+ points between identical builds.
  • ⚪ No frontend change: printed instead of deltas when base and PR serve identical HTML (ignoring Astro's random island ids) and identical built client files for a page.
  • Walkthrough: astro/scripts/walkthrough.mjs records the PR build (desktop + mobile, light) and the clips are published beside the screenshots, pinned to a commit.
  • Tooling: astro/scripts/lighthouse-compare.mjs, visual-check.mjs and walkthrough.mjs; see CLAUDE.md "PR evidence".

github-actions Bot added a commit that referenced this pull request Oct 8, 2026
@saiemgilani
saiemgilani merged commit 79615f1 into main Oct 8, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant