GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
ESLint allowlists (only to shrink) for DatabaseSync, synchronous fs in src/main and direct window.goodbuddy subscriptions in components, plus a max-lines ratchet for App.tsx; docs demos and vendored scripts are no longer linted. perf:check (or GB_PERF_CHECK=1 perf:app) fails a non-throttled benchmark that exceeds build/perf-thresholds.json. Records the results in the PERF plan.
90 lines
3.9 KiB
JSON
90 lines
3.9 KiB
JSON
{
|
|
"note": "PERF-17 regression ceilings for the PERF-11 full-App benchmark (npm run perf:app). They apply ONLY to non-throttled runs (environment.rendererCpuThrottle = 1, the default) with the default GB_PERF_* scale, on the reference machine of the 2026-10-02 baseline (Intel Core Ultra X7 358H x16, 32 GB, DPR 1, 120 Hz). Limits are about 2-3x the 2026-10-02 values so that run-to-run noise does not fail; they catch regressions of the size seen before PERF-12 (e.g. ~130 long tasks / 9 s while streaming). Tighten them as PERF-12..PERF-14 land; do not loosen them to make a regression pass. Every listed scenario must be present unless marked optional, and report.status must equal requiredStatus.",
|
|
"requiredStatus": "passed",
|
|
"maxRendererCpuThrottle": 1,
|
|
"scenarios": {
|
|
"idle": {
|
|
"renderer.longTasks.count": { "max": 2 },
|
|
"renderer.longTasks.totalMs": { "max": 200 },
|
|
"renderer.frames.p95": { "max": 20 },
|
|
"renderer.frames.jankRatio": { "max": 0.05 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"typing-small": {
|
|
"renderer.longTasks.count": { "max": 3 },
|
|
"renderer.longTasks.totalMs": { "max": 300 },
|
|
"renderer.frames.p95": { "max": 20 },
|
|
"renderer.frames.jankRatio": { "max": 0.05 },
|
|
"latency.p95": { "max": 25 },
|
|
"latency.max": { "max": 100 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"idle-seeded": {
|
|
"renderer.longTasks.count": { "max": 2 },
|
|
"renderer.longTasks.totalMs": { "max": 200 },
|
|
"renderer.frames.p95": { "max": 20 },
|
|
"renderer.frames.jankRatio": { "max": 0.05 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"typing-seeded": {
|
|
"renderer.longTasks.count": { "max": 3 },
|
|
"renderer.longTasks.totalMs": { "max": 300 },
|
|
"renderer.frames.p95": { "max": 20 },
|
|
"renderer.frames.jankRatio": { "max": 0.05 },
|
|
"latency.p95": { "max": 25 },
|
|
"latency.max": { "max": 100 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"switch-conversations": {
|
|
"renderer.longTasks.count": { "max": 5 },
|
|
"renderer.longTasks.totalMs": { "max": 500 },
|
|
"renderer.frames.jankRatio": { "max": 0.15 },
|
|
"latency.p95": { "max": 350 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"switch-conversations-warm": {
|
|
"renderer.longTasks.count": { "max": 3 },
|
|
"renderer.longTasks.totalMs": { "max": 300 },
|
|
"renderer.frames.jankRatio": { "max": 0.15 },
|
|
"latency.p95": { "max": 200 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"switch-conversations-hot": {
|
|
"optional": true,
|
|
"renderer.longTasks.count": { "max": 3 },
|
|
"renderer.longTasks.totalMs": { "max": 200 },
|
|
"renderer.frames.jankRatio": { "max": 0.1 },
|
|
"latency.p95": { "max": 100 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"open-long-conversation": {
|
|
"renderer.longTasks.count": { "max": 4 },
|
|
"renderer.longTasks.totalMs": { "max": 400 },
|
|
"latency.p95": { "max": 400 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"scroll-long-conversation": {
|
|
"renderer.longTasks.count": { "max": 2 },
|
|
"renderer.longTasks.totalMs": { "max": 200 },
|
|
"renderer.frames.p95": { "max": 20 },
|
|
"renderer.frames.jankRatio": { "max": 0.05 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"stream-seeded": {
|
|
"renderer.longTasks.count": { "max": 10 },
|
|
"renderer.longTasks.totalMs": { "max": 1500 },
|
|
"renderer.frames.p95": { "max": 34 },
|
|
"renderer.frames.jankRatio": { "max": 0.15 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
},
|
|
"stream-and-type": {
|
|
"renderer.longTasks.count": { "max": 10 },
|
|
"renderer.longTasks.totalMs": { "max": 1500 },
|
|
"renderer.frames.p95": { "max": 34 },
|
|
"renderer.frames.jankRatio": { "max": 0.2 },
|
|
"latency.p95": { "max": 50 },
|
|
"main.eventLoopDelay.p99": { "max": 100 }
|
|
}
|
|
}
|
|
}
|