You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Reanchor pass in the host over every book the draft links into, through the session's queue, as 2e's read delivers each one and again whenever BookService gets new text for one, sending that book's onAnalysisChanged after the pass; not an undo step, since an undo or redo re-anchors what it restores to the current text, as main does; links into a book the text lacks go stale, as reanchorDraftToMissingBook does.
Done when: its result matches the WebView passes on the #407 datasets, which hold no drift, on the drift cases in reanchor-analysis.test.ts and on the missing-book cases in reanchor-draft.test.ts, undo and redo restore content re-anchored to the current text, and a mid-session Scripture edit re-anchors the open book before its refetch.
2d emits onAnalysisChanged as soon as the open book's text changes. 3j needs to hold it until its pass finishes. It also relies on 2e's watches to hear about edits to linked books that aren't open.
The 2e read (#474) discards each tokenized Book once its forms are filed, and announces a book's arrival to no one.
3j needs a per-book arrival hook from readTextBook, or must tokenize again.
Edits to read books come through bookService.onBookTextChanged. main.ts emits onAnalysisChanged straight from it. 3j's pass goes between the two.
A book whose read fails doesn't arrive, so its links aren't re-anchored until it does. Every read book keeps a live subscription, and every Scripture save in the project makes each subscription fetch its book again, so a failed book is read again, and arrives, on the next save. A project without a USJ_Book provider fails getTextReadStatus instead. If a failed book must arrive without a save, add a retry, and have the hook deliver a retried book like any other.
From #486: only opening a session clears the undo history. Host New and Open don't exist yet; for this issue's mitigation to hold, whatever builds them must clear the history or arrive as openSession.
Activity
imnasnainaec commentedon Oct 19, 2026
2d emits
onAnalysisChangedas soon as the open book's text changes. 3j needs to hold it until its pass finishes. It also relies on 2e's watches to hear about edits to linked books that aren't open.imnasnainaec commentedon Oct 20, 2026
The 2e read (#474) discards each tokenized
Bookonce its forms are filed, and announces a book's arrival to no one.3j needs a per-book arrival hook from
readTextBook, or must tokenize again.Edits to read books come through
bookService.onBookTextChanged.main.tsemitsonAnalysisChangedstraight from it. 3j's pass goes between the two.A book whose read fails doesn't arrive, so its links aren't re-anchored until it does. Every read book keeps a live subscription, and every Scripture save in the project makes each subscription fetch its book again, so a failed book is read again, and arrives, on the next save. A project without a USJ_Book provider fails
getTextReadStatusinstead. If a failed book must arrive without a save, add a retry, and have the hook deliver a retried book like any other.alex-rawlings-yyc commentedon Oct 23, 2026
From #486: only opening a session clears the undo history. Host New and Open don't exist yet; for this issue's mitigation to hold, whatever builds them must clear the history or arrive as
openSession.Pass each book the whole-text read files to listeners
Build a re-anchor pass's changes as a change set
Re-anchor what undo and redo restore to the current text
Check host re-anchor parity on every WebView pass case
Compare the host's re-anchor with the WebView's in the bench
9 remaining items
Pass each book the whole-text read files to listeners
Build a re-anchor pass's changes as a change set
Re-anchor what undo and redo restore to the current text
Check host re-anchor parity on every WebView pass case
Compare the host's re-anchor with the WebView's in the bench
Apply an undo or redo and its re-anchor as one
Pass the open book's edited text on before reporting the edit
Let a session start and stop the whole-text read
Re-anchor each book the session's read delivers
Compare a restored translation with its payload
Leave the unsaved mark as it was after a re-anchor pass
Clear the kept draft's unsaved mark when marking it clean
Fold readBooks' parameter note into its summary
Tidy the re-anchor tests and docs from review
Plan a pass over every book the read delivers