FLS23 — the audit projection holds on a repeat read after an unrestricted user's identical
read, the cache-path counterpart of FLS22.
Record Changes rows are written by a stored procedure rather than the entity layer, so no
entity event could invalidate a slot holding them, and the server never caches them. Their
denials also belong to the entity each row is about, which a slot key for Record Changes could
not carry. So the check pins both halves: the writer's warm-up writes NO server slot (a slot
would be a shared surface no field-security segment can split), and the reader's identical
read, made right after it, still comes back narrowed.
FLS23 — the audit projection holds on a repeat read after an unrestricted user's identical read, the cache-path counterpart of FLS22.
Record Changes rows are written by a stored procedure rather than the entity layer, so no entity event could invalidate a slot holding them, and the server never caches them. Their denials also belong to the entity each row is about, which a slot key for Record Changes could not carry. So the check pins both halves: the writer's warm-up writes NO server slot (a slot would be a shared surface no field-security segment can split), and the reader's identical read, made right after it, still comes back narrowed.