Skip to content

docs(design): scope hybrid durable drone sightings + spoof_suspect#51

Merged
ifnull merged 1 commit into
mainfrom
docs/drone-sightings-plan
Jun 23, 2026
Merged

docs(design): scope hybrid durable drone sightings + spoof_suspect#51
ifnull merged 1 commit into
mainfrom
docs/drone-sightings-plan

Conversation

@ifnull

@ifnull ifnull commented Jun 23, 2026

Copy link
Copy Markdown
Owner

FAA make/model enrichment (the other half of the old deferred drone-history slice) shipped in 0.2.10+, so mark it implemented and record the deviation: we went live-cached per-serial instead of the planned prebuilt SQLite, which suits real (low) drone volume and the Pi-SD posture.

Scope the remaining half against dump3411 v1.0.0, which now persists raw track history itself (--history-db, 30-day, per-point tracks + /map). ha-airspace must not duplicate that firehose, so the decided design is hybrid: persist one enriched summary row per sighting (operator location, FAA make/model, AGL, closest-approach geometry, flags) in the journal off the existing drone_detected hook, and deep-link to dump3411's /map for the full track. Operator location is the most sensitive field, so durable storage is opt-in and bounded-retention.

Fold in a behavioral spoof_suspect flag: a replay of previously-seen REAL serials defeats identity/registry validation (RID has no crypto auth), so detect via behavior — tier 1 stateless (malformed 0x00 serial, one self_id across many serials), tier 2 over the sighting store (impossible kinematics, same serial in two places, implausible operator data). Emits as an enrichment flag, reusing the flag/alert machinery.

FAA make/model enrichment (the other half of the old deferred drone-history
slice) shipped in 0.2.10+, so mark it implemented and record the deviation: we
went live-cached per-serial instead of the planned prebuilt SQLite, which suits
real (low) drone volume and the Pi-SD posture.

Scope the remaining half against dump3411 v1.0.0, which now persists raw track
history itself (--history-db, 30-day, per-point tracks + /map). ha-airspace must
not duplicate that firehose, so the decided design is hybrid: persist one
enriched summary row per sighting (operator location, FAA make/model, AGL,
closest-approach geometry, flags) in the journal off the existing drone_detected
hook, and deep-link to dump3411's /map for the full track. Operator location is
the most sensitive field, so durable storage is opt-in and bounded-retention.

Fold in a behavioral spoof_suspect flag: a replay of previously-seen REAL
serials defeats identity/registry validation (RID has no crypto auth), so detect
via behavior — tier 1 stateless (malformed 0x00 serial, one self_id across many
serials), tier 2 over the sighting store (impossible kinematics, same serial in
two places, implausible operator data). Emits as an enrichment flag, reusing the
flag/alert machinery.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ifnull ifnull merged commit 2455b9c into main Jun 23, 2026
3 checks passed
@ifnull ifnull deleted the docs/drone-sightings-plan branch June 26, 2026 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant