Files
QuoteForge/bible
Michael Chus d0400b18a3 feat(vendor-spec): BOM import, LOT autocomplete, pricing, partnumber_seen push
- BOM paste: auto-detect columns by content (price, qty, PN, description);
  handles $5,114.00 and European comma-decimal formats
- LOT input: HTML5 datalist rebuilt on each renderBOMTable from allComponents;
  oninput updates data only (no re-render), onchange validates+resolves
- BOM persistence: PUT handler explicitly marshals VendorSpec to JSON string
  (GORM Update does not reliably call driver.Valuer for custom types)
- BOM autosave after every resolveBOM() call
- Pricing tab: async renderPricingTab() calls /api/quote/price-levels for all
  resolved LOTs directly — Estimate prices shown even before cart apply
- Unresolved PNs pushed to qt_vendor_partnumber_seen via POST
  /api/sync/partnumber-seen (fire-and-forget from JS)
- sync.PushPartnumberSeen(): upsert with ON DUPLICATE KEY UPDATE last_seen_at
- partnumber_books: pull ALL books (not only is_active=1); re-pull items when
  header exists but item count is 0; fallback for missing description column
- partnumber_books UI: collapsible snapshot section (collapsed by default),
  pagination (10/page), sync button always visible in header
- vendorSpec handlers: use GetConfigurationByUUID + IsActive check (removed
  original_username from WHERE — GetUsername returns "" without JWT)
- bible/09-vendor-spec.md: updated with all architectural decisions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-21 22:21:13 +03:00
..

QuoteForge Bible — Architectural Documentation

The single source of truth for architecture, schemas, and patterns.


Table of Contents

File Topic
01-overview.md Product: purpose, features, tech stack, repository structure
02-architecture.md Architecture: local-first, sync, pricing, versioning
03-database.md DB schemas: SQLite + MariaDB, permissions, indexes
04-api.md API endpoints and web routes
05-config.md Configuration, environment variables, paths, installation
06-backup.md Backup: implementation, rotation policy
07-dev.md Development: commands, code style, guardrails

Bible Rules

Every architectural decision must be recorded in the Bible.

Any change to DB schema, data access patterns, sync behavior, API contracts, configuration format, or any other system-level aspect — the corresponding bible/ file must be updated in the same commit as the code.

On every user-requested commit, the Bible must be reviewed and updated in that commit.

The Bible is the single source of truth for architecture. Outdated documentation is worse than none.

Documentation language: English.

All files in bible/ are written and updated in English only. Mixing languages is not allowed.


Quick Reference

Where is user data stored? SQLite → ~/Library/Application Support/QuoteForge/qfs.db (macOS). MariaDB is sync-only.

How to look up a price for a line item? local_pricelist_items → by pricelist_id from config + lot_name. Prices are never taken from local_components.

Pre-commit check? go build ./cmd/qfs && go vet ./...

What must never be restored? cron jobs, admin pricing, alerts, stock import, importer utility — all removed intentionally.

Where is the release changelog? releases/memory/v{major}.{minor}.{patch}.md