v3.40
Генерация артикула резолвила lot_category из одного прайслиста конфигурации (GetLocalLotCategoriesByServerPricelistID), поэтому world-only LOT (напр. GPU_NV_RTX_PRO_6000D_SERVER_84GB_PCIE, есть только в world) молча выпадал из артикула. Теперь категории берутся через GetLocalComponentCategoriesByLotNames (тот же world ∪ estimate, что и весь конфигуратор). BuildOptions.ServerPricelist убран; preview-article принимает pricelist_id, но игнорирует. Нераспознанные токены больше не пишутся как UNK: в артикул идёт lot_category как плейсхолдер (4xGPU, 2xCPU), сегмент помечается Recognized=false, добавляется warning с именем LOT. Конфигуратор подсвечивает такие сегменты (amber) и выводит список предупреждений; сохранение/обновление/откат логируют WARN. Без каталога вендоров в репо детектируется только структурный сбой формы имени. parseGPUModel: принимает суффикс-букву в номере модели (6000D → RTX6000D), раньше терял её и схлопывал до RTX_84GB. ADL bible-local/decisions/2026-09-01-article-category-from-component-universe.md, 2026-09-01-article-degraded-token-visibility.md; раздел «Article generation» в 02-architecture.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RAhfF4P1ySRZ67yyUUeVw2
QuoteForge
Local-first desktop web app for server configuration, quotation, and project work.
Runtime model:
- user work is stored in local SQLite;
- MariaDB is used only for setup checks and background sync;
- HTTP server binds to loopback only.
What the app does
- configuration editor with price refresh from synced pricelists;
- projects with variants and ordered configurations;
- vendor BOM import and PN -> LOT resolution;
- revision history with rollback;
- rotating local backups.
Run
go run ./cmd/qfs
Useful commands:
go run ./cmd/qfs -migrate
go test ./...
go vet ./...
make build-release
On first run the app creates a minimal config.yaml, starts on http://127.0.0.1:8080, and opens /setup if DB credentials were not saved yet.
Documentation
- Shared engineering rules: bible/README.md
- Project architecture: bible-local/README.md
- Release notes:
releases/<version>/RELEASE_NOTES.md
bible-local/ is the source of truth for QuoteForge-specific architecture. If code changes behavior, update the matching file there in the same commit.
Repository map
cmd/ entry points and migration tools
internal/ application code
web/ templates and static assets
bible/ shared engineering rules
bible-local/ project architecture and contracts
releases/ packaged release artifacts and release notes
config.example.yaml runtime config reference
Releases
47
QuoteForge v3.40
Latest
Languages
Go
63.9%
HTML
35%
Shell
0.4%
JavaScript
0.3%
Makefile
0.2%
Other
0.2%