Two dborup-specific, already-used pieces held back from the generic
master branch:
- ops/meshguide-sync/sync_areas.py: fetches Danish region boundaries
from meshguide.dk, useless for any other CoreScope deployment. This
fast-forward merge brought it in again (areas-meshguide-sync had it
restored after an earlier accidental deletion); excluding it here,
same as every previous merge round.
- cmd/ingestor/db.go's ping_triggers_backfill_v1 async migration: a
one-time historical scan that already ran and completed on stg
(298 pings recorded from before the feature existed). Per dborup:
other deployments merging from master didn't ask for a full-table
CHAN-message scan on their own database. The ping-scores feature
itself (detection, scoring, leaderboards, frontend) stays -- only
the backfill-specific function + its tests are removed.
Both pieces remain intact on areas-meshguide-sync, where they've
already served their purpose.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Routine "sync branch with master before deploying" (git merge origin/master
into areas-meshguide-sync) fast-forwarded cleanly and, in doing so, silently
carried master's exclusion of this deployment-specific script back into
areas-meshguide-sync too -- fast-forward doesn't distinguish "master never
had this" from "master deliberately deletes this", so the branch meant to be
this script's home lost it entirely instead of just staying ahead of master.
Restored verbatim from the last commit that had it (e81f89d), including the
matching AREAS.md section describing it. Master must never carry this file;
areas-meshguide-sync must never lose it to a master sync again.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Excludes ops/meshguide-sync/sync_areas.py (meshguide.dk-specific data
fetch script, not useful without that community site's account) --
everything else is generic: draw-a-polygon areas, homeArea<->geo_filter
linking, per-area regionScopes (one area can now link multiple scope
names, e.g. Europa's "eu"/"europe"), Scope Adoption by Area with
per-node matched-scope breakdown, Domestic/Foreign filters on the
Scopes tab's hygiene sections, a live-resolved "Area:" tag on channel
messages (including WebSocket-appended ones) distinct from the
scope-linked tag, and a wardriving-session area badge.
AreaEntry.RegionScope (single string) -> RegionScopes ([]string), so a
broad umbrella area (e.g. Europa) can link more than one scope name
(e.g. both "eu" and "europe") -- a node matching any one of them now
counts as supporting the area in computeScopeAdoptionByArea, the
"Scope Adoption by Area" section, and the regionScope->label lookup
used to annotate region codes elsewhere on the Scopes tab.
Covers AreaEntry fields (label/polygon-or-box/regionScope), why
hierarchy is purely geometric (no parent field -- draw a broad area
generously enough to contain its sub-areas and rollup just works),
the two different area lookups (single most-specific match for
badges vs. all-containing-areas for aggregate counts), the homeArea
link to geo_filter and why it exists, and a verify-before-deploy
checklist for anyone drawing a new polygon.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>