Files
start-os/sdk/base/lib/osBindings/PackageVersionInfo.ts
Matt Hill e3b7277ccd fix: correct false breakage detection for flavored packages and confi… (#3149)
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 13:07:52 -06:00

37 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 { DataUrl } from './DataUrl'
import type { DependencyMetadata } from './DependencyMetadata'
import type { Description } from './Description'
import type { GitHash } from './GitHash'
import type { HardwareRequirements } from './HardwareRequirements'
import type { LocaleString } from './LocaleString'
import type { MerkleArchiveCommitment } from './MerkleArchiveCommitment'
import type { PackageId } from './PackageId'
import type { PluginId } from './PluginId'
import type { RegistryAsset } from './RegistryAsset'
import type { Version } from './Version'
export type PackageVersionInfo = {
icon: DataUrl
dependencyMetadata: { [key: PackageId]: DependencyMetadata }
sourceVersion: string | null
s9pks: Array<[HardwareRequirements, RegistryAsset<MerkleArchiveCommitment>]>
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>
}