Repository navigation
v0.4.1: Факт сделки, ресурсный план, PostgreSQL по умолчанию
EvaCal v0.4.1 — факт сделки, ресурсный план, PostgreSQL по умолчанию
Релиз собирает всё, что вошло в main после v0.4.0: PR #72–#82.
Главное: PostgreSQL стал СУБД по умолчанию, а поверх согласованных
расчётов появился контур факта — исход сделки, фактические часы и сроки,
ресурсный план по портфелю и аналитика отклонений.
Новое
- Калибровка оценки по похожим проектам (#72). Для расчёта подбираются
утверждённые расчёты того же шаблона с близкими ответами опросника
(расстояние Гауэра); панель показывает медианную поправку, коридор часов,
калиброванную оценку, типичный срок и этапы, которые архитектор обычно
правит. Гостям по share-ссылке соседи показываются обезличенно. - Факт и исход сделки (#78, Horizon E1). Исход на проекте: выиграна
(версия договора, сумма без НДС), проиграна (причина, конкурент),
отменена. Факт часов и дат по этапам выигранной версии, факт РП,
закрытие факта, CSV-импорт с dry-run. Страница/analyticsс вкладками
«Сделки» и «Точность оценок». Калибровка получила третий слой
«факт / утверждено», рейтинг — win rate у пресейлов и медиану отклонения
у архитекторов. - Ресурсный план по портфелю (#79, E2). Спрос из Гантов всех проектов
по ISO-неделям и ролям с весами воронки, ёмкость ролей с датой действия
(/admin/capacity), тепловая карта/capacityна 13 или 26 недель,
what-if со сдвигом расчётов и применением черезPOST /api/capacity/apply,
выгрузка в xlsx, полоса «Перегруз по портфелю» над Гантом и виджет
загрузки на главной архитектора. - Контроль сроков и отклонения по задачам (#80, E3). Статус этапа и
проекта по датам факта (в графике / риск срыва / опоздание / завершён),
прогноз окончания. График медианных отклонений по одинаковым задачам и
конструктор срезов/analytics/deviationsс фильтрами, группировками,
метриками (медиана, среднее, P90), сохранением срезов и выгрузкой в xlsx. - PostgreSQL по умолчанию (#73, #76).
docker compose upподнимает
сервисpostgres, контейнерmigrateприменяет версионированные миграции
изprisma/postgresql/migrations, CI гоняет тесты, сборку и e2e против
той же СУБД. SQLite остаётся режимом одного стенда
(DATABASE_PROVIDER=sqlite). - S3-совместимое хранилище артефактов (#75). ZIP выпущенных комплектов
и DOCX тех.писателя можно хранить в AWS S3, MinIO, Yandex/VK Object
Storage или Ceph RGW; включается заданнымS3_BUCKET. Для файлового
режима объявлен томstorage-data— раньше артефакты жили в слое
контейнера и терялись при его пересоздании.
Исправлено
По код-ревью стопки E1–E3 (#82):
- Панель факта не рисовала ячейки дат факта и сдвига: шапка объявляла
девять колонок, строка выводила пять. - Применение what-if шло через PATCH расчёта, который отказывает
утверждённым версиям, и при первой ошибке оставляло уже применённые
сдвиги на панели. Новый эндпоинт переносит даты этапов с сохранением id. - Замок закрытого факта пропускал повторное «выиграно» и смену версии
с потерей факта; непереданная сумма обнулялась. - Сохранённые срезы: обновление только автором или админом, 404 на
несуществующий id. - Рейтинг: исход сделки приписывается автору выигранной версии, проигрыш —
автору последней; проект без расчётов не входит в win rate. - CSV-импорт факта помечает одноимённые этапы как неоднозначные вместо
записи в последний попавшийся. - Калибровка не считает соседями свои версии и не теряет обнулённые этапы (#72).
Обновление с 0.4.0
- Смена СУБД по умолчанию. Стенд на SQLite продолжит работать, если в
.envзадатьDATABASE_PROVIDER=sqliteиDATABASE_URL=file:./prisma/dev.db
и пересобрать образ с тем жеDATABASE_PROVIDER. Без этого compose
поднимет PostgreSQL с чистой базой. Перенос данных между SQLite и
PostgreSQL штатной командой не делается, см. README. - Схема. Новые модели и поля под исход сделки, факт, ёмкость ролей и
срезы. PostgreSQL:prisma migrate deploy(делает контейнерmigrate).
SQLite:prisma db pushчерезnpm run db:sync. - Артефакты. Если комплекты лежали в слое контейнера, перед пересозданием
скопируйте/app/storageв томstorage-dataили в S3.
Проверено
npm audit --audit-level=high — 0 уязвимостей. 597 юнит-тестов в 71 файле.
Jenkins на коммите 6408388: аудит, lint, typecheck, тесты, сборка и
сквозной сценарий ГОСТ 34 против PostgreSQL — зелёные.
Образ
ghcr.io/onixus/evacal:0.4.1
ghcr.io/onixus/evacal:latest
Мультиарх, linux/amd64 + linux/arm64. Манифест:
sha256:5b5df7fea2f29f8f88e94e43d483751b18d0e634cc993e0268e0ad6b7f29c287
Образ собран из того же коммита, на который указывает тег (387516a).