Fix /my-library production errors and show public playlists#822
Fix /my-library production errors and show public playlists#822marcodejongh wants to merge 3 commits intomainfrom
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Claude ReviewReady to merge - Minor issue noted below, but nothing blocking. Issues
Notes
|
Delete dead Aurora proxy routes (blocked by App Attest), old sync cron, and shared-sync. Switch frontend callers for profile, credentials, controllers, and favorites to use existing GraphQL resolvers. Create new backend GraphQL resolvers for beta links, climb stats, hold classifications, user board mappings, unsynced counts, setter stats, and hold heatmap. Remove ~30 Next.js API route files and orphaned utilities, reducing the web package by ~3600 lines. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use useRef for wsAuthToken in use-save-tick, use-logbook, and use-save-climb hooks so async mutation/query callbacks always access the freshest token value instead of a potentially stale closure capture. Add 20 tests covering LogAscentForm (validation, submission, auth gating, error handling) and TickAction (auth states, badge counts, angle filtering, view modes). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6873faf to
99ea972
Compare
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. Issues
Tests AddedThe new |
…ests Fix setter search to escape % and _ wildcards so user input is treated literally. Add 26 integration tests for data-query GraphQL resolvers covering input validation, auth requirements, and edge cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude Review✅ Ready to merge - Minor issues noted below, but nothing blocking. Issues
Test CoverageGood test coverage added:
DocumentationNo updates needed - changes don't significantly alter documented systems (WebSocket party session architecture remains unchanged). |
Summary
hasMountedstate guard inlibrary-page-content.tsxso SSR and initial client render produce identical HTML (loading state)useClimbActionsDatafromGET_USER_PLAYLISTS(requiresboardType/layoutId) toGET_ALL_USER_PLAYLISTS(no required params), added guards forboardName-dependent queriesuseBoardProvideroutsideBoardProvider: AddeduseOptionalBoardProvider()hook that returnsnullinstead of throwing; updatedqueue-list.tsx,queue-list-item.tsx, anduse-queue-data-fetching.tsxuseRefinuse-save-tick,use-logbook, anduse-save-climbhooks so async callbacks always access the freshest auth token%or_is now escaped so it's treated literally in the setter name searchLogAscentFormandTickAction; 26 new backend integration tests for data-query GraphQL resolvers (input validation, auth requirements, edge cases)cronsarray is correctTest plan
/my-librarywhen NOT logged in — see compact sign-in banner + Discover section with public playlists/my-library/playlist/[uuid]when NOT logged in — public playlist detail page loads/my-librarywhen logged in — see personal playlists + Jump Back In + DiscoveruseBoardProvidererror in console%or_in name — verify literal search worksnpx vitest runinpackages/web/— tick-action and logascent-form tests passnpx vitest runinpackages/backend/— data-queries resolver tests pass (26 tests)🤖 Generated with Claude Code