Skip to content

0.0.13

Choose a tag to compare

@github-actions github-actions released this 25 Aug 21:34
· 19 commits to master since this release
5e0bae1

Fixed

  • dusk:perf_end printed a complete-looking report over a subset of the session's frames, so an empty attribution read as "nothing was slow". Two counters in the payload measure different things and nothing compared them: liveness.advanced comes from a post-frame callback and cannot miss a frame, while frameSummary.frame_count counts what Flutter's onReportTimings delivered, and Flutter batches those. Measured driving a real app on Chrome, a theme toggle drew 4 frames, 2 were reported, and the 2 block maps that joined were the pre-tap frames, which were empty. The report said "2 frames, worst build 114ms" with blockAttribution: [], which is exactly what a session with no hot blocks looks like; the frames carrying the work had simply never arrived. The payload now carries coverage: {framesDrawn, framesSummarized, complete} plus a detail string on the incomplete case, and the CLI prints a Partial: line beside the human summary rather than leaving the caveat in the JSON. It reports rather than refuses, because a subset is still a measurement. (lib/src/extensions/ext_perf.dart, lib/src/commands/dusk_perf_end_command.dart, doc/commands/dusk-perf-end.md, doc/mcp/tool-reference.md)

  • The refusal explained a frameless session with the wrong cause first. It led with a backgrounded page, which sent a reader hunting for a visibility problem that usually is not there. On Flutter web the ordinary cause is an idle app: nothing schedules a frame when nothing is dirty, so a session that opens, sleeps and closes legitimately draws zero. Both causes were observed in one investigation, the idle one twice (once at advanced: 0 on a settled page, once at advanced: 1 when a wheel gesture hit a region that does not scroll). The message now names the idle case first and keeps the hidden-page case, which is still why the threshold is 1 rather than 0. (lib/src/extensions/ext_perf.dart, doc/commands/dusk-perf-end.md)