Fixed
- SQLite keyword search missed titles the API backend finds, and rendered them "Untitled" (#570, #574). Queries hardcoded a fieldID for
title,dateandpublicationTitle; they now resolve by name and per item type, as Zotero does, so cases (caseName), statutes, emails, webpages and libraries with non-standard field IDs are found, sorted and indexed correctly. The lookup is also cheaper than before: keyword search 3.6 ms to 1.3 ms on a 700-item library. - Collection-scoped search on the web API ignored the query and returned the collection's first items. Regression from 0.12.1.
- Child notes no longer crowd papers out of small
titleCreatorYearresult sets on the API backend: the search pages past notes it is going to drop (#542). - A failed metadata search is reported as an error instead of "No items found" followed by the fallback cascade (#578). Results already found by another query variant are kept.
- Annotations no longer render as "Untitled": they show Zotero's own composed title, the quoted text and comment, or the type name for image and ink annotations (#575, #576). Annotation type 6 ("text") is no longer reported as an empty string.
update-db --limit Nno longer marks the whole library as indexed (#564). If you have used--limit, runupdate-db --fulltextor--force-rebuildonce to repair the index.- Semantic search no longer fails with
embed_query() got an unexpected keyword argument 'input'when the config file is missing and ChromaDB rebuilds the stored embedding function (#565). The single-text method is nowembed_query_text. zotero_find_related_papersreported 0 citations for every paper after OpenAlex removedcited_by_api_url; it now uses thecites:filter (#458, #566). Its "in library" flag also recognises DOIs stored asdoi.orgURLs (#568).export --format bibtexfailed with'BibDatabase' object is not iterable, and@inproceedingsentries had nobooktitle(#579).- Legacy arXiv ids with a dotted archive (
math.GT/0309136) are recognised, so re-adding such a paper is deduplicated (#571). - Local writes are probed on
127.0.0.1, where pyzotero 1.15.2 sends them. Wherelocalhostresolves to::1first, writes silently fell back to the web API (#567, #569). - The ChatGPT connector
searchtool falls back to keyword search when the semantic extra or index is missing, instead of returning nothing (#572).