Citations, highlights and notes
Precise ranges, saved evidence and revision-safe working notes.








Exact passage ranges
Text citations carry page_char_start and page_char_end offsets plus an extraction version and offset unit. The reader highlights only text.slice(start, end). Missing, reversed or out-of-bounds offsets never trigger a whole-page fallback.
Citation interaction
Selecting a citation opens the correct document, navigates to its page, scrolls the passage into view and activates only that citation. Separate non-overlapping citations remain independent.
Manual highlights
A browser selection across adjacent inline nodes on one page is converted into page-relative character offsets. Cross-page selections are rejected because one annotation cannot safely describe two page coordinate systems.
Persistence and deletion
Kept citations and manual highlights use the shared annotation schema: quote, page, start and end range, extraction version, document ID and conversation ID. Creates and deletes are persisted so reload reflects the saved state.
Revisioned notes
Working notes are updated with an expected revision. If another update has already produced a newer revision, the API returns a conflict instead of silently overwriting it. History can be reviewed and an earlier revision restored as a new revision.