Замечания владельца в операторской консоли: аудит показывал сырые идентификаторы
(Карточка: c_c6183f1a9ae4, Колонка: b_f52b98e78b55) и разнобой форматов у старых записей
(Изменённые поля: autoMonitorNew и Изменённые поля: ["autoMonitorNew"]), без «было → стало».
Новый IAuditReferenceResolver/AuditReferenceResolver: в проекции аудита идентификаторы карточек
(c_…) разрешаются в заголовок, контейнеров (b_…) — в имя колонки. Работает и для старых,
и для новых записей; чтение идёт в scope нужного тенанта, сбои одного тенанта не ломают страницу.
Устаревший список изменённых настроек (fields как JSON-массив) нормализуется к строке через запятую.
Фронтенд: ключи настроек подписаны по-русски, служебные колонки (inbox/archive/trash) —
человекочитаемо, поле «Куда» переименовано в «Колонка».
Перемещение карточки пишет прежнюю и новую колонку (CardMoveResultDto.From/To), изменение колонки — переименование «было → стало», разбор старого плоского формата спаривает oldBudget/budgetTokens и oldPeriod/period. Добавлены тесты разбора.
settings_updated пишет по каждому ключу «поле: было → стало» (скаляры и списки; секреты и снимки состояния — пометкой «изменено»), длинные значения обрезаются.
stepan
changed title from Аудит: показывать изменение «было → стало» to Аудит: читаемые имена и «было → стало» вместо сырых данных2026-09-13 21:39:19 +03:00
Дополнение: изменения без изменения значения (например, Период: Месяц → Месяц из старого формата лимитов)
больше не показываются — в проекции аудита пары «было == стало» отфильтровываются.
Живая проверка: tenant_limit_changed теперь отдаёт только изменившийся бюджет.
Дополнение: изменения без изменения значения (например, `Период: Месяц → Месяц` из старого формата лимитов)
больше не показываются — в проекции аудита пары «было == стало» отфильтровываются.
Живая проверка: `tenant_limit_changed` теперь отдаёт только изменившийся бюджет.
Тест: `AuditViewFactoryTests.Project_DropsUnchangedValues` (core 1363 — зелёные).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ссылки на задачи: #25, #29
Замечания владельца в операторской консоли: аудит показывал сырые идентификаторы
(
Карточка: c_c6183f1a9ae4,Колонка: b_f52b98e78b55) и разнобой форматов у старых записей(
Изменённые поля: autoMonitorNewиИзменённые поля: ["autoMonitorNew"]), без «было → стало».Что сделано
«Было → стало» (задача #25)
card_movedпишет прежнюю/новую колонку;container_updated— «Имя: было → стало».settings_updatedпишет по каждому ключу PATCH «было → стало»; составные значения — пометкой «изменено».oldBudget↔budgetTokens,oldPeriod↔period).field: from → to).Читаемые ссылки и единый формат (задача #29)
IAuditReferenceResolver/AuditReferenceResolver: в проекции аудита идентификаторы карточек(
c_…) разрешаются в заголовок, контейнеров (b_…) — в имя колонки. Работает и для старых,и для новых записей; чтение идёт в scope нужного тенанта, сбои одного тенанта не ломают страницу.
fieldsкак JSON-массив) нормализуется к строке через запятую.inbox/archive/trash) —человекочитаемо, поле «Куда» переименовано в «Колонка».
Живые проверки (локальный докер)
card_moved→[{"field":"cardId","to":"Бэкенд-разработчик C# .NET"},{"field":"to","to":"C#"}]settings_updated→[{"field":"autoMonitorNew","from":"false","to":"true"},{"field":"minLen","from":"24","to":"42"}]fields→[{"field":"fields","to":"autoMonitorNew"}](без скобок JSON)Проверки
fieldsи резолвера ссылок) — зелёные.npm run build+npm run lint:i18n— чисто.Аудит: показывать изменение «было → стало»to Аудит: читаемые имена и «было → стало» вместо сырых данныхДополнение: изменения без изменения значения (например,
Период: Месяц → Месяциз старого формата лимитов)больше не показываются — в проекции аудита пары «было == стало» отфильтровываются.
Живая проверка:
tenant_limit_changedтеперь отдаёт только изменившийся бюджет.Тест:
AuditViewFactoryTests.Project_DropsUnchangedValues(core 1363 — зелёные).