Skip to content

Release v3.9.1

Choose a tag to compare

@github-actions github-actions released this 22 Aug 07:38
· 6 commits to main since this release

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.