Commit Graph

  • 6e021fb23a fix(briefwechsel): repair 500 by consuming backend thumbnailUrl directly Marcel 2026-04-24 13:26:13 +02:00
  • bdac5e42ad test(search): integration test covers paged search against real Postgres — address @saraholt Marcel 2026-04-24 10:55:51 +02:00
  • 18b88672ec fix(pagination): bound controls render as aria-hidden spans — address @leonievoss Marcel 2026-04-24 10:52:13 +02:00
  • 8fa061187e refactor(documents): extract buildSearchParams — address @felixbrandt Marcel 2026-04-24 10:48:34 +02:00
  • 610915b2a2 refactor(test): extract UNPAGED Pageable constant — address @felixbrandt + @saraholt Marcel 2026-04-24 10:46:46 +02:00
  • 78ac5d663d feat(documents): paginate search with a Pagination control Marcel 2026-04-24 08:34:01 +02:00
  • 826c0827dc test(search): lock pagination behaviour and @Validated rejection Marcel 2026-04-24 08:26:41 +02:00
  • 7a75ffed76 feat(search): DocumentService.searchDocuments takes Pageable and slices Marcel 2026-04-24 08:23:15 +02:00
  • 1299bd5938 feat(search-result): extend DocumentSearchResult with pageNumber/pageSize/totalPages Marcel 2026-04-24 08:05:05 +02:00
  • 8f28a99e00 docs(specs): bulk upload split-panel spec + concept exploration Marcel 2026-04-24 10:31:42 +02:00
  • 7007491d8c style(dashboard): address @leonievoss — scale fallback icon to match larger container Marcel 2026-04-23 22:40:38 +02:00
  • 629f0183f7 test(document): address @saraholt — lock JSON wire contract for thumbnailUrl Marcel 2026-04-23 22:39:14 +02:00
  • 72cd6f5bbc feat(dashboard): fall back to document-text heroicon when no thumbnail yet Marcel 2026-04-23 22:24:29 +02:00
  • 1d44bbb1bd feat(dashboard): render real document thumbnail in resume strip Marcel 2026-04-23 22:22:19 +02:00
  • a02f6cdcd7 refactor(thumbnails): drop frontend URL-builder now that backend owns the convention Marcel 2026-04-23 22:19:35 +02:00
  • 817749889a refactor(document-thumbnail): read doc.thumbnailUrl instead of composing locally Marcel 2026-04-23 22:18:07 +02:00
  • a8b9133b80 chore(api): regenerate Document type with thumbnailUrl field Marcel 2026-04-23 22:10:32 +02:00
  • 510ab1d2d5 feat(dashboard): populate resume thumbnailUrl from Document Marcel 2026-04-23 22:07:58 +02:00
  • ad999c47ea feat(document): expose thumbnailUrl to JSON serialisation Marcel 2026-04-23 22:02:05 +02:00
  • 9862a51ac7 feat(document): getThumbnailUrl appends URL-encoded timestamp as cache-buster Marcel 2026-04-23 21:55:55 +02:00
  • df260d5c64 feat(document): getThumbnailUrl composes /api/documents/{id}/thumbnail when key present Marcel 2026-04-23 21:52:09 +02:00
  • 096f66eb15 test(document): getThumbnailUrl returns null when thumbnailKey is null Marcel 2026-04-23 21:45:33 +02:00
  • 0b33f323ee feat(briefwechsel): restore direction arrow next to row title Marcel 2026-04-23 21:57:57 +02:00
  • 334b624063 feat(briefwechsel): bump row typography and drop relative-year chip Marcel 2026-04-23 21:52:23 +02:00
  • 503ce49ef7 refactor(briefwechsel): TagChipList defaults max to 3 Marcel 2026-04-23 21:08:33 +02:00
  • f5a30c71b7 i18n(briefwechsel): ThumbnailRow direction label via Paraglide Marcel 2026-04-23 21:06:16 +02:00
  • 720f90299a refactor(e2e): visual spec shares seedBilateralPair + asserts person-bar Marcel 2026-04-23 21:02:36 +02:00
  • 0e988a9d42 refactor(e2e): extract seedBilateralPair fixture + afterAll cleanup Marcel 2026-04-23 21:01:17 +02:00
  • 8cb179a8a1 test(briefwechsel): visual spec seeds bilateral pair and asserts row structure Marcel 2026-04-23 20:46:25 +02:00
  • 05c1bf750a test(briefwechsel): a11y spec seeds bilateral pair and axes the row layout Marcel 2026-04-23 20:44:58 +02:00
  • a7ab5e6e69 refactor(briefwechsel): extract TagChipList from ThumbnailRow Marcel 2026-04-23 20:43:04 +02:00
  • 24b2dc0460 refactor(thumbnails): pack key + aspect + pageCount into ThumbnailResult Marcel 2026-04-23 20:39:04 +02:00
  • 9ecf7f4dfc refactor(briefwechsel): ThumbnailRow captures now at prop binding Marcel 2026-04-23 20:36:52 +02:00
  • 01bfc59849 test(briefwechsel): lock future-date relative-year hiding at the row layer Marcel 2026-04-23 20:35:25 +02:00
  • 03616f0728 test(briefwechsel): makePerson factory + per-row tile assertion Marcel 2026-04-23 20:34:00 +02:00
  • 7090f9a0e0 feat(briefwechsel): ConversationThumbnail page badge legible at small sizes Marcel 2026-04-23 20:30:19 +02:00
  • d4617a96d1 i18n(briefwechsel): DistributionBar reads text + aria-label via Paraglide Marcel 2026-04-23 20:28:32 +02:00
  • b9dda9a938 feat(briefwechsel): ThumbnailRow aria-label leads with Gesendet/Empfangen Marcel 2026-04-23 20:23:46 +02:00
  • d6b1949c84 docs(adr): ADR-005 thumbnailAspect + pageCount alongside the thumbnail Marcel 2026-04-23 14:54:08 +02:00
  • c16a9ca602 test(briefwechsel): axe sweep at 3 viewports x 2 themes Marcel 2026-04-23 14:52:38 +02:00
  • 30e301830a test(briefwechsel): scaffold visual-regression spec for row layout Marcel 2026-04-23 14:51:16 +02:00
  • 4b893b4808 test(briefwechsel): cover DistributionBar and fix Person fixture shape Marcel 2026-04-23 14:49:21 +02:00
  • df681be626 refactor(briefwechsel): ConversationTimeline renders ThumbnailRow per letter Marcel 2026-04-23 14:47:41 +02:00
  • cc118ffb16 feat(briefwechsel): add ThumbnailRow for the new correspondence row layout Marcel 2026-04-23 14:45:08 +02:00
  • 407bfbd5f1 feat(briefwechsel): add ConversationThumbnail with aspect + page badge Marcel 2026-04-23 14:40:15 +02:00
  • a52d481a8e feat(relativeTime): add relativeYearsDe helper for historical letter dates Marcel 2026-04-23 14:36:43 +02:00
  • 70d813ee70 refactor(briefwechsel): ConversationTimeline consumes DistributionBar Marcel 2026-04-23 14:33:53 +02:00
  • d99f4544d2 refactor(briefwechsel): extract bilateral DistributionBar component Marcel 2026-04-23 14:32:04 +02:00
  • 22ce705bb0 feat(api): surface thumbnailAspect + pageCount on the Document type Marcel 2026-04-23 14:28:35 +02:00
  • e6d55e47b1 feat(thumbnails): persist pageCount from PDDocument / 1 for images Marcel 2026-04-23 14:25:29 +02:00
  • b48533be26 feat(thumbnails): persist thumbnailAspect from source image dimensions Marcel 2026-04-23 14:21:17 +02:00
  • 7fc517b787 test(thumbnails): lock corrupt-image + corrupt-pdf failure paths Marcel 2026-04-23 14:18:04 +02:00
  • 8ac996f6b2 feat(documents): expose thumbnailAspect + pageCount on Document entity Marcel 2026-04-23 14:15:28 +02:00
  • 55557047de feat(documents): V53 add thumbnail_aspect + page_count columns Marcel 2026-04-23 14:08:49 +02:00
  • 94e976bae3 docs(specs): rework person dashboard spec around data reality Marcel 2026-04-23 20:44:42 +02:00
  • 23cf88856e fix(ocr): guard Kraken block extraction against missing boundary/baseline Marcel 2026-04-23 09:33:03 +02:00
  • 1f7b712dd0 fix(ocr): accept sender_model_path in Surya engine so non-Kurrent OCR works Marcel 2026-04-23 09:28:25 +02:00
  • 90f111fcb1 style(documents): bump right-column font-size from xs to sm in list rows Marcel 2026-04-23 09:17:30 +02:00
  • bca27898f7 fix(documents): tag click no longer navigates to document detail page Marcel 2026-04-23 09:10:20 +02:00
  • a7efb0044c feat(documents): rebalance list row — summary + archive chips, restored sender/receiver Marcel 2026-04-23 08:44:49 +02:00
  • fc0fc57409 refactor(documents): drop duplicate sender/receiver in list rows Marcel 2026-04-23 08:19:46 +02:00
  • 6aae159698 feat(documents): enlarge thumbnail in document-list rows Marcel 2026-04-23 08:18:50 +02:00
  • 31713c324b fix(proxy): block proxy-connection hop-by-hop header from client responses Marcel 2026-04-22 18:21:40 +02:00
  • 464b8d35d3 fix(proxy): enforce body size limit on actual byteLength, not just Content-Length header Marcel 2026-04-22 18:17:00 +02:00
  • e1ae299326 test(proxy): add PATCH forwarding and absent Content-Length coverage Marcel 2026-04-22 18:12:06 +02:00
  • 253c539f18 refactor(proxy): rename +server.spec.ts → proxy.spec.ts Marcel 2026-04-22 18:05:29 +02:00
  • ff0bb89297 refactor(autosave): rename flushViaBeacon → flushOnUnload; add void to fire-and-forget fetch Marcel 2026-04-22 16:46:58 +02:00
  • c9dd3f8e78 feat(proxy): add 1MB body guard and full proxy test suite Marcel 2026-04-22 16:34:28 +02:00
  • e1304b6512 fix(transcription): replace sendBeacon with fetch keepalive; add catch-all API proxy Marcel 2026-04-22 15:56:53 +02:00
  • b6bfb9148e fix(frontend): use generic document icon for thumbnail fallback Marcel 2026-04-22 23:03:19 +02:00
  • f0f9753c42 refactor(backend): split ThumbnailService.generate into stages with distinct logs Marcel 2026-04-22 23:01:50 +02:00
  • f137aa79a2 docs(adr): document layering exception and in-memory backfill state Marcel 2026-04-22 22:58:36 +02:00
  • 39eaa10d85 docs(adr): record ADR-004 — PDFBox thumbnails stay in Spring Boot Marcel 2026-04-22 22:43:27 +02:00
  • abbb7c798f test(e2e): cover admin thumbnail generation card + a11y Marcel 2026-04-22 22:41:58 +02:00
  • 7bb3800490 feat(frontend): add admin card to generate thumbnails with polling Marcel 2026-04-22 22:39:47 +02:00
  • 04ebd2a5bd feat(frontend): render DocumentThumbnail in DocumentRow and PersonDocumentList Marcel 2026-04-22 22:36:20 +02:00
  • be184d8faf feat(frontend): add DocumentThumbnail shared 60x84 tile component Marcel 2026-04-22 22:31:35 +02:00
  • 0c95797242 feat(frontend): add thumbnailUrl helper with cache-bust param Marcel 2026-04-22 22:30:43 +02:00
  • 75ae4b6a02 feat(frontend): add thumbnailKey and thumbnailGeneratedAt to Document type Marcel 2026-04-22 22:29:39 +02:00
  • 547db2fd02 test(backend): add ThumbnailServiceIntegrationTest against real MinIO Marcel 2026-04-22 22:21:02 +02:00
  • f11a29504a feat(backend): add GET /api/documents/{id}/thumbnail endpoint Marcel 2026-04-22 22:10:01 +02:00
  • 323ec1ec54 feat(backend): add AdminController endpoints for thumbnail backfill Marcel 2026-04-22 22:05:47 +02:00
  • 09fc871756 feat(backend): add ThumbnailBackfillService for regenerating missing thumbnails Marcel 2026-04-22 22:02:20 +02:00
  • 0344a0c7ff feat(backend): dispatch thumbnail generation from MassImportService Marcel 2026-04-22 21:58:24 +02:00
  • 7d0e13c591 feat(backend): dispatch thumbnail generation from DocumentService upload paths Marcel 2026-04-22 21:57:36 +02:00
  • 3b7ef6117e feat(backend): add ThumbnailAsyncRunner with afterCommit dispatch and timeout Marcel 2026-04-22 21:49:26 +02:00
  • 955c497ba0 feat(backend): add ThumbnailService for PDF and image thumbnails Marcel 2026-04-22 21:46:08 +02:00
  • 0bb18c6789 feat(backend): add thumbnailExecutor bean for isolated thumbnail workload Marcel 2026-04-22 21:42:05 +02:00
  • 07019f54e8 feat(backend): add FileService.downloadFileStream for memory-efficient reads Marcel 2026-04-22 21:41:15 +02:00
  • 2aa3b955f9 build: add twelvemonkeys-imageio-tiff for thumbnail TIFF support Marcel 2026-04-22 21:37:05 +02:00
  • a2333975f9 feat(backend): add THUMBNAIL_BACKFILL_ALREADY_RUNNING error code Marcel 2026-04-22 21:36:06 +02:00
  • b8962f4337 feat(backend): add DocumentRepository finder for thumbnail backfill Marcel 2026-04-22 21:35:08 +02:00
  • 6cf0601590 feat(db): add thumbnail_key and thumbnail_generated_at to documents Marcel 2026-04-22 21:34:03 +02:00
  • dd6cbe3a6f docs(specs): add final specs for thumbnail rows + person dashboard Marcel 2026-04-22 20:17:21 +02:00
  • f5438c4c36 docs(specs): add briefwechsel-fill — 5 concepts exploring empty-row problem Marcel 2026-04-22 20:16:20 +02:00
  • ac2118db14 fix(notifications): replace aggressive EventSource close with threshold-based 401-aware retry Marcel 2026-04-22 15:41:39 +02:00
  • 82de629339 fix(nav): prevent global header overflow at lg breakpoint (1024px) Marcel 2026-04-22 14:35:25 +02:00
  • 2b8032524d fix(nav): restore DocumentTopBar back button sizing and add right padding Marcel 2026-04-22 14:34:31 +02:00
  • 261f631318 test(nav): add E2E test for DocumentTopBar back navigation; fix auth.setup login label Marcel 2026-04-22 12:08:31 +02:00
  • 9e59da598e fix(nav): replace static href="/" in DocumentTopBar with <BackButton> Marcel 2026-04-22 11:27:03 +02:00