Commit Graph

35 Commits

Author SHA1 Message Date
poignatov
28a45ab81e fix: использовать приоритет только из weekly_goals, без fallback на projects.priority (v3.1.3)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 40s
2026-01-06 15:09:58 +03:00
poignatov
7df258da15 feat: добавлена поддержка шаблонов $0 и \$0 для наград в задачах (v3.1.1)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 44s
2026-01-06 15:00:42 +03:00
poignatov
0ea531889d v3.1.0: Оптимизация загрузки списка задач - все данные в одном запросе, добавлены индикаторы подзадач и прогрессии
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 40s
2026-01-06 14:54:37 +03:00
poignatov
a6065d7ff1 fix: исправлен импорт TaskForm с явным расширением .jsx, версия 2.9.1
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 39s
2026-01-04 19:42:29 +03:00
poignatov
6d7d59d2ae Add init/run scripts and Cursor/VSCode configurations
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
- Add init.sh: initializes app with Docker, creates prod backup, restores to local DB
- Add run.sh: restarts all containers
- Update restore-db.sh: auto-selects latest dump, terminates active connections before restore
- Add .cursor/commands.json: Cursor commands (init, run, backupFromProd, restoreToLocal)
- Add .vscode/tasks.json: VSCode tasks for running scripts
- Add .vscode/launch.json: launch configurations for restarting server
- Remove play-life-backend/env.example (unified .env in root)
2026-01-03 17:08:42 +03:00
poignatov
2b9a024d3e fix: исправлен расчет общего процента выполнения в ежедневном отчете и унифицирована логика
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 46s
2026-01-03 16:13:28 +03:00
Play Life Bot
27befeb92b Refactor group 2 word selection: use (failure+1)/(success+1) ratio, bump version to 2.8.0
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 35s
2026-01-02 16:50:40 +03:00
Play Life Bot
a5ce0de236 feat: добавлена возможность создания проектов через UI - версия 2.7.0
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 38s
2026-01-02 16:09:16 +03:00
Play Life Bot
d012f39be8 feat: увеличить время жизни access token до 24 часов, сделать refresh token бессрочным
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 33s
2026-01-02 16:00:54 +03:00
Play Life Bot
3a256dc290 Remove Floor from priority 0 calculation formula, bump version to 2.3.0
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 33s
2026-01-02 15:52:15 +03:00
Play Life Bot
8f7acee60c fix: handle string ID in Todoist user info response
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:46:20 +03:00
Play Life Bot
bcea4b2bf5 fix: improve Todoist user info API call with better logging and error handling
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:45:54 +03:00
Play Life Bot
7547058507 fix: use App.jwtSecret instead of env for OAuth state token
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:42:59 +03:00
Play Life Bot
713f6020f6 fix: use authFetch for Todoist OAuth connect to send auth header
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:40:06 +03:00
Play Life Bot
bc73160e1a fix: remove duplicate code in todoistWebhookHandler
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:37:40 +03:00
Play Life Bot
e74c4cf599 fix: use correct jwt/v5 API for OAuth state token
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-02 15:35:37 +03:00
Play Life Bot
a7128703fe feat: refactor Todoist integration to single app with OAuth
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 32s
- Single webhook URL for all users

- OAuth authorization flow

- Removed individual webhook tokens

- User identification by todoist_user_id

- Added OAuth endpoints: connect, callback, status, disconnect

- Updated frontend with OAuth flow

- DB migration 013: removed webhook_token, added todoist_user_id, todoist_email, access_token

Version: 2.2.0
2026-01-02 15:34:01 +03:00
Play Life Bot
8ba7e8fd45 feat: Переделка Telegram интеграции на единого бота (v2.1.0)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 54s
- Единый бот для всех пользователей (токен из .env)
- Deep link для подключения через /start команду
- Отдельная таблица todoist_integrations для Todoist webhook
- Персональные отчеты для каждого пользователя
- Автоматическое применение миграции 012 при старте
- Обновлен Frontend: кнопка подключения вместо поля ввода токена
2026-01-02 14:47:51 +03:00
poignatov
4df054536a Fix dictionary_id type error by removing COALESCE from prepared statement (v2.0.8)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 34s
2026-01-01 19:33:29 +03:00
poignatov
cf4d5d40c3 Fix dictionary_id type mismatch in addWordsHandler (v2.0.7)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 35s
2026-01-01 19:25:04 +03:00
poignatov
d96bb2ce8d v2.0.6: Fix addWords handler - add user_id and improve error handling
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 40s
- Added user_id to words insertion (was missing, causing 500 errors)
- Fixed default dictionary query (removed incorrect id=0 condition)
- Added dictionary ownership validation before inserting words
- Added comprehensive logging for debugging addWords operations
2026-01-01 19:13:37 +03:00
poignatov
6f77f0643c v2.0.5: Fix transaction errors and webhook parsing
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 40s
- Fixed transaction abort error in insertMessageData (replaced ON CONFLICT with SELECT check)
- Fixed double body reading in setupTelegramWebhook (use json.Unmarshal)
- Fixed Todoist webhook JSON parsing (use json.Unmarshal from bodyBytes)
- Improved error handling in webhook responses
- Added user_id to nodes insertion
2026-01-01 18:57:30 +03:00
poignatov
edc29fbd97 v2.0.4: Fix webhook error handling and logging
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 41s
- Webhooks now return 200 OK even on errors (to prevent retries)
- Improved error handling with proper JSON responses
- Enhanced logging for webhook debugging
- Supervisor logs now visible in docker logs (stdout/stderr)
- Fixed TodoistIntegration error display in UI
2026-01-01 18:50:55 +03:00
poignatov
7704de334c v2.0.3: Webhook user identification by URL token
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 42s
- Added webhook_token to telegram_integrations
- Webhooks now identify users by token in URL (/webhook/telegram/{token}, /webhook/todoist/{token})
- Webhook automatically configured for all users on backend startup
- Migration 011: Add webhook_token column
2026-01-01 18:38:28 +03:00
poignatov
91d9b52524 fix: downgrade golang.org/x/crypto to v0.28.0 for Go 1.21 compatibility
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-01 18:24:49 +03:00
poignatov
b709192447 fix: go version 1.21 for Docker build
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 6s
2026-01-01 18:23:10 +03:00
poignatov
4a06ceb7f6 v2.0.0: Multi-user authentication with JWT
Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 16s
Features:
- User registration and login with JWT tokens
- All data is now user-specific (multi-tenancy)
- Profile page with integrations and logout
- Automatic migration of existing data to first user

Backend changes:
- Added users and refresh_tokens tables
- Added user_id to all data tables (projects, entries, nodes, dictionaries, words, progress, configs, telegram_integrations, weekly_goals)
- JWT authentication middleware
- claimOrphanedData() for data migration

Frontend changes:
- AuthContext for state management
- Login/Register forms
- Profile page (replaced Integrations)
- All API calls use authFetch with Bearer token

Migration notes:
- On first deploy, backend automatically adds user_id columns
- First user to login claims all existing data
2026-01-01 18:21:18 +03:00
poignatov
f8aa81f963 Bump version to 1.1.1: Fix Telegram webhook handling and chat_id saving
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m33s
- Fix TelegramUpdate struct to handle message and edited_message properly
- Fix chat_id saving for messages without text
- Add comprehensive logging for webhook registration
- Improve error handling and diagnostics
2025-12-31 19:39:01 +03:00
poignatov
7398918bc0 Release v1.1.0: Add Telegram and Todoist integrations UI
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 57s
- Add telegram_integrations table to store bot token and chat_id
- Add Integrations tab with Todoist and Telegram integration screens
- Remove TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID from env variables
- All Telegram configuration now done through UI
- Telegram webhook registration happens when user saves bot token
- Rename TELEGRAM_WEBHOOK_BASE_URL to WEBHOOK_BASE_URL
2025-12-31 19:11:28 +03:00
poignatov
a2afe44e0e Fix: Добавлен tzdata в Dockerfile для корректной работы планировщика в часовом поясе Europe/Moscow (v1.0.1)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 58s
2025-12-31 18:02:14 +03:00
poignatov
a76252a198 Update backend and frontend components 2025-12-30 18:27:12 +03:00
poignatov
3b94ed2991 Упрощена логика переноса проекта
- Если проект с указанным именем не существует - просто переименовываем текущий проект
- Если проект существует - переносим все данные (nodes, weekly_goals) в существующий проект
- При удалении проекта удаляются все связанные weekly_goals
2025-12-29 21:38:43 +03:00
poignatov
fc83bed1a3 Реализована возможность изменения проектов
- Добавлено поле deleted в таблицу projects (миграция 007)
- Изменена иконка перехода на экран проектов (список вместо звезды)
- Заменен крестик на троеточие в списке проектов
- Добавлено модальное окно с кнопками 'Перенести' и 'Удалить'
- Реализован экран переноса проекта с выбором существующего или созданием нового
- Добавлены API endpoints: /project/move и /project/delete
- При переносе проекта обновляются nodes и weekly_goals с обработкой конфликтов
- При удалении проекта удаляются все связанные weekly_goals
- Добавлена фильтрация удаленных проектов во всех SQL запросах
- Обновлена materialized view для исключения удаленных проектов
2025-12-29 21:31:43 +03:00
poignatov
8d79a8f692 Fix: Исправление определения недели на границе года (ISOYEAR)
- Заменен EXTRACT(YEAR) на EXTRACT(ISOYEAR) в materialized view для корректной работы на границе года
- Обновлена миграция 001_create_schema.sql для использования ISOYEAR
- Создана миграция 006_fix_weekly_report_mv_structure.sql для исправления структуры view (LEFT JOIN)
- Добавлен endpoint /admin/recreate-mv для пересоздания materialized view
- Обновлена документация миграций в README.md
- Обновлены зависимости Go (go.mod, go.sum)
2025-12-29 20:58:34 +03:00
poignatov
4f8a793377 Initial commit 2025-12-29 20:01:55 +03:00