openmixer — generated API reference
    Preparing search index...

    Interface RouteHealingOptions

    Options for wireRouteHealing.

    interface RouteHealingOptions {
        autoroute?: () => Promise<MainAutorouteResult>;
        debounceMs?: number;
        feed: GraphChangeFeed;
        healRoutes?: () => Promise<void>;
        log: (m: string) => void;
        mixer: HealableMixer;
        reapplyExternal?: () => Promise<number>;
        retryDeferred?: () => Promise<number>;
    }
    Index
    autoroute?: () => Promise<MainAutorouteResult>

    Late boot autoroute (loopback path): re-invoked once per heal UNTIL it lands — routed (the default sink finally arrived) or already-routed / no-structural (nothing left to do) — then never again, so steady-state healing stays free of default-sink resolution subprocess calls. Omit when the boot autoroute already routed (or the native mixer owns MAIN).

    debounceMs?: number

    Debounce override for tests (default: RouteHealer's 100 ms).

    feed: GraphChangeFeed

    The native registry change feed (production: the loaded PwGraph).

    healRoutes?: () => Promise<void>

    Re-route a bus whose destination stopped existing (spec 2026-09-15 §3) — the RME profile switch that replaced the card's nodes and left MAIN's route naming a dead pair. Runs once per heal, after the reconcile and beside the two re-lays above, on the SAME settled burst: a route is dead exactly when the ports it names have left the graph, which is a Node/Port fact and nothing else. Omit on a console with no structural surface.

    log: (m: string) => void

    Where healer wiring + failures are logged.

    The mixer whose reconcile re-issues the routes.

    reapplyExternal?: () => Promise<number>

    Re-issue the external-route ledger's DEFERRED edges (spec 2026-08-26): human-made links into a console port that survived a port vanishing, re-laid HERE — once per heal, alongside retryDeferred — through the ledger's own reapply (the same createLink primitive the reconcile/retryDeferred paths use, never a second link-issuing mechanism). Omit when no external-route ledger is configured (no persistence dir).

    retryDeferred?: () => Promise<number>

    Re-attempt the link backend's DEFERRED edges (issue #167): links whose endpoints were absent when first laid (a stopped app stream, an unplugged sink, a generator node not yet created) resolve instantly as deferred instead of blocking, and re-lay HERE — once per heal, after the reconcile — the moment the missing node/ports register. Returns how many landed (production: NativeGraphBackend.retryDeferred). Covers the direct-wired edges the reconcile's desired-graph pass cannot re-issue.