The post-#1033 / #1006 measurement-anchored multi-axis threshold surface — see module-level

for the empirical anchors.

interface AdaptThresholds {
    commitCount: number;
    maxChainDepth: number;
    medianCommitMsThreshold: number;
    nodeCount: number;
    rollingCommitWindow: number;
    totalSubscribers: number;
}

Properties

commitCount: number

Activity-gate trigger — minimum commit count for the commit-shape axis to count as a stable workload signal. Default 500, derived from the cheap-bridge break-even math (~450 ms migration cost / ~0.7 ms-per-commit savings ≈ 640 commits; rounded down so the gate fires earlier on commit-heavy shapes).

maxChainDepth: number

Chain-shape axis trigger — max derivation-chain depth above which derivation walking dominates per-commit cost. Default 500, unchanged from the original issue-body design.

medianCommitMsThreshold: number

Per-commit-cost axis trigger — median commit time (ms) above which the per-commit envelope cost (commitLog + changedNodes + replay-determinism contracts) is large enough that the WASM backend's projected ~0.7 ms/commit savings amortizes against the one-time migration cost within ~640 commits. Default 1.0, anchored to the equality-cutoff × 10000 macro cell (see module-level

for the caveat).

nodeCount: number

Per-node-cost axis trigger — node count above which the per-node commit cost on linear-chain shape is measurably above the V8 floor. Default 50_000 per the #694 / PR #1033 crossover-curve sweep.

rollingCommitWindow: number

Window length (in commits) over which medianCommitMsThreshold is evaluated. Default 100 — long enough to wash out single- commit spikes, short enough to detect a genuine shift in commit shape within a few seconds of UI activity.

totalSubscribers: number

Activity-gate trigger — minimum total subscriber count for the commit-shape axis to count as a real reactive workload. Default 1_000, unchanged from the issue body.