Skip to content

Manual browser verification of RAW conversion cancellation (#248) was never performed #256

Description

@adulbrich

#248 shipped with its unit and component coverage complete (58 suites, 396 tests, all green) but its manual acceptance check was never performed. Filing it so the gap is tracked rather than assumed closed.

The behaviour #248 exists to deliver is a wall-clock improvement, and no automated test in the repo measures wall clock against a real RAW file. Every test in the change uses a fake worker or a deferred IO double. They prove the mechanism (a queued frame is skipped, a started one is not, the cache forgets the right entry), which is the part that can regress silently. They cannot prove the mechanism produces the user-visible effect it was built for.

What needs checking

Against a real CR2 bracket, on a running dev server:

  1. Cancellation actually saves time. Load a bracket, then before the conversions finish, remove the set and add a different one. The new set's first thumbnail should appear in roughly the time of one conversion (about 2 s) rather than after the whole abandoned queue drains (about 15 s for an eight-frame bracket). This is the entire point of the change.
  2. The right frame is removed. Right-click-remove on a thumbnail deletes the frame that was clicked. This covers Removing an image from a set deletes the wrong file when the stored order is not sorted #251, whose root cause was the sorted display index being applied to the unsorted stored array. There is a component test for it, but it exercises the handler rather than the real preview grid.
  3. No abort error surfaces where it should not. A removed frame's neighbours keep their thumbnails. In particular the mask preview should not be left showing a stale or errored image, which was the Critical finding fixed late in that PR.
  4. Run still works after a removal. Remove the previewed set, then press Run. This was the concrete failure mode of the Critical finding: the memoized metadata promise was awaited outside its try block, so Run did nothing at all, permanently, with no toast.

Item 4 is the one worth doing first. It was the most severe defect found in the whole change, and it is the one whose regression would be least visible.

Notes

The example CR2 bracket is the natural input. Frames are 5796x3870, so a full bracket is on the order of 673 MB of decoded TIFF, which matters because the LRU budget is 768 MB and two brackets in play is what triggers eviction.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions