Регулярные задачи: дата следующего раза, метка в списке, фильтр (0.91)
Дата следующего экземпляра считалась и выбрасывалась: закрыв ежедневную
задачу, владелец видел её же снова «к выполнению», без даты и неотличимо от
задачи на сегодня. Теперь дата ложится в существующее `deadline_date` (новых
полей и миграций нет) — при нестрогом периоде не ставится, ТЗ 3.4 запрещает
оба поля разом.

- recurrence: `_copy` получает посчитанную дату, `spawn_next` её не теряет;
- reminders: у регулярной повод один — ритм, дедлайновые правила её не
  касаются (иначе в день срока два уведомления об одном деле), сводка тоже;
- reminders: ключ дедупа ритма включает id задачи — без него уникальность
  push_deliveries съедала второе «Пора», и за день приходило одно
  напоминание на пользователя, сколько бы регулярных ни совпало;
- API: параметр `task_type` у GET /api/tasks;
- список: переключатель «Регулярные» рядом с «Приоритетными»;
- карточка: акцентная полоса по левой кромке и кружок с иконкой повтора
  перед названием, подсказка словами о правиле; дата читается как
  «след. 12.10.2026»;
- ачивка «Дедлайн-босс» регулярные не считает.

ТЗ 0.91: §3.5, §3.6, §3.21, §5, §7.
1 parent aa72e37 commit 94af80e577007a074eda1016df3fc31bd77330c1
@root root authored 5 hours ago
Showing 16 changed files
View
backend/app/api/tasks.py
View
backend/app/models.py
View
backend/app/services/recurrence.py
View
backend/app/services/reminders.py
View
backend/tests/test_push_scheduler.py
View
backend/tests/test_recurrence.py
View
backend/tests/test_reminders.py
View
backend/tests/test_tasks_api.py
View
docs/TZ.md
View
frontend/src/components/AchievementsPanel.vue
View
frontend/src/components/TaskCard.vue
View
frontend/src/locales/en.ts
View
frontend/src/locales/ru.ts
View
frontend/src/locales/uk.ts
View
frontend/src/taskui.ts
View
frontend/src/views/ListView.vue