Implements the plan from the carpenter walkthrough audit: make the project flow -> final review -> PDF path measurable and safe to gate CI on. - projectHydrationService loads a project's geometry/labor/materials/ rentals/packages/calculation in parallel and reports per-resource timing plus the slowest resource, so hydration SLA breaches are visible instead of silent - projectReadiness centralizes the blocking checks final review must pass before a quote can be sent (name, customer, description, materials/labor present, zero-price lines) - pdfSourceSignature detects when a generated PDF is stale relative to the current project data, so a carpenter doesn't send an outdated quote - MaterialLinkReview + new customer-projects match-preview/link endpoints let a user review and confirm suggested master-material matches instead of silently auto-linking - ProjectFlow refactored around the new hydration/readiness utilities; FinalReview surfaces readiness checks and unlinked material counts - CI: the carpenter smoke test (full-roof-quote-flow.spec.js) is now a blocking gate on main, with the rest of the Playwright suite running best-effort alongside it - docs/qa/CARPENTER_WALKTHROUGH_RELEASE_GATE.md documents the gate and the monthly production audit procedure Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Tilbudsgivern dokumentation
Denne mappe indeholder den aktive dokumentation for Tilbudsgivern. Historiske implementeringsrapporter, afsluttede fixnoter og gamle testbatcher ligger i arkivet.
Start her
| Område | Dokumentation |
|---|---|
| Lokal udvikling | Repository README og AGENTS.md |
| Produktets retning | Mission |
| SmartPakker | Funktionsoversigt og totalgennemgang |
| Tilbudsflow | Professionel tilbudsstruktur og AI-promptguide |
| Ordrestyring | API-inventar, GraphQL-integration og referencecase 2591 |
| Drift | Deployment, pipeline, PM2, logging og backup |
| Sikkerhed | Krypteret miljøkonfiguration og sikkerhedsregler |
| Test | UI-testopsætning og SVG-testguide |
| Aktuel kvalitet | Månedlig tømrerkontrol og seneste statusrapporter |
Systemoversigt
Tilbudsgivern består af:
- en React 18-frontend i
frontend/src/; - en samlet Express-server i
backend/unified-server.js; - backend-services og routes i
backend/src/; - MySQL/MariaDB-adgang gennem
mysql2; - Jest/Supertest-tests i backend og Playwright-tests i
tests/.
Den samlede lokale server kører som standard på port 4032.
Centrale kommandoer
npm run dev
npm run build
npm test
npm run test:pw:local
./scripts/sync-obsidian-vault.sh
Se scripts i repositoryets package.json for den komplette og aktuelle kommandoliste.
Dokumentationsregler
- Beskriv den nuværende funktion i aktive dokumenter; flyt afsluttede forløb til
docs/archived/. - Henvis til konkrete kodefiler og testkommandoer frem for gamle antal, priser eller modelnavne.
- Redigér originalfilen i repositoryet, aldrig kopien under
obsidian-vault/10 Dokumenter/. - Kør
./scripts/sync-obsidian-vault.shefter Markdown-ændringer. - Gem aldrig secrets, kundedata, logs eller backups i dokumentationen.