Commit Graph

27 Commits

Author SHA1 Message Date
congsh 4dac4bc751 fix: disable PocketBase SDK auto-cancellation on group API calls
SSE subscriptions trigger concurrent requests to the same endpoints,
causing auto-cancellation errors. Add $autoCancel: false to group
queries that get called from realtime event handlers.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 10:04:26 +08:00
congsh 6b684f8600 fix: login persistence, username login, realtime refresh, group name uniqueness
- Remove loadFromCookie that overwrites valid localStorage auth data
- Set user status to idle on first login (was empty string)
- Default empty status to idle instead of away

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 09:56:11 +08:00
congsh 9405406c47 fix: login persistence, username login, realtime refresh, group name uniqueness
- Fix cookie path to '/' for auth persistence across page refreshes
- Login field now accepts both username and email
- Add 30s polling for group list and team session status refresh
- Add group name uniqueness check before creation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 01:24:12 +08:00
congsh c76346294a feat: add group join approval flow with requireApproval setting
- New join_requests PocketBase collection for pending join applications
- Group requireApproval field (default true) with owner toggle
- JoinGroupDialog: apply when approval required, direct join when not
- JoinRequestCard component for accept/reject in notifications and group panel
- NotificationPanel shows both invitations and join requests
- GroupMembersPanel shows pending requests and approval switch for owners

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 00:46:31 +08:00
congsh 89d8ecec82 fix: allow authenticated users to search/view groups for joining
Changed groups collection listRule and viewRule from member-only to
any authenticated user, so users can find and join groups. Also
improved registration error messages with Chinese validation feedback.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 23:43:59 +08:00
congsh d7f9c6860a fix: improve registration error messages with specific validation feedback
Extract PocketBase validation errors (duplicate email/username/password)
and display them in Chinese. Also improve login error message.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 22:35:22 +08:00
congsh 83b7472594 refactor: replace all emoji icons with Element Plus SVG icons
Use @element-plus/icons-vue components for consistent, scalable vector
icons across sidebar navigation, section headers, ratings, and buttons.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 21:36:44 +08:00
congsh 4b97c99e56 feat: add game library CRUD/import/export/favorites/comments, fix team creation
- Game library: add/delete games per group, JSON/CSV import/export, favorites, star ratings & comments
- Fix team session creation: add creator to members array, handle null currentGroup
- Fix image loading: rename SVG files from .png to .svg extensions
- Add PocketBase migrations for game_comments and game_favorites collections
- Remove seed data script

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 21:03:20 +08:00
congsh 802712c662 feat: complete Phase 1 - game library, lifecycle, realtime sync
- Seed 33 popular games across 5 platforms via admin API script
- Add GameDetailDialog with game info and quick-team button
- Update GamesLibrary with game card click to open detail dialog
- Update Home hot games to open detail dialog instead of navigating
- Rewrite invitation accept: frontend auto-joins team + updates status
- Add user status reset on team dissolution (endGame)
- Add start game / dissolve buttons to TeamSessionPanel lifecycle
- Integrate realtime subscriptions in GroupView and Layout
- Add notification store realtime invitation listener
- Add placeholder images for game covers and avatars
- Remove Go hooks, add JS hooks placeholder + Docker mount

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 20:23:39 +08:00
congsh 0bcf39bb4b fix: resolve /api/api doubled path in Docker deployment
- Remove VITE_PB_URL=/api from Dockerfile (SDK auto-appends /api)
- Fix nginx proxy_pass to keep /api/ prefix for PocketBase
- Update pocketbase.ts fallback to window.location.origin
- Update PocketBase proxy target to port 8090

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 19:51:12 +08:00
congsh 7e2506b4f2 chore: add PocketBase migrations and fix plan document
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 19:35:15 +08:00
congsh 4dd15dceab fix: collection name mismatch, login/register navigation, and connection config
- Fix teamSessions → team_sessions to match PocketBase collection name
- Replace <a @click> with <router-link> in Login and Register views
- Update PocketBase default URL and vite proxy target
- Comment out docker-compose user directive for permission fix

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 19:28:53 +08:00
congsh c5d5484f9e feat: switch to light green + deep purple theme, fix input colors
- Primary: emerald green (#059669), accent: deep purple (#7c3aed)
- Light backgrounds: #f0fdf4 page, #ffffff cards
- Login/Register: light gradient bg, white card, Element Plus inputs
- NotFound: matching light theme
- All pages follow via CSS variables

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 18:07:14 +08:00
congsh 6895fd05be feat: add group management - create, join, member panel with owner controls
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 17:53:58 +08:00
congsh 00fdb02d80 fix: resolve TypeScript unused variable errors for clean build
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 17:41:37 +08:00
congsh d0c75d25cf feat: beautify all team components and pages with dark gaming theme
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 17:38:27 +08:00
congsh 5c007ac069 feat: beautify login, register and 404 pages with dark gaming theme
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 17:37:15 +08:00
congsh e4b3340ffb feat: establish dark gaming theme design system with Element Plus overrides
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:35:45 +08:00
congsh 443b22e142 feat: redesign Layout with dark gaming sidebar
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:35:40 +08:00
congsh 0acc1e12e1 fix: rewrite backend hooks, fix invitation flow, align frontend API, fix component naming
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:30:05 +08:00
congsh b1a9995767 feat: add missing components - notification store, notification panel, game select dialog, invite button
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:27:30 +08:00
congsh 87937b0722 fix: clean up stale migration backup, remove hardcoded credentials from README
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 16:23:47 +08:00
congsh 2ce8985747 feat: add GameGroup2 project with frontend and backend
- Add .gitignore for Node.js and PocketBase projects
- Add frontend (Vue 3 + Vite + TypeScript)
- Add backend (PocketBase)
- Add deployment scripts and Docker compose configs

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 15:45:54 +08:00
congsh 2db391901c fix: use proper PocketBase hook patterns
- Replace unsafe type assertions with safe AuthRecord() method
- Remove unused 'strings' import
- Remove unused ServeEvent struct and binding
- Use proper error response methods (apis.NewForbiddenError)
- Use app.Subscriptions().Broadcast() instead of Realtime()
- Fix hook signatures to return error instead of next function
2026-04-17 14:17:54 +08:00
congsh 8d4b9a167c feat: add API rules and hooks
Add PocketBase hooks for group management and real-time notifications:
- Groups collection with owner/members permissions
- Team Sessions with group member verification
- Invitations with real-time notifications
- Helper functions for group ownership and membership checks

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 14:16:56 +08:00
congsh b79046ec63 fix: pin PocketBase version and improve documentation
- Pin PocketBase image to v0.22.4 instead of latest
- Add healthcheck to docker-compose.yml
- Add environment variables documentation to README.md
- Add development and production environment sections

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 14:15:39 +08:00
congsh 4d1a53fc69 feat: initialize PocketBase backend with migrations
- Created backend directory structure
- Added .env configuration for PocketBase
- Added initial migration with users, groups, games, teamSessions, invitations collections
- Added docker-compose.yml for containerized deployment
- Added README.md with setup instructions

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-17 14:14:05 +08:00