- Settings: Install section (Android APK, PWA, iOS soon, F-Droid soon)
- Logout: icon only (red door), no text
- Avatar: initials only, name in drawer
- Drawer: Install link to /settings#install
- Translations: install key in cs/he/ru/ua
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- task_groups.names JSONB with cs/he/ru/ua translations
- GET /groups?lang=he returns Hebrew names
- Removed 14 test users, cleaned orphan data
- 6 real users, 2 real tasks remain
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Google OAuth: /auth/google + /auth/google/callback
- Facebook OAuth: /auth/facebook + /auth/facebook/callback
- Apple Sign In placeholder
- Expo web export in mobile/dist/
- passport, passport-google-oauth20, passport-facebook installed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 3 new DB tables: subtasks, task_collaboration, user_groups
- Subtasks CRUD with auto-complete parent when all done
- Collaboration requests: assign, transfer, collaborate, claim
- Claim = instant, others need approval (accept/reject)
- Assign to whole user group at once
- Workload tracking: per-user active/completed/pending
- User groups (teams) CRUD with member management
- 39/39 tests passed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- All placeholders, brand text, dates use t() function
- Dynamic date locale based on selected language
- 2FA/TOTP, WebAuthn, OAuth/:provider endpoints (placeholders)
- All 4 translation files updated (cs,he,ru,ua)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- SAN cert covers all 5 PWA domains (tasks,cal,plans,goals,chat)
- i18n hydration: SSR uses cs default, localStorage after mount
- Matches ThemeProvider pattern
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Projects CRUD API + invite members
- Task recurrence (daily/weekly/monthly) with auto-creation
- Group time zones + GPS locations settings
- i18n fallback fix (no more undefined labels)
- UX: action buttons in one row
- Chat/Calendar: relative API URLs
- DB: task_assignments, projects tables, recurrence column
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Custom i18n provider with React Context + localStorage
- Hebrew RTL support (dir=rtl on html)
- All pages + components use t() calls
- FullCalendar + dates locale-aware
- Language selector in Settings wired to context
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- StatusBadge, TaskForm, tasks page use i18n hook
- All 4 language files complete (cs, he, ru, ua)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Czech diacritics properly rendered (no more escape sequences)
- Header avatar click opens drawer on mobile+desktop
- Invalid Date -> Bez terminu fallback with cs-CZ locale
- Chat/Settings pages improved
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /chat: AI chat interface with Claude API
- /settings: language selector (CZ/HE/RU/UA), notifications, connectors
- Fixed Invalid Date on task detail
- All 6 pages returning 200
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Swipe left/right between groups with overlay animation
- BottomNav: Tasks/Calendar/Chat/Settings (mobile only)
- Header: slide-out drawer on mobile, full on desktop
- GroupSelector: scroll-snap, auto-scroll active
- TaskCard: compact mobile layout, swipe-to-complete
- Safe area insets, 44px touch targets
- react-swipeable for touch gestures
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Login/register pages now correctly unwrap API response {data: {token, user}}.
Cleaned up leftover apiFetch code.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- AI Chat endpoint (/api/v1/chat) with Claude API context
- Calendar page with FullCalendar.js (day/week/month)
- Odoo API connector (import/export/webhook)
- PWA manifest + service worker for offline
- SW register component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>