Presentation repair above 1.0.10-memory-playtest.1

This existing Patch Pipeline layer composes ten final C++ inputs. They are
copied to generated/render-stability outside the checkout: the bridge, renderer,
texture cache, framebuffer renderer, state, workload queue, present queue and
online fullscreen consumer, plus matching library/direct present gates with the
immutable picture classifier. RT64 interface consumers use that same gate. Existing include
paths and compiler properties are retained. Submodules, RecompiledFuncs and
RecompiledPatches stay read-only. No guest function, heap policy, canonical state,
save routing, wire protocol, peer identity or launcher design is changed.

Water selection is an immutable scene-specific metadata object. Before the
original fullSync, the bridge associates it with the exact workload slot and
submission frame. Both the queued and synchronous renderer paths bind that
publication while taking their texture snapshot. Queue-slot reuse checks the
frame number; cache clear/destruction clears publications and changes its era.
The original GPU waits, SP/DP completion and texture ownership remain intact.

Active families sharing a hash are merged transitively. Missing artwork or a
nonresident member selects native textures for the complete connected group.
The frozen decision covers descriptors and tile dimensions/filter/mip flags.
Prior scenes do not remain in a cache-global family history. Metadata is bounded;
unexpected capacity overflow fails closed to native selection.

Eviction has a separate monotonic signal. Unchanged scenes can requeue missing
members of complete groups without rehashing textures or forcing synchronous
loads. Stream policy, selected layer and upload-worker deduplication are retained.
Recovery uses at most five attempts, at least one second apart, with at most 128
paths in a batch. A later eviction rearms recovery. Partial packs do not consume
family prefetch/recovery requests they can never complete. Ordinary texture-cache
behaviour is retained.

Coverage diagnostics distinguish absent artwork from residency. The submitted
memory image and existing decode workspace are compared only when an existing
guard rejects data. The report distinguishes changed commands, changed payloads,
unchanged checked bytes, private/out-of-range data, and a shared decode buffer
where no independent baseline exists. It does not claim a producer fault from
an inconclusive baseline. The existing reusable 16 MiB private decode arena is
also used for stock frames, preserving their original 8 MiB submission image.
This adds at most one 8 MiB CPU copy per stock frame; optional paths already
using the arena keep their existing copy count. No full RAM dump is introduced.

configure.py chains the accepted memory overlay. audit.py checks exact counted
composition, all ten actual compiler bindings, the complete retained memory/
online source audit chain, linked guards and unchanged peer contracts.
DKRRenderStabilityChecks exercises scene isolation, transitive overlap, eviction,
cache eras, descriptor/tile agreement, worker concurrency and bounded provenance.
DKRLiquidResidencyChecks compiles the production residency body against synthetic
cache/queue interfaces and a controlled clock; it exercises full/partial packs,
CRC identities, stream priority, retry limits, optics changes, correction reuse
and real asset invalidation. It contains no
ROM/game/renderer/GPU execution. run_checks.py also runs all retained fixtures.

package.py reuses the existing runtime allowlist for Windows ZIP and Linux
AppImage. Archive read-back and ELF metadata inspection remain required. This
layer is presentation-only, so the accepted memory peer identities are retained.
No stable signing, publication, deployment or source commit is performed here.
