HandleBrewView (~180 LOC) and HandleBrewOGImage now share one ref walker (resolveBrewRefsViaLookup) parameterized by a source-bound lookup. The two handler-layer copies (resolveBrewRefsFromWitness ~80 LOC, resolveBrewReferences ~60 LOC) are gone.
Behavioral changes: PDS path now resolves the recipe ref (was a gap — witness path always did). Own-store fromStore uses witness lookup instead of GetBrewRecordByRKey's authenticated-atpClient fallback; refs of fresh writes may lag by one firehose tick in the rare case where a brew and all its refs are simultaneously fresh-written.
Net -161 LOC, 892/892 tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com