Skip to content

feat(tasks): link tasks to multiple goals - #36

Merged
MegaBadCoder merged 1 commit into
mainfrom
feat/task-goal-links
Aug 18, 2026
Merged

feat(tasks): link tasks to multiple goals#36
MegaBadCoder merged 1 commit into
mainfrom
feat/task-goal-links

Conversation

@MegaBadCoder

Copy link
Copy Markdown
Owner

Summary

  • Задачи можно привязывать к нескольким целям через таблицу links (kind=goal), без колонки goalId на tasks.
  • Replace-set API с двух сторон: PUT /tasks/:id/goals и GET/PUT /goals/:id/tasks; GET /tasks отдаёт goalIds отдельным запросом, без join-дублей.
  • На фронте: GoalPicker в диалоге задачи, бейдж/иконка на карточке и в календаре, блок «Задачи» на GoalView. Recurring копирует линки на новый инстанс; завершение задачи не трогает статус цели.

Test plan

  • Создать задачу с GoalView — она появляется в блоке «Задачи» и имеет goalIds.
  • В диалоге задачи привязать/отвязать несколько целей (пустой набор снимает все связи, задача остаётся).
  • Карточка и календарь показывают иконку цели, если есть goalIds.
  • Чужая цель/задача → 404, виртуальный id → 400.
  • Завершить recurring-задачу — следующий инстанс сохраняет те же цели.
  • Завершение задачи не меняет status/outcome цели.

Made with Cursor

Store relations in a links table instead of a goalId column, with replace-set APIs on both sides. UI: goal picker in the task dialog, badges on cards/calendar, and a tasks block on GoalView.

Co-authored-by: Cursor <cursoragent@cursor.com>
@MegaBadCoder
MegaBadCoder merged commit a93d0e5 into main Aug 18, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant