Skip to content

Releases: max3925vats/zotero-docling

Release v0.3.3

Choose a tag to compare

@github-actions github-actions released this 19 Jun 14:11

🩹 Fixes

  • prefs: Close malformed XML comments that blanked the preferences pane (f30a73e)

📖 Documentation

  • Add context-menu and preferences screenshots to README (abb0aad)
  • Move context-menu screenshot into Usage and shrink to ~1/3 width (8e8b9eb)
  • Group screenshots side by side under a Screenshots subheading (1e91b27)

📦 Build

  • deps: Override serialize-javascript to >=7.0.5 (50c8064)

🏡 Chore

  • Gitignore local NOTES.md working notes (1a4a812)

🤖 CI

  • Restrict GITHUB_TOKEN to least-privilege (contents: read) (e4512b1)
  • Guard addon XHTML fragments for well-formedness (c634218)

❤️ Contributors

Release v0.3.2

Choose a tag to compare

@github-actions github-actions released this 11 Jun 02:56

❤️ Contributors

Release v0.3.1

Choose a tag to compare

@github-actions github-actions released this 24 May 11:21

Patch release with one quality-of-life fix for Apple Silicon users.

🐛 Quality-of-life

  • Surface a workaround hint for the Apple Silicon MPS + float64 error (#37). When docling-serve returns a conversion error containing both `MPS` and `float64`, the toast now appends a one-line hint pointing at the `PYTORCH_ENABLE_MPS_FALLBACK=1` workaround and the README Troubleshooting section. The original error message is preserved verbatim — the hint is suffixed, not replaced. Other errors pass through unchanged.

    Pairs with the README Troubleshooting section added in #36.

The hint table (`KNOWN_SERVER_ISSUES` in `src/utils/serverErrorHints.ts`) is open for extension — future known docling-serve / upstream-library failure modes can be added as new entries without touching the call sites.


Thanks again to @brianckeegan for the implementation, and to the user whose bug report surfaced the MPS issue in the first place.

Release v0.3.0

Choose a tag to compare

@github-actions github-actions released this 22 May 03:17

Feature-heavy release. New auth surface, a markdown zip export, a guarded re-convert flow, smarter async polling, a reorganized preferences pane, plus an honest pile of internal hygiene work.

✨ New features

  • Optional authentication for protected docling-serve instances (#27). Three schemes — Bearer token, HTTP Basic, custom header (e.g. X-API-Key). Default is no auth, so existing setups are unaffected. Credentials are stored in the Zotero profile as plain text — flagged in SECURITY.md.
  • Export markdown to .zip (#33). Bundle the converted markdown from a selection into a single flat .zip, ready to drop into Obsidian, a RAG indexer, or any downstream pipeline. Available both as a right-click menu item and via Tools → Docling: Export markdown to .zip…. If any selected item has no .md yet, a three-button dialog offers Skip / Convert first / Cancel. Files are named {citationKey}.md (Better BibTeX), falling back to {zoteroKey}.md.
  • Re-convert confirmation dialog (#26, #35). The destructive Re-convert (replace) action now shows a confirm dialog by default, with a Don't ask again checkbox that flips the new confirmReconvert pref. The same pref is also exposed as a checkbox in the Behavior section so the opt-back-in path is symmetrical.
  • First-run onboarding nudge (#29). One-time toast on first startup pointing the user at the preferences pane. Self-clears after the first successful Test Connection so it doesn't keep firing.
  • Persisted Test Connection result (#29). Reopening the prefs pane repaints the last known server status (with timestamp) instead of an empty line.
  • Smarter async polling (#25). When the async transport polls a docling-serve task and the server starts failing, an escalating warning surfaces a one-time toast after ~10 consecutive failures so a dead server isn't silent. Separately, an optional client-side wait ceiling (asyncMaxWaitMin) can now be configured — default is 0 = unlimited, the honest default given docling-serve has no cancel API.
  • Processing-time in completion toast (#28). Batch toasts now show — took 4m 12s when at least one item completed successfully. Honestly labeled as server work-sum, not wall-clock.

🎨 UI

  • Preferences pane reorganized into layered disclosure (#31). Essentials (Server, Behavior, Output) are always visible. Conversion options (Conversion + Enrichments + VLM) and Advanced (Async + Advanced JSON) are now collapsible sections, collapsed by default. Open-state persists across pane closes and restarts.
  • Inline guidance added across the prefs pane (#31). VLM and picture-description preset menulists now have per-option tooltips and a live description line below the dropdown. Auto-convert, OCR languages, and Advanced JSON got clarifying help text.

🐛 Fixes

  • Race condition in runBatch (#23). Two rapid clicks of Convert with Docling could both pass the in-flight guard and spawn duplicate batch orchestrators that fought over the shared progress window. The batchInFlight flag is now set synchronously before the first await.
  • updateManagedHeadline body semantics clarified (#24). Parameter renamed to appendBody and documented to make it explicit that the body stacks rather than replaces. No behavioral change.
  • CRLF handling in stripExistingFrontmatter (post-merge fix in 0.3.0). The function was dropping only a trailing LF after the closing ---, leaving a stray CR on CRLF input. Now consumes either.
  • URL validation in Test Connection (#28). Missing scheme, non-http(s), and unexpected path components now produce concrete, actionable error messages instead of confusing low-level errors.

🧹 Internal

  • Hygiene pass (#28). Dead code removed (src/utils/window.ts, empty onNotify stub in hooks). stripExistingFrontmatter wired in defensively so a server response that already begins with a YAML block doesn't end up stacking two --- headers. Node 20+ engine pin + .nvmrc.
  • Test framework adopted (#32). Goldberg-style testing conventions (3-part test names, AAA structure, chai.expect, factories, property-based tests via fast-check). Covering tests for truncateMiddle, formatDuration, buildFrontmatter, stripExistingFrontmatter, buildConvertForm, and the markdown zip export helpers.

📚 Docs

  • README install path now lists three options (uv / pipx / container) with explicit instructions for each (#29).
  • README refreshed to match the new prefs layout, the opt-in async ceiling, and the renamed zip export feature.
  • Community standards added in the run-up to this release: CONTRIBUTING.md, SECURITY.md, Code of Conduct, GitHub issue and PR templates.
  • Contributors section in README auto-rendered from the GitHub contributors list (bots filtered out by the upstream service).

❌ Closed without landing

  • First-class remote LLM API for picture descriptions (#30) — closed without merging because it conflicted significantly with the prefs reorg and the original PR didn't account for cost-burning when a user clicks a Test Remote API button against a paid provider. Detailed requirements + safety guardrails for any future re-implementation captured on issue #17.

Many of the PRs in this release were authored by @brianckeegan (against issues I had filed earlier this week). Thanks Brian.

Release v0.2.1

Choose a tag to compare

@github-actions github-actions released this 21 May 14:26

Polish + consistent naming. No functional changes.

Changes

  • Consistent "zotero-docling" naming throughout the source, prefs UI, and documentation. Menu items ("Convert with Docling", "Re-convert with Docling (replace)") keep their human-readable form, but every plugin self-reference now uses the lowercase repo name.
  • README facelift: status badges (release, license, downloads, CI, template), explicit Docling attribution badge, lowercase repo header, visual separator under the badge row.

Release v0.2.0

Choose a tag to compare

@github-actions github-actions released this 21 May 11:04

Phase 5a polish drop.

New features

  • Re-convert (replace): right-click → Re-convert with Docling (replace) deletes the existing .md sibling and re-runs the conversion. Only shown when there's already an .md to replace.
  • YAML frontmatter built from Zotero parent metadata (title, authors, year, doi, url, zotero_key, citation_key) prepended to every .md output. Toggleable.
  • Export-to-folder: optional secondary sink. Set an absolute directory in prefs and every converted .md is also written there as {citationKey || zoteroKey}.md.
  • Concurrency control (`maxConcurrency`, default 1): convert multiple PDFs in parallel within one batch. Pairs with the async endpoint + a docling-serve started with `--workers ≥ 2`.
  • OS-level notifications when a batch finishes if Zotero isn't focused.
  • Reset to Defaults button in the prefs pane to wipe all plugin prefs back to built-in defaults.
  • Per-parent status tags (`docling/done`, `docling/incomplete`, `docling/error`) so you can filter your library by conversion status.

Fixes

  • Fluent parser error on the Export-folder help string that previously caused the locale key to be silently dropped.

Internal

  • `ConcurrencyLimiter` semaphore utility.
  • DB-write lock to serialize attachment creation against the Zotero SQLite store.
  • Blur-aware managed progress window that stops updating cleanly when Zotero is hidden.

Release v0.1.0

Choose a tag to compare

@github-actions github-actions released this 19 May 07:00
448a2eb

First public release.

Features

  • PDF → Markdown conversion via Docling. Right-click any PDF attachment (or parent item containing PDFs) → Convert with Docling → the resulting .md is attached back to the same Zotero parent.
  • Sync and async transports. Default is the sync /v1/convert/file endpoint; long VLM jobs that would otherwise hit upstream proxy timeouts can be routed through /v1/convert/file/async with client-side polling.
  • Full preference surface for docling-serve options. Pipeline (standard / VLM), OCR + language, table mode, formula / code / chart / picture enrichments, VLM presets, plus an Advanced JSON escape hatch for anything not exposed in the UI.
  • Auto-convert on import (opt-in): newly imported PDFs are converted automatically with a 3-second debounce.
  • Skip-if-exists to avoid duplicating work on re-runs.

Notes

  • Tested against docling-serve 1.18.0 and Zotero 7.0 / 9.0.x.
  • Build: npm run build produces an .xpi under .scaffold/build/.
  • See README.md for install + setup.

Release Manifest

Release Manifest Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 19 May 07:00
448a2eb

This release is used to host update.json, please do not delete or modify it!
Updated in UTC 2026-06-19T14:11:44.507Z for version 0.3.3