catalogue.InRegistrySeat now reads the holder's upstream naming and InArtifactStore derives its store path, so forms' own reader goes, and the upstream rows run the encode check again. Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig