Skip to content

Added features - re-convert, frontmatter, export, concurrency, notifications, reset - #9

Merged
max3925vats merged 1 commit into
mainfrom
phase-5a-client-features
May 21, 2026
Merged

Added features - re-convert, frontmatter, export, concurrency, notifications, reset#9
max3925vats merged 1 commit into
mainfrom
phase-5a-client-features

Conversation

@max3925vats

Copy link
Copy Markdown
Owner

What

Client-side polish: re-convert, frontmatter, export-to-folder, parallel concurrency, blur-aware toasts, OS notifications, reset-to-defaults, in-flight dedup, batch serialisation.

Removed

  • Cancel button (docling-serve has no cancel API — upstream #447). Documented in README "Known limitations".
  • Async maxWaitSec (same dishonest pattern).

…ons + reset

Phase 5a client-side features. Highlights:

- Right-click re-convert (replace) with strict visibility — only shown when
  selection contains a PDF with a matching .md sibling. Action filters to
  those items only; never silently creates fresh .md for items that didn't
  have one.
- Dedupe in-flight conversions per attachment id so repeated clicks on the
  same PDF don't queue multiple server-side jobs.
- Block concurrent convert batches (addon.data.batchInFlight). Menu rejects
  loudly, notifier defers silently with a single 'queued' toast per cycle.
- YAML frontmatter (title, authors, year, doi, url, zotero_key, citation_key)
  optionally prepended to every .md output. Default ON.
- Export-to-folder sink (exportFolderPath) alongside the Zotero attachment.
  Naming: {citationKey || zoteroKey}.md.
- Parallel concurrency (maxConcurrency 1-8). DB writes serialised through a
  global lock so SQLite doesn't race.
- Per-item progress in the toast (N/M counter + truncated filename).
- Managed progress hides on Zotero blur and re-appears on focus with the
  current state.
- OS notification when a batch finishes and Zotero isn't focused.
- Reset-to-defaults button in prefs (confirm dialog, clears every pref).
- Plain Error for abort markers instead of DOMException (safer in the Z9
  sandbox).
- HTTP error labels use response.statusText ('HTTP 504 Gateway Timeout').
- skipIfExists matches on filename so siblings under the same parent don't
  shadow each other.

Removed:
- The cancel button. docling-serve has no per-task cancel API (upstream
  issue docling-project/docling-serve#447) and doesn't detect client
  disconnects (#401). README 'Known limitations' explains.
- asyncMaxWaitSec pref + UI. Same dishonest pattern — timing out client-
  side just abandons a still-running server task.
@max3925vats
max3925vats merged commit 84a6779 into main May 21, 2026
3 checks passed
@max3925vats
max3925vats deleted the phase-5a-client-features branch May 21, 2026 10:55
@github-actions

Copy link
Copy Markdown

🚀 This ticket has been resolved in v0.2.0. See Release v0.2.0 for release notes.

@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Jun 21, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant