@gphone/sdk
    Preparing search index...

    Interface RunningApp

    Which app is on screen, and which apps are still alive behind it.

    Apps used to be mounted one at a time under a {#key currentApp.id} block, so navigating away destroyed the component and everything in it — scroll position, a half-typed message, an expanded section. That is structural rather than a bug in any one app, and every app inherits it. It has already forced two workarounds: the DevTools unlock had to be written to storage to survive a trip to another app, and Settings' sub-panes are local state specifically to avoid crossing this boundary.

    Now an opened app stays mounted and is merely hidden, the way a phone keeps apps resident. State preservation is then total and automatic — including DOM state such as scroll offset, which no save/restore API could reasonably capture.

    interface RunningApp {
        id: string;
        props: Record<string, unknown>;
    }
    Index
    id: string

    The app's registry id — notes, settings. Not its display name.

    It was called name, which read as the human-facing one and got used that way: ErrorBoundary printed it, so a crash in Admin said "The admin app encountered a problem". The manifest holds the display name; this is the key you look it up with.

    props: Record<string, unknown>