TokenAnalysisLink, PhraseAnalysisLink, and AlignmentEndpoint all carry surfaceText snapshots for drift detection, but SegmentAnalysisLink has only segmentId — a changed verse silently keeps its free translation looking fresh. Options:
- Add a
baselineTextHash (or full baselineText snapshot) to SegmentAnalysisLink, compared on load; flip status to 'stale' on mismatch, or
- Record the owning
Book.textVersion on the link and compare at book level (coarser, but nearly free).
Prefer the per-segment hash: book-level textVersion marks every segment stale on any edit anywhere in the book.
Size: S
Priority: P3 (do before free-translation features expand)
TokenAnalysisLink,PhraseAnalysisLink, andAlignmentEndpointall carrysurfaceTextsnapshots for drift detection, butSegmentAnalysisLinkhas onlysegmentId— a changed verse silently keeps its free translation looking fresh. Options:baselineTextHash(or fullbaselineTextsnapshot) toSegmentAnalysisLink, compared on load; flipstatusto'stale'on mismatch, orBook.textVersionon the link and compare at book level (coarser, but nearly free).Prefer the per-segment hash: book-level
textVersionmarks every segment stale on any edit anywhere in the book.Size: S
Priority: P3 (do before free-translation features expand)