mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-22 18:35:21 -06:00
1da74794b6
* fix(release): define immutable release plan contract * fix(release): harden immutable plan authority * fix(release): tighten release plan authority * fix(release): share plugin publication authority * fix(release): verify plan authority remotely * fix(release): track ClawHub publication authorities * fix(release): trust remote tooling tag identity * fix(release): close plugin publication authority * fix(release): align npm authority selection * fix(release): bind plans to validation intent * fix(release): require qualification cadence * fix(release): reject lossy canonical values * fix(release): narrow qualification cadence * fix(release): bind plan parser dependency * fix(release): add tagless diagnostic plans * fix(release): attest release plan parser tree * fix(release): isolate verified plan parser snapshot * fix(release): verify plan tooling before execution
48 lines
1.5 KiB
TypeScript
48 lines
1.5 KiB
TypeScript
import type {
|
|
ReleaseValidationIntent,
|
|
ReleaseValidationProfile,
|
|
ReleaseValidationPurpose,
|
|
} from "./release-validation-intent.mjs";
|
|
|
|
export type ReleasePlanPurpose = ReleaseValidationPurpose;
|
|
|
|
export type ReleasePlan = {
|
|
schema: "openclaw.release-plan.v1";
|
|
release_id: string;
|
|
version: string;
|
|
tag: string | null;
|
|
candidate_sha: string;
|
|
target_context_ref: string;
|
|
purpose: ReleasePlanPurpose;
|
|
tooling: {
|
|
repository: "openclaw/openclaw";
|
|
workflow_path: ".github/workflows/full-release-validation.yml";
|
|
ref: string;
|
|
sha: string;
|
|
};
|
|
validation: {
|
|
intent: ReleaseValidationIntent;
|
|
profile: ReleaseValidationProfile;
|
|
soak: boolean;
|
|
allowed_groups: string[];
|
|
};
|
|
inventory: {
|
|
packages: Array<{ name: string; version: string; targets: Array<"clawhub" | "npm"> }>;
|
|
platforms: Array<{ id: string; source: string }>;
|
|
};
|
|
};
|
|
|
|
export type ReleasePlanLock = {
|
|
schema: "openclaw.release-plan-lock.v1";
|
|
digest: string;
|
|
plan: ReleasePlan;
|
|
};
|
|
|
|
export const RELEASE_PLAN_SCHEMA: "openclaw.release-plan.v1";
|
|
export const RELEASE_PLAN_CANONICALIZATION: "ascii-sorted-compact-json-trailing-newline-v1";
|
|
export function validateReleasePlan(value: unknown): ReleasePlan;
|
|
export function canonicalReleasePlanJson(value: unknown): string;
|
|
export function createReleasePlanLock(value: unknown): ReleasePlanLock;
|
|
export function canonicalReleasePlanLockJson(value: unknown): string;
|
|
export function parseReleasePlanLockJson(text: string): ReleasePlanLock;
|