Skip to content

Docs: README refresh + WHY comments from audit cleanup

jedmund requested to merge jedmund/geneva-v4 into main

Created by: jedmund

Summary

Three small doc-only items surfaced by the earlier audit pass. No behavior change.

  • README — the status checklist was stuck at "sign-in works, everything else is TBD." Updated to reflect what's actually shipped (feeds, detail, bookmarks with tag index, search, muting, iPad ergonomics), added the explicit "personal use only / not App Store" scope, and called out the project-level quirk that Nuke is linked directly via project.pbxproj rather than SPM so a contributor doesn't chase phantom package setup.
  • TTLDataCache @unchecked Sendable — the conformance is sound (timestamps is serialized by NSLock, every read and write takes the lock), but it's easy to mis-read. Added a comment above the declaration so a future reader doesn't unsafe-remove it.
  • IllustFeedViewModel.prefetchDistance — existing docstring was WHAT ("higher = more aggressive"). Added the WHY for the default of 6: ~600pt lookahead at typical cell heights, tuned so normal scroll momentum lands a page without paginating eagerly when the user is idling near the bottom.

Audit items that I'd originally flagged for this bundle but turned out to be non-issues / out-of-scope:

  • AuthSession.cancelLogin() race — the existing code (line 131) already switches on state and does nothing when it's .authenticating, so the in-flight exchange can't be overwritten. Audit report was mistaken.
  • .context/notes.md / .context/todos.md.context/ is globally gitignored scratch space, so no PR action needed.

Test plan

  • xcodebuild succeeds for iPad Pro 13-inch (M5) iOS Simulator
  • README.md renders correctly on GitHub
  • Skimming the status list, nothing feels wrong or missing

🤖 Generated with Claude Code

Merge request reports

Loading