Documents: PDFs show a generic icon, no page thumbnail; report OCR + Documents tab status for the morning #547

Open
opened 2026-09-30 17:41:55 +00:00 by kayg · 7 comments
Owner

Owner report (2026-09-30, search screenshot)

"I also notice for Documents that a preview does not appear? Mayhaps thumbnails aren't being generated properly? is OCR being done or no? what happened to our paperless-ngx feature/Documents tab?"
The search preview for Documents/2025-02-18 Aayushy's Tata 1 mg report .pdf (3.3 MB PDF on calternal.cloud) shows a generic "T" document icon, not a page thumbnail. Search does find its text ("Glucose - Fasting 89 mg/dL"), so text extraction ran for this file.

Part 1: facts (write them on this issue for the owner's morning discussion; plain words, ASD-STE100)

  1. PDF thumbnails: does the server generate page-1 thumbnails for PDFs (and other documents: DOCX, images of receipts)? Where? Is it the thumbnail cache from #510? Which surfaces request them: Files grid and list, the search preview, the inspector, Quick Look? For this exact file on production, what happens? Check the server logs on calternal@10.69.69.83 read-only (journal of the calternal service, thumbnail requests for that path, errors). Do not change production and do not copy User files off the host. Report counts and error kinds, not file contents.
  2. OCR:
    • Is OCR run on scanned PDFs and images, or is only an embedded text layer read?
    • Which engine, and where is it wired in?
    • What does #417 (local recognition research) conclude, and what of it has landed?
    • How many of the owner's PDFs have no text layer (aggregate counts only)?
  3. Documents tab (#341, paperless-ngx features): what was decided and what is built? Is it a plugin, and is it enabled? What remains open for the grill? Summarise #341 and #417 and list the open questions.

Part 2: fix what is clearly a bug

  • If PDF thumbnails exist but fail for this file (or for a class of files): fix it with a regression test using a fixture PDF (not the owner's file), including the #510 cache identity if relevant.
  • If PDF thumbnails do not exist at all, do not build a design: report it in Part 1. A page-1 thumbnail for PDFs in the existing thumbnail pipeline is a clear gap: build it only if a renderer that is AGPL-compatible (licence check: pdfium BSD-3 / Apache or MuPDF AGPL are fine) is already a dependency. Otherwise list the options for the morning.
  • The search preview and the Files grid show the thumbnail when one exists, with the icon as the fallback; there is no layout shift when it arrives.
    Tests: Rust tests in the thumbnail crate; an e2e where a User uploads a fixture PDF and sees its page thumbnail in Files and in the search preview. Bench profile for thumbnail generation time and memory on a 50-page PDF.
## Owner report (2026-09-30, search screenshot) "I also notice for Documents that a preview does not appear? Mayhaps thumbnails aren't being generated properly? is OCR being done or no? what happened to our paperless-ngx feature/Documents tab?" The search preview for `Documents/2025-02-18 Aayushy's Tata 1 mg report .pdf` (3.3 MB PDF on calternal.cloud) shows a generic "T" document icon, not a page thumbnail. Search does find its text ("Glucose - Fasting 89 mg/dL"), so text extraction ran for this file. ### Part 1: facts (write them on this issue for the owner's morning discussion; plain words, ASD-STE100) 1. **PDF thumbnails:** does the server generate page-1 thumbnails for PDFs (and other documents: DOCX, images of receipts)? Where? Is it the thumbnail cache from #510? Which surfaces request them: Files grid and list, the search preview, the inspector, Quick Look? For this exact file on production, what happens? Check the server logs on `calternal@10.69.69.83` read-only (journal of the calternal service, thumbnail requests for that path, errors). Do not change production and do not copy User files off the host. Report counts and error kinds, not file contents. 2. **OCR:** - Is OCR run on scanned PDFs and images, or is only an embedded text layer read? - Which engine, and where is it wired in? - What does #417 (local recognition research) conclude, and what of it has landed? - How many of the owner's PDFs have no text layer (aggregate counts only)? 3. **Documents tab (#341, paperless-ngx features):** what was decided and what is built? Is it a plugin, and is it enabled? What remains open for the grill? Summarise #341 and #417 and list the open questions. ### Part 2: fix what is clearly a bug - If PDF thumbnails exist but fail for this file (or for a class of files): fix it with a regression test using a fixture PDF (not the owner's file), including the #510 cache identity if relevant. - If PDF thumbnails do not exist at all, **do not build a design**: report it in Part 1. A page-1 thumbnail for PDFs in the existing thumbnail pipeline is a clear gap: build it only if a renderer that is AGPL-compatible (licence check: pdfium BSD-3 / Apache or MuPDF AGPL are fine) is already a dependency. Otherwise list the options for the morning. - The search preview and the Files grid show the thumbnail when one exists, with the icon as the fallback; there is no layout shift when it arrives. **Tests:** Rust tests in the thumbnail crate; an e2e where a User uploads a fixture PDF and sees its page thumbnail in Files and in the search preview. Bench profile for thumbnail generation time and memory on a 50-page PDF.
Author
Owner

Orchestrator note: the unmerged job/info-inspector-465 (886571eac) renders a page-1 PDF preview in the Files Inspector (fixture PDF). Check whether that code path exists on dev and why the search preview does not use it (reuse it rather than building a second PDF renderer).

Orchestrator note: the unmerged job/info-inspector-465 (886571eac) renders a page-1 PDF preview in the Files Inspector (fixture PDF). Check whether that code path exists on dev and why the search preview does not use it (reuse it rather than building a second PDF renderer).
Author
Owner

Orchestrator note: job/fix-510 (873f06feb, #510) changed the thumbnail cache identity to include the render kind (media / pdf / text-card). Check whether the PDF search-preview issue reproduces on that branch before building anything new.

Orchestrator note: job/fix-510 (873f06feb, #510) changed the thumbnail cache identity to include the render kind (media / pdf / text-card). Check whether the PDF search-preview issue reproduces on that branch before building anything new.
Author
Owner

Starting #547 on branch job/docs-thumb-547. The branch base SHA is aa372eef6c9312403f59a65d5b90cb3648ff52ed (also the current HEAD). I will trace thumbnail generation and UI requests, inspect OCR and Documents decisions, and check production logs read-only. I will not copy User files from production.

Starting #547 on branch `job/docs-thumb-547`. The branch base SHA is `aa372eef6c9312403f59a65d5b90cb3648ff52ed` (also the current HEAD). I will trace thumbnail generation and UI requests, inspect OCR and Documents decisions, and check production logs read-only. I will not copy User files from production.
Author
Owner

Production finding (read-only): the supplied path has one Index row with application/pdf, one completed files.thumbnail Job, no cached 256 px or 1024 px WebP, and one terminal failure marker. The content hash has no second Index row with another MIME or path. The marker contains only decoder-failed-v1, so it does not say whether the renderer rejected the PDF, timed out, or failed to return WebP. From 2026-09-30 00:00 UTC to this check, the service journal had 0 lines for the supplied path, 0 thumbnail error lines, and 3 generic thumbnail lines. The PDF itself was not read or copied.

Production finding (read-only): the supplied path has one Index row with `application/pdf`, one completed `files.thumbnail` Job, no cached 256 px or 1024 px WebP, and one terminal failure marker. The content hash has no second Index row with another MIME or path. The marker contains only `decoder-failed-v1`, so it does not say whether the renderer rejected the PDF, timed out, or failed to return WebP. From 2026-09-30 00:00 UTC to this check, the service journal had 0 lines for the supplied path, 0 thumbnail error lines, and 3 generic thumbnail lines. The PDF itself was not read or copied.
Author
Owner

I found a cache identity defect in the existing thumbnail path. A new Rust regression test published a PDF page and a text card for the same content hash. Before the fix, reading the PDF cache returned the text-card bytes. Both used the same {hash}-256.webp entry. The test output showed left: ...WEBP-text-card and right: ...WEBP-pdf-page. I have separated the cache families and added checks for both entries.

I found a cache identity defect in the existing thumbnail path. A new Rust regression test published a PDF page and a text card for the same content hash. Before the fix, reading the PDF cache returned the text-card bytes. Both used the same `{hash}-256.webp` entry. The test output showed `left: ...WEBP-text-card` and `right: ...WEBP-pdf-page`. I have separated the cache families and added checks for both entries.
Author
Owner

Finding — post-merge screenshot run: bun apps/web/e2e/files.mjs --screenshots ... --shot-surface thumbnails --screenshots-only timed out in the unrelated macOS keyboard flow while waiting for .ql-title h2 (30 s). The merged harness ran keyboard flows before its screenshot-only branch. I guarded those flows behind !screenshotsOnly; the normal interaction run still covers them.

**Finding — post-merge screenshot run:** `bun apps/web/e2e/files.mjs --screenshots ... --shot-surface thumbnails --screenshots-only` timed out in the unrelated macOS keyboard flow while waiting for `.ql-title h2` (30 s). The merged harness ran keyboard flows before its screenshot-only branch. I guarded those flows behind `!screenshotsOnly`; the normal interaction run still covers them.
Author
Owner

Part 1: Findings

PDF thumbnails

  • The Files worker uses the existing sandboxed libvips and Poppler renderer. It renders page 1 at 72 dpi with a fixed pdfload action. The worker stores the WebP in the Files thumbnail cache through calternal-fs.
  • The cache from #510 now has separate Media, Pdf and TextCard families. Image receipts use the normal image renderer when their format is supported. Text files can use a text card. DOCX does not have a page renderer. Its preview remains out of scope under DESIGN §15.
  • Files grid and list, Recent, the Inspector, Quick Look, Search preview and Calendar file or Log previews now ask for the renderer family from the Index. The media family stays the default for existing photo and video links.
  • Production was checked in read-only mode. For the reported PDF, the Index had one application/pdf row and one completed thumbnail Job. The cache had zero 256 px and zero 1024 px WebP files. It had one old generic decoder-failed-v1 marker. The service journal had zero lines with that path since 2026-09-30 00:00 UTC, zero thumbnail error lines and three generic thumbnail lines. The cause is not in the available logs. I did not open or copy the User file, and I did not change production.

OCR

  • OCR does not run. Search reads embedded PDF text with pdf-extract in crates/calternal-search/src/pdf.rs. The server wires this into the Index in crates/calternal-server/src/wire.rs. It reads text layers. It does not recognize text in scanned PDFs or images.
  • #417 checked 614 documents: 455 PDFs, 396 with at least one extractable page, 43 confirmed with no text layer and 16 not inspected.
  • #417 compared Tesseract 5, ocrs 0.13.1 and PaddleOCR 3.7 PP-OCRv5 mobile ONNX on six text-layer pages and six textless pages. The reported token recall values were a proxy, not scan transcription accuracy. Tesseract scored 0.887 recall at 25.512 CPU seconds per page and at most 64,392 KiB RSS. ocrs scored 0.881 at 4.166 CPU seconds per page and at most 528,744 KiB RSS; its model licence was unresolved. PaddleOCR scored 0.968 at 13.934 CPU seconds per page and 1.524 GB RSS. No engine or model has landed.

Documents tab

  • #341 decided to keep Documents over Files, use Documents/ as the default folder, and store metadata only. It does not move or rename files automatically. Derived recognition data belongs in the Index. Human decisions and corrections belong in files. The system remembers rejected tags. The starting auto-tag thresholds are 95%, then 90% after 20 confirmations; a rejection raises the threshold, and lower scores stay as quiet Inspector suggestions.
  • A Paper photo appears in Documents only. Photos keeps its own filter. Sidecars stay hidden by default; Settings → Files → Hidden files controls them.
  • There is no Documents Plugin or Documents tab in the build, so it is not enabled. There is no automatic Paperless-ngx import or storage move.
  • Open questions for the grill: XMP fields; stable sidecar fields and IDs; PDF/A; the first recognition path; intake by folder, mail, Share or VisionKit; task and Calendar reminder creation; retention; sidecar sharing; and the Paperless import field list.

Part 2: Fix

  • The existing page renderer was present. The UI and route used the media cache family for documents, and a generic failure marker could hide later document renders. The route now checks the indexed renderer kind and keeps PDF and text-card cache entries separate, even when file bytes have the same hash. Unknown kinds return 400. A kind that does not match the Index returns 403.
  • A fixture PDF regression test checks renderer-family selection and cache separation. The browser test uploads identical bytes as a PDF and a text file, verifies both variants, sees the page thumbnail in Files and Search, and checks that the Files row does not move when the image arrives.
  • The corrected production-build browser run passed. It reported FILES SCREENSHOTS PASSED and CSP REPORTS files: 0 across 7 pages. At 820 px, the current Search layout shows the result list without the preview pane; the phone and desktop captures show the preview.

Screenshots

Files:

Search:

50-page thumbnail benchmark

This ran locally because the perf VM was occupied. The input PDF was synthetic and 14,623 bytes. There is no PDF thumbnail scenario in docs/perf/baseline.json.

  • 256 px: latency p50/p95 861.17/935.96 ms; CPU 0.29/0.29 s; process-tree RSS p50/p95 47,710,208/48,201,728 bytes.
  • 1024 px: latency p50/p95 783.56/981.18 ms; CPU 0.28/0.29 s; process-tree RSS p50/p95 48,001,024/48,025,600 bytes.
  • Local load average was 19.36, 17.11, 17.29 before the run and 19.25, 17.16, 17.30 after it.

Gates

Gate summaries below reproduce the command output. cargo fmt --check exited 0 with no output.

  • cargo clippy -p calternal-fs --all-targets -- -D warnings

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.27s
    
  • cargo clippy -p calternal-plugin-files --all-targets -- -D warnings

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.42s
    
  • cargo clippy -p calternal-plugin-calendar --all-targets -- -D warnings

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.93s
    
  • cargo clippy -p calternal-server --all-targets -- -D warnings

    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 09s
    
  • cargo test -p calternal-fs

    test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.77s
    test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
  • cargo test -p calternal-plugin-files

    test result: ok. 148 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 173.34s
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
  • cargo test -p calternal-plugin-calendar

    test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
    test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
  • cargo test -p calternal-server

    test result: ok. 93 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 28.18s
    
  • bun run check

    svelte-check found 0 errors and 0 warnings
    
  • bun run test

    Test Files  140 passed (140)
          Tests  934 passed (934)
    
  • bun run build

    ✓ built in 1m 12s
    Wrote site to "build"
    ✔ done
    

The benchmark recorder tests passed: 7 tests, OK. The production browser test output was FILES SCREENSHOTS PASSED / CSP REPORTS files: 0 across 7 pages.

The one 20-minute API-only adversarial round ended with timeout exit 124 during the Photos upload campaign. The hostile-byte probe reported zero findings. Its GIF thumbnail did not arrive in 10 seconds, so that thumbnail response check was skipped. SLOW timings were treated as load. Non-SLOW mismatches were recorded on #566, #567, #557 and #568. No production host was used for this round.

Decisions

  • Reuse the existing Poppler-backed renderer. It is compatible with the repository AGPL-3.0-only license path. No renderer dependency was added.
  • Pass the renderer family as the kind query value. Default it to media so existing image and video URLs keep working.
  • Do not add OCR or a Documents Plugin. #341 and #417 leave those choices open.
  • In screenshot-only mode, skip unrelated keyboard flows. The ordinary e2e run still covers them.

Head: c9fcdd38f8

## Part 1: Findings ### PDF thumbnails - The Files worker uses the existing sandboxed libvips and Poppler renderer. It renders page 1 at 72 dpi with a fixed pdfload action. The worker stores the WebP in the Files thumbnail cache through calternal-fs. - The cache from #510 now has separate Media, Pdf and TextCard families. Image receipts use the normal image renderer when their format is supported. Text files can use a text card. DOCX does not have a page renderer. Its preview remains out of scope under DESIGN §15. - Files grid and list, Recent, the Inspector, Quick Look, Search preview and Calendar file or Log previews now ask for the renderer family from the Index. The media family stays the default for existing photo and video links. - Production was checked in read-only mode. For the reported PDF, the Index had one application/pdf row and one completed thumbnail Job. The cache had zero 256 px and zero 1024 px WebP files. It had one old generic decoder-failed-v1 marker. The service journal had zero lines with that path since 2026-09-30 00:00 UTC, zero thumbnail error lines and three generic thumbnail lines. The cause is not in the available logs. I did not open or copy the User file, and I did not change production. ### OCR - OCR does not run. Search reads embedded PDF text with pdf-extract in crates/calternal-search/src/pdf.rs. The server wires this into the Index in crates/calternal-server/src/wire.rs. It reads text layers. It does not recognize text in scanned PDFs or images. - #417 checked 614 documents: 455 PDFs, 396 with at least one extractable page, 43 confirmed with no text layer and 16 not inspected. - #417 compared Tesseract 5, ocrs 0.13.1 and PaddleOCR 3.7 PP-OCRv5 mobile ONNX on six text-layer pages and six textless pages. The reported token recall values were a proxy, not scan transcription accuracy. Tesseract scored 0.887 recall at 25.512 CPU seconds per page and at most 64,392 KiB RSS. ocrs scored 0.881 at 4.166 CPU seconds per page and at most 528,744 KiB RSS; its model licence was unresolved. PaddleOCR scored 0.968 at 13.934 CPU seconds per page and 1.524 GB RSS. No engine or model has landed. ### Documents tab - #341 decided to keep Documents over Files, use Documents/ as the default folder, and store metadata only. It does not move or rename files automatically. Derived recognition data belongs in the Index. Human decisions and corrections belong in files. The system remembers rejected tags. The starting auto-tag thresholds are 95%, then 90% after 20 confirmations; a rejection raises the threshold, and lower scores stay as quiet Inspector suggestions. - A Paper photo appears in Documents only. Photos keeps its own filter. Sidecars stay hidden by default; Settings → Files → Hidden files controls them. - There is no Documents Plugin or Documents tab in the build, so it is not enabled. There is no automatic Paperless-ngx import or storage move. - Open questions for the grill: XMP fields; stable sidecar fields and IDs; PDF/A; the first recognition path; intake by folder, mail, Share or VisionKit; task and Calendar reminder creation; retention; sidecar sharing; and the Paperless import field list. ## Part 2: Fix - The existing page renderer was present. The UI and route used the media cache family for documents, and a generic failure marker could hide later document renders. The route now checks the indexed renderer kind and keeps PDF and text-card cache entries separate, even when file bytes have the same hash. Unknown kinds return 400. A kind that does not match the Index returns 403. - A fixture PDF regression test checks renderer-family selection and cache separation. The browser test uploads identical bytes as a PDF and a text file, verifies both variants, sees the page thumbnail in Files and Search, and checks that the Files row does not move when the image arrives. - The corrected production-build browser run passed. It reported FILES SCREENSHOTS PASSED and CSP REPORTS files: 0 across 7 pages. At 820 px, the current Search layout shows the result list without the preview pane; the phone and desktop captures show the preview. ### Screenshots Files: - Phone: [light](https://git.kayg.org/attachments/4a36881e-1bd6-4a2a-9b57-1ffe3819da27), [dark](https://git.kayg.org/attachments/4ecb2aef-3630-40a0-bef1-7f0c00af7201) - Tablet: [light](https://git.kayg.org/attachments/60476a7d-82ff-4e7e-ba9e-13e2186f41ce), [dark](https://git.kayg.org/attachments/a1eb6ab3-196d-450b-8fad-e31a829d3464) - Desktop: [light](https://git.kayg.org/attachments/a9ba28a7-ff87-4679-aaf2-b0897b99bbe8), [dark](https://git.kayg.org/attachments/ec738425-69c8-4b7d-a0e1-e28d5cbf4848) Search: - Phone: [light](https://git.kayg.org/attachments/1acaaaf9-fb21-45a3-b2e6-07826afed4a0), [dark](https://git.kayg.org/attachments/0489553e-4b08-496a-b279-0497a2889313) - Tablet: [light](https://git.kayg.org/attachments/46166f2f-342c-4b62-a186-91bba94c4d3f), [dark](https://git.kayg.org/attachments/78a58b6f-93a7-4f53-ba02-bec5f4af0671) - Desktop: [light](https://git.kayg.org/attachments/ae203359-27ef-469f-8df2-b7bfb4cc0b52), [dark](https://git.kayg.org/attachments/8de1ba2b-489c-408f-988b-748a2ca84b23) ### 50-page thumbnail benchmark This ran locally because the perf VM was occupied. The input PDF was synthetic and 14,623 bytes. There is no PDF thumbnail scenario in docs/perf/baseline.json. - 256 px: latency p50/p95 861.17/935.96 ms; CPU 0.29/0.29 s; process-tree RSS p50/p95 47,710,208/48,201,728 bytes. - 1024 px: latency p50/p95 783.56/981.18 ms; CPU 0.28/0.29 s; process-tree RSS p50/p95 48,001,024/48,025,600 bytes. - Local load average was 19.36, 17.11, 17.29 before the run and 19.25, 17.16, 17.30 after it. ## Gates Gate summaries below reproduce the command output. cargo fmt --check exited 0 with no output. - cargo clippy -p calternal-fs --all-targets -- -D warnings Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.27s - cargo clippy -p calternal-plugin-files --all-targets -- -D warnings Finished `dev` profile [unoptimized + debuginfo] target(s) in 59.42s - cargo clippy -p calternal-plugin-calendar --all-targets -- -D warnings Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.93s - cargo clippy -p calternal-server --all-targets -- -D warnings Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 09s - cargo test -p calternal-fs test result: ok. 53 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 7.77s test result: ok. 42 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.02s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - cargo test -p calternal-plugin-files test result: ok. 148 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 173.34s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - cargo test -p calternal-plugin-calendar test result: ok. 80 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.35s test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.11s test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - cargo test -p calternal-server test result: ok. 93 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 28.18s - bun run check svelte-check found 0 errors and 0 warnings - bun run test Test Files 140 passed (140) Tests 934 passed (934) - bun run build ✓ built in 1m 12s Wrote site to "build" ✔ done The benchmark recorder tests passed: 7 tests, OK. The production browser test output was FILES SCREENSHOTS PASSED / CSP REPORTS files: 0 across 7 pages. The one 20-minute API-only adversarial round ended with timeout exit 124 during the Photos upload campaign. The hostile-byte probe reported zero findings. Its GIF thumbnail did not arrive in 10 seconds, so that thumbnail response check was skipped. SLOW timings were treated as load. Non-SLOW mismatches were recorded on #566, #567, #557 and #568. No production host was used for this round. ## Decisions - Reuse the existing Poppler-backed renderer. It is compatible with the repository AGPL-3.0-only license path. No renderer dependency was added. - Pass the renderer family as the kind query value. Default it to media so existing image and video URLs keep working. - Do not add OCR or a Documents Plugin. #341 and #417 leave those choices open. - In screenshot-only mode, skip unrelated keyboard flows. The ordinary e2e run still covers them. Head: c9fcdd38f8ac3da7bac08f023277d398a233306b
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#547
No description provided.