Repository navigation
Releases: 0then0/margincarry
Release list
MarginCarry v0.2.0
MarginCarry v0.2.0
Version 0.1.2 was prepared but never published; its changes ship here. This release adds five interface languages and makes recommendations more accurate when a quote survives only as part of a different word or number. Transfer, confirmation, copies, the journal format, and Undo are unchanged.
Installation
Download margincarry-0.2.0.xpi below. In Zotero, open Tools → Plugins, choose Install Plugin From File… from the gear menu, and select the XPI. Restart Zotero if asked. The neighboring .sha256 file records the package checksum.
Changes
- Languages. Spanish, German, French, Japanese, and Brazilian Portuguese join English and Russian. The window has one button per language, and the menu and the first view follow Zotero's locale. Annotation types and all project-owned messages are translated; quoted PDF text and Zotero's own diagnostics are shown as they are.
- Text in these languages. Matching was checked on real PDFs in all six non-English languages, covering accents, decimal commas, apostrophes, guillemets, German compounds, and Japanese text without word spaces. All 45 cases behaved as expected, and the new unit tests keep them that way.
- Doubtful candidates.
catinconcatenate,notincannot, and41.0in41.03used to be reported as a unique candidate with a recommended location, and Select unique proposals added them. They are now a Doubtful candidate: listed with their exact PDF position and a stated reason, not recommended, not preselected, and skipped by mass selection. You can still inspect one, choose it by hand, and confirm it. - Boundaries. Both ends of the original selection are compared with both ends of each candidate. A deliberately partial selection of a word or number still transfers while the surrounding word or number is unchanged. Moved pages, changed line breaks, and rewritten neighboring sentences are not penalized. Text without word delimiters (Han, Hiragana, Katakana, Thai, and similar scripts) is not guessed, and the reason says so.
- Documentation. The README and the guides were rewritten for new users, with new pages on how matching works, the architecture, and validation.
Verification and limits
Verified: Biome, strict TypeScript, the automated tests, and packaging (npm run check). The dialog was opened in all seven languages in an isolated Zotero 10.0.7 profile on macOS, at 1180 and 900 px wide, and no text was clipped, overlapped, or forced horizontal scrolling. validation/v0.1.2/ holds the records. They were made with the same build under the version number 0.1.2; only the manifest version differs in v0.2.0.
The same isolated profile was used to run the apply, repeat-protection, and Undo cycle through the real dialog: mass selection skipped doubtful candidates, a hand-chosen doubtful candidate was written with its comment, color, and tags, the sources and PDFs were unchanged, a repeat was refused, and Undo removed the copies.
Not verified for this version: the real-revision corpus (LoRA and Attention) was not re-run, and restart persistence and the edited-copy conflict were not repeated (they were verified for v0.1.0 with identical transfer code). The v0.1.0 corpus numbers (23 positive and nine untransferred cases, no wrong recommendations, four recorded strict geometry discrepancies in LoRA) describe the earlier matcher. Windows and Linux have not been tested. Review every proposed location in the PDF before confirming a transfer.
Boundary checks use characters, not meaning: a word added before an unchanged quote, scientific notation, units, hyphenated compounds, and inflected forms are not understood. See How MarginCarry works.
MarginCarry v0.1.1
MarginCarry v0.1.1
This patch publishes the completed native validation evidence and improves the development validation harness. Annotation matching and transfer behavior are unchanged from v0.1.0.
Installation
Download margincarry-0.1.1.xpi below. In Zotero, open Tools → Plugins → Install Plugin From File… and select the XPI. Restart Zotero after installation. The neighboring .sha256 file records the package checksum.
Changes
- Published reader-created annotation checks and live highlight/underline overlays for all four known LoRA geometry outliers.
- Corrected custom validation paths, independent metadata assertions, and repeat-protection checks against full target and journal snapshots.
- Serialized host bridge requests to prevent concurrent requests from receiving each other's results.
- Updated the host installer to select the package matching the current manifest version.
Verification and limits
All 73 automated tests, strict TypeScript, Biome, and XPI packaging pass. The runtime bundle is unchanged from the published v0.1.0 package. Native checks exercised that v0.1.0 package on Zotero 10.0.6, macOS 15.7.9, Apple Silicon; the v0.1.1 package has not been separately installed for native testing.
The frozen corpus still has 23 positive cases and nine untransferred cases, with no wrong recommendations. Four strict rectangle-boundary discrepancies remain among the 120 LoRA alternatives, and the supplementary pa- / rameters case retains its recorded boundary discrepancy. Live overlays for the original four match native reader geometry; the strict scorer and historical results have not been relaxed. Review selected locations before confirming a transfer.
See the native validation follow-up for evidence and remaining limits. Windows, Linux, and other hosts have not been verified. Supported scope remains continuous one-page highlights and underlines between local PDF revisions of the same item in a personal library.
MarginCarry v0.1.0
MarginCarry v0.1.0
Carry native highlights and underlines between two local PDF revisions of the same Zotero item. Compare actual PDF previews, choose ambiguous locations, and explicitly confirm the selected transfers.
Installation
Download margincarry-0.1.0.xpi below. In Zotero, open Tools → Plugins → Install Plugin From File… and select the XPI. Restart Zotero after installation to refresh cached interface styles. The neighboring .sha256 file records the package checksum.
Included
- English and Russian interface with explicit language buttons.
- Exact and conservative normalized matching, context, and explicit alternative selection.
- Native annotation copies with new keys, original comments, colors, and text tags.
- Revision checks, atomic writes, repeat protection, and conflict-aware undo.
Verification and limits
Verified on Zotero 10.0.5, macOS 15.7.9, Apple Silicon. Other hosts are not declared tested. All 65 automated tests, strict TypeScript, Biome, and XPI packaging pass. Native validation covers apply, restart, repeat protection, and undo; the two real revision pairs contain 32 source cases.
There are 23 positive cases with a correct proposal and nine untransferred cases. Four rectangle-boundary discrepancies remain among the 120 alternatives for the short LoRA quote; none is automatically recommended. Visually review each selected position.
v0.1 supports continuous one-page native highlights and underlines in a personal library. OCR, fuzzy matching, multi-page or discontinuous selections, group libraries, and note-link rewriting are outside scope. Internal Zotero reader APIs may change in future host releases.
See the README and engineering report for the workflow, data handling, complete corpus results, and limitations.