Commit Graph

136 Commits

Author SHA1 Message Date
Christian
e878336537 hotfix: replace legacy missing economic customer number error message 2026-05-05 07:37:16 +02:00
Christian
a5866132ab hotfix: skip economic export when customer number missing (local-only) 2026-05-05 07:33:01 +02:00
Christian
ebdb13168d fix: allow local order creation without economic dependency 2026-05-05 07:30:09 +02:00
Christian
4b5e154dc1 fix: enforce local-order-only flow in economy time queue 2026-05-05 07:24:45 +02:00
Christian
f6b78f93eb fix: show sanitized phone details in sag contact search results 2026-05-05 07:14:51 +02:00
Christian
1fe0611453 fix: show phone and mobile in sag v3 add-contact search results 2026-05-05 07:03:03 +02:00
Christian
0dcc6c4fdb ui: make telefoni row action buttons icon-only 2026-05-05 06:50:20 +02:00
Christian
86b3b3be15 feat: add direct Ny kontakt / Søg / Firma buttons on telefoni rows 2026-05-05 00:57:28 +02:00
Christian
31fa771626 fix: strip local phone suffix from overly long caller numbers (Yealink URL misconfiguration) 2026-05-05 00:29:13 +02:00
Christian
e4e35a1285 fix: skip auto-loadCalls when SSR already rendered telefoni rows 2026-05-05 00:22:02 +02:00
Christian
aa2aea555d hotfix: ignore restored telephony filters on first load 2026-05-05 00:10:42 +02:00
Christian
415abb058a hotfix: keep initial telephony rows on first empty refresh 2026-05-04 23:46:41 +02:00
Christian
b1a4342a9a hotfix: server-render initial telephony calls 2026-05-04 22:46:31 +02:00
Christian
93da2866dc hotfix: always run compose up after build 2026-05-04 22:34:16 +02:00
Christian
a37e0a89fa hotfix: safe .env parsing in deploy script 2026-05-04 22:30:19 +02:00
Christian
988450919b hotfix: prevent STACK_NAME env crash in production deploy 2026-05-04 19:59:47 +02:00
Christian
25530c7c94 release: v2.2.81 contacts visibility and telephony/date/deploy fixes 2026-05-04 19:20:55 +02:00
Christian
8ec9400b15 Release v2.2.80 2026-05-04 16:57:48 +02:00
Christian
90a6496c48 Release v2.2.79: economy queue, contact-company backfill, and production fixes 2026-05-04 16:24:38 +02:00
Christian
1d7107bff0 Release v2.2.52: harden admin users loading on v2 2026-03-07 03:14:45 +01:00
Christian
ba9622250a Release v2.2.51: fix user admin actions + archived sync monitor 2026-03-07 02:52:00 +01:00
Christian
959c9b4401 Fix: restore case email compose button in sag email tab 2026-03-06 16:11:05 +01:00
Christian
1323320fed Release v2.2.48: sag sale-item fallback and mission webhook ping fixes 2026-03-04 07:40:18 +01:00
Christian
9fc57feda4 Release v2.2.47: webhook GET ping + v2 default API port 2026-03-04 07:22:39 +01:00
Christian
2bd5a3e057 Release v2.2.46: mission schema resilience and repair migration 2026-03-04 07:12:29 +01:00
Christian
4760b8b3c4 Add Mission Control navigation and dashboard option (v2.2.45) 2026-03-04 07:11:06 +01:00
Christian
701cc63375 Hotfix: cleanup legacy v2 containers + auto-expire ringing calls (v2.2.44) 2026-03-04 00:33:12 +01:00
Christian
803b45fab4 Hotfix: add Mission webhook event logging (v2.2.43) 2026-03-03 23:49:24 +01:00
Christian
45d8f4209b Hotfix: Yealink GET webhooks + safer podman deploy checks (v2.2.42) 2026-03-03 23:09:14 +01:00
Christian
91f709f4fe fix(postgres): use POSTGRES_DB in health checks 2026-03-03 22:37:48 +01:00
Christian
dd02701b21 fix(docker): preserve downloaded release source during production build 2026-03-03 22:19:26 +01:00
Christian
8b863a3b68 feat(mission): add Mission Control MVP with realtime webhooks and fullscreen dashboard 2026-03-03 22:12:05 +01:00
Christian
b80f91fae1 release: v2.2.37
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-03 10:52:53 +01:00
Christian
b0a51f1919 release: v2.2.36 helpdesk sag routing 2026-03-02 23:58:56 +01:00
Christian
bdf76a2a80 feat: quick opret leverandør split-view panel v2.2.26 2026-03-02 09:09:30 +01:00
Christian
2ed3118c83 fix: exclude OWN_CVR from AI vendor extraction v2.2.25 2026-03-02 09:01:43 +01:00
Christian
aabd9f0069 fix: remove vat_note from extraction_lines INSERT v2.2.24 2026-03-02 08:54:14 +01:00
Christian
de59bc8367 fix: add pdfplumber to requirements v2.2.22 2026-03-02 08:44:23 +01:00
Christian
744b405142 fix: vendor info + rerun button on supplier invoices v2.2.21
- Fix get_files_by_status query: LATERAL join to get latest extraction
  per file, returning vendor_name, vendor_match_confidence, total_amount
- Fix renderUnhandledFiles: use best_vendor_name, convert confidence
  0-1 to %, use total_amount field
- Add rerun button for all files (not just failed) via rerunSingleFile()
- rerunSingleFile() calls /reprocess/{file_id} and reloads unhandled tab
- Fix retry_extraction endpoint to actually run extraction immediately
2026-03-02 06:22:33 +01:00
Christian
ea4905ef8a fix: vendor DB lookup after regex/AI extraction v2.2.20
extract_vendor_suggestion now matches found CVR/domain/name against
vendors table for ALL code paths (not just fast path):
- CVR match → score 100
- Domain match → score 80
- Email-domain match → score 75
- Name substring → score 60

Frontend auto-links when match_score >= 80 (was only pdf_extraction source).
Shows score reason: CVR-match/domæne-match/navne-match in success toast.

Also: saves newly found CVR to extracted_vendor_cvr so fast path
works on subsequent calls for old emails too.
2026-03-02 00:35:44 +01:00
Christian
09de3c7373 feat: auto-link vendor from PDF extraction, improve vendor suggestion v2.2.19
- extract_vendor_suggestion: fast path if extracted_vendor_cvr already set
  - CVR lookup in vendors table → returns vendor_id if match found
  - source='pdf_extraction' with confidence=0.95
- Frontend quickCreateVendor:
  - If vendor_id returned → auto-link without modal (no manual input needed)
  - New source label '📄 PDF-faktura' for pdf_extraction source
- Added execute_query_single import to emails router
2026-03-02 00:26:23 +01:00
Christian
c6d310e96d feat: analyze PDF attachments for invoice extraction v2.2.18
- email_analysis_service: extract PDF text from attachments as PRIMARY source
  - _build_invoice_extraction_context: reads PDF bytes (in-memory or DB)
  - _extract_pdf_texts_from_attachments: pdfplumber on in-memory bytes
  - _get_attachment_texts_from_db: fallback to content_data/file_path
  - _build_extraction_prompt: comprehensive schema (vendor, CVR, lines, dates)
  - num_predict 300→3000, timeout 30→120s, format=json
- email_processor_service: _update_extracted_fields saves vendor_name, CVR, invoice_date
- migration 140: extracted_vendor_name, extracted_vendor_cvr, extracted_invoice_date columns

Sender (forwarder/external bookkeeper) is now ignored for vendor detection.
The actual invoice PDF determines vendor/amounts/lines.
2026-03-02 00:17:41 +01:00
Christian
3d24987365 fix: use execute_query_single for duplicate checksum check v2.2.17
Fixes 'list indices must be integers or slices, not str' error when
uploading a duplicate file. execute_query returns a list, so accessing
existing_file['file_id'] caused TypeError. Now uses execute_query_single
which returns a single dict row.
2026-03-02 00:05:24 +01:00
Christian
2fc8a1adce fix: remove service_healthy depends_on condition (podman-compose compat) v2.2.16 2026-03-01 23:30:46 +01:00
Christian
aa7b0894af fix: MAX_FILE_SIZE_MB → EMAIL_MAX_UPLOAD_SIZE_MB in supplier invoice upload v2.2.15 2026-03-01 20:15:40 +01:00
Christian
3978dae692 fix: BACKUP_STORAGE_PATH→/app/data/backups + container_name STACK_NAME + pdf extension v2.2.14 2026-03-01 20:06:02 +01:00
Christian
c5aa31b825 fix: container_name uses STACK_NAME + ALLOWED_EXTENSIONS CSV parsing v2.2.13 2026-03-01 20:01:11 +01:00
Christian
84c837f303 fix: store PDF bytes in DB (content_data) + re-save existing email attachments v2.2.11 2026-03-01 16:36:05 +01:00
Christian
eb0dad8a10 fix: read body_html + resolve relative file paths for PDF extraction 2026-03-01 16:03:07 +01:00
Christian
14e1c87a4c fix: dedicated footer parser + debug logging for PDF text extraction 2026-03-01 15:51:45 +01:00