Adopt a peer's unmeasured faces instead of refusing them
The tablet showed a fraction of each person: 681 of the desktop's 3,851 confirmations, and none of Ian's 746, Catherine's 626 or my own 480. Every face that existed on both devices agreed on who it was, and the people rows were identical — the merge was fine. The missing 3,170 confirmations were on faces the tablet did not hold at all: the desktop's 16,080 faces from the original detector, on 4,310 images, detected before schema V14 kept the quality reading. Those faces were in shards the tablet had already downloaded, in August's export. `import_from_shards` looked at them on every sync pass and declined each one, because a face without a quality reading was "work this device cannot finish": adopting it would write the run marker, and the marker was what stopped an image being looked at again. That was true when it was written and has not been since the quality repair existed — that pass lists its work by `f.quality IS NULL`, not by the marker, exactly as the eye pass does, and faces without an eye reading were already adopted on that reasoning. The refusal had no exit. V14 had deleted the markers of every image holding such faces so the quality pass would find them, and `export_to_shards` walks the markers, so the desktop never re-exported them either; the unmeasured August copies were the only ones there would ever be. The tablet's answer was to queue all 17,727 images for a re-detection of its own, a fetch of the whole library, while holding the faces on disk. Adopt them. The receiving device's quality pass measures them when it reaches them, and the desktop's confirmations match onto them by box overlap on the next catalog merge. The test that asserted the refusal now asserts the adoption and that the image is still owed to the pass.
This commit is contained in:
+23
-23
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user