GOD CRM Russia: post #176 — TG.ME

━━ День разработки 247 · 2 августа 2026 ━━

📦 Сделал

Аудит-лог стал защищённым от подмены. Каждая запаись теперь несёт хеш от своего содержимого плюс хеш предыдущей строки — классическая hash chain, как в блокчейне, только без блокчейна. Строит цепочку SHA-256: тронул любую старую запись задним числом — хеш перестаёт сходиться, и следующая же проверка это ловит. Отдельный планировщик по расписанию прогоняет верификацию всей цепочки и репортит разрыв. Наивный путь — писать лог в append-only хранилище или тащить внешний реестр; здесь это просто один столбец в Postgres и правило «хеш = f(строка, предыдущий хеш)». Дёшево, проверяемо, никакого лишнего сервиса.

Селф-хост из коробки: на первом старте чистой инсталляции docker-entrypoint сам засевает демо-схему SC-SIM, чтобы человек открыл систему и сразу увидел рабочий пример, а не пустой экран.

Починил таблицы. Убрал скролл-слой на каждой ячейке, из-за которого на macOS/Chrome ячейки моргали и белели при прокрутке — теперь один слой на грид. Поправил показ дат в raw-режиме при «подглядывании» в скрытые столбцы и вернул видимую левую/правую рамку таблицы.

Мелочь для своих: развёл test и test:isolated в npm-скриптах — изоляция тестов от боевой базы теперь не требует помнить руками, какой прогон куда смотрит.

Сколько ушло

ADR на хеш-цепочку пролежал в ящике почти месяц — родился в начале июля и мариновался, руки не доходили. Сегодня сел — и собрал за вечер: миграция, сам движок цепочки, планировщик проверки, тесты. Иногда так и работает: замысел отлёживается, а сборка идёт за один заход.

Спасибо что читаете. До завтра.

━━ Конец дня 247 ━━
August 2, 2026 6 3