feat: release notes

Each release can carry notes in Markdown, written before or after it
ships. A draft is generated from its finished tickets grouped by type, to
edit and copy from the releases page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-08 15:19:23 +02:00
parent 45a3dc1e16
commit 24b37b6628
40 changed files with 1251 additions and 31 deletions

View File

@@ -37,3 +37,4 @@ export * from './sprint-started.event';
export * from './sprint-closed.event';
export * from './sprint-deleted.event';
export * from './issue-sprint-changed.event';
export * from './release-notes-written.event';

View File

@@ -0,0 +1,15 @@
import { AutowiredEvent } from '@task-stream/api/shared/domain';
import { TrackerEvent } from './tracker.event';
/** The release notes were written or rewritten (null: removed). */
@AutowiredEvent
export class ReleaseNotesWrittenEvent extends TrackerEvent {
constructor(
actorId: string,
releaseId: string,
projectId: string,
readonly notes: string | null,
) {
super(actorId, releaseId, projectId);
}
}