Files
james.maesandClaude Opus 5.5 212a12c304 feat(runtime): run qbit work as the release-notes service principal
With the host's principal declared, detection, drafting and publishing
run as it instead of the system user. Undeclared: unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 08:33:04 -05:00

1.5 KiB

Changelog

All notable changes are documented here. This project follows Keep a Changelog and semantic versioning.

[Unreleased]

Added

  • When the host declares the QQQ release-notes service principal (ReleaseNotesQBitConfig.withServicePrincipal), detection, drafting and publishing run as that principal instead of the system user. It uses its granted permissions, is audited as service:release-notes, and fails closed if unavailable. With no principal declared, behavior is unchanged. Needs the QQQ release with service identities (qqq#1255).
  • Release records, items, settings and per-user read state as standard QQQ tables (release_notes_*) with a Liquibase changelog (item-to-release foreign key) and seeded settings (require approval, all users, notify).
  • Once-per-version detection across pods and restarts (unique app + version), started by the host after startup.
  • ReleaseSource SPI with GitHubReleaseSource (TAG and WINDOW modes; token read from the environment at call time) and ComponentVersionsSource.
  • ReleaseNotesDrafter SPI with the deterministic RuleBasedDrafter and ReleaseNotesSanitizer (no internal references, personal data or secrets in published text).
  • Publish, Skip and Redraft record actions and the Check for new release table action.
  • One RELEASE notification per published release through QAlerts.notify, linking to What's new.
  • UI API extension release-notes 1.0.0: releases, summary, seen.
  • Help bundle covering the app, tables, fields and processes.