@modoki/engine / index / OtaCheckResult
Type Alias: OtaCheckResult
OtaCheckResult = {
outcome:"up-to-date"; } | {outcome:"no-release-for-bundle"; } | {outcome:"signature-invalid"; } | {outcome:"engine-api-too-old";required:number;running:number; } | {errors:string[];outcome:"manifest-invalid"; } | {outcome:"no-bundle-zip-in-manifest"; } | {outcome:"version-rejected";version:string; } | {delta?:boolean;mandatory:boolean;outcome:"staged";version:string; }
Union Members
Type Literal
{ outcome: "up-to-date"; }
OTA Updates
outcome
outcome:
"up-to-date"
Type Literal
{ outcome: "no-release-for-bundle"; }
OTA Updates
outcome
outcome:
"no-release-for-bundle"
Type Literal
{ outcome: "signature-invalid"; }
OTA Updates
outcome
outcome:
"signature-invalid"
Type Literal
{ outcome: "engine-api-too-old"; required: number; running: number; }
OTA Updates
outcome
outcome:
"engine-api-too-old"
required
required:
number
running
running:
number
Type Literal
{ errors: string[]; outcome: "manifest-invalid"; }
OTA Updates
errors
errors:
string[]
outcome
outcome:
"manifest-invalid"
Type Literal
{ outcome: "no-bundle-zip-in-manifest"; }
OTA Updates
outcome
outcome:
"no-bundle-zip-in-manifest"
Type Literal
{ outcome: "version-rejected"; version: string; }
The release's target version is one this device already PROVED bad — it exhausted its boot attempts and the watchdog reverted it (Phase 3a quarantine). Staging it again would re-enter the crash-loop → revert → re-stage cycle forever, so we refuse. Recovery is fix-forward only: publish a NEW version. A blocking/mandatory gate MUST treat this as "no update available" and let the player keep playing the working bundle — blocking here is what turns a stale app into a permanent brick.
OTA Updates
outcome
outcome:
"version-rejected"
version
version:
string
Type Literal
{ delta?: boolean; mandatory: boolean; outcome: "staged"; version: string; }
OTA Updates
delta?
optionaldelta?:boolean
mandatory
mandatory:
boolean
outcome
outcome:
"staged"
version
version:
string