SlopStopper automatically verifies security, functionality, reliability, observability, and accessibility of your app on every push.

Static checks read your code, your live URL is crawled, an AI agent tests your site, and PRs are automatically opened with fixes.

a real PR SlopStopper opened

Open

SlopStopper: apply 3 auto-fixes and 6 AI fixes

#8
stopslop-scannerBotcommented 1 month ago

Opened automatically by SlopStopper after a scan.

Addresses:

  • reliability.missing-error-boundary
  • reliability.missing-ci-pipeline
  • observability.no-error-monitoring
  • security.dependency-cves (next@14.2.5)
  • security.dependency-cves (postcss@8.4.31)
  • security.missing-rate-limit
  • reliability.external-call-no-timeout
  • security.missing-csrf-protection
  • security.dependency-cves (@supabase/auth-js@2.65.0)

Files changed: app/error.tsx, sentry.client.config.ts, sentry.server.config.ts, sentry.edge.config.ts, instrumentation.ts, package.json, next.config.mjs, .github/workflows/ci.yml, app/api/tasks/route.ts, app/page.tsx, package-lock.json


AI-generated fixes (6) — review carefully, these were written by an LLM, not a template:

  • package.json Upgrade next to a patched version.
  • package.json Upgrade postcss to a patched version.
  • app/api/tasks/route.ts Add rate limiting to this route.
  • app/page.tsx Add a timeout to this call.
  • app/api/tasks/route.ts Add CSRF protection to this route, or confirm SameSite cookie settings already cover it.
  • package.json Upgrade @supabase/auth-js to a patched version.

Full scan results — 53% readiness, 14 findings

✅ fixed in this PR · ⬜ still outstanding

Security

  • next@14.2.5 has known vulnerabilities
  • lodash@4.17.15 has known vulnerabilitiesneeds a decision
  • postcss@8.4.31 has known vulnerabilities
  • API route with no visible rate limiting
  • Session-cookie-authenticated route with no visible CSRF protection
  • @supabase/auth-js@2.65.0 has known vulnerabilities
  • Supabase client used, no local RLS policy files foundneeds a decision

Reliability

  • No CI pipeline detected
  • No app/error.tsx found
  • External call with no visible timeout
  • Possible N+1 database queryguided fix

Observability

  • No error-monitoring integration detected
  • No uptime monitoring configuredguided fix

Functional

  • No automated tests foundguided fix

📊 View the full report

stopslop-scannerBotcommented 6 hours agoAuthor

AI-fix question (1 of 2) — reliability.n-plus-one-query in lib/dashboard.ts

The real fix requires a batch/IN query (e.g. db.findMany({ where: { id: { in: projectIds } } })), but lib/db.ts's placeholder client only exposes findUnique, create, and listProjectIds — there is no findMany or equivalent batch method to call. I can't safely change lib/dashboard.ts alone to use a batched call without that method existing (it would break the build), and this task only gives me lib/dashboard.ts to edit. Could you confirm whether I should add a findMany-style batch method to lib/db.ts (and what its expected signature/behavior should be), so dashboard.ts can call it instead of looping over findUnique?

Reply starting with 1: and I'll retry the fix — e.g. 1: it's declared in apps/api/package.json. This PR has more than one open question; you can answer several in one comment by starting each answer on its own N: line.

repo-ownercommented 2 hours agoOwner

1: Yes, please add it. Add a findMany(ids: string[]): Promise<Project[]> method to lib/db.ts that returns every Project whose id is in the given array (same shape as findUnique's return value, just as an array) — then dashboard.ts can call db.findMany(projectIds) once instead of looping over findUnique.

stopslop-scannerBotcommented 2 hours agoAuthor

Thanks — pushed a fix based on that. 👍

Free

$0

  • ·Unlimited scans
  • ·Deterministic auto-fixes
  • ·Automatic scans on every push / pull request
Connect to GitHub

Pro

$29/mo

  • ·Everything in Free
  • ·AI-generated fixes / PRs on every scan
  • ·60 AI fixes / month
  • ·15 agent-test runs / month

Team

$79/mo

  • ·Everything in Pro
  • ·200 AI fixes / month
  • ·50 agent-test runs / month

Test a project

A one-time check — upload code, point at a live URL, or both. Nothing gets connected.

Your code

Repo checks — dependency CVEs, missing error handling, exposed secrets, and more.

Code checks currently support:JavaScript / TypeScript (npm)Python (pip)Java (Maven)Java / Kotlin (Gradle).NET (NuGet)Rust (Cargo)

Upload your project folder - We'll skip node_modules, .git, build output, etc. and zip the rest for you.

Have a coverage report? — only needed if it's not already in your code
coverage-summary.json, coverage-final.json, coverage.json, or jacoco.xml

Give us any combination — a URL alone, code alone, or both.