@mica/sdk (SDK contract v1)
    Preparing search index...

    Interface AppUpdate

    The Store renders the update rows; useAppRegistry() is what produces them. Only the type crosses the boundary here — the list itself comes from the permission-gated facet.

    interface AppUpdate {
        appId: string;
        availableVersion: string;
        entry: CatalogEntry;
        installedVersion: string | undefined;
        kind: AppUpdateKind;
        name: string;
    }
    Index
    appId: string
    availableVersion: string

    entry

    The catalog entry to install. Carries the fresh sha256, so the update re-verifies like any install.

    installedVersion: string | undefined
    name: string

    The installed app's name, so a caller can say what is out of date without a second lookup.