Skip to content

Releases: yilewang/llm-for-zotero

Release v3.9.5

Choose a tag to compare

@github-actions github-actions released this 30 Aug 04:31

Please check the major update from https://github.com/yilewang/llm-for-zotero/releases#release-v3.9.4

v3.9.5 is a small patch:

  • better chinese support in new tavily general web search
  • UI improvement
  • fix bugs in determining search depth: now it can be inferred from query: advanced | basic

I think currently it works well. let me know how your experience.

image

Release v3.9.4

Choose a tag to compare

@github-actions github-actions released this 29 Aug 21:38

Release Note v3.9.4

This release introduces built-in web research and substantially improves the safety, reliability, and accuracy of Agent workflows.

Built-in web and literature research

The Agent can now search the web, read source pages, and use current online information alongside your Zotero library.

Web-assisted answers include paragraph-level attribution and interactive source cards with titles, organizations, safe links, and favicons.
General web research and academic literature searches are displayed separately in the Agent activity trace, making it easier to understand where evidence came from.

Web search is powered by Tavily and can be configured from the plugin preferences. Free tier users have 1000 credits each month with api-key

tavily setup

image

Agent web search research integration

image

Source list at the end of the paragraph

image

Safer, verifiable Agent actions

Zotero, file, and command actions now use typed action contracts with frozen target scopes and independently verified results.

The Agent no longer treats a successful tool call or its own completion claim as sufficient proof that an action was completed.
It verifies the resulting Zotero, filesystem, or execution state before reporting success.

More reliable long-running Agent sessions

Long-running turns now recover through deterministic semantic checkpoints.

When provider state must be restarted or compacted, the Agent preserves the original instructions, selected resources, attachments, skills, and action constraints while discarding stale reasoning, tool calls, and provider protocol state.

Rejected completion claims are rolled back transactionally.
A correction allowance is consumed only after the correction has been installed and checkpointed successfully.

Exact paper and attachment targeting

Paper, attachment, library, and context-item identities now remain stable across retries, tools, MCP, Codex, Claude, and other Agent backends.

Collection and batch operations preserve their original frozen target scope and continue only with unresolved items.

Unified Zotero metadata

A shared metadata resolver now provides consistent, provenance-preserving Zotero information across Agent context, library reads, notes, citations, and PDF routing.

Creator, container, parent-item, attachment, and publication metadata remain distinct, and fields cleared by the user are not silently restored from stale context.

Better citations, quotes, and Markdown

PDF quote verification now handles inline mathematical expressions while retaining strict page and uniqueness checks.

Quote cards and citation-decorated blockquotes also render more reliably without merging into surrounding paragraphs or lists.

More dependable conversation restoration

Paper and Library Chat state now uses a bounded conversation registry instead of accumulating unbounded per-paper preferences.

Navigation, deletion, restart, standalone-window, and WebChat transitions preserve the correct active conversation while cleaning obsolete state.

Cleaner cross-provider Agent guidance

Shared prompt contracts, persona guidance, skills, and tool instructions are now consolidated across providers.

This reduces duplicated instructions and helps keep Agent behavior consistent across OpenAI-compatible, Anthropic, Gemini, Codex, and other supported backends.

Release v3.9.3

Choose a tag to compare

@github-actions github-actions released this 29 Aug 21:21

(skip)

Release v3.9.2

Choose a tag to compare

@github-actions github-actions released this 25 Aug 22:16

Release note

regular update, focusing on codebase refactoring and agent's long-run stability

1 codex direct mode (legacy) mode, update to have auto-fetch so you can choose model without typing it
2 improve the undo operation: so now it can safely undo some of your large scale operation to the library.
3 #379 better proxy support to reduce MCP initialization issue.

Release v3.9.1

Choose a tag to compare

@github-actions github-actions released this 22 Aug 07:38

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.

Release v3.9.0

Choose a tag to compare

@github-actions github-actions released this 20 Aug 04:59

v3.9.0 Release Note

1. Local models and model customization

  • Two new provider presets:

    • Ollama (local) using Ollama’s native API at localhost:11434.
    • Local (OpenAI-compatible) for LM Studio, llama.cpp, vLLM, Jan, and similar servers.
  • Local providers work without an API key and recognize localhost, private-network addresses, .local hosts, and Docker hostnames.

  • Ollama’s model picker discovers installed models automatically.

  • For Ollama models, the plugin can discover their real context window and reported vision, tool-calling, and thinking capabilities.

  • Ollama’s native thinking output is separated from the final answer instead of leaking raw <think> blocks into chat.

  • Users can add arbitrary reasoning levels such as ultra, off, or future provider-specific values without waiting for a plugin update.

  • Deleting every reasoning level hides the reasoning selector for that model.

  • The editor shows what provider parameter each reasoning level will send.

  • Users can add model-specific JSON request parameters, including nested options such as top_k and repeat_penalty.

  • Model customizations are tied to the exact model name, remembered across restarts, and can be reset to detected defaults.

  • Connection testing now exercises custom reasoning levels and request parameters and reports the server’s actual response.

  • Explicitly disabling reasoning is honored, while models such as older GPT-4 variants no longer receive unsupported reasoning choices.

2. Skill customization

  • User-written additions to built-in skill files are preserved when the plugin upgrades the managed portion of those skills.

  • User customizations are explicitly treated as authoritative when they conflict with the built-in skill instructions.

  • This preservation applies to both the built-in Agent and native Codex skill paths.

  • Note-writing requests in Chinese, Japanese, Korean, Spanish, French, German, Russian, Arabic, and other supported patterns now activate the note-writing skill reliably. Custom note instructions therefore apply outside English.

3. Longer and more autonomous Agent tasks

  • The Agent/Chat choice is sticky across papers, conversations, and Zotero restarts.

  • The Agent begins with awareness of:

    • The active personal or group library.
    • Other available libraries.
    • Top-level collection names and IDs.
    • Whether the active library is read-only.
  • Users no longer need to find and supply internal collection IDs for ordinary requests.

  • Multi-step tasks can continue through multiple visible segments instead of stopping at the old single-segment round limit.

  • Each productive segment is checkpointed before the Agent continues.

  • If Zotero or the model process interrupts a task, a later “continue” request retains completed tool calls and results instead of starting blind.

  • The Agent stops when a complete segment produces no new successful progress, preventing indefinite loops.

  • Large search or tool results can be stored and read back in pages rather than exhausting the conversation context.

  • Incomplete tool-call records are removed from reusable conversations, reducing failures on subsequent turns.

  • User-visible progress messages show continuing and checkpointing activity.

4. More reliable Agent completion behavior

The Agent now corrects itself before claiming completion when:

  • The user asked it to read an entire paper but it did not perform a full read.
  • The user requested an external Markdown note but no file was written.
  • A library write ran but changed nothing.
  • A question about a selected collection or tag was answered without reading library evidence.

Mutation results now distinguish changed, unchanged, skipped, missing, and failed objects, with reasons. This reduces false claims such as saying papers were moved when no collection membership changed.

5. Library search and discovery

  • Searches can target the personal library or a particular group library.

  • Users can search or list items, collections, notes, tags, libraries, saved searches, and Zotero item types.

  • Item-type discovery shows the fields and creator roles accepted by each Zotero type.

  • Saved-search discovery shows existing searches and their conditions.

  • Search supports Zotero’s broader condition vocabulary, including:

    • Full text and abstract.
    • DOI, publisher, and citation key.
    • Date added and modified.
    • Notes and annotation text.
    • Retraction and publications status.
    • Required clauses and all/any matching.
  • Users can list and inspect objects in the Zotero Trash.

  • Searches support paging, sorting, result limits, and reliable total counts.

  • Year filtering now behaves correctly.

  • Matches found inside notes, annotations, or full text can be resolved back to their parent papers.

  • Reading an item now reports collection membership for PDF-less items and standalone notes as well as PDF-backed papers.

6. Better multilingual and collection-scale research

  • Retrieval understands whether the user wants enumeration, verification, summary, methods, results, or limitations across multiple languages.

  • Chinese, Japanese, and Korean queries are segmented into usable search terms instead of being treated as one punctuated sentence.

  • Technical terms such as GPT-4 and IL-6 are preserved during multilingual searching.

  • If the query and library use different languages, the Agent can construct search variants in both languages.

  • Weak initial searches trigger bounded follow-up searches with different terms.

  • Candidate papers are ranked using titles and abstracts, improving relevance across large collections.

  • When exact matches are sparse, the Agent can return the best available candidates while clearly identifying them as low confidence rather than pretending they are exact matches.

  • The Agent can prioritize which papers deserve full reading and use different evidence queries for different papers.

  • Methods, results, and discussion passages are preferred over front matter when answering evidence questions.

  • Answers can report how many papers were body-read, metadata-only, unreadable, or excluded by the retrieval budget.

  • The Agent is instructed not to generalize across an entire collection when only metadata or partial evidence was available.

  • CJK-heavy material receives more realistic context-budget treatment, reducing premature truncation.

7. Citation and quote navigation

  • Clicking an assistant citation can open the correct PDF even when it was not already open.

  • The reader jumps to the verified quote or page location.

  • Navigation uses the papers and passages actually used for the answer before searching elsewhere.

  • Quotes assembled from multiple passages or pages can still be resolved.

  • The plugin verifies substantial quote coverage before opening a candidate, reducing jumps to the wrong same-author or same-year paper.

  • Same-looking citation labels can be disambiguated between different papers.

  • Grouped and narrative citations are supported more reliably.

  • Scanned or text-unreadable PDFs remain eligible for a viewer-based fallback.

  • Verified printed page labels can replace an initially estimated page label.

  • Candidate PDFs are checked before opening, reducing cascades of incorrect reader tabs.

8. Real citations, bibliographies, and exports

The Agent can now ask Zotero itself to produce:

  • In-text citations.
  • Bibliography entries.
  • Installed citation-style lists.
  • Plain-text or HTML output.
  • Locale-specific citations.
  • BibTeX, BibLaTeX, RIS, CSL JSON, Zotero RDF, and Simple Evernote exports.

This replaces model-invented citation formatting with Zotero’s CSL and translator output.

9. Expanded Zotero library operations

Users can now ask the Agent to perform the following new behaviors:

  • Create books, theses, datasets, reports, manuscripts, presentations, and other Zotero item types manually.
  • Set creators, tags, collections, and any field valid for the selected item type.
  • Update different metadata fields across multiple items in one request.
  • Reject invalid fields visibly instead of silently ignoring them.
  • Import DOI, ISBN, arXiv, and URL records into a chosen personal or group library.
  • Import .ris, .bib, .enw, .nbib, and RDF files as real references instead of attaching the bibliography file.
  • Import PDFs with Zotero metadata recognition.
  • Create, rename, move, trash, permanently erase, and restore collections.
  • Restore nested collections while retaining their parent relationships.
  • Truly move items between collections instead of merely adding another membership.
  • Add, remove, or replace an item’s complete tag set.
  • Rename, merge, delete, color, or reposition a tag across a library.
  • Create, replace, trash, and restore Zotero saved searches.
  • Reparent or detach child notes and attachments.
  • Add or remove bidirectional Related links.
  • Create individual or batch notes, including standalone notes filed into collections.
  • Rename the actual attachment file on disk.
  • Relink missing attachments to a new path, including stored attachments.
  • Move attachments to Trash.
  • Create real Zotero PDF highlights with color and an optional comment.
  • Restore trashed items, collections, and saved searches.
  • Merge duplicates using Zotero’s merge behavior so attachments, notes, tags, collections, and citation links follow the retained item.

10. Zotero preferences and sync visibility

The Agent can list and, after the appropriate approval, change an allowlisted set of Zotero settings:

  • Recursive collection display.
  • Chronological note sorting.
  • Empty Trash visibility and automatic emptying period.
  • Automatic webpage snapshots and imported tags.
  • Quick Copy s...
Read more

Release v3.8.37

Choose a tag to compare

@github-actions github-actions released this 13 Aug 18:55

Fix the Claude Code mode issue

#362

Please update the plugin and reboot the zotero to be able to use Claude Code mode properly.

Release v3.8.36

Choose a tag to compare

@github-actions github-actions released this 13 Aug 01:40

v3.8.36

Why two releases an hour apart

v3.8.35 changed how the mode pill — the Paper chat / Library chat label at the top of the panel — responds to the plugin's font size setting.
It shouldn't have.
The change was made to solve a layout problem that only appears in a narrow sidebar, but it applied at every panel width, so everyone lost working behaviour to fix an edge case most people never hit.
v3.8.36 puts it back, and solves the original problem a different way.

What changed for you

The mode pill scales with your font size again.
In v3.8.34 and earlier, the pill's label grew and shrank with the plugin's font size setting.
v3.8.35 pinned it to a fixed size, so the font size shortcuts had no effect on it at all.
v3.8.36 restores the original behaviour exactly — this is the v3.8.34 pill, unchanged.

More headroom when the sidebar is narrow.
When the panel gets narrow enough that the buttons on the right collapse into compact icons, the spacing on the left of the header now tightens as well.
That frees up room for the pill to grow, so larger font sizes stay usable in a narrower sidebar than before.

Everything else from v3.8.35 is still here

v3.8.35 was a substantial release and none of it was rolled back:

  • Conversation identity and deletion handling hardened — including cases where a chat could resume against the wrong session after upgrading, or where a deleted chat could reappear
  • Startup no longer aborts if pending deletions cannot be read
  • Hint, status and message text is selectable and copyable across the plugin's surfaces
  • Kimi K3 support repaired
  • Gemini 3 fixes — thinking display, agent mode, and model specifications

Anything to do?

No. Zotero picks up plugin updates automatically.
To pull it right away: Tools → Plugins, then the gear icon → Check for Updates.

Release v3.8.35

Choose a tag to compare

@github-actions github-actions released this 13 Aug 00:32

🚀 Enhancements

  • conversations: Permanent key ledger and deletion-lifecycle hardening (1118c0fd)

🔥 Performance

  • conversations: Stop repeating schema and identity work on every operation (0f7db43b)

🩹 Fixes

  • conversations: Scope the database fence to retired keys only (ec701344)
  • startup: Degrade instead of aborting when deletion intents cannot load (68c5183b)
  • conversations: Require evidence before permanently retiring a key (bf791c7f)
  • conversations: Close three defects found reviewing the remediation (009c5003)
  • conversations: Make quarantined identities visible (22902db6)
  • conversations: Replace unbounded key-walk loops with monotonic allocation (f37f8f36)
  • conversations: Anchor legacy conversation-id rewrites to the full key suffix (710393ef)
  • conversations: Rewrite only the key token when rekeying scoped conversation keys (2950f13a)
  • header: Keep the mode chip label at chrome size (2cd554d1)

🤖 CI

  • Run quality and release workflows on Node 24 (cb9a0ecb)

❤️ Contributors

  • Yile Wang

Release v3.8.34

Choose a tag to compare

@github-actions github-actions released this 11 Aug 01:25

Release note

1 improve webchat stability, please also update your github repo for sync-for-zotero and refresh your extension on chrome: https://github.com/yilewang/sync-for-zotero/releases/tag/v0.0.15

2 remove buggy double scroll bar inside the plugin.

this is gone now:
image

3 remove the ghost webchat history item in your local conversation DB. they should not be shown to you at all.