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
{{ message }}
Repository navigation
User skills endpoint uncached, repeats D1 reads per request #186
GET /api/users/:login/skills is a bare defineEventHandler with no cache, so each crawler hit repeats the same D1 reads and landed as SKILLD-1K in the D1 overload burst.
Target:server/api/users/[login]/skills.get.ts
Verify with:pnpm vitest run test/unit/user-skills-cache.test.ts
Estimated to change 2 files.
The sentry-checkin routine opened this issue automatically on its 2026-09-08T20:20:00.000Z run. It is not Harlan's own report. Close it to reject the proposal, and the reason you give stops it being offered again.
Summary: Target file exists and is confirmed uncached: server/api/users/[login]/skills.get.ts is a bare defineApiHandler running the per-login D1 query on every request. The repo already has the exact fix pattern: the skill detail route (layers/regi
Next action: Implement in server/api/users/[login]/skills.get.ts: wrap the D1 query in cached({ storage: useStorage('cache'), key: user-skills:${login.toLowerCase()}, ttlSeconds: 60, staleSeconds: 300, compute, schedule: promise => runAfterResponse(event, promise) }) following the skills detail route pattern, write the failing test first at test/unit/user-skills-cache.test.ts, verify with pnpm vitest run test/unit/user-skills-cache.test.ts.
Activity
harlan-github-agent commentedon Sep 8, 2026
🤖 ISSUE TRIAGE
user-skills:${login.toLowerCase()}, ttlSeconds: 60, staleSeconds: 300, compute, schedule: promise => runAfterResponse(event, promise) }) following the skills detail route pattern, write the failing test first at test/unit/user-skills-cache.test.ts, verify with pnpm vitest run test/unit/user-skills-cache.test.ts.