What's new — November 2026
What changed since the May 2026 status report. Items marked development run in our development environment and are not in production yet; the code is public in each repository.
Extraction pipeline (development)
PDFs are now taken apart into structured content. The catalog queues one extraction run per file; the analyzer finds the page layout with Docling and sends each part to the right worker:
- the text service stores paragraphs and their sentences with positions on the page, embeds each paragraph, and converts tables to Markdown;
- the image service crops figures;
- the equation service reads formulas as LaTeX with a LaTeX-OCR model.
Results go back to the catalog. Readers get a publication's figures, its structured text, and a list of similar publications.
Passage search (development)
/api/v1/entries/passages searches inside publications and returns
paragraphs with the matching words highlighted. It matches both the words of
a query and its meaning.
We also decided where search lives: in the catalog's own PostgreSQL.
Full-text search with accent-insensitive matching (PostgreSQL
has no Slovak stemmer, so prefix matching covers inflection), BM25 ranking
with pg_search, and vector search with pgvector, in the same query as
permissions and facets. The code is on the catalog's develop branch, and
evilflowers-search-service will be retired.
Assistant (development)
The assistant answers from the library's passages, labels how strongly each passage supports the answer, and cites them. It can also summarise chapters. Evaluation tooling is in the catalog; tuning it against a reference question set is the open task.
Digitizing printed books
evilflowers-books-digitalizer is new. It turns TIFF scans into a linearized distribution PDF, a PDF/A-2b archival master and an EPUB, with Slovak OCR, metadata and covers, and publishes the book to the catalog. It runs as a resumable batch job or as a web studio for reviewing books page by page. Documentation.
Catalog
On develop, coming in the next release:
- reviews and ratings on publications;
- HTTP range requests for downloads, so large files stream;
- password change, and upload checks that refuse empty or mislabelled files;
- branded notification e-mails, and nightly sync of names from LDAP;
- optional rate limits;
- the MCP server requires an API key by default.
Database
Production moved to PostgreSQL 18 on our own image, evilflowers-postgresql, with pgvector and pg_search built in.
Readium LCP certification
The sample licenses EDRLab asks for (three purchase and two loan licenses in their required states) are generated by the catalog and verified against our status server. Certification is in progress.
Operations
The development environment moved to Kubernetes. The catalog and its workers send traces, metrics and logs through OpenTelemetry, so a slow page or a stuck job can be followed from the request to the worker that handled it.

