perfInsightContributors top-level property

List<List<Map<String, Object?>> Function(Map<String, Object?> report)> perfInsightContributors
getter/setter pair

Insight rules contributed by the host, run by ext.dusk.perf_end's insight engine after its built-in rules.

dusk owns the rules it can judge from frames alone (budget, drops, a dominant self-time block, a count outlier, coverage). Rules that need to know what a wind counter or a magic notify MEANS belong to the package that can see both, magic_devtools, which appends to this list.

Each contributor receives the report as built so far (every key except insights) and returns zero or more insights shaped {severity: 'info'|'warn'|'error', title, evidence: {metric, value, perFrame, threshold}, nextStep, estimatedSavingsMs?, summary?, detail?}. The engine assigns the id; summary and detail stay behind ext.dusk.perf_insight rather than inflating the report. A contributor that throws, or returns an insight missing a required key, costs its own insights and becomes one warn insight naming it; the report still returns.

Contract: appended once per isolate from MagicPerfIntegration.install(), cleared by MagicPerfIntegration.resetForTesting(). Defaults to empty.

Implementation

List<List<Map<String, Object?>> Function(Map<String, Object?> report)>
    perfInsightContributors =
    <List<Map<String, Object?>> Function(Map<String, Object?> report)>[];