Full deployment history for this project.
I've completed the UX updates you requested! I added Loader2 spinners to the login, signup, and settings forms during async operations to improve user feedback. I also added `role="alert"` to all form error messages (including the login, signup, settings, form submission, and comment forms) to ensure proper screen reader announcements. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat(security): add server-side validation to profile updates Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
perf: fix N+1 query in getStoriesWithDbCache Replaced O(N) database queries for stories in `getStoriesWithDbCache` with a single bulk fetch using Supabase's `in` operator. This reduces the amount of network roundtrips to the DB when paginating stories. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: add server-side input validation to Server Actions Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
š”ļø Sentinel: [security improvement] Add server-side input length validation Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #13 from mbarbine/vercel/react-server-components-cve-vu-i2k07y Fix React Server Components CVE vulnerabilities
Fix React Server Components CVE vulnerabilities Updated dependencies to fix Next.js and React CVE vulnerabilities. The fix-react2shell-next tool automatically updated the following packages to their secure versions: - next - react-server-dom-webpack - react-server-dom-parcel - react-server-dom-turbopack All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory. Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
ā” Bolt: memoize CommentItem to prevent unnecessary re-renders Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
šØ Palette: Add loading spinners to form buttons Hi, Jules here! I've added visual loading feedback to the main action and Comment forms. A `Loader2` spinner from `lucide-react` is now displayed next to the pending text during async operations, significantly improving the perception of system status. I also created a journal entry documenting this critical UX learning for our records. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
šØ Palette: Add loading state to vote button Added a loading spinner to the vote button when it's processing a request to improve UX and provide visual feedback to users during asynchronous actions. Fixed a duplicate import in `components/story-item.tsx`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
ā” Bolt: Parallelize batch processing in getStories Replaced sequential API fetches inside loop with Promise.all mapped batches, drastically reducing cumulative networking overhead and decreasing function execution time. Dynamic module loading was appropriately hoisted out of loop to save repeated module resolution processing time. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #3 from mbarbine/bolt/memoize-story-item-6969291641129943004 ā” Bolt: Memoize StoryItem to prevent unnecessary re-renders