Files
start-os/sdk/base/lib/osBindings/Manifest.ts
Matt Hill 392ae2d675 fix: correct false breakage detection for flavored packages and config changes
Two bugs caused the UI to incorrectly warn about dependency breakages:

1. dryUpdate (version path): Flavored package versions (e.g. #knots:27.0.0:0)
   failed exver.satisfies() against flavorless ranges (e.g. >=26.0.0) due to
   flavor mismatch. Now checks the manifest's `satisfies` declarations,
   matching the pattern already used in DepErrorService. Added `satisfies`
   field to PackageVersionInfo so it's available from registry data.

2. checkConflicts (config path): fast-json-patch's compare() treated missing
   keys as conflicts (add ops) and used positional array comparison, diverging
   from the backend's conflicts() semantics. Replaced with a conflicts()
   function that mirrors core/src/service/action.rs — missing keys are not
   conflicts, and arrays use set-based comparison.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 11:38:01 -06:00

41 lines
1.3 KiB
TypeScript

// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { Alerts } from './Alerts'
import type { Dependencies } from './Dependencies'
import type { Description } from './Description'
import type { GitHash } from './GitHash'
import type { HardwareRequirements } from './HardwareRequirements'
import type { ImageConfig } from './ImageConfig'
import type { ImageId } from './ImageId'
import type { LocaleString } from './LocaleString'
import type { PackageId } from './PackageId'
import type { PluginId } from './PluginId'
import type { Version } from './Version'
import type { VolumeId } from './VolumeId'
export type Manifest = {
id: PackageId
version: Version
canMigrateTo: string
canMigrateFrom: string
images: { [key: ImageId]: ImageConfig }
volumes: Array<VolumeId>
dependencies: Dependencies
hardwareRequirements: HardwareRequirements
title: string
description: Description
releaseNotes: LocaleString
gitHash: GitHash | null
license: string
packageRepo: string
upstreamRepo: string
marketingUrl: string
donationUrl: string | null
docsUrls: string[]
alerts: Alerts
osVersion: string
sdkVersion: string | null
hardwareAcceleration: boolean
plugins: Array<PluginId>
satisfies: Array<Version>
}