hey box --all returns the same posting more than once. Reproducible on demand against two different boxes:
$ hey box 1672649 --all --json # The Feed
1221 postings returned, 1191 distinct ids, 30 repeated
$ hey box 1672652 --all --json # Paper Trail
1030 postings returned, 1000 distinct ids, 30 repeated
The repeated records are byte-identical, and the number of duplicates matches the page size exactly — hey box <id> --json without --all returns 30 postings, and each box comes back with exactly 30 extras. That looks like one page being fetched twice while walking next_history_url: an off-by-one on the cursor, or a boundary that shifts when a posting's active_at updates mid-fetch.
Why it matters beyond tidiness: any script that counts unread over-reports, and any script that collects posting ids to act on can submit the same id twice. My tooling now de-duplicates on id at the boundary, but the fix belongs here.
Imbox came back clean in the same run, so it may depend on box size or on activity during the fetch.
Possibly the same area of code as #109 — both boxes above also emit Showing N results. Pagination limit reached, so the --all walk is worth a look either way.
Against 0337cb5.
hey box --allreturns the same posting more than once. Reproducible on demand against two different boxes:The repeated records are byte-identical, and the number of duplicates matches the page size exactly —
hey box <id> --jsonwithout--allreturns 30 postings, and each box comes back with exactly 30 extras. That looks like one page being fetched twice while walkingnext_history_url: an off-by-one on the cursor, or a boundary that shifts when a posting'sactive_atupdates mid-fetch.Why it matters beyond tidiness: any script that counts unread over-reports, and any script that collects posting ids to act on can submit the same id twice. My tooling now de-duplicates on
idat the boundary, but the fix belongs here.Imbox came back clean in the same run, so it may depend on box size or on activity during the fetch.
Possibly the same area of code as #109 — both boxes above also emit
Showing N results. Pagination limit reached, so the--allwalk is worth a look either way.Against
0337cb5.