• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

brawer / osmdiffs / 40097794350
94%

Build:
DEFAULT BRANCH: main
Ran 24 Oct 2026 01:22PM UTC
Jobs 1
Files 54
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Oct 2026 01:21PM UTC coverage: 93.544% (+0.1%) from 93.439%
40097794350

push

github

web-flow
feat: compute denylist of ATP switchboard phone numbers (#844)

* feat: compute denylist of ATP switchboard phone numbers

Chains often give every branch the same phone number (HDFC Bank: one
number for all 25,933 branches; FedEx: one for 14,611 locations).
Such a number says nothing about which place a feature is, so a
future phone-based matching signal must ignore it.

While import_atp writes alltheplaces.parquet, every (phone or fax
number, location) pair now goes into a second external sort by
number. One streaming pass over the sorted pairs tracks each number's
bounding box and denies the number when the box diagonal is at least
1 km. The result goes to alltheplaces.phone-denylist as a U64Set.
Numbers shared only by features at the same site (a car dealer listed
once per brand, a Western Union desk inside a pharmacy) stay usable.

Values are split at ';'. Only numbers in international format
("+41 44 417 77 77") are parsed, as the u64 of their digits.

On the 2026-10-10 worldwide ATP run, this denies 20,011 numbers,
which affects 10.4% of imported features that have a phone number.

If the parquet file is reused but the denylist is missing or stale
(e.g. in a workdir from before this change, whose zip may be gone),
the denylist alone is rebuilt from the parquet file.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VXCd9GbNhKesG6xeNha3ts

* refactor: use S2 rectangles for phone denylist spread; add notes

Address review: sightings now carry the place's S2 cell id instead of
lat/lng in 1e-7 degrees, and each number's spread is an s2 Rect whose
diagonal is compared against a constant chord angle, instead of a
Haversine distance. As a bonus, Rect handles the antimeridian. On the
2026-10-10 worldwide ATP run, the denylist is identical (20,011
numbers).

Also trims a doc comment, fixes two stale intra-doc links, and adds
docs/notes/2026-10-24-shared-phone-numbers.md, a condensed ver... (continued)

300 of 308 new or added lines in 3 files covered. (97.4%)

11230 of 12005 relevant lines covered (93.54%)

1296.7 hits per line

Uncovered Changes

Lines Coverage ∆ File
5
94.53
-0.3% src/pipeline/atp/mod.rs
3
98.8
src/pipeline/atp/phone_denylist.rs
Jobs
ID Job ID Ran Files Coverage
1 40097794350.1 24 Oct 2026 01:22PM UTC 54
93.54
GitHub Action Run
Source Files on build 40097794350
  • Tree
  • List 54
  • Changed 2
  • Source Changed 2
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40097794350
  • b1ef57fe on github
  • Prev Build on main (#40055584370)
  • Next Build on main (#40099612405)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc