# QuoteForge v1.5.4

Дата релиза: 2026-03-16
Тег: `v1.5.4`

Предыдущий релиз: `v1.5.0`

## Ключевые изменения

- pricing tab переработан: закупка и продажа разделены на отдельные таблицы с ценами за 1 шт.;
- экран прайслиста переработан под разные типы источников; удалены misleading-колонки `Поставщик` и `partnumbers`;
- runtime и startup ужесточены: локальный клиент принудительно работает только на loopback, конфиг автоматически нормализуется;
- добавлены действия с вариантом и унифицированы правила именования `_копия` для вариантов и конфигураций;
- исправлен CSV-экспорт прайсинговых таблиц в конфигураторе под Excel-совместимый формат Excel-friendly;
- таблица проектов переработана: дата последней правки, tooltip с деталями, отдельный автор, компактные действия и ссылка на трекер;
- sync больше не подменяет `updated_at` проектов временем синхронизации;
- добавлена одноразовая утилита `cmd/migrate_project_updated_at` для пересинхронизации `updated_at` проектов из MariaDB в локальную SQLite;
- runtime config, release notes и `bible-local/` очищены и приведены к актуальной архитектуре;
- `scripts/release.sh` больше не затирает существующий `RELEASE_NOTES.md`.

## Summary

### UI и UX

- вкладка ценообразования теперь разделена на отдельные таблицы закупки и продажи;
- список проектов переработан: новая колонка даты, отдельный автор, tooltip с деталями, компактные действия, ссылка на трекер;
- для вариантов добавлены действия переименования, переноса и копирования;
- копии вариантов и конфигураций теперь именуются единообразно: `_копия`, `_копия2`, `_копия3`.

### Прайслисты и экспорт

- экран прайслиста переработан под разные типы источников;
- из прайслистов убраны misleading-колонки `Поставщик` и `partnumbers`;
- CSV-экспорт прайсинговых таблиц в конфигураторе приведён к Excel-совместимому формату.

### Runtime и sync

- локальный runtime нормализует `server.host` к `127.0.0.1` и переписывает некорректный runtime config;
- sync перестал подменять `updated_at` проектов временем локальной синхронизации;
- добавлена утилита `cmd/migrate_project_updated_at` для восстановления локальных дат проектов с сервера.

### Документация и release tooling

- `bible-local/` сокращён до актуальных архитектурных контрактов;
- release notes и release-структура приведены к одному формату;
- `scripts/release.sh` теперь сохраняет существующий `RELEASE_NOTES.md` и не затирает его шаблоном.

## Затронутые области

- `cmd/qfs/`;
- `cmd/migrate_project_updated_at/`;
- `internal/localdb/`;
- `internal/services/project.go`;
- `internal/services/sync/service.go`;
- `internal/handlers/pricelist.go`;
- `web/templates/pricelist_detail.html`;
- `web/templates/index.html`;
- `web/templates/project_detail.html`;
- `web/templates/projects.html`;
- `web/templates/configs.html`;
- `bible-local/`.

## Совместимость

- схема данных не меняется;
- серверные SQL-миграции не требуются;
- для уже испорченных локальных дат проектов можно один раз запустить `go run ./cmd/migrate_project_updated_at -apply`.
