kert
8615be32cd
CI / lint (push) Successful in 40s
CI / notebooks-smoke (push) Successful in 1m26s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Has been skipped
Deploy / mc (push) Has been skipped
Infra CI / notebooks (push) Successful in 1m10s
Infra CI / zotero (push) Successful in 13s
Infra CI / docs (push) Successful in 1m27s
Infra CI / api (push) Successful in 49s
Infra CI / mc (push) Successful in 13s
Deploy / report (push) Successful in 13s
CI / test (push) Successful in 16m10s
feat(bib): dedupe pass in nightly zotero-sync — keep-earliest on title+date
...
CMS listservs re-send identical mail with a fresh Message-ID, so the
ingest correctly stores each send as a distinct Source and every sync
pushes both — 10 such twin pairs had accumulated in Cmsupdates
(removed by hand today). New bib.sync.dedupe_collection() groups a
Zotero collection by (title, date), keeps the earliest copy, and
deletes later ones from Zotero AND bib so the next sync can't
resurrect them. Wired as --dedupe-collection on sync-zotero and passed
by the nightly zotero-sync workflow. Runs under the same
zotero-stopped lock window as the push.
2026-07-10 16:22:07 -04:00
..
2026-07-10 16:22:07 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 10:08:08 -04:00
2026-04-18 18:51:21 -04:00
2026-05-06 16:56:34 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 10:12:24 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 19:55:44 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-03-24 17:33:55 -04:00
2026-07-08 14:48:17 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 10:12:24 -04:00
2026-04-16 09:04:38 -04:00
2026-03-27 00:02:35 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 15:43:25 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-04-18 18:51:21 -04:00
2026-04-18 18:51:21 -04:00
2026-03-24 17:33:55 -04:00
2026-03-03 22:05:49 -05:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-03 22:05:49 -05:00
2026-03-03 22:05:49 -05:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-03-25 10:09:20 -04:00
2026-03-03 22:05:49 -05:00
2026-03-24 17:33:55 -04:00
2026-04-16 09:04:38 -04:00
2026-07-08 14:48:17 -04:00
2026-04-09 19:06:33 -04:00
2026-03-24 17:33:55 -04:00
2026-07-10 11:36:25 -04:00
2026-07-10 11:38:30 -04:00
2026-07-10 10:14:46 -04:00
2026-07-10 10:14:46 -04:00
2026-03-24 17:02:30 -04:00
2026-07-09 21:27:02 -04:00
2026-07-09 21:27:02 -04:00
2026-07-09 21:27:02 -04:00
2026-03-24 17:33:55 -04:00
2026-04-16 09:04:38 -04:00
2026-03-03 22:05:49 -05:00
2026-04-16 09:04:38 -04:00
2026-03-12 17:25:30 -04:00
2026-03-24 17:33:55 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00
2026-03-24 17:33:55 -04:00
2026-03-24 17:33:55 -04:00
2026-04-16 09:04:38 -04:00
2026-04-16 09:04:38 -04:00