Если продукт умеет создавать изображения, видео, музыку, речь и текст, должна быть возможность пожаловаться на любое из этого. Не на большинство. На любое.
Кнопка у нас была на части поверхностей. Это другое, и разницу легко упустить: проверка содержимого была подключена вручную в каждом конвейере, поэтому две студии вышли вовсе без неё, и никто не замечал, пока аудит не пошёл смотреть. Та же форма съела бы и это исправление — по одному забытому экрану за раз.
Каждая поверхность и проверка, которая это утверждает
Теперь кнопка жалобы есть у ответов чата, изображений, видео, музыки, голоса, речи в текст, текста в речь, перевода, работ на холсте, результатов процессов, пузыря ассистента и публичных общих страниц — в вебе и в приложении.
Важнее другое: при каждой сборке запускается проверка. Файл, импортирующий интерфейс генерации, обязан отрисовать кнопку жалобы, делегировать компоненту, который её несёт, либо держать исключение с причиной, которую можно проверить. Первый же запуск сообщил о шести настоящих пробелах. Именно их закрывает эта работа.
Затем владелец открыл работающее приложение и нашёл ещё пять, которых проверка не видела, потому что они лежали в папках, куда она никогда не заглядывала. Это худшая половина проблемы — страж, сообщающий ноль, проходя мимо кода, который он ни разу не прочёл, — и поэтому проверка теперь называет собственные корни и падает, когда один из них перестаёт находиться.
Одна очередь и действия прямо в строке
Общие страницы уже давно несли кнопку жалобы, писавшую в таблицу, которую никто не читал: ни потребителя, ни записи в очереди, ни уведомления. Теперь такие жалобы открывают и настоящее дело, а рядом заморожен тот самый текст, который нужен проверяющему.
А очередь, действия которой живут на другой странице, — это очередь, которую перестают разбирать. Скрыть содержимое или закрыть жалобу теперь можно прямо в строке, и результат записывается обратно, чтобы ничего не пересматривали заново.