Group of 2 You'll notice
Reading an artifact's asset now has a dedicated public path and refusal message for readers outside the owning organization
What
- Reading an asset from an artifact (
read_asset) now supports a distinct "public read" path used when the requester is outside the artifact owner's organization. The read result gains apublic_read/publicmarker, the underlying fetch function takes a newadmitPublicReadcallback and returnspublicReadin its result, and a dedicatedpublic_refusederror reason covers the case where a public artifact doesn't serve that asset to outside readers. - A companion refusal path gains a
public_outside_orgcase, returning the same message text used in the resume_replies flow. Share-status records now also track anoutsideOrgReaderflag, cleared whenever the account boundary changes, alongside the existingprobeErrorCodeandrolefields.
Why This gives artifacts a defined public-read path for people outside the owner's organization, with clear refusal messages when that access isn't available, instead of treating all outside-org reads the same way.