chore(cleanup): triage TODOs (9 → 1) - #192
Merged
Merged
Conversation
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>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Worked through every
TODOinsrc/, sorted by what was actually actionable.Implemented (4 → 0)
Awards completed-count calculation. The
/awardspage 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:187andmodes/route.ts:137hardcodedX-RateLimit-Remaining: 999. The cloudlog index docs advertise rate-limit headers as part of the public API contract, but enforcement isn't implemented. Sending999to consumers is a lie. Now reportsRemaining == 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 abovesetSyncMessage('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 amessagesarray that got built up but never displayed. Leftover from aconsole.logremoved in chore(logging): strip debug console.log noise + enforce no-console lint rule #189. The actual user feedback (table refresh with new sync status indicators) still works.Kept (1 → 1)
src/lib/storage.ts:318—// TODO: Implement AWS S3 deletion. The AWS S3 storage backend isn't implemented at all (uploadToS3also 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 baselinenpm run typecheck— cleannpm run build— succeeds/awardsafter confirming 50 states / 100 entities — confirm "Awards Earned" reflects the correct count (1 or 0)/api/cloudlog/qsowith a valid API key — confirmX-RateLimit-Remainingheader reads the same asX-RateLimit-Limit🤖 Generated with Claude Code