Conversation
b0a0a8c to
6930636
Compare
The interface could say a job was "Verified" without ever showing why. The source checksum and the destination's — the claim the whole tool rests on — existed only in the CSV and the PDF, so the person deciding whether to reformat a card had to open a report to see the evidence for it. The selected job's files now sit next to the queue: size, both hashes, and a doubled check mark for a copy that was written and read back. The queue is the rail and this is its detail pane, split rather than tabbed so the proof is visible at the same time as the job it belongs to. Hashes are abbreviated head:tail rather than truncated, because a prefix alone cannot tell a matching pair from a near-miss that happens to share one — which is the only thing these two columns are for. Full values, every destination path and any per-destination error are in the tooltip. The colour is deliberately conservative: green only when the pair agrees and every destination agrees with the others too. Destinations that disagree read "mismatch" rather than showing the first and hiding the rest — both copies come from a single read, so they cannot legitimately differ, and that is a finding rather than a detail. A file the engine called copied whose destination hash differs from the source gets no green either. Rebuilding is skipped when the same job object comes back, since the panel is told about the selection on every progress event and would otherwise reset the table dozens of times a second. The screenshot tool gains a finished job so the pictures show the pane doing its work rather than inviting the reader to select something, and a trailing progress sample so the queue's throughput column is populated: the rate is measured against the clock now, so a hand-built item had none and the column came out blank.
Only disagreement was covered, so a model that reported 'mismatch' for every multi-destination job would have passed the suite while making the normal two-copy preset look like a fault. The tooltip is pinned to list every destination and any per-destination error, since the row has no room for either, and a file with no destinations at all — a skipped one — is checked not to fall through to the colour that means proved.
8feacad to
c139b06
Compare
owenpkent
left a comment
There was a problem hiding this comment.
Reviewed the new file model/pane, job selection wiring, checksum abbreviation, multi-destination aggregation, tooltips, and queue/file split layout.
Validation: 20 targeted file-list tests passed on this head and git diff --check passed. The full checksum and each destination's path/status remain available in the tooltip, and disagreement between populated destination checksums is represented explicitly instead of showing only the first result.
A verification-mode presentation concern is included in the private review notes under the repository's integrity policy. It concerns the evidence implied by the new indicator, not a change to the engine's copied bytes. No interactive desktop walkthrough was performed.
Summary
The interface could say a job was "Verified" without ever showing why. The source checksum and the destination's — the claim this whole tool rests on — lived only in the CSV and the PDF, so the person deciding whether to reformat a card had to open a report to see the evidence.
The selected job's files now sit beside the queue: size, both hashes, and a doubled check for a copy that was written and read back. The queue becomes the rail and this is its detail pane, split rather than tabbed so the proof is visible at the same time as the job it belongs to.
Decisions worth reviewing
28F7:EA9B). A prefix alone cannot distinguish a matching pair from a near-miss that shares one, which is the only thing these two columns exist for.test_abbreviation_keeps_the_tailasserts it.mismatchwhen destinations disagree with each other. Every copy comes from a single read, so they cannot legitimately differ — showing the first and hiding the rest would bury a real finding.COPIEDwhose destination hash differs from the source gets no green.Most of the 16 tests cover the cases where the claim is not clean, since those are the rows that must not be misread as verified.
On the left rail
The other half of the inspiration was a vertical job rail. I did not build one: this window already has a left rail (drives), and a second would be clutter rather than clarity. Making the queue the rail with a detail pane gets the same structure without it. Say the word if you want actual vertical job cards instead.
Screenshot tool
Two fixes it needed to document this honestly:
All three README images are regenerated, since the layout they document changed.
Test plan
tests/test_gui_file_list.py— 16 tests: abbreviation incl. tail-sensitivity, verified pair coloured, mismatched destination not coloured verified, destinations disagreeing saymismatch, failed file marked, tooltip carries full hashes, summary counts "verified 2 of 3 / 1 failed", no rebuild on repeat, waiting message still updatesruffclean (extends the existing QtB008per-file ignore already granted toqueue_view.py)offloader-gui.exelaunches and runs