fix(word-addin): unstick chat-history pagination and stop cross-document flashes
WHY THIS MATTERS loadMore talked to the fetch effect solely through setOffset(chats.length). Offset pagination over a list ordered by updated_at shifts whenever a chat is bumped to the top, so a whole fetched page can be deduplicated away -- leaving chats.length equal to the current offset. The offset-keyed effect then never re-fires, and the requestPending guard plus the loadingMore spinner stay stuck forever: pagination is dead until the pane reloads. WHAT IS AN OFFSET-PAGINATION SHIFT Page N is defined as "rows N*size..N*size+size at query time". If a row moves ahead of the cursor between requests (updated_at reordering), page N+1 re-serves rows you already have; dedupe correctly drops them, but any signal derived from list length no longer moves. HOW IT WORKS A monotonic requestId now accompanies the offset: loadMore bumps both, and the fetch effect keys on the requestId, so every loadMore performs exactly one fetch even when the numeric offset is unchanged. Dedupe semantics and the history-changed subscription are untouched. Also fixed here: switching document or storage scope while offset != 0 used to early-return after setOffset(0) without clearing state, so the previous document's chats stayed on screen until the new fetch resolved. The list and hasMore now reset before that early return. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015U1iPxsADQ2yuksNmDuvvW
| Repository | open-legal-products/mike |
|---|---|
| Author | Amal <mamalanand3@gmail.com> |
| Authored | |
| Committed | |
| Parents | 72254ef3 |
| Stats | 1 file changed , +14 , -3 |
| Part of | Bring the Word add-in chat experience in line with the web app |
Capture this commit into my fork
Download a Markdown prompt that tells Claude how to port this
exact commit into your working tree. Run it via
claude -p < capture-commit-2f9d007f.md
from inside the repo you want the change in.