39 Commits

Author SHA1 Message Date
bb8763bca1 Install menu in Settings + logout icon + drawer install link
- 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>
2026-03-29 21:00:14 +00:00
867482c674 UI redesign: compact header, group dropdown, slim task cards
- Removed logo/brand from header
- Group selector as dropdown (not horizontal scroll)
- Compact task cards (single line, less padding)
- Status filter pills smaller
- Sticky header 44px

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:44:41 +00:00
a29d0ba64c EAS project configured + cloud build successful
- Expo project: @it-enterprise/task-team (67f7d2df)
- EAS Android APK build: b31c63a8-0e4f-44d6-80e9-98cb24174037
- Download: expo.dev/accounts/it-enterprise/projects/task-team/builds/...

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 20:36:04 +00:00
070a62bdf1 Swagger docs + Error tracking + Email + Production keystore
- Swagger UI at /docs (70+ routes documented)
- Error tracking: error_logs table, /errors/report, /errors/recent, /errors/stats
- Global error handler logs to DB
- Email: nodemailer, /email/send, /email/reminder (SMTP placeholder)
- Production keystore: RSA 2048, valid 2053, info.hasdo.taskteam

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 18:27:33 +00:00
6089f4d310 Hebrew group names + multilingual API + cleanup mock data
- 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>
2026-03-29 17:17:47 +00:00
c266b44b2a Calendar mobile fix + Android APK 41MB built
- Calendar: compact mobile header, nowrap date, pill view switcher
- Android APK: info.hasdo.taskteam v1.0.0, 41MB, SDK 24-36
- APK at mobile/dist/android/task-team-v1.0.0-release.apk

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 17:07:10 +00:00
a3d82b9b3b Google OAuth active + ecosystem env fix + cleanup Android build artifacts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 16:30:01 +00:00
acc88606fa OAuth routes (Google/Facebook/Apple) + Android web export
- 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>
2026-03-29 16:13:17 +00:00
4e4bf34393 EAS build config + Collaboration UI + i18n updates
- eas.json for Android APK/AAB + iOS builds
- Collaboration page: assign, transfer, claim, subtasks
- Task detail: assignee avatars, subtask progress
- Updated translations (cs,he,ru,ua)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 15:31:19 +00:00
606fb047f8 Extended collaboration: subtasks, claim, assign-group, workload tracking
- 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>
2026-03-29 15:20:50 +00:00
db81100b5b React Native Expo app — full mobile client
- Expo SDK 54, expo-router, NativeWind
- 7 screens: login, tasks, calendar, goals, chat, settings, tabs
- API client (api.hasdo.info), SecureStore auth, AuthContext
- Tab navigation: Ukoly, Kalendar, Cile, Chat, Nastaveni
- Pull-to-refresh, FAB, group colors, priority dots
- Calendar grid with task dots
- AI chat with keyboard avoiding
- Web export verified (780 modules, 1.5MB bundle)
- Bundle ID: info.hasdo.taskteam

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 15:09:35 +00:00
545cf245f0 Complete i18n (zero hardcoded text) + 2FA/OAuth endpoints
- 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>
2026-03-29 14:59:15 +00:00
052e292d83 Fix registration validation + mobile modal scroll
- Email validation (must contain @, min 5 chars)
- Name validation (min 2 chars)
- Modal: max-height 90dvh, overflow-y auto, sticky buttons
- TaskForm: sticky bottom action buttons for mobile keyboard

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 14:57:32 +00:00
b3c6999218 Fix SSL SAN cert + React hydration #423
- 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>
2026-03-29 14:56:25 +00:00
565e72927d E2E tests: 15/15 passed, Playwright config, .gitignore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 14:27:55 +00:00
dd995d9c0f Auth with passwords + Playwright E2E tests + PostHog analytics
- bcrypt password hashing in auth (register, login, change-password)
- Login/register pages with password fields
- Profile update + OAuth placeholder endpoints
- Playwright test suite: auth, pages, API (3 test files)
- PostHog Docker analytics on :8010

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 14:26:51 +00:00
b4b8439f80 Feature batch: Projects, Recurrence, Group settings, Bug fixes
- 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>
2026-03-29 13:49:25 +00:00
fc39029ce3 ci: pipeline verified and secured 2026-03-29 13:33:44 +00:00
97e97e5951 ci: clean up test files, finalize CI/CD pipeline 2026-03-29 13:33:01 +00:00
6679a93553 ci: HMAC signature verification for Gitea webhooks 2026-03-29 13:32:16 +00:00
9fcbaa4f8b ci: test webhook after Gitea restart 2026-03-29 13:29:50 +00:00
3079301192 ci: final end-to-end webhook test 2026-03-29 13:28:49 +00:00
7a4c54594a ci: verify auto-deploy pipeline 2026-03-29 13:26:29 +00:00
b1322fed92 ci: test webhook delivery 2026-03-29 13:24:58 +00:00
78be9328a0 ci: add deploy log placeholder 2026-03-29 13:24:04 +00:00
d0e464be5f CI/CD: add deploy webhook endpoint for Gitea auto-deploy 2026-03-29 13:23:07 +00:00
Claude CLI Agent
4fae1c5a06 i18n complete: all 16 components translated (CZ/HE/RU/UA)
- 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>
2026-03-29 13:19:02 +00:00
Claude CLI Agent
235bcab97f i18n: integrate translations into components
- 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>
2026-03-29 13:13:34 +00:00
Claude CLI Agent
fea4d38ce8 Phase 3-4: Goals AI planner, Team tasks, Push notifications, i18n (CZ/HE/RU/UA)
- Goals CRUD API + AI study plan generator + progress reports
- Goals frontend page with progress bars
- Team tasks: assign, transfer, collaborate endpoints
- Push notifications: web-push, VAPID, subscribe/send
- i18n: 4 languages (cs, he, ru, ua) translation files
- notifications.js + goals.js routes

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 13:12:19 +00:00
Claude CLI Agent
eac9e72404 Polish: Unicode diacritics fix, Header drawer, date formatting
- 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>
2026-03-29 13:01:48 +00:00
Claude CLI Agent
8ef3206ff0 Add Chat + Settings pages, fix all bugs
- /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>
2026-03-29 12:59:31 +00:00
Claude CLI Agent
6c38c9438f Add Moodle + Pohoda connectors
- Moodle: courses->goals, assignments->tasks, completion, grades, webhook
- Pohoda: XML-RPC adapter, invoice sync, webhook
- All 3 connectors (Odoo, Moodle, Pohoda) returning 200

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 12:56:50 +00:00
Claude CLI Agent
aa5cb5f733 Mobile-first: swipe groups, bottom nav, slide-out drawer, responsive
- 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>
2026-03-29 11:24:29 +00:00
Claude CLI Agent
d74c89255e PM2 cluster deploy + Redis caching + Nginx gzip + UI polish
- PM2 v6: 2x API cluster + 1x web, zero-downtime reload
- Redis cache: 30s TTL on GET /tasks, X-Cache header
- Nginx gzip compression
- Mobile touch targets 44px
- Czech diacritics throughout UI
- TaskModal slide-up animation
- StatusBadge color dots
- GroupSelector emoji icons

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 11:20:58 +00:00
Claude CLI Agent
4a6b5e5498 UI fixes: emoji icons, modal form, Czech labels, polish
- Fixed group emoji icons in DB (💼🛒📚🗺️🏃🏠🌿)
- Added TaskModal component for + button
- Czech status labels (Čeká, Probíhá, Hotovo, Zrušeno)
- Improved TaskCard, GroupSelector, Header, StatusBadge
- Better dark/light mode transitions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 11:16:07 +00:00
Claude CLI Agent
6c93ae04d0 Fix login redirect — access result.data.token/user
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>
2026-03-29 10:30:05 +00:00
Claude CLI Agent
55993b70b2 Phase 2: AI Chat, Calendar, Odoo connector, PWA
- 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>
2026-03-29 10:12:53 +00:00
Claude CLI Agent
b5a6dd6d6f Add Next.js frontend PWA
- Pages: login, register, tasks list, task detail
- Components: TaskCard, TaskForm, GroupSelector, StatusBadge, Header
- Tailwind CSS, dark/light mode, PWA manifest
- Running on :3001 via systemd

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 10:02:32 +00:00
Claude CLI Agent
9d075455e3 Initial: Fastify API + DB schema + collab setup
- Fastify API on :3000 (tasks, groups, auth, connectors)
- PostgreSQL schema: users, tasks, task_groups, goals, connectors
- 8 default task groups
- JWT auth (register/login/me)
- API Bridge framework with webhooks
- CLAUDE.md + polling scripts
- Collab worker integration

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:57:56 +00:00