max / makenotwork
| 1 | -- Which SyncKit is actually in the field. |
| 2 | -- |
| 3 | -- SyncKit is a client-side SDK linked into mnw-cli, balanced_breakfast and |
| 4 | -- audiofiles. Nothing about it is deployed, so there is no version to poll and |
| 5 | -- "which SyncKit is running out there" had no answer. Reading a number out of a |
| 6 | -- lockfile at release time answers a different question: what we shipped, not |
| 7 | -- what people are still syncing with. |
| 8 | -- |
| 9 | -- The client now sends `synckit-client/<version>` as its User-Agent. This is |
| 10 | -- where that lands: one column on the device row that already exists, carrying |
| 11 | -- the version seen on that device's last request. Deliberately NOT a per-request |
| 12 | -- log -- no new table, no sweep job, and no new retention clock, since the value |
| 13 | -- lives and dies with the device registration the user can already see and |
| 14 | -- delete. Only the version is stored; the rest of the User-Agent is discarded. |
| 15 | -- |
| 16 | -- Nullable with no backfill: an older client sends no such User-Agent, and NULL |
| 17 | -- is the honest reading of "syncing, version unknown" rather than a guess. |
| 18 | sync_devices ADD COLUMN IF NOT EXISTS client_version VARCHAR(32); |
| 19 |