Releases: 06-month/paperflow
Release list
PaperFlow v0.5.4 — Zotero 10 compatibility
- Raise the Zotero compatibility ceiling from
9.99.99to99.99.99. Zotero 10 refused to load PaperFlow purely because ofstrict_max_version; no API change was needed. - Open the standalone PaperFlow panel with
dialog=no,all,resizable=yes,minimizable=yes. Withoutdialog=nothe window opens as a dialog frame on Windows, which has no maximize/full-screen button and cannot be resized. - Handle F11 and Escape in the panel window directly; it is a standalone XUL window, so F11 was never handled for it.
- Persist the panel window's position, size, and maximized state.
PaperFlow v0.5.3 — Sidebar refreshes on translation
Patch release on top of v0.5.2.
Fix: the Reader sidebar ignored a finished translation
The sidebar reloaded its data only when the selected item changed. So after Tools → Translate Paper finished, it kept showing whatever it had before — usually the "번역 결과가 없습니다" placeholder — until you clicked to another item and back.
The standalone panel appeared unaffected only because it loads its data once when you open it, and you normally open it after translating.
Saving a translation now notifies every open sidebar and panel showing that paper, and they re-read the stored result immediately. Partial results saved on cancel or error refresh the same way, so a cancelled run shows what it managed to finish.
The refresh is non-destructive: the tab you were on stays selected, and a chat in progress is kept intact.
Install
Download paperflow.xpi below → Zotero Tools → Plugins → gear icon → Install Plugin From File → restart Zotero.
Full changelog: https://github.com/06-month/paperflow/blob/main/CHANGELOG.md
PaperFlow v0.5.2 — Drop the PDF split output
Patch release on top of v0.5.1.
The split folder is gone
v0.5.0 wrote a per-paper decomposition — page renders, extracted Figure/Table images, page text, Markdown, and a manifest — into a PaperFlow_PdfSplit folder, and v0.5.1 let you choose where it went. Both are removed.
Nothing ever read those files back. The visuals a translation needs are cropped from the in-memory page canvas before the split writer ever runs, and they are embedded in translated.ko.html as base64 data URIs. A finished translation is self-contained. Writing the split output bought nothing and cost:
- a second full-page 1600px PNG encode for every page, on top of the crops
- a base64 decode and disk write for every page
- tens of MB left on disk per translated paper, forever
Removing it makes long papers translate faster and leaves nothing behind.
What changed
- Deleted
pdfSplitter.jsand its split-session plumbing in the layout analyzer. - Removed the
pdfSplitDirectorypreference and its folder picker (added in v0.5.1). - Dropped the PDF split folder row from the Meta view.
No action needed. Existing translations keep working unchanged — they never depended on these files. If you have a PaperFlow_PdfSplit folder from v0.5.0/v0.5.1 (in your Zotero data directory, or wherever you pointed it), it is now dead weight and safe to delete.
Install
Download paperflow.xpi below → Zotero Tools → Plugins → gear icon → Install Plugin From File → restart Zotero.
Full changelog: https://github.com/06-month/paperflow/blob/main/CHANGELOG.md
PaperFlow v0.5.1 — Configurable PDF split folder
Patch release on top of v0.5.0.
Configurable PDF split folder
The layout-aware pipeline writes page renders, extracted Figure/Table images, page text, Markdown, and a manifest for every translated paper. Until now that always went to your Zotero data directory. You can now point it somewhere else.
Preferences → PaperFlow → PDF 분해 저장 위치
- Pick any folder with the browse button, or press 기본값 to go back to the Zotero data directory.
- Output is always nested under a
PaperFlow_PdfSplit/folder inside your choice, so results stay contained and easy to delete. - Folders without write permission are rejected when you pick them, rather than failing part way through a translation.
- If the folder later becomes unavailable — an unplugged external drive, revoked permission — PaperFlow logs a warning and falls back to the Zotero data directory. A path setting can never break a translation.
- The folder actually used is shown in the Meta view as PDF split folder.
Page renders make this folder grow by tens of MB per paper, so pointing it at a roomier disk is the main reason to change it.
Install
Download paperflow.xpi below → Zotero Tools → Plugins → gear icon → Install Plugin From File → restart Zotero.
Full changelog: https://github.com/06-month/paperflow/blob/main/CHANGELOG.md
PaperFlow v0.5.0 — Layout-aware translation
Zotero 7–9 plugin for translating and reading academic papers with Gemini.
Layout-aware translation
- Layout-aware pipeline — native PDF text coordinates are retained and page blocks are classified with Gemini structured output, so paragraph and two-column reading order survives translation. Falls back to the previous text-only pipeline when analysis fails.
- Original visual regions — complete Figure/Table regions are reconstructed from the rendered source page, so a composite figure stays one figure. Translated captions render directly below the original visual.
- LaTeX mathematics — detected formulas are converted to LaTeX and rendered as native Presentation MathML. Numbered/standalone equations keep their
$$...$$source, viewable from a collapsible panel. - Local split cache — per-paper Markdown, manifest JSON, page text, full-page renders, and extracted visuals are written under
<Zotero data>/PaperFlow_PdfSplit/. - Parallel processing — page analysis and translation run concurrently with a configurable 2–14 worker setting; rate-limit slot allocation is serialized so workers cannot race past the RPM/RPD guard.
- A privacy-visible preference gates layout analysis, since rendered pages and embedded text are sent to Gemini when it is enabled.
Chat
- The standalone Tools → Open PaperFlow Panel chat now matches the Reader sidebar: PDF/Summary/Translation selection capture, removable attachment cards, Finder file attachments, clipboard image paste, Gemini multimodal payloads, and multi-turn history.
- Gemini answers render Markdown (headings, lists, tables, quotes, links, code) and inline/display LaTeX as native MathML, built via DOM construction rather than
innerHTML. - The composer cycles through suggested questions instead of a fixed placeholder.
Fixes
- Sending a message while a Korean IME composition was open left one syllable behind in the input. The composition is now committed before the value is read — the send button path included, not just Enter.
- The chat input grows with its content and the chat pane now measures what its composer and attachment chips need, claiming that height from the view above. The composer expands upward instead of sliding past the bottom of the window, and the divider can no longer be dragged below that floor.
- Holding the cursor at the pane-collapse threshold no longer flickers between split and content-only.
Install
Download paperflow.xpi below → Zotero Tools → Plugins → gear icon → Install Plugin From File → restart Zotero → set your Gemini API key in Preferences → PaperFlow.
Full changelog: https://github.com/06-month/paperflow/blob/main/CHANGELOG.md
PaperFlow v0.4.0
PaperFlow v0.4.0
PaperFlow v0.4.0 focuses on making the Zotero Reader sidebar more useful as a paper-context-aware AI workspace.
This release introduces chat attachments, better translation recovery, safer intermediate storage, improved reliability for long Korean translations, and a more secure Gemini API request path.
Highlights
Chat attachments
PaperFlow chat now supports richer context input.
- Drag-selected text from PDF, Summary, or Translation views is automatically attached to the chat composer.
- Attached text keeps its source label, such as PDF Original, Summary, or Translation.
- The + button opens the file picker for attaching images, PDFs, and text files.
- Clipboard image paste with ⌘V is supported.
- Pasted images are shown as thumbnails before sending.
- Multiple images are displayed horizontally.
- Sent images are rendered inline inside the chat bubble.
- Selection attachments are automatically removed when the selection is cleared.
Translation UX improvements
Long translations are now easier to manage.
- The translation progress dialog now has a close button.
- Closing the dialog does not stop translation; the job continues in the background.
- Interrupted translations can be resumed.
- Completed chunks are reused instead of being translated again.
Reliability improvements
This release significantly improves translation robustness.
- Translation results are saved section by section.
- Completed chunks are preserved even if the job is cancelled or fails.
- pt-meta.json is now treated as the single source of truth for translated text.
- HTML output is treated as a derived view.
- Truncated responses, safety blocks, and empty model responses are detected before saving.
- Broken JSON results are prevented from being stored.
- Chunk size was reduced from 2000 to 1500 tokens.
- maxOutputTokens was increased from 4096 to 8192 to reduce Korean translation truncation.
- Daily rate-limit counters now persist across Zotero restarts.
- Quota reset timing is aligned with Google quota reset behavior.
- Non-retryable errors, such as safety blocks and output truncation, now fail immediately instead of consuming all retry attempts.
Security
- Gemini API keys are now sent through the x-goog-api-key header instead of URL query parameters.
Other changes
- Removed the initial chat greeting bubble.
- Fixed a bug where the sidebar panel order could reset on every Zotero startup.
- Prevented custom element conflicts after plugin updates by using versioned element names.
- Centralized model names and version values in constants.js.
Why this release matters
PaperFlow v0.4.0 moves the project closer to a Zotero-native AI reading workflow.
Instead of only generating summaries or translations, PaperFlow can now accept selected paper text, files, and clipboard images as chat context. Translation jobs are also more resilient, resumable, and less likely to lose completed work.
This makes PaperFlow more practical for deep reading, translation review, figure discussion, and paper-specific follow-up questions inside Zotero Reader.
PaperFlow v0.3.0 — Zotero Reader Sidebar Assistant
PaperFlow v0.3.0
This release introduces the first usable version of PaperFlow as a Zotero Reader sidebar assistant.
Highlights
- Zotero Reader sidebar integration
- Summary / Translation / Meta tab views
- Chunk-based processing status display
- Reuse of generated summary, translation, and metadata artifacts
- Embedded Gemini chat panel for paper-context-aware questions
- Adaptive sidebar layout for reader-pane usage
- Polished README and project positioning
Build
bash scripts/build.shPaperFlow v0.2.2
PaperFlow v0.2.2
Initial Zotero 9.0.3 MVP package.
Changes
- Added Zotero 9-compatible manifest metadata
- Renamed user-facing plugin name to PaperFlow
- Added GitHub update URL
- Added updates.json for Zotero plugin update checks
- Added build script for generating paperflow.xpi
- Included PaperFlow icon assets
- Packaged Phase 1–11 MVP:
- PDF text extraction
- cleaning / sectionizing / chunking
- Gemini translation queue
- Zotero Note output
- translated.ko.html attachment
- pt-meta.json metadata attachment
- PaperFlow panel with translation/chat/metadata tabs
Install
Download paperflow.xpi, then install it in Zotero:
Tools → Plugins → Install Plugin From File