zotero/test
Bogdan Abaev c00062edf8 Search note and annotation content
Notes are indexed on their text and annotations on the passage they mark
together with their comment, so both match on what they actually say
rather than on their parent's title and abstract.

A note can hold more text than a model's context window, so
Zotero.Embeddings.Chunking splits long text using the selected model's
tokenizer. Paragraphs are the topic units: two never share a chunk
unless one is too small to embed on its own, in which case small
paragraphs are combined, and a paragraph over the window is split at
sentence boundaries into even pieces. Stored embeddings are keyed by item
and chunk, so the index is rebuilt on upgrade.

An item scores as its best chunk, so a long note
that addresses a query in one paragraph isn't diluted by the rest, and
its rank reflects the best match anywhere beneath it: a strongly matching
annotation lifts its attachment and its paper. The relevance bar reports
only the row's own score, so a paper ranked by its annotation shows a
high rank over an empty bar rather than claiming to be a match it isn't.
List order and bar fill deliberately disagree in that case.

Annotation rows render the relevance cell, and the
Relevance column moves to the far right while a best-match search is
active so the bars line up across item, note, attachment and annotation
rows.
2026-08-11 11:27:04 -07:00
..
components fx140: Asyncify/ESMify tests 2025-07-30 22:30:53 -04:00
content fx153: ownerGlobal -> documentGlobal 2026-08-03 11:48:40 -04:00
resource Remove Chai as Promised 2025-07-30 22:31:08 -04:00
tests Search note and annotation content 2026-08-11 11:27:04 -07:00
chrome.manifest fx115: Restore test runner 2024-03-30 00:58:53 -04:00
runtests.sh runtests.sh: Add -p option to run a shard of the test files (e.g., -p 2/4) 2026-07-08 10:50:32 -04:00