Click task title to edit inline (Enter/blur saves via PUT API).
Click status dot to cycle pending -> in_progress -> done.
Optimistic UI updates with rollback on error.
Detail page still accessible by clicking other card areas.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- media-input: universal media upload (text/audio/photo/video) with base64 encoding, file storage, and transcription stub
- gamification: points, streaks, levels, badges, leaderboard with auto-leveling
- templates: predefined task sets with 3 default templates (Weekly Sprint, Study Plan, Moving Checklist)
- All features registered via modular registry.js for easy enable/disable
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- notification_prefs table (remind_before, on_due, daily, channels)
- GET/PUT /notification-prefs/:taskId
- GET /odoo/modules, POST /odoo/modules/install, GET /odoo/status
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Overview tab: stat cards (users, tasks, goals, projects, AI msgs, errors) + daily activity bar chart
- Users tab: user list with task/goal counts and delete capability
- Activity tab: recent activity feed with type badges
- Tailwind-based responsive design matching existing app style
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Activity monitor API: phone usage tracking with report/summary/daily/ai-analysis endpoints
- Family workspace: shared task groups with member management
- Per-user API rate limiting: JWT-based key generator with IP fallback
- Also includes previously uncommitted spaced-repetition and admin routes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- TaskCard: overlapping avatars, colored status dot (pulse for active)
- Header: group dropdown + status pills in single 40px row
- CSS: statusPulse animation
- Group interface: display_name optional field
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds the 'Pozvat' button to the collaboration section of the task
detail page, opening a modal that creates invitations and shows
WhatsApp/Telegram/SMS/Copy share links.
- Header: groups+status on one row
- GET /auth/export-data (GDPR data download)
- Weekly AI report cron (Monday 8:00)
- WebSocket /ws endpoint (real-time notifications)
- @fastify/websocket installed
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- DELETE /api/v1/auth/delete-account (GDPR + Google Play req)
- Settings: red Delete Account section with confirmation
- Store assets: icon-512, feature-graphic, screenshot-1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- /privacy page for Google Play (GDPR compliant)
- Fixed Anthropic API key mismatch in .env
- Chat returns AI responses again
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- F-Droid metadata: mobile/fdroid/metadata/info.hasdo.taskteam.yml
- Store listing for APKPure/Aurora: mobile/store-listing/README.md
- iOS ITSAppUsesNonExemptEncryption=false in app.json
- Mixed content audit: clean (no HTTP URLs in frontend code)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- upload-release.sh: Upload artifacts to Hetzner Storage Box
- create-release.sh: Create Gitea releases with tag and artifacts
- post-deploy.sh: Auto-backup DB and upload after deploy
- setup-storagebox.sh: One-time storage box directory setup
- 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>