# VREL-031..060 — Resolver integrity and cross-screen product-media integration

Status: IN PROGRESS  
Parent batch: #244  
Parent blocker: #230  
Issue: #249  
Branch: `agent/vrel-031-060-media-integration`

## Resolver integrity — VREL-031..040
- VREL-031 — production resolver inventory is locked to exactly five released variant IDs.
- VREL-032 — Drawer White/Gray canonical paths are regression-tested.
- VREL-033 — Lunch Blue/Pink/Green canonical paths are regression-tested.
- VREL-034 — registered asset-backed media remains distinct from deterministic painted fallback.
- VREL-035 — registered production variants resolve to `WalkaAssetProductMedia`; the asset widget owns the normal image path.
- VREL-036 — unknown/missing registrations return the exact caller fallback; registered file load errors still use the asset media `errorBuilder` fallback.
- VREL-037 — owner-visible integration tests require semantic labels across Home/Discovery/Favorites/PDP surfaces.
- VREL-038 — missing/invalid asset paths retain visible painted fallback semantics instead of blank product media.
- VREL-039 — production decode contract remains bounded by `defaultCacheWidth == 1200`.
- VREL-040 — one inventory regression test snapshots all five IDs and paths.

## Home / Discovery — VREL-041..050
- VREL-041 — Home Hero now resolves Lunch Green and Drawer White through `WalkaResolvedProductMedia`.
- VREL-042 — Home Drawer Collection keeps stable `drawer-organizer:white` resolution.
- VREL-043 — Home Lunch Collection keeps stable `lunch-box:blue` resolution.
- VREL-044 — Home Small Changes now resolves Drawer White instead of direct painter ownership.
- VREL-045 — Categories category card remains resolver-aware.
- VREL-046 — Discovery product-row media resolves directly from catalog `item.variantId`.
- VREL-047 — Search results continue through shared `WalkaDiscoveryProductRow`, so they inherit the resolver boundary.
- VREL-048 — audited Home owner-visible modules no longer need screen-specific direct painter branches for canonical variants; asset admission can replace fallback centrally.
- VREL-049 — widget matrix exercises Home + Discovery at 320 and 430 widths with missing-asset fallback resilience.
- VREL-050 — the same matrix exercises 1280 desktop width and preserves resolver-backed rendering without overflow/crash.

## PDP / Favorites / Information — VREL-051..060
- VREL-051 — PDP primary gallery page uses the stable selected `variantId` production resolver.
- VREL-052 — selected PDP variant identity remains caller-owned and therefore drives the primary media path when the presentation model changes variant.
- VREL-053 — fullscreen gallery preserves the same primary `variantId` and source identity.
- VREL-054 — secondary PDP pages are explicitly deterministic illustrative fallbacks with semantics stating approved secondary product photography is pending; one primary cutout is no longer presented as three independent photographs.
- VREL-055 — Favorites saved Drawer card now resolves production media instead of directly owning the painter.
- VREL-056 — persisted White/Gray state maps to `drawer-organizer:white` / `drawer-organizer:gray` before media resolution.
- VREL-057 — About product story already resolves Drawer White + Lunch Blue and remains covered by the source contract.
- VREL-058 — Account composition is regression-guarded against unnecessary product-media resolver dependencies.
- VREL-059 — cross-screen source tests require product identity semantics and honest illustrative-fallback wording.
- VREL-060 — one cross-screen contract test reconciles released variant IDs across resolver, Home, Discovery, PDP, Favorites and About.

## Truth boundary
The canonical production PNGs are still source-admission dependent. These changes do not fabricate or bundle product photography. They make owner-visible surfaces ready to consume approved files automatically while keeping deterministic visible fallbacks for engineering/test builds.

## Required validation
- [ ] Flutter Analyze Green.
- [ ] Full Flutter tests Green, including source contracts and 320/430/1280 matrix.
- [ ] Android release APK candidate Green.
- [ ] Merge to stable main.
