Commit Graph

49 Commits

Author SHA1 Message Date
22016365d8 feat: add pokemon trading preferences and item tag inference
Introduce trading preference (Likes/Neutral) for Pokemon with trading skills
Infer possible hidden tags for items based on trading observations
Update import/export, wipe, and admin config to support trading data
2026-05-05 22:54:32 +08:00
5b22d788d7 feat(admin): add items CSV import to data tools
Allow bulk importing items via CSV in the admin data tools
Support static image paths for items imported from CSV
2026-05-05 17:51:38 +08:00
5a83a73108 refactor(items): merge ancient artifacts into items data model
Migrate ancient artifacts to items table using a category key.
Consolidate detail and edit views into ItemDetail and ItemEdit.
Update API, search, and data tools to reflect unified structure.
2026-05-05 10:50:07 +08:00
9312156a3c feat(items): add base price and support usage in creation defaults
Add `base_price` to items schema, API, and edit history
Display and edit base price in item details and forms
Add `clearable` prop to TagsSelect for optional single selections
Include usage in item creation session defaults
2026-05-05 08:59:36 +08:00
357dc061d6 feat(items): support drag-and-drop reordering and contextual insert
Implement drag-and-drop sorting in the items grid
Add right-click context menu to insert new items before or after
Update backend to process insertion anchors during item creation
2026-05-05 07:01:21 +08:00
a17344d216 feat(ui): add session defaults menu for item creation
Support presetting category, checkboxes, and acquisition methods.
Persist defaults in sessionStorage to streamline repetitive data entry.
2026-05-04 22:45:32 +08:00
28f4e6032c refactor: remove display ID from items and ancient artifacts
Drop display_id column from items and ancient_artifacts tables
Remove display ID inputs, labels, and sorting logic across the stack

BREAKING CHANGE: behavior is not backward compatible.
2026-05-04 21:32:00 +08:00
2220d5d595 feat(dish): add dish management and public view
Add database schema, permissions, and API endpoints for dishes
Implement frontend views and admin management for dish data
2026-05-04 21:00:23 +08:00
2ff2519647 feat(comments): add sorting and liking functionality
Support sorting by oldest, latest, most-liked, and most-replied.
Implement like/unlike actions for Life and Entity Discussion comments.
2026-05-04 17:29:09 +08:00
504849c14a feat(search): include user profiles in global search results
Add users group to global search API and frontend types
Query users by display name and link to their public profiles
Update system wordings for the new search group
2026-05-04 16:04:58 +08:00
8cb8190554 feat(users): implement user following system and following feed
Add follow/unfollow actions and social stats to user profiles
Introduce Following feed scope in Life view
Add notifications for new followers
2026-05-04 15:49:57 +08:00
016364a8b8 feat(life): allow authors to view and restore their deleted comments
Update backend to return soft-deleted comments to their authors
Add restore endpoint and frontend Undo button for deleted comments
Retain comment body and author information upon deletion
2026-05-04 14:54:00 +08:00
06e0cbb1c1 feat(search): add global search across wiki entities
Implement /api/search endpoint for cross-entity querying
Add GlobalSearch component to top navigation bar with categorized results
2026-05-04 14:20:12 +08:00
07698e063d feat(moderation): add user-facing reasons for rejected or failed content
Prompt AI models to provide short explanations for rejected content
Store reasons in database and broadcast via WebSocket
Display moderation details in UI for authors and admins
2026-05-04 11:18:54 +08:00
a25f1661b5 feat(notifications): add real-time notification system
Add database tables for notifications and WebSocket tickets
Implement REST API and WebSocket server for real-time delivery
Add NotificationBell component with dropdown and unread badge
Trigger alerts for comments, reactions, and AI moderation results
2026-05-04 10:40:14 +08:00
579d092020 feat(life): add Life Post reaction users modal and API
Add GET /api/life-posts/:id/reactions endpoint with pagination
Add LifeReactionUsersModal to view and filter reaction users
Make reaction summaries clickable in feeds, details, and profiles
2026-05-04 10:10:38 +08:00
7ff7e18b94 feat(life): add Life Post detail page and endpoint
Implement GET /api/life-posts/:id with moderation and visibility rules
Add /life/:id route and LifePostDetail view
Update feeds and user profiles to link to the new detail page
2026-05-04 09:51:31 +08:00
03f5735bd2 feat(nav): add collapsible sidebar and nested navigation groups
Refactor sidebar to support nested navigation groups for related entities.
Implement collapsible desktop sidebar with icon tooltips.
2026-05-04 08:57:31 +08:00
4238be7761 feat: add ancient artifacts and refactor item categories
Introduce Ancient Artifacts with full CRUD and image support
Migrate item categories and usages to system-defined lists
Add display_id to items and artifacts for custom sorting
2026-05-04 08:28:56 +08:00
5ccc25b248 feat: separate regular and event entities for Pokemon and Habitats
Add dedicated routes and navigation for Event Pokemon and Event Habitats
Update API endpoints to filter by isEventItem and adapt frontend views
2026-05-04 06:50:37 +08:00
f2a8b67ebf feat(admin): add data tools for export, import, and wipe
Add admin.data.export and admin.data.import permissions
Implement backend logic and API endpoints for data bundle management
Add Data Tools tab to admin interface with scope selection
Support Pokemon, Habitats, Items, Recipes, and Daily CheckList scopes
2026-05-04 00:56:37 +08:00
fa06d24826 feat(pokemon): store official data identity separate from display ID
Add data_id and data_identifier to pokemon schema
Use official data ID as internal route ID for non-event pokemon
Prevent applying fetched data with mismatched ID to existing pokemon
2026-05-04 00:06:22 +08:00
8dfd03f3d2 feat: add project updates feed and dedicated page
Proxy and sanitize Gitea repository data via /api/project-updates
Display recent commits and releases preview on the Home page
Add /project-updates route for paginated commit history
2026-05-03 23:40:34 +08:00
deb0b54e71 feat(admin): make user rate limits configurable via admin UI
Add rate_limit_settings table and corresponding admin permissions
Replace static user rate limits with dynamic in-memory counters
Add interface in admin panel to configure rate limit policies
2026-05-03 22:11:41 +08:00
b0e2464c24 feat(auth): implement Resend email quota and rate limit protection
Track Resend API usage via response headers to prevent quota exhaustion
Block auth requests with 503 when email delivery limits are reached
2026-05-03 19:42:41 +08:00
40f85ae85c feat(auth): implement branded HTML templates for auth emails
Add a standardized HTML shell for verification and password reset emails.
Update system wordings with new email copy, buttons, and fallback links.
Strip standalone action links from content to use styled buttons.
2026-05-03 19:33:25 +08:00
105274eec8 feat(life): add game versions and 5-star ratings to posts
Support associating life posts with specific game versions
Allow 1-5 star ratings on posts in rateable categories
Add feed filters for game version, rateable status, and top-rated sorting
2026-05-03 18:38:33 +08:00
4ebb45aa94 feat(legal): add legal pages and global footer
Introduce Privacy Policy, Terms of Service, and Disclaimers views
Add site footer with copyright, legal links, and attribution notices
Update system wordings with comprehensive legal content in EN/ZH
2026-05-03 18:04:33 +08:00
6758aaaa7e feat(home): add home page as main entry point
Introduce HomeView with quick links to wiki sections and community features
Update navigation, routing, and logo links to point to the new home page
2026-05-03 17:46:36 +08:00
6782ddd101 feat(life): replace multiple tags with single category for posts
Add default category support and enforce one category per Life Post
Update UI filters, forms, and translations to reflect category semantics
2026-05-03 17:34:32 +08:00
18baf7b513 feat(moderation): add AI moderation for user-generated content
Add AI moderation settings, caching, and status tracking
Require AI approval for Life Posts, Comments, and Discussions
Implement language filtering and moderation status UI
Add retry mechanism for failed moderation checks
2026-05-03 17:08:51 +08:00
960898c858 feat(comments): paginate life post and entity discussion comments
Implement cursor-based pagination for Life and Entity comments
Optimize Life Post queries to return comment counts and previews
Add "Load more" functionality to frontend discussion panels
2026-05-03 15:20:05 +08:00
0c76d6bfc8 feat(api): implement rate limiting for abuse prevention
Add @fastify/rate-limit with granular policies for different routes
Support TRUST_PROXY environment variable for reverse proxies
2026-05-03 15:04:07 +08:00
8f55db9061 feat(auth): enforce role level boundaries and owner assignment rules
Add `admin.users.assign-owner` permission to control Owner role assignment.
Restrict role assignment to roles strictly below the assigner's highest level.
2026-05-03 14:50:52 +08:00
1dab650c2c feat(seo): implement dynamic metadata, sitemap, and robots.txt
Add dynamic meta tags for routes and entity detail pages
Generate sitemap.xml and robots.txt dynamically in Vite
Change default frontend port from 3000 to 20015
2026-05-03 14:31:22 +08:00
282481bbcc feat(profile): add password change and activity filters
Implement password change API and UI in the Account tab
Add secondary filters for contributions, reactions, and comments
Display referral summary in the profile header
2026-05-03 13:52:35 +08:00
0e835f9c03 feat(profile): add public user profiles with activity tabs and stats
Add API routes for user stats, posts, reactions, and comments
Implement profile view with Feeds, Contributions, Reactions tabs
Link to user profiles from edit history, discussions, and life posts
Add database indexes to optimize user-centric queries
2026-05-03 13:14:29 +08:00
ef82fc805d feat(automation): add coming soon page and navigation entry
Add Automation route and navigation item with in-development badge
Include localized wordings, icon, and design docs for the new section
2026-05-03 12:05:29 +08:00
95d76522df feat(life): require at least one tag for life posts
Update design spec to mandate tag selection
Add frontend and backend validation for tag requirement
Add localization strings for tag required errors
2026-05-03 11:47:08 +08:00
8bc311916d feat(admin): redesign navigation with grouped secondary sidebar
Replace flat tabs with categorized navigation groups (Content, Config, etc.).
Update layout styles to support a responsive secondary sidebar.
2026-05-03 11:27:43 +08:00
05f531ddf2 feat(auth): implement role-based access control (RBAC)
Add roles, permissions, and user_roles tables with default seed data
Protect backend API endpoints with granular permission checks
Add admin UI for managing users, roles, and permissions
Update frontend views to conditionally render actions based on permissions
2026-05-03 11:16:58 +08:00
05898f9441 feat(auth): add user referral system with invite codes
Generate unique referral codes for users
Allow new users to register with a referral code
Display referral stats and invite link in user profile
2026-05-03 10:27:45 +08:00
3d99f00c75 feat(wiki): add event item flag and decouple pokemon display ID
Add `is_event_item` to pokemon, items, and habitats.
Separate internal `id` and `display_id` for pokemon to allow event variants.
Update frontend forms and views to support the new fields.
2026-05-03 10:11:04 +08:00
4d05618530 feat: add images and profile grid layout to entity detail pages
Return image data for related entities across all backend detail queries
Display images or default placeholders in detail headers, chips, and lists
Standardize Item, Recipe, and Habitat detail views with a new profile grid
2026-05-03 09:51:45 +08:00
784cbdacd1 feat(wiki): add community image upload for wiki entities
Support uploading images for Pokemon, Items, and Habitats
Track upload history in new entity_image_uploads table
Update entity cards to display uploaded images and usage ribbons
2026-05-03 01:08:45 +08:00
36e10a06b0 feat(auth): add user profile page and display name update
Add PATCH /api/auth/me endpoint to update user display name
Create UserProfileView for managing account details and email status
Update AppShell sidebar to link authenticated user to profile page
2026-05-02 22:38:33 +08:00
4a42756e2e feat(auth): add password reset and remember me options
Add password reset request and reset endpoints with email verification
Add "Remember me" option to login for persistent sessions
Create frontend views for forgot and reset password flows
2026-05-02 22:13:10 +08:00
cf0ae566c0 feat(pokemon): add image selection and display from pokesprite
Add image metadata fields to Pokemon schema and API
Implement image candidate fetching from pokesprite static tree
Add Pokédex-style image picker to edit form and display in details
2026-05-02 20:59:33 +08:00
976a2a2482 feat(i18n): implement dynamic system wording management
Add database schema and API endpoints for system wording keys and values
Replace hardcoded translations in frontend and backend with dynamic messages
Add System Wordings management interface to Admin view
2026-05-02 11:48:11 +08:00