Commit Graph

  • 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