d10c0a6439
Database batch events (update / insert / soft-delete / hard-delete) were building recordsBefore / recordsAfter after formatResult ran twice: once inside WorkspaceSelectQueryBuilder.getMany() / getOne(), and again in the CUD query builders. On the second pass, already-shaped composite fields (e.g. emails) went through formatFieldMetadataValue and kept the same object references as the live TypeORM row, so recordsBefore could change when the entity was updated—breaking workflow triggers and diffs.