-
QuoteForge v2.22 Stable
released this
2026-06-26 08:52:22 +03:00 | 2 commits to main since this releaseДата релиза: 2026-06-26
Тег:v2.22Что нового
Исправления
-
MB-автокомплит в конфигураторе теперь работает в offline-режиме. Корневая причина: прайслист мог быть синхронизирован до введения нормализации имён лотов, из-за чего SQLite хранил их в исходном регистре (
MB_AMD_2.Rome_...). Запрос на поиск цены отправлял уже нормализованное имя (MB_AMD_2.ROME_...),IN-сравнение в SQLite регистрозависимо — совпадений не было, цена возвращалась как null, и автокомплит показывал пустой список. Все запросы кlocal_pricelist_itemsпоlot_nameпереведены наUPPER(lot_name). -
Удалён мёртвый код инференса категории из имени лота. Функция
getCategoryFromLotNameна фронтенде выводила категорию из префикса лота (DKC_AFF_A1K→DKC) как fallback. Категория всегда приходит из прайслиста; функция удалена. Позиции без категории корректно попадают во вкладку «Other». -
Удалена таблица
local_componentsи весь связанный с ней код. Источник данных для компонентов — толькоlocal_pricelist_items. Убраны маршрутPOST /api/sync/components, поляComponentsSyncedиLastComponentSyncв ответах синхронизации. -
Support bundle расширен диагностическими файлами:
latest_pricelist_items.json(все позиции активного estimate-прайслиста),autocomplete_lots.json(позиции по категориям с флагомhas_price),local.db(полная копия SQLite-базы). -
Регистронезависимые сравнения lot_name на фронтенде: Set-коллекции для склада, добавленных позиций и корзины BOM теперь нормализуют ключи через
.toUpperCase().
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-
-
released this
2026-06-23 09:33:31 +03:00 | 11 commits to main since this releaseQuoteForge v2.19
Дата релиза: 2026-06-23
Тег:v2.19Что нового
Серверно-управляемые настройки конфигуратора
Типы устройств, структура вкладок и фильтры категорий теперь приезжают с сервера вместо жёстко заданных JS-констант.
- новая таблица
qt_settingsна стороне сервера (контракт вbible-local/server-contract-qt-settings.md); - QF синхронизирует
qt_settings→local_qt_settings(SQLite) после каждой синхронизации компонентов; - новый endpoint
GET /api/configurator-settingsотдаёт четыре настройки:config_types,tab_config,always_visible_tabs,required_categories; - при недоступности сервера или отсутствии таблицы QF автоматически использует прежние захардкоженные значения — поведение не меняется.
Динамический выбор типа оборудования
- модальное окно «Новая конфигурация» загружает типы устройств с сервера: названия и количество кнопок определяются в
qt_settings.config_types; - добавление новых типов устройств не требует обновления QF.
Серверно-управляемая фильтрация категорий
- конфигуратор фильтрует LOT-категории по списку из
qt_settings.config_types[].categories; - структура вкладок обновляется из
qt_settings.tab_config(порядок вкладок, подразделы, single-select режим); - бейдж на вкладке при незаполненных обязательных категориях (
qt_settings.required_categories).
Прочее
- тайтлы страниц переименованы с OFS на QFS.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- новая таблица
-
Release v1.18 Stable
released this
2026-06-18 14:25:55 +03:00 | 14 commits to main since this releaseQuoteForge v1.18
Дата релиза: 2026-06-18
Тег:v1.18Предыдущий релиз:
v1.17Ключевые изменения
- BOM: поддержка формата
<qty>x <description>при импорте Nx-спецификаций; - BOM: приоритет cart-LOT в дропдауне, корректный qtyMismatch при lot_qty_per_pn > 1;
- CSV экспорт: bundle (1 PN → N LOT) разворачивается в отдельные строки;
- ценообразование: ручная цена (buy/sale) сохраняется и экспортируется в CSV;
- ценообразование: таблица использует qty из корзины как источник истины;
- ценообразование: правильный порядок строк (MB→CPU→MEM→…) в pricing CSV и вкладке Ценообразование при отсутствии BOM;
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- BOM: поддержка формата
-
Release v1.16 Stable
released this
2026-06-16 17:29:28 +03:00 | 23 commits to main since this releaseQuoteForge v1.16
Дата релиза: 2026-06-16
Тег:v1.16Предыдущий релиз:
v1.15Ключевые изменения
- self-heal застрявших pending changes: конфигурации со ссылкой на удалённый проект теперь автоматически переназначаются на «Без проекта» вместо вечной ошибки;
- авторемонт очереди (
RepairPendingChanges) запускается автоматически перед каждым push-циклом; - после 20 неудачных попыток неисправимые записи удаляются из очереди (логируются как ERROR);
- неизвестные
entity_typeиoperationв очереди дропаются с предупреждением вместо блокировки; - детальная диагностика в
qt_client_schema_state.last_sync_error_text: теперь JSON-массив сuuid/op/attempts/errorпо каждому застрявшему изменению; - книги партномеров синхронизируются автоматически вместе с прайслистами.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
-
Release v1.14 Stable
released this
2026-06-16 09:17:10 +03:00 | 27 commits to main since this releaseQuoteForge v1.14
Дата релиза: 2026-06-16
Тег:v1.14Предыдущий релиз:
v1.13Ключевые изменения
- добавлен импорт человекочитаемого текстового BOM формата
<описание> - <кол-во> шт.
(с необязательным заголовком, оканчивающимся на, в составе:) — как при загрузке файла
черезPOST /api/projects/:uuid/vendor-import, так и при вставке в конфигураторе; - заголовок конфигурации определяется по маркеру
, в составе:с любым префиксом
(Сервер X3иВычислительный GPU сервер X3→ модельX3); - парсинг устойчив к пробелам в начале/конце строки (в P/N не попадает лишний пробел),
а также к запятым и дефисам внутри описания (RAID0,1,10,8-GPU-2304GB); - вставка BOM в конфигураторе и импорт файла используют единый серверный парсер
(POST /api/vendor-spec/parse-text) — дублирующая логика разбора на фронтенде удалена; - сабмодуль
bibleобновлён до актуальных контрактов (build-version-display,
local-first-recovery, резервные копии миграций).
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- добавлен импорт человекочитаемого текстового BOM формата
-
v1.12 Stable
released this
2026-06-03 13:46:24 +03:00 | 36 commits to main since this releaseфикс режиме работы кнопки скопировать когфин
Downloads
-
v1.10 Stable
released this
2026-06-02 14:06:18 +03:00 | 40 commits to main since this releaseQuoteForge v1.10
Дата релиза: 2026-06-02
Тег:v1.10Что нового
Новые возможности
- Support Bundle — кнопка-иконка в шапке рядом с именем пользователя скачивает ZIP-архив с диагностикой: версия приложения, статистика локальной БД, статус подключения с TCP-пингом до сервера, история синхронизаций (
sync_log), список скачанных прайслистов, системные метрики (память, диск), состояние readiness-блокировки и лог-файл приложения. - Автосинхронизация компонентов — при первом запуске с пустой таблицей компонентов фоновый воркер автоматически скачивает каталог из MariaDB. Новые пользователи сразу видят все вкладки и автокомплит артикулов без ручной синхронизации.
- Импорт собственного CSV QuoteForge — файлы, экспортированные из QuoteForge, можно импортировать обратно в конфигурацию.
- Кнопка «Обновить цены» на странице варианта проекта — обновление цен доступно прямо со страницы проекта.
- Импорт BOM Inspur в формате PN×qty — поддержка формата
артикул × количествопри импорте Inspur-спецификаций.
Исправления
- «Не докачано» исчезает когда всё на месте — исправлена логика
NeedSync: при наличии подключения всегда сравниваем реальные версии с сервером, не ориентируясь на давность последнего синка. Устраняет ситуацию когда бейдж висел вечно после сетевого сбоя, хотя все прайслисты уже были скачаны. - Синхронизация прайслистов через медленное соединение — увеличен
WriteTimeoutс 30 с до 10 мин. При высокой задержке до сервера (VPN, >300 мс) кнопка «Синхронизировать» больше не зависает без обратной связи. - ALTER-спам в логах — устранены повторяющиеся WARN
ALTER command deniedкаждые 5 минут. DDL наqt_client_schema_stateвыполняется не более одного раза за жизнь процесса и только если колонки реально отсутствуют. - Галочка «Создать копию» включена по умолчанию в обоих диалогах клонирования.
- Сортировка категорий в CSV-экспорте — исправлена сортировка без учёта регистра и правильный порядок (MB → CPU → MEM → RAID → диски → GPU → NIC → HBA → PSU → ACC).
/api/categoriesвозвращалdisplay_order: 0для всех категорий — исправлено.
Запуск на macOS
Снимите карантинный атрибут через терминал:
xattr -d com.apple.quarantine /path/to/qfs-darwin-arm64
После этого бинарник запустится без предупреждения Gatekeeper.Downloads
- Support Bundle — кнопка-иконка в шапке рядом с именем пользователя скачивает ZIP-архив с диагностикой: версия приложения, статистика локальной БД, статус подключения с TCP-пингом до сервера, история синхронизаций (
-
released this
2026-05-19 12:37:47 +03:00 | 55 commits to main since this release- Вынести sortConfigsByLine() — устранить дублирование sort.Slice
в ProjectToExportData и ProjectToPricingExportData - Добавить ConfigToPricingExportData() и ExportConfigPricingCSV handler
- Зарегистрировать POST /api/configs/:uuid/export/pricing
- Заменить клиентский DOM-скрапинг exportPricingCSV() на fetch к новому
endpoint; артикул теперь включается через pricingConfigSummaryRow
Downloads
- Вынести sortConfigsByLine() — устранить дублирование sort.Slice
-
release: v1.8 Stable
released this
2026-04-28 16:56:45 +03:00 | 58 commits to main since this releaseQuoteForge v1.8
Дата релиза: 2026-04-28
Тег:v1.8Ключевые изменения
- исправлен sync прайслистов при конфликте
local_pricelists.server_id: сохранение локального снапшота стало idempotent через upsert; - сохранение нового локального снапшота прайслиста теперь атомарно заменяет строки внутри одной транзакции;
- sync обновляет метаданные уже существующих локальных прайслистов;
- устаревшие sync/export тесты приведены к актуальному контракту,
go test ./...проходит полностью.
Downloads
- исправлен sync прайслистов при конфликте
-
v1.6.2 Stable
released this
2026-04-16 09:28:33 +03:00 | 62 commits to main since this releaseЧто изменено:
- на вкладке Storage в режиме сервера возвращена секция RAID Контроллеры
- в режиме СХД RAID по-прежнему скрыт
Downloads