refactor: consolidate AI analyzers into shared lib/ai module and add journal entry reversal columns

Extract shared vision/document analysis logic into lib/ai (vision-client, document-analyzer,
image preprocessing, validation helpers), simplifying invoice-analyzer, receipt-analyzer, and
document classifier. Add migration 046 for journal entry reversal/correction link columns
(reversed_by_id, reverses_id, correction_of_id) required by storno service. Update extension
components and shared UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jakob Wennberg
2026-02-26 17:14:44 +01:00
co-authored by Claude Opus 4.6
parent 6d647b956c
commit 3f255ea201
42 changed files with 2090 additions and 1127 deletions
@@ -43,9 +43,9 @@ export default function DateRangeFilter({ onRangeChange, className }: DateRangeF
}
const periods: { key: Period; label: string }[] = [
{ key: 'month', label: 'M\u00e5nad' },
{ key: 'month', label: 'Månad' },
{ key: 'quarter', label: 'Kvartal' },
{ key: 'year', label: '\u00c5r' },
{ key: 'year', label: 'År' },
]
return (
@@ -7,8 +7,8 @@ interface EmptyExtensionStateProps {
}
export default function EmptyExtensionState({
title = 'Ingen data \u00e4nnu',
description = 'Data kommer att visas h\u00e4r n\u00e4r det finns tillg\u00e4ngligt.',
title = 'Ingen data ännu',
description = 'Data kommer att visas här när det finns tillgängligt.',
icon,
}: EmptyExtensionStateProps) {
return (