fix(release): allow 2026.9.8 channel waivers (#163585)

This commit is contained in:
Dallin Romney 2026-10-02 08:01:52 -07:00 • committed by GitHub
parent 46ab36a493
commit 88a756ae35
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 24 additions and 16 deletions

View file

@ -34,7 +34,7 @@ on:
default: false
type: boolean
telegram_waiver:
description: Reviewed stable/full waiver; 2026.8.1/9.1 cover Telegram, 2026.9.5 covers Telegram and Matrix QA-live
description: Reviewed stable/full waiver; 2026.8.1/9.1 cover Telegram, 2026.9.5/9.7/9.8 cover Telegram and Matrix QA-live
required: false
default: ""
type: string

View file

@ -163,11 +163,14 @@ keep Telegram selected by default. The existing
deferral; it is rejected for `stable` and `full` and does not disable the focused
`rerun_group=npm-telegram` workflow.
Selected-test requirements are separate from explicit omissions. The reviewed exceptions are
`-f telegram_waiver=2026.8.1-owner-approved` and
`-f telegram_waiver=2026.9.1-owner-approved`. Any future exception requires a
reviewed code change; a matching `<target-version>-owner-approved` string alone
is not authorization. The value must name the validated target's actual
Selected-test requirements are separate from explicit omissions. The reviewed
Telegram-only exceptions are `2026.8.1-owner-approved` and
`2026.9.1-owner-approved`. The reviewed Telegram and Matrix QA-live exceptions
are `2026.9.5-owner-approved`, `2026.9.7-owner-approved`, and
`2026.9.8-owner-approved`. Pass the selected value with `-f telegram_waiver=<value>`.
Any future exception requires a reviewed code change; a matching
`<target-version>-owner-approved` string alone is not authorization. The value
must name the validated target's actual
`package.json` version, the sealed candidate version must match, and the profile
must be `stable` or `full`. Beta, prerelease, and unlisted targets are rejected.
Package-spec overrides must be exactly `openclaw@<target-version>`; blank specs

View file

@ -303,6 +303,9 @@ const REVIEWED_TELEGRAM_WAIVERS = new Map([
// 01d71319 (FRV 36534008742, jobs 109299525565 and rerun 109316259401) and Telegram
// QA 4/25 on 56fb8872 and e61efb6c (job 109279074202).
["2026.9.7-owner-approved", ["telegram", "matrix"]],
// The release owner approved the same Telegram and Matrix QA-live scope for 2026.9.8
// on 2026-10-02. Every other stable-release gate remains blocking.
["2026.9.8-owner-approved", ["telegram", "matrix"]],
]);
const HARD_GH_TRANSPORT_PATTERN =
/HTTP (?:400|401|403|404|410|422)\b|Bad credentials|authentication required|not authenticated|gh auth login|unknown (?:command|flag)|Usage: gh\b|ENOENT|EACCES/iu;

View file

@ -18,7 +18,7 @@ const approved = {
};
describe("reviewed release channel waiver", () => {
it("owns the exact 9.5 channel set without extending historical waivers", () => {
it("owns the reviewed combined channel sets without extending historical waivers", () => {
expect(releaseWaivedIntegrationChannels(approved)).toEqual(["telegram", "matrix"]);
for (const version of ["2026.8.1", "2026.9.1"]) {
expect(
@ -31,15 +31,17 @@ describe("reviewed release channel waiver", () => {
}),
).toEqual(["telegram"]);
}
expect(
releaseWaivedIntegrationChannels({
...approved,
targetVersion: "2026.9.7",
candidateVersion: "2026.9.7",
telegramWaiver: "2026.9.7-owner-approved",
releaseProfile: "stable",
}),
).toEqual(["telegram", "matrix"]);
for (const version of ["2026.9.7", "2026.9.8"]) {
expect(
releaseWaivedIntegrationChannels({
...approved,
targetVersion: version,
candidateVersion: version,
telegramWaiver: `${version}-owner-approved`,
releaseProfile: "stable",
}),
).toEqual(["telegram", "matrix"]);
}
const projection = releaseWaivedIntegrationChannels(approved);
projection.push("buzz");
expect(releaseWaivedIntegrationChannels(approved)).toEqual(["telegram", "matrix"]);