Skip to content

chore(cleanup): triage TODOs (9 → 1) - #192

Merged
patrickrb merged 1 commit into
mainfrom
cleanup/todo-triage
May 11, 2026
Merged

chore(cleanup): triage TODOs (9 → 1)#192
patrickrb merged 1 commit into
mainfrom
cleanup/todo-triage

Conversation

@patrickrb

Copy link
Copy Markdown
Owner

Summary

Worked through every TODO in src/, sorted by what was actually actionable.

Implemented (4 → 0)

Awards completed-count calculation. The /awards page displays "Awards Earned" prominently, and it was always showing 0 because the API hardcoded the field. Now reflects reality:

  • src/app/api/awards/was/summary/route.ts — WAS Basic award = 1 if all 50 US states confirmed else 0. total_was_awards = 1 (we track the Basic tier only — extensible when 5-Band / Triple Play / etc. are added).
  • src/app/api/awards/dxcc/summary/route.ts — DXCC Basic = 1 if 100+ confirmed entities else 0. total_dxcc_awards = 1 (extensible to 150/200/.../350, by-band, by-mode).

Fixed an honest-output issue (2 → 0)

  • src/app/api/cloudlog/qso/route.ts:187 and modes/route.ts:137 hardcoded X-RateLimit-Remaining: 999. The cloudlog index docs advertise rate-limit headers as part of the public API contract, but enforcement isn't implemented. Sending 999 to consumers is a lie. Now reports Remaining == Limit (effectively "no enforcement, unlimited within the documented limit") with a comment pointing at the path forward.

Deleted as redundant (2 → 0)

  • src/app/admin/page.tsx:132,144// TODO: Implement bulk LoTW {upload,download} sat one line above setSyncMessage('coming soon!'). The UI message already documents the state; the TODO was clutter.

Deleted as dead code (1 → 0)

Kept (1 → 1)

  • src/lib/storage.ts:318// TODO: Implement AWS S3 deletion. The AWS S3 storage backend isn't implemented at all (uploadToS3 also fails gracefully); this TODO accurately documents the unimplemented branch. Removing it doesn't help; implementing AWS S3 is its own future PR.

Test plan

  • npm run lint — unchanged baseline
  • npm run typecheck — clean
  • npm run build — succeeds
  • Manual: view /awards after confirming 50 states / 100 entities — confirm "Awards Earned" reflects the correct count (1 or 0)
  • Manual: hit /api/cloudlog/qso with a valid API key — confirm X-RateLimit-Remaining header reads the same as X-RateLimit-Limit

🤖 Generated with Claude Code

Worked through every TODO in src/, sorted by what was actually actionable:

Implemented (4 → 0):
- src/app/api/awards/was/summary/route.ts — completed_awards now reflects
  the WAS Basic award (all 50 US states confirmed → 1 else 0). The
  /awards page already displays this prominently as "Awards Earned";
  it was always showing 0 before. total_was_awards = 1 (we track the
  Basic tier only; extensible when we add 5-Band/Triple Play/etc.).
- src/app/api/awards/dxcc/summary/route.ts — same pattern. DXCC Basic
  requires 100+ confirmed entities. total_dxcc_awards = 1 (Basic tier;
  extensible when we add 150/200/.../350, by-band, by-mode).

Fixed an honest-output issue (2 → 0):
- src/app/api/cloudlog/qso/route.ts:187 and modes/route.ts:137 hardcoded
  X-RateLimit-Remaining: 999. The cloudlog index docs advertise the
  rate-limit headers as part of the public API contract, but enforcement
  isn't implemented. Sending "999" to consumers is a lie. Now reports
  Remaining == Limit (effectively "no enforcement, unlimited within the
  documented limit") with a comment pointing at the path forward.

Deleted as redundant (2 → 0):
- src/app/admin/page.tsx:132,144 — "TODO: Implement bulk LoTW
  {upload,download}" sat one line above setSyncMessage('coming soon!').
  The UI message already documents the state; the TODO was clutter.

Deleted as dead code (1 → 0):
- src/app/search/page.tsx:624 — TODO marked a `messages` array that got
  built up but never displayed. It was a leftover from a console.log
  removed in #189. The actual user feedback (table refresh with new
  sync status indicators) still works. Removed the dead build + TODO.

Kept (1 → 1):
- src/lib/storage.ts:318 — "TODO: Implement AWS S3 deletion". The AWS
  S3 storage backend isn't implemented at all (uploadToS3 also fails
  gracefully); this TODO accurately documents the unimplemented branch.
  Removing it doesn't help; implementing AWS S3 is its own future PR.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented May 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nodelog Ready Ready Preview, Comment May 11, 2026 1:00am

Request Review

@patrickrb
patrickrb merged commit c277e33 into main May 11, 2026
7 checks passed
@patrickrb
patrickrb deleted the cleanup/todo-triage branch May 11, 2026 02:02
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