Autonomous Sweep Log - 2026-04-24
Status: Archived
Scope
Follow-up sweep after the UI/UX, i18n, and performance refactors. The goal was to make autonomous, low-risk improvements that protect perceived speed and consistency before device testing.
Research
- Reviewed the local best-practice references for performance, networking/cache behavior, and state architecture.
- Scanned app and feature code for TODO/FIXME markers, ad hoc loading/error patterns, hardcoded user-facing copy, and query hooks likely to create repeated network work.
- Prioritized issues that affect first-hop tabs, records/profile-style data views, or shared app grammar without changing data models or business rules.
Changes Made
useHeadToHeadnow batch-fetches matches and profiles:- Replaced per-session
matches.findBySessioncalls withmatches.findBySessions. - Replaced per-opponent
profiles.findByIdcalls withprofiles.findByIds. - Added TanStack Query
placeholderData: keepPreviousDataso cached head-to-head results stay visible while filters or refetches resolve.
- Replaced per-session
- Email login copy now goes through i18n:
- Removed hardcoded Korean strings from
LoginScreen. - Added Korean and English auth copy using the current friendly Korean tone and concise English tone.
- Stopped exposing raw auth error messages in login alerts; user-facing failures now use localized copy.
- Removed hardcoded Korean strings from
Deferred Findings
- Terms and privacy screens still need final legal policy content. I did not invent legal copy.
- The largest create flows still have broad inline form logic. They are candidates for future extraction, but touching them during this sweep would create more regression risk than benefit.
- Achievement checking still contains some per-session repository calls in application-layer orchestration. It is less directly tied to screen navigation latency than the fixed head-to-head path, so it should be handled in a dedicated batch-query pass.
Verification
yarn workspace @twomore/app typecheckpassed.yarn workspace @twomore/app test --runInBandinitially caught the forbidden Korean vocabulary모임in the new login subtitle. The copy was corrected to테니스 클럽의 시작, and the targeted i18n test passed.yarn checkpassed.yarn workspace @twomore/web buildpassed.yarn workspace @twomore/mobile preflightpassed using Expo's local dependency map because networking was disabled.yarn workspace @twomore/mobile expo export --platform ios --output-dir /tmp/twomore-export-iospassed.yarn workspace @twomore/mobile expo export --platform android --output-dir /tmp/twomore-export-androidpassed.- Web smoke test passed for
/records,/records/leaderboard,/records/week,/records/month,/ranking,/leaderboard,/clubs,/clubs/discover,/clubs/my,/activity,/activity/matches,/activity/pickups,/profile,/settings,/home, and/login. git diff --checkpassed.