Lifecycle scope — the IRScope shape EPIC-2's SubscribeWithoutDispose pass resolves scopeId against.

kind: 'infinite' absolves a subscription from needing a paired dispose (the scope outlives the process); kind: 'process-exit' is the same arm by a different name (the scope's terminator IS the process exit). kind: 'ephemeral' is the default — a finite-lived scope (component mount, request, transaction) where dispose is required.

interface IRScope {
    id: string;
    kind: "ephemeral" | "infinite" | "process-exit";
    lifetime: { origin: string; terminator: string };
}

Properties

Properties

id: string
kind: "ephemeral" | "infinite" | "process-exit"
lifetime: { origin: string; terminator: string }