@@ -3,7 +3,7 @@ status: diagnosed
33phase : 11-infra-refactor-lint-capstone
44source : [11-VERIFICATION.md]
55started : 2026-07-21T00:00:00Z
6- updated : " 2026-07-21T13:21:20Z "
6+ updated : " 2026-07-21T17:39:51Z "
77---
88
99<!--
@@ -18,11 +18,21 @@ gate treated as overridden so UAT could proceed. Reported upstream against
1818
1919## Current Test
2020
21- [ testing paused — 1 item outstanding]
21+ [ testing paused — 3 items outstanding]
2222
23- Test 3 (zero-favourites detail parse) remains pending — deferred until a suitable
24- gallery is found. Suggested route: sort the front page by newest and open a
25- just-posted gallery, which has zero favourites by construction.
23+ Outstanding, all requiring the owner on a device:
24+
25+ 1 . ** Test 3** (zero-favourites detail parse) — never run. Route: sort the front page by
26+ newest and open a just-posted gallery, which has zero favourites by construction.
27+
28+ 2 . ** Test 7 re-test** (G-11-7 pagination) — fix applied but runtime-unconfirmed. Scroll a
29+ multi-page list to the end in BOTH display modes (` .detail ` and ` thumbnail ` ) and confirm
30+ it appends past three pages. Thumbnail must stay working; it was the control in the
31+ falsification test.
32+
33+ 3 . ** Test 8 re-check** (G-11-8 symbol size) — fix applied, shipped ` .medium ` not ` .small ` .
34+ Must be checked inside a real list; a free-standing ` #Preview ` shows no difference at all.
35+ Also worth a glance: the Torrents sheet (4 stat icons) and the download-badge branch.
2636
2737## Tests
2838
@@ -117,7 +127,19 @@ blocked: 0
117127
118128- gap_id: G-11-7
119129 truth: "Scrolling a gallery list to the end fetches and appends the next page"
120- status: failed
130+ status: fix_applied_pending_confirmation
131+ resolved_by: 11-30-PLAN.md
132+ resolved_at: 2026-07-22
133+ fix_shipped: "PRIMARY form, not the fallback. ` .onScrollVisibilityChange ` on the row Button
134+ inside DetailList's ForEach; ` .autoLoadNextPage(...) ` deleted from that List.
135+ AutoLoadNextPage's body, guards, thresholds and state are untouched — it was rescoped by
136+ deleting its DetailList call site plus a doc-comment rewrite. No reducer, no
137+ Setting.listDisplayMode, no @State on DetailList. Commits: 8325c5c5, d7b90d8a, 96592d0d."
138+ unverified: "COMPILE-LEVEL AND STRUCTURAL ONLY. Not runtime-confirmed: whether the trigger
139+ fires on arrival at the trailing row, paginates past three pages, holds on a second surface,
140+ and leaves thumbnail mode unchanged. All four need an owner device re-test in BOTH display
141+ modes. If the row-level callback turns out never to fire inside a List, the sanctioned
142+ fallback is ` .onScrollTargetVisibilityChange(idType:) ` + ` .scrollTargetLayout() ` ."
121143 reason: "User reported: frontpage list (probably all lists) fetch more feature is broken, it just reach the end and won't fetch more"
122144 severity: blocker
123145 test: 7
@@ -194,7 +216,34 @@ blocked: 0
194216
195217- gap_id: G-11-8
196218 truth: "The page-count symbol in the gallery cell renders at its prior size"
197- status: failed
219+ status: fix_applied_pending_confirmation
220+ resolved_by: 11-31-PLAN.md
221+ resolved_at: 2026-07-22
222+ fix_shipped: "All six sites ship ` .imageScale(.medium) ` — NOT the ` .small ` the plan defaulted to
223+ and this gap's ` missing ` list recommended as repo precedent. Settled by measuring inked glyph
224+ bounds in a real List, not by eye: baseline (pre-6dd51b00 bare Image) 16.25x13.25; unfixed
225+ Label 21.0x17.25 (~ 29% wider); ` .small ` 13.0x10.75 (undershoots baseline by 3.25pt);
226+ ` .medium ` 16.25x13.5 (matches). ` .small ` would have traded one appearance regression for
227+ another. Commits: 01b79ff7, 66f08295, 5c58d3e2, 23db6fcd."
228+ diagnosis_corrected: "The recorded mechanism in this gap's root_cause was FALSIFIED by
229+ measurement. Free-standing, a Label's icon is pixel-identical to a bare Image (both 20x16 at
230+ .footnote) — titleAndIcon does not inflate the icon on its own. The inflation is LIST-SPECIFIC.
231+ The six-sites conclusion still holds but for a different reason: ThumbnailList wraps the whole
232+ MasonryLayout in one eager List row, so the masonry grid is inside a List too. Had the
233+ list-specific mechanism been known first, the thumbnail cell would have looked exempt and been
234+ missed. Debug note corrected in commit ab19f888."
235+ no_regression_test: "This plan ships NO automated regression test. A parity test measuring glyph
236+ ink bounds in a real List was built and RED/GREEN-verified (fails on .small, passes on .medium)
237+ — it produced every number above — then removed: rendering a List needs a UIWindow
238+ (ImageRenderer draws an unsupported-content placeholder), every scene-free UIWindow initializer
239+ is deprecated on iOS 26, and the test host exposes no UIWindowScene. Keeping it meant shipping
240+ a deprecation warning, which policy forbids. Remaining protection is the grep gate plus the
241+ owner's visual check."
242+ unverified: "Dynamic Type at accessibility sizes not empirically confirmed — the structural
243+ guarantee holds (relative scale, zero absolute point sizes, gate-verified) but the AX3 fixture
244+ could not fit four rows in the render frame. Also unverified without a device: the Torrents
245+ sheet and the download-badge branch. CAUTION: re-checking in a free-standing #Preview will show
246+ NO difference at all — the effect exists only inside a List."
198247 reason: "User reported: the symbol indicating page count looks larger before it became label (symbol in gallery cell)"
199248 severity: cosmetic
200249 test: 8
0 commit comments