Conversation
Images are now visually organized under date-based sections: Today, Yesterday, This Week, This Month, and older month/year labels. Supports both English and Chinese locales with timezone-aware grouping. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add custom collections to organize gallery images: - Backend: collections + collection_images tables, CRUD API routes, collection filter on gallery endpoint - Frontend: useCollections hook, CollectionPicker modal, CollectionManager modal, gallery page collection filter dropdown - Integration in GalleryCard and ImageDetailModal action buttons - en/zh translations for all collection strings Improve registration error handling: - Backend returns distinct error code for duplicate email - Frontend maps backend errors to translated user-friendly messages - Add diagnostic logging to register route and registerUser service Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Changed error check from includes("Password must be") to
startsWith("Password must") to also catch "Password must contain"
errors from the backend password strength validator.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Escape user prompts in the share page HTML to prevent stored XSS attacks. Scope chat message localStorage key per user ID so different users on the same browser no longer see each other's conversation history. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- GalleryPage: collection chips as horizontally scrollable row with touch momentum, hidden scrollbar, icon-only manage button on mobile, search stacks below on small screens - CollectionPicker: bottom sheet on mobile, larger touch targets, drag handle, safe area padding - CollectionManager: bottom sheet on mobile, stacked edit buttons, larger touch targets for rename/delete icons Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Input and button now stack vertically on small screens with full-width button, and display inline on desktop. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Each component had its own useCollections instance so creating, deleting, or modifying collections in the manager/picker did not update the gallery filter chips. Now GalleryPage refreshes its collections when CollectionManager closes, and when CollectionPicker closes from either ImageDetailModal or GalleryCard. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The collection chip counters now refresh instantly when an image is toggled in the picker, not only when the picker closes. Added onChange callback to CollectionPicker that fires after each successful add, remove, or new collection creation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… page Adds global keyboard shortcuts (Ctrl+N new chat, ? help overlay), gallery shortcuts (/ focus search, R refresh), and image modal shortcuts (F favorite, D delete, C collection, E export). Includes a dedicated Keyboard Shortcuts page accessible from Settings. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The useCallback hooks were placed after the conditional early return, violating React's rules of hooks and causing a runtime error when the gallery loaded the modal component. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mark keyboard shortcuts, collections, and prompt enhancement AI as completed. Expand generation history timeline description with detailed concept explanation. Add three newly completed features to the completed features list. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.
No description provided.