Less database busywork, same numbers on every page.
Performance
- Dropped five sessions indexes that no query used. Two months of production stats showed zero reads on all five; every session write now maintains fewer indexes, and the disk comes back at boot.
- The periodic full library scan runs on a clock now, at most once every 3.5 days per library. It used to count syncs, so a busy import firing library events every 30 seconds could drag full rescans down to minutes apart and hammer the media server with page requests.
- Event bursts calm down across the board: snapshot rebuilds cap at one per 5 minutes with a trailing catch-up, duplicate-media reconciliation waits 10 minutes between passes, and count drift checks 15. Quiet installs behave the same as before.
- Library snapshots skip the write entirely when nothing changed, instead of rewriting an identical row on every sync.
Small stuff
- Two snapshot columns nothing ever read are gone.
- The post-sync history probe stopped counting the whole library on every check; it asks for existence and remembers the earliest item date for a day.
- Removed a leftover job stub that only wrote a log line.
- The migration was tested against both the oldest and newest supported TimescaleDB, including hypertables with compressed chunks.