From 957880d4b674bb5c82096c55e6d516aa666c6818 Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Thu, 22 Oct 2026 10:08:26 -0700 Subject: [PATCH] docs(testing): record capture aliases, preview ranges and the PR B follow-ups TESTING.md now states that case and Unicode spellings are aliases, that the preview serves byte ranges inside the capture pin, where the cancellation tests live, and two tracked follow-ups: the legacy batch's ungated cleanup unload under its own last inference, and the three files over the 800-line ceiling (split py/autotag.py first). --- TESTING.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/TESTING.md b/TESTING.md index 5227273a..009ab819 100644 --- a/TESTING.md +++ b/TESTING.md @@ -1427,6 +1427,22 @@ window completes there with a digest of the copied bytes; POSIX and Windows on Vocabulary rename, merge and delete bump the `tag_revision` of every image set they change (and `image_index_revision`), so a Tag dialog opened before the change gets `tag-conflict` on Save (`tests/test_pair_tag_maintenance.py`). +A case or Unicode spelling of a listed name (`A.PNG` for `a.png`, an NFD name) +is an alias too: each path part must be spelled as its directory lists it, so a +case- or normalization-insensitive filesystem (macOS, Windows) cannot store a +second locator. The capture preview answers one byte range with 206 (416 for +an unsatisfiable or multi-range header) inside the capture's pin, and a +cancelled preview, observe or Generate still closes its handle and ends its pin +or capture (`tests/test_api_annotations.py` `TestCancellation`, +`tests/test_model_gate.py`). + +Follow-ups (tracked, not accepted): the legacy Auto-tag batch's cleanup +`unload_model()` in `py/api/autotag_routes.py` is not gated against the +batch's own in-flight inference when the batch coroutine is cancelled (other +owners are kept out; the thread may log an error); and `py/autotag.py`, +`py/api/images.py` and `database/operations.py` are over the 800-line ceiling +(all three were before #249 PR B), with a split of `py/autotag.py` into +backends and service planned first. Budgets: `test_filter_work_is_bounded` always runs. It asserts that a plain first page makes 1 link SELECT and a plain cursor page none, that every filter shape