issue observers
Наблюдатели задачи видят её и комментируют, но не редактируют.
- таблица issue_observer, наблюдатели — часть сущности Issue
- видимость: reporter, assignee или наблюдатель (задачи, история, SSE)
- правка/удаление задачи и вложений — только reporter/assignee (403 наблюдателю)
- observers в create/update, DELETE /issues/:id/observers/me, фильтр role
- история изменений и уведомления новым наблюдателям
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Issue changes are recorded per field in the issue_change table, in the same
transaction as the issue itself. The new history module exposes:
- GET /api/issues/:issueId/history — change timeline grouped by save
- GET /api/issues/stats/daily — created, status transitions and status
snapshot per day, with time zone support
The migration backfills history for existing issues. Setting a field to its
current value no longer bumps updatedAt or emits issue.updated.