chore(deps): remove unused effect dependency#513
Conversation
`effect` (Effect-TS) was in dependencies but imported nowhere in src/ (no `from "effect"`). Dead weight + supply-chain surface; drop it. Closes #500
There was a problem hiding this comment.
AI Automated Review
Full PR review.
Analysis engine: MiniMax-M2.7@https://litellm.jory.dev/v1 (anthropic) — escalated (fast_low_confidence)
PR Review: PR 513 — Remove unused effect dependency
Summary
This PR removes the unused effect package (^3.20.0) from direct dependencies. The package was declared but never imported anywhere in src/, as confirmed by multiple grep patterns (from 'effect', require('effect'), import.*effect) returning zero matches in source files.
Change Analysis
What changed:
package.json: Removed"effect": "^3.20.0"from dependenciespackage-lock.json: Removed theeffectv3.21.4 entry and its nested sub-dependencies (@standard-schema/spec,fast-check)
Transitive dependency preserved:
- The PR notes and lock diff confirm
effectremains available transitively viaprisma→@prisma/config@7.8.0(visible innode_modules/@prisma/config/node_modules/effect) - This is confirmed by the lock file showing
@prisma/config@7.8.0as the host platform version
Required Checks — Explicitly Addressed
✅ check for breaking API changes in updated dependencies
Status: Does not apply.
This is a dependency removal, not a version upgrade. There is no new effect version to compare APIs against. The tool harness confirmed zero imports of effect from src/, meaning no code paths depend on this package's API. Removing an unused dependency cannot introduce breaking API changes.
✅ run full test suite after upgrade
Status: Verified via CI evidence.
CI reached a terminal success state before this review began. The authoritative evidence shows:
- Tests: completed → success
- Build: completed → success
- Typecheck: completed → success
- Lint: completed → success
- Docker Build: completed → success
The full test suite passed. No additional verification needed.
Standards Compliance
- No commit of secrets: Clean — only
package.jsonandpackage-lock.jsonmodified - Error handling, API routes, validation: Not applicable — no code logic changes
- Prisma schema: Not applicable — no database changes
- Docker: Not applicable — base image unchanged
Linked Issue Fit
Issue PR 500 required removing the unused effect dependency (or adopting it deliberately). This PR:
- Solves the correct problem (removes dead weight)
- Meets the acceptance criteria exactly
- References
#500in the PR body and closes it
Evidence Provider Findings
No evidence providers were configured for this PR. Not applicable.
Tool Harness Findings
The tool harness ran four grep rounds confirming no effect imports exist in src/:
from 'effect': 0 matchesrequire('effect'): 0 matchesimport.*effect: 0 matcheseffect(broad): Matches only ineslint.config.mjs(unrelated rule name),package-lock.json(now-removed entry), and code usingeffective*variable prefixes (semantically distinct)
Unknowns / Needs Verification
None. The change is minimal, well-documented, and CI-verified.
Summary
effectfromdependencies— it was declared directly but imported nowhere insrc/(from "effect"matches nothing).Notes
effectremains available transitively viaprisma→@prisma/config@7.8.0(nested undernode_modules/@prisma/config/), so Prisma is unaffected — this only drops the unused direct declaration.npm ls effectconfirms the sole remaining path is through Prisma.effect-only.Closes #500