test(trip-cover): cover-strip + retina-cap regression; bump user pin

- trip-header/trips-list specs now assert the cropZoom wide-strip aspect
  and the all-or-nothing retina rule (1x-only for sub-2w sources), and a
  new regression on us-canada-mex-2024 covers the reported portrait-blur
- remove the orphaned AE4 test (no-photos-demo fixture was deleted)
- backlog: full-res pixelfed reimport (luxury quality item)
- plan: record the cover-quality follow-up + AE4 fixture removal
- bump user pin -> 536ca20 (trip-description-hero cover fix)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K
This commit is contained in:
2026-07-07 23:39:32 +02:00
co-authored by Claude Opus 4.8
parent b752178eb4
commit 5276768e12
5 changed files with 68 additions and 21 deletions
@@ -274,10 +274,26 @@ intentionally-deferred findings.
non-image selection (e.g. a `.gpx` from the trip page media) can no longer
route a non-image Medium into `cropResize`. Also hardens R11.
- Test quality: replaced a vacuous `toContainText` in the description-clamp
spec with real clamp/un-clamp assertions; added the missing **AE4** coverage
(trip with no cover + no entry images → text-only header, no banner) via a
`no-photos-demo` fixture; corrected an R11 over-claim in the trips-list spec
header comment.
spec with real clamp/un-clamp assertions; corrected an R11 over-claim in the
trips-list spec header comment.
**Follow-up (2026-07-07)**
- **Banner/card cover quality fix.** The macro used `cropResize`, which
*fits-inside* preserving aspect ratio — so a portrait fallback source was
handed back as a ~165px sliver that the `object-fit:cover` box then upscaled
into a blur (reported on `us-canada-mex-2024`). Switched to **`cropZoom`**
(crop-to-fill → a real w×h cover strip). Retina is now **all-or-nothing**: the
2x `srcset` descriptor is emitted only when the source is genuinely ≥2×w
(`cover.width >= 2w`), else 1x-only — no upscaling, no intermediate widths.
Note: imported pixelfed photos cap at ~1440px wide, so auto-picked covers are
usually 1x-only; see `docs/working/backlog.md` (full-res re-import, luxury).
- **AE4 fixture removed.** The `no-photos-demo` fixture (and its browser test)
was deleted at the user's request — it surfaced as stray demo content in the
trip list. AE4 (no cover + no images → no banner) is a trivial else-branch of
the shared macro's `{% if cover %}` guard, covered by construction alongside
the R7/AE3 fallback tests. A regression test for the reported portrait-blur
bug now lives in `trip-header.spec.js` against `us-canada-mex-2024`.
**Intentionally deferred — explicit plan override (do not re-flag)**