Commit Graph

41 Commits

Author SHA1 Message Date
poignatov
b3a83e1e8f feat: замена period_type на start_date в wishlist, обновление UI формы условий
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m5s
- Добавлена миграция 020 для замены period_type на start_date в score_conditions
- Обновлена функция подсчёта баллов: calculateProjectPointsFromDate вместо calculateProjectPointsForPeriod
- Добавлен компонент DateSelector для выбора даты начала подсчёта
- По умолчанию выбран тип условия 'Баллы'
- Переименованы опции: 'Баллы' и 'Задача'
- Версия: 3.9.3
2026-01-12 17:02:33 +03:00
poignatov
e2059ef555 feat: добавлено автозаполнение полей wishlist из ссылки (v3.9.0)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m5s
- Добавлен эндпоинт /api/wishlist/metadata для извлечения метаданных из URL
- Реализовано извлечение Open Graph тегов (title, image, description)
- Добавлена кнопка Pull для ручной загрузки информации из ссылки
- Автоматическое заполнение полей: название, цена, картинка
- Обновлена версия до 3.9.0
2026-01-11 21:12:26 +03:00
poignatov
f3a7d1c503 fix: исправлен расчет даты переноса задач с периодами повторения
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 54s
- Добавлена поддержка сокращенных форм единиц времени (mons, min, hrs, wks, yrs и т.д.)
- Исправлена обработка недель, которые PostgreSQL возвращает как дни (7 days вместо 1 week)
- Добавлено приведение repetition_period к тексту при чтении из БД
- Обновлена версия до 3.8.6
2026-01-11 15:09:32 +03:00
poignatov
29cf05a3c3 fix: обновлен расчет общего процента выполнения - отсутствующие группы приоритетов считаются как 100%
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 55s
- Изменена функция calculateOverallProgress: теперь всегда учитываются 3 группы приоритетов (1, 2, 0)
- Если группа отсутствует, она считается как 100%
- Общий процент всегда вычисляется как среднее из 3 групп: (группа1 + группа2 + группа0) / 3
- Изменения применяются для API и ежедневных Telegram отчетов
- Версия обновлена до 3.8.5
2026-01-11 15:00:20 +03:00
poignatov
cc7c6a905e v3.6.0: Улучшено модальное окно переноса задачи - нередактируемое поле с понятным форматированием даты
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 55s
2026-01-10 19:17:03 +03:00
poignatov
b57b0bc901 Изменить логику выставления next_show_at: для repetition_period - сегодняшняя дата, для repetition_date - следующая подходящая дата
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 57s
2026-01-09 13:36:10 +03:00
poignatov
2f16876185 Bump version to 3.4.1 and add version logging on startup
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 44s
2026-01-07 15:31:40 +03:00
poignatov
db74626068 Fix regex panic in task completion (v3.3.1)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 41s
- Replace unsupported lookahead regex with manual string replacement
- Fix 502 error when completing tasks
- Update version to 3.3.1
2026-01-06 16:50:11 +03:00
poignatov
b41f6e7cdc Add repetition_date support for tasks (v3.3.0)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 42s
- Add repetition_date field to tasks table (migration 018)
- Support pattern-based repetition: day of week, day of month, specific date
- Add 'Через'/'Каждое' mode selector in task form
- Auto-calculate next_show_at from repetition_date on create/complete
- Show calculated next date in postpone dialog for repetition_date tasks
- Update version to 3.3.0
2026-01-06 16:41:54 +03:00
poignatov
508355dcb3 feat: добавлена функциональность откладывания задач (next_show_at)
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 41s
2026-01-06 15:56:52 +03:00
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
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
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
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