Release v3.9.0
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.
- Ollama (local) using Ollama’s native API at
-
Local providers work without an API key and recognize localhost, private-network addresses,
.localhosts, 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_kandrepeat_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-4andIL-6are 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 style and locale.
- Attachment filename template and automatic renaming.
- Annotation-note templates.
- Interface and note-editor font sizes.
- Standard or stacked item-pane layout.
It can also report whether Zotero sync is configured, which user is configured, and whether sync is currently running. It does not start a sync.
11. Consent, recovery, and batch operation behavior
-
A new Library Write Mode preference provides:
auto: immediately applies reversible changes but asks before irreversible ones.safe: reviews every library change and every batch page.yolo: allows autonomous changes, including irreversible writes and unattended whole-library jobs.
-
Confirmation cards show the actual affected objects.
-
Batch cards allow users to uncheck individual targets.
-
Rename and relink cards allow the proposed filename or path to be edited before approval.
-
Recent recorded changes can be previewed with a dry run and reverted in groups.
-
Reversible history survives Zotero restarts.
-
Operations that cannot be completely reversed are reported as such rather than silently pretending they are undoable.
-
Whole-library auto-tagging, organizing unfiled items, and library auditing can run as durable jobs in
yolomode. -
Interrupted batch jobs can be listed and explicitly resumed from their remaining-item checkpoint.
-
Resumption uses the original frozen target list, reducing accidental inclusion of newly added library items.
-
Partial successful work remains recorded and recoverable when a later page fails.