Files
openclaw/scripts/lib/release-priority.d.mts
T
RoboClawandsteipete 2a7b059f4e fix(release): restore PR checks after large validation pauses (#157239)
* fix(release): restore PR checks after large validation pauses

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* fix(release): preserve independent PR checks during restore

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* fix(release): leave intentionally skipped CI runs alone

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* fix(release): revalidate deferred attempts before dispatch

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* test(release): reuse qualified manifest sealing fixtures

Reuse the fixture-only repair from openclaw/openclaw#157268 (f0cb7b379d), byte-identical to the two files at a34af46d10. Keep the actual writer and validation policy, with controlled external transport.

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* test(tooling): capture nested cleanup failure state

Record bounded failure-only process facts without changing the liveness predicate, assertion, deadlines or cleanup. This improves evidence for the unexplained CI failure; it does not claim a lifecycle fix.

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

* fix(release): report skipped restore candidates in CLI output

Show run IDs and recovery guidance when dispatch revalidation declines a rerun. Keep cancellation labeling distinct and preserve JSON, selection, mutation counts and retry behavior. Cover the actual CLI with portable secretless transport fixtures.

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>

---------

Co-authored-by: steipete <58493+steipete@users.noreply.github.com>
2026-09-25 18:15:27 -07:00

51 lines
2.0 KiB
TypeScript

export const RELEASE_PRIORITY_VARIABLE: "OPENCLAW_RELEASE_PRIORITY_RUN";
export const RELEASE_PRIORITY_RECORD_KIND: string;
export interface ReleasePriorityRun {
event: string;
headBranch: string;
id: string;
lane: string;
name: string;
url: string;
}
export interface ReleasePriorityRecord {
cancelled: Array<Omit<ReleasePriorityRun, "lane"> & Partial<Pick<ReleasePriorityRun, "lane">>>;
kind: string;
parentRunId: string;
recordedAt: string;
repository?: string;
}
export function isReleaseBranch(name: unknown): boolean;
export function isDeferrableRun(
run: Record<string, unknown> | undefined,
parentRunId: string | number,
): boolean;
export function listReleasePriorityRuns(
query: string,
apiJson: (resource: string) => Promise<unknown>,
apiText: (resource: string, jq: string) => Promise<string>,
): Promise<Record<string, unknown>[]>;
export function describeRun(run: Record<string, unknown>): ReleasePriorityRun;
export function selectQueuedRunsToCancel(
runs: Record<string, unknown>[],
parentRunId: string | number,
): ReleasePriorityRun[];
export function selectDeferredRunCandidates(
runs: Record<string, unknown>[],
record: Pick<ReleasePriorityRecord, "parentRunId" | "recordedAt">,
): Record<string, unknown>[];
export function isDeferredCiJobSet(jobs: Record<string, unknown>[]): boolean;
export function defaultReleasePriorityRecordPath(parentRunId: string | number): string;
export function writeReleasePriorityRecord(path: string, record: ReleasePriorityRecord): void;
export function readReleasePriorityRecord(path: string): ReleasePriorityRecord;
export function readReleasePriorityRecord(
path: string,
options: { optional: true },
): ReleasePriorityRecord | null;
export function selectLatestRunsPerLane(runs: ReleasePriorityRun[]): ReleasePriorityRun[];
export function mergeReleasePriorityRecord(
previous: ReleasePriorityRecord | null,
next: ReleasePriorityRecord,
): ReleasePriorityRecord;
export function isQueuedRun(run: Record<string, unknown> | undefined): boolean;