-
2db1b73d5d
fix(ocr): force HTTP/1.1 on RestClient to OCR service
Marcel
2026-04-12 23:08:11 +02:00
-
838330b405
fix(ocr): use camelCase field names in Pydantic models
Marcel
2026-04-12 23:04:42 +02:00
-
9e01009e3d
fix(async): revert to AbortPolicy — CallerRunsPolicy blocks requests
Marcel
2026-04-12 23:02:58 +02:00
-
0bfaa7540b
fix(async): queue 100 tasks + CallerRunsPolicy instead of abort
Marcel
2026-04-12 23:01:37 +02:00
-
b6d928e1c5
fix(async): increase thread pool to 2 threads + queue of 10
Marcel
2026-04-12 22:59:31 +02:00
-
aa50951320
fix(ocr): set 10-minute read timeout on RestClientOcrClient
Marcel
2026-04-12 22:58:00 +02:00
-
dd175d09e2
refactor(ocr): make single-document OCR async, fix circular dependency
Marcel
2026-04-12 22:55:52 +02:00
-
741979304c
fix(ocr): increase to 8g mem_limit and larger batch sizes
Marcel
2026-04-12 22:35:34 +02:00
-
e9cf2998fe
fix(ocr): reduce mem_limit to 4g, allow 4g swap for 16GB dev machines
Marcel
2026-04-12 22:33:05 +02:00
-
902d423f3c
fix(ocr): reduce memory usage for 16GB dev machines
Marcel
2026-04-12 22:26:50 +02:00
-
7f78bc9cf4
fix(ocr): increase memory limit to 10GB, reduce render DPI to 200
Marcel
2026-04-12 22:20:36 +02:00
-
4500c99e40
fix(ocr): use presigned URLs for MinIO access from OCR service
Marcel
2026-04-12 22:16:52 +02:00
-
7a4da7cb98
fix(pdf): guard against null textLayerEl in renderPage
Marcel
2026-04-12 22:10:33 +02:00
-
f6667e0e15
feat(frontend): show OcrProgress during OCR job + check status on load
Marcel
2026-04-12 22:09:24 +02:00
-
8dc9243add
feat(frontend): wire OCR trigger + review toggle into transcription panel
Marcel
2026-04-12 22:02:56 +02:00
-
3aaec01421
feat(transcription): add source/reviewed fields for training pipeline
Marcel
2026-04-12 21:44:51 +02:00
-
f064b27439
feat(ocr): per-script-type confidence thresholds
Marcel
2026-04-12 20:50:59 +02:00
-
dd078d50da
fix(ocr): extract PDF pages as PNGs before running kraken OCR
Marcel
2026-04-12 20:37:29 +02:00
-
31519af1a4
fix(ocr): add pyvips for kraken PDF input support
Marcel
2026-04-12 20:11:14 +02:00
-
c0004f5e6f
fix(ocr): parse kraken 'Model dir' output to locate downloaded model
Marcel
2026-04-12 20:09:23 +02:00
-
f12b41161e
fix(ocr): update model script for kraken 7 DOI-based downloads
Marcel
2026-04-12 20:05:29 +02:00
-
37abc376ec
fix(ocr): install torchvision from CPU index alongside torch
Marcel
2026-04-12 19:46:37 +02:00
-
0af4749677
feat(ocr): extend model script with automatic OCR evaluation
Marcel
2026-04-12 19:41:59 +02:00
-
6669fffead
fix(ocr): pin transformers<5.0 and torch==2.7.1 in requirements.txt
Marcel
2026-04-12 19:34:03 +02:00
-
41f9262238
feat(ocr): add Kraken model download and evaluation script
Marcel
2026-04-12 19:19:39 +02:00
-
c74539b04b
feat(ocr): auto-insert [unleserlich] markers for low-confidence words
Marcel
2026-04-12 19:16:17 +02:00
-
49975154d9
feat(ocr): bump to latest surya 0.17.1, kraken 7.0, torch 2.7.1
Marcel
2026-04-12 18:53:14 +02:00
-
e29c865016
fix(ocr): upgrade kraken to 6.0.3 for torch>=2.4 compatibility
Marcel
2026-04-12 18:48:14 +02:00
-
d49010cd7b
fix(ocr): relax pillow version to match surya-ocr constraint
Marcel
2026-04-12 18:40:46 +02:00
-
931fbc28e5
fix(annotations): use @JdbcTypeCode(JSON) for polygon JSONB column
Marcel
2026-04-12 15:39:54 +02:00
-
a4651aa317
feat(frontend): add OCR UI components and translations
Marcel
2026-04-12 15:36:00 +02:00
-
cf8dc3559f
feat(frontend): extract AnnotationShape component with polygon support
Marcel
2026-04-12 15:30:27 +02:00
-
6737bd6db5
feat(ocr): add Python OCR microservice, RestClientOcrClient, Docker Compose
Marcel
2026-04-12 15:26:40 +02:00
-
aea46c5fd0
feat(ocr): add OcrService, OcrBatchService, OcrProgressService, OcrController
Marcel
2026-04-12 15:24:15 +02:00
-
ff3990710e
feat(ocr): add OCR infrastructure (interfaces, entities, migrations, DTOs)
Marcel
2026-04-12 15:15:16 +02:00
-
d194b6b225
feat(documents): add ScriptType enum and script_type column
Marcel
2026-04-12 15:13:42 +02:00
-
c19c41f812
feat(annotations): add createOcrAnnotation that skips overlap check
Marcel
2026-04-12 15:12:11 +02:00
-
878a90a86d
feat(annotations): add polygon JSONB support for quadrilateral shapes
Marcel
2026-04-12 15:10:35 +02:00
-
ec32d225b5
docs(adr): add ADR-001 (OCR microservice) and ADR-002 (polygon JSONB)
Marcel
2026-04-12 15:07:46 +02:00
-
11a35f2952
fix(tests): resolve all 4 pre-existing test failures
Marcel
2026-04-12 14:55:34 +02:00
-
d046c89631
test(confirm): add ConfirmDialog component spec (12 tests)
Marcel
2026-04-12 14:38:58 +02:00
-
a2d078b8f9
refactor(persons): replace non-null assertion with null guard on removeFormEl
Marcel
2026-04-12 14:36:47 +02:00
-
0b95c90e7a
refactor(confirm): use import { m } instead of import * as m in ConfirmDialog
Marcel
2026-04-12 14:35:42 +02:00
-
84378f11b4
refactor(confirm): use plain let for resolveRef instead of $state
Marcel
2026-04-12 14:34:52 +02:00
-
3a316bc382
fix(ui): center dialog, add backdrop, hover states, and cursor-pointer on buttons
Marcel
2026-04-12 14:33:33 +02:00
-
1a519eedd6
refactor(persons): replace inline delete modal with ConfirmService in NameHistoryEditCard
Marcel
2026-04-12 14:19:33 +02:00
-
498679234a
refactor(docs): replace inline confirmDelete toggle with ConfirmService in SaveBar
Marcel
2026-04-12 14:12:01 +02:00
-
14fc5cbc54
refactor(admin): replace window.confirm with ConfirmService in admin group delete
Marcel
2026-04-12 14:06:54 +02:00
-
0d1401ce4f
refactor(admin): replace window.confirm with ConfirmService in admin user delete
Marcel
2026-04-12 14:04:09 +02:00
-
d4ead08c17
refactor(transcription): replace window.confirm with ConfirmService in TranscriptionBlock
Marcel
2026-04-12 13:47:37 +02:00
-
08bd27b5cd
feat(layout): mount ConfirmDialog in root layout and provide confirm service
Marcel
2026-04-12 13:21:34 +02:00
-
1942c2a5cb
feat(confirm): add ConfirmService and ConfirmDialog with deferred-Promise pattern
Marcel
2026-04-12 13:20:37 +02:00
-
fb00de6690
feat(design-system): add --c-danger/--c-danger-fg token pair for destructive actions
Marcel
2026-04-12 13:07:46 +02:00
-
52dd72ae8d
feat(i18n): add btn_confirm key to de/en/es message files
Marcel
2026-04-12 13:06:43 +02:00
-
7a6b3d66fb
docs(spec): add design spec for person title & type fields UI
Marcel
2026-04-08 21:42:17 +02:00
-
e69aaa6a8c
fix: classify Steuerfinanzamt and Reichsfechtschule as institutions
Marcel
2026-04-08 20:59:17 +02:00
-
c34db997fa
feat(model): add title field to PersonUpdateDTO with @Size validation
Marcel
2026-04-08 18:38:33 +02:00
-
166f60f7d3
feat(ui): show type icon in avatar for non-person entities
Marcel
2026-04-08 18:36:34 +02:00
-
a1b21d6989
refactor(ui): use CSS custom properties for PersonTypeBadge colors
Marcel
2026-04-08 18:35:05 +02:00
-
5106d277f1
test(service): add integration test for findOrCreateByAlias classification
Marcel
2026-04-08 13:29:20 +02:00
-
ac545ecdaa
refactor: address PR review concerns
Marcel
2026-04-08 13:25:06 +02:00
-
c0cf8d7952
fix(service): add @Nullable to findOrCreateByAlias and filter nulls in caller
Marcel
2026-04-08 13:22:33 +02:00
-
73640ef5b6
feat(parser): implement stripTitle for known prefixes
Marcel
2026-04-08 13:15:18 +02:00
-
6ee1ef73c3
feat(ui): add PersonTypeBadge to person list and detail pages
Marcel
2026-04-08 13:09:16 +02:00
-
a3da5731d0
feat(service): integrate PersonTypeClassifier into findOrCreateByAlias
Marcel
2026-04-08 13:06:49 +02:00
-
68f0c4c4b9
feat(service): add PersonTypeClassifier with keyword heuristics
Marcel
2026-04-08 13:03:53 +02:00
-
e49ae5de29
fix(parser): preserve annotation parens for single-person inputs
Marcel
2026-04-08 13:00:34 +02:00
-
e696e5056d
feat(parser): implement stripAnnotation for parenthesized content
Marcel
2026-04-08 12:58:02 +02:00
-
9f90cc1a5f
feat(service): create MAIDEN_NAME alias in findOrCreateByAlias
Marcel
2026-04-08 12:55:50 +02:00
-
8421d45c71
test(parser): add parseReceivers tests for widened geb pattern
Marcel
2026-04-08 12:53:03 +02:00
-
c49cb345ca
feat(parser): widen GEB_PATTERN and extract maiden name in stripMaidenName
Marcel
2026-04-08 12:51:32 +02:00
-
1aabd9826c
test(frontend): update mock data for displayName and nullable firstName
Marcel
2026-04-08 12:47:15 +02:00
-
9caef1e79e
feat(i18n): add PersonType and MAIDEN_NAME translation keys
Marcel
2026-04-08 12:46:36 +02:00
-
f11d8a38ed
feat(frontend): replace all name concatenation with displayName
Marcel
2026-04-08 12:22:30 +02:00
-
0ce803c7f1
build(frontend): regenerate API types for Person changes
Marcel
2026-04-08 12:06:38 +02:00
-
de2cc677a9
fix(search): handle null firstName in all search queries
Marcel
2026-04-08 11:59:41 +02:00
-
92f1a112f5
feat(migration): V22 add title, person_type, nullable first_name
Marcel
2026-04-08 11:55:04 +02:00
-
9f14648dc3
feat(model): add title, personType, displayName to Person entity
Marcel
2026-04-08 11:53:07 +02:00
-
8101ddb697
feat(model): add PersonType enum and MAIDEN_NAME alias type
Marcel
2026-04-08 11:50:19 +02:00
-
dea1635d75
refactor(parser): extract split() pipeline into named methods
Marcel
2026-04-08 11:48:08 +02:00
-
1e1921e0fa
refactor(parser): expand SplitName record to 5 fields
Marcel
2026-04-08 11:46:09 +02:00
-
d6e74972eb
test(parser): add regression and cross-feature interaction tests
Marcel
2026-04-07 17:35:30 +02:00
-
0b57717586
feat(parser): normalize dot-compressed names in split()
Marcel
2026-04-07 17:34:56 +02:00
-
59475efbcb
feat(parser): support // as multi-person separator in parseReceivers
Marcel
2026-04-07 17:33:55 +02:00
-
f435f2441c
fix(model): add @JsonIgnore on PersonNameAlias.person to prevent LazyInitializationException
Marcel
2026-04-07 16:31:39 +02:00
-
e204ed89b6
fix(ui): switch alias operations from client fetch to form actions
Marcel
2026-04-07 16:05:56 +02:00
-
036843bf8f
fix(ui): use mt-6 on save bar to match card spacing
Marcel
2026-04-07 16:01:43 +02:00
-
9027f60760
fix(ui): use card-style save bar with mt-4 instead of full-bleed
Marcel
2026-04-07 15:59:55 +02:00
-
0f5eebec29
fix(ui): move save bar to end of edit page after alias and danger zone
Marcel
2026-04-07 15:59:05 +02:00
-
f0eb3a76be
test(ui): add component tests for NameHistoryCard
Marcel
2026-04-07 13:43:09 +02:00
-
6d837c518c
fix(a11y): include alias name in delete button aria-label
Marcel
2026-04-07 13:42:08 +02:00
-
97646a31df
fix(ui): always show Namensverlauf card on detail page
Marcel
2026-04-07 13:41:19 +02:00
-
cfb3260e0e
fix(api): add input validation to PersonNameAliasDTO
Marcel
2026-04-07 13:40:43 +02:00
-
59f593280b
fix(test): update person detail loader tests for 4th aliases API call
Marcel
2026-04-07 13:35:19 +02:00
-
b910517690
feat(ui): add alias management to person edit page
Marcel
2026-04-07 13:31:41 +02:00
-
002ee1010a
feat(ui): add Namensverlauf read-only card to person detail page
Marcel
2026-04-07 13:31:07 +02:00
-
9e13208ccd
chore(api): regenerate TypeScript API types with alias endpoints
Marcel
2026-04-07 13:24:03 +02:00
-
f396e079a5
feat(i18n): add alias type labels and section strings for de/en/es
Marcel
2026-04-07 13:21:21 +02:00
-
90c9ac9357
feat(search): extend document text search to match alias last names
Marcel
2026-04-07 13:18:31 +02:00
-
db61d6b77f
feat(search): extend person search to include alias last names
Marcel
2026-04-07 13:12:54 +02:00