Part of the service-identity work, QRun-IO/qqq#1248. Draft: it needs the QQQ RC that contains qqq#1255. Bump qqq.snapshot.version once the release captain cuts it.
ReleaseNotesRuntime.asSystem now runs as the host's declared release-notes principal (ReleaseNotesQBitConfig.servicePrincipal) instead of QSystemUserSession:
it uses the principal's granted permissions;
it is audited as service:release-notes;
an unavailable principal fails, with no fallback.
With no principal declared, nothing changes.
Tests:ReleaseLifecycleTest.detectsAsTheDeclaredPrincipal passes, along with the rest of the suite (25 tests) against a local install of qqq#1256, except ReleaseNotesMetaDataTest.uiApiContract. That test also fails without this change: the committed OpenAPI predates the newer core's UI API output, so the regeneration belongs to the RC bump.
Part of the service-identity work, QRun-IO/qqq#1248. **Draft:** it needs the QQQ RC that contains qqq#1255. Bump `qqq.snapshot.version` once the release captain cuts it.
`ReleaseNotesRuntime.asSystem` now runs as the host's declared `release-notes` principal (`ReleaseNotesQBitConfig.servicePrincipal`) instead of `QSystemUserSession`:
- it uses the principal's granted permissions;
- it is audited as `service:release-notes`;
- an unavailable principal fails, with no fallback.
With no principal declared, nothing changes.
**Tests:** `ReleaseLifecycleTest.detectsAsTheDeclaredPrincipal` passes, along with the rest of the suite (25 tests) against a local install of qqq#1256, except `ReleaseNotesMetaDataTest.uiApiContract`. That test also fails without this change: the committed OpenAPI predates the newer core's UI API output, so the regeneration belongs to the RC bump.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of the service-identity work, QRun-IO/qqq#1248. Draft: it needs the QQQ RC that contains qqq#1255. Bump
qqq.snapshot.versiononce the release captain cuts it.ReleaseNotesRuntime.asSystemnow runs as the host's declaredrelease-notesprincipal (ReleaseNotesQBitConfig.servicePrincipal) instead ofQSystemUserSession:service:release-notes;With no principal declared, nothing changes.
Tests:
ReleaseLifecycleTest.detectsAsTheDeclaredPrincipalpasses, along with the rest of the suite (25 tests) against a local install of qqq#1256, exceptReleaseNotesMetaDataTest.uiApiContract. That test also fails without this change: the committed OpenAPI predates the newer core's UI API output, so the regeneration belongs to the RC bump.🤖 Generated with Claude Code