Release v3.9.1
v3.9.1
A stability release: it hardens the chat request lifecycle, fixes several ways
quote verification could mislead you, and closes an adversarial pre-release
code review with all 10 confirmed findings fixed.
Quotes you can trust
- Quotes that span a PDF page break are no longer falsely flagged as
"Not a source quote" — verification now checks across page boundaries
before doubting a quote. - Quote verification now works against every open PDF tab, not just the one
in front, so multi-paper conversations verify consistently no matter where
you're reading. - Quote matching and navigation work again for Chinese/Japanese/Korean
papers (long CJK quotes silently lost partial matching before). - Verification is much lighter: the PDF text is extracted once per document
instead of once per quote, so conversations with many quotes no longer
stutter on open. - Improved quote validation across PDF extraction artifacts (hyphenation,
line numbers, layout fragments).
Chat requests that can't get stuck
- Sending is now atomic per conversation: no more double-sends or a
conversation wedged in "busy" after rapid clicks. - Cancel is a guaranteed escape hatch again — even if a provider or webchat
relay hangs and ignores the stop request, the conversation returns to a
sendable state. - Editing and resending a message can no longer strand a conversation when
it switches identity mid-flight, and cancelling an edited resend no longer
shows a false "Failed to save edited prompt" error. - Sending works on systems where Zotero's runtime lacks AbortController —
previously every send failed instantly there. - Sent context, request state, and recovery state now survive a Zotero
restart.
Agent
- The agent sees its own library changes immediately: search and collection
listings no longer serve stale data right after the agent renames, tags,
or files items. - Both undo tools now agree: "undo my last change" targets the newest change
that can actually be reversed, and clearly lists newer irreversible
changes that will remain. - Fixes for agent recovery after interruptions, long-running tasks, planning,
and revert edge cases.
Models
- DeepSeek models now accept image input.
- Correct context window for qwen3.8-max via the Bailian/DashScope API (#377).
- Fixed model input-cap display issues and CSS regressions in the model
catalog and reasoning-level menus.
Verification: typecheck clean, 3,906 unit tests passing, 94/94 workflow
tests passing against a real Zotero.