find_item_by_url now ORDER BY i.itemID so bib.sync consistently keeps updating the same "earliest" item when duplicates exist — the one zot.merge treats as the merge keeper. Wires --merge-dupes/--no-merge-dupes (default off) into `stack bib sync-zotero`, running merge_url_duplicates library-wide after the push, inside the same stop window. --dedupe-collection stays but is documented as deprecated (deletes without merging). Regenerates .gitea/workflows/zotero-sync.yml (source: dev/scripts/backends/gitea.py) to swap --dedupe-collection Cmsupdates for --merge-dupes, since listserv re-sends are now aliased at ingest (Task 3) and any same-URL twins are merged, not deleted.
29 KiB
29 KiB