meshai/work/meshai
malice d479ca537a
feat(firms): curated new-fire cluster broadcasts (no per-pixel, no cold-start dump) (#73)
* feat(firms): curated new-fire cluster broadcasts (no per-pixel, no cold-start dump)

Enable the built _maybe_emit_cluster path (was dead-coded) so FIRMS broadcasts
curated hotspot clusters as possible new fires — clustered, deduped via
cluster_broadcast_at, attributed against known WFIGS fires first (so MORA's
hotspots don't false-cluster). Give FIRMS a default Idaho bbox so it fetches
when coverage is off (coverage bbox still overrides). First-fetch silent-seed
prevents a cold-start dump of the day's existing hotspots. Raw pixels stay
store-only. Coverage geometry gate filters cluster broadcasts to the region.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(firms): first-fetch silent-seed suppresses fusion wires too (no cold-start)

Extend the FIRMS cold-start seed to suppress growth/spotting/halt fusion
broadcasts on the first fetch, not just clusters — enabling FIRMS must emit
zero broadcasts on the initial hotspot sweep. Persistence, attribution, and
dedup baselines still run during seed; only later new activity broadcasts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Matt Johnson <mj@k7zvx.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 16:09:25 -06:00
..
adapter_config fix(fire): route native WFIGS through the Phase-3 growth decider + formatter (#72) 2026-07-06 15:35:19 -06:00
backends refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
central feat(firms): curated new-fire cluster broadcasts (no per-pixel, no cold-start dump) (#73) 2026-07-06 16:09:25 -06:00
cli chore: remove legacy TUI configurator; surface last config gap in GUI (#45) 2026-07-05 16:21:32 -06:00
commands feat(phase4a): peak_compass end-to-end + repair stale satpass test suite (#35) 2026-07-05 01:06:29 -06:00
dashboard feat(coverage): Leaflet Coverage page — draw one bbox that scopes every adapter (#65) 2026-07-06 10:45:17 -06:00
data refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
env feat(firms): curated new-fire cluster broadcasts (no per-pixel, no cold-start dump) (#73) 2026-07-06 16:09:25 -06:00
notifications fix(fire): route native WFIGS through the Phase-3 growth decider + formatter (#72) 2026-07-06 15:35:19 -06:00
persistence feat(phase4c): native SGP4 satpass — standalone satellite passes, no Central (#39) 2026-07-05 02:25:55 -06:00
scripts refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
sources refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
transport Revert "fix(meshcore): skip 25s path discovery when the contact is already routed (#57)" (#58) 2026-07-06 00:37:30 -06:00
__init__.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
__main__.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
alert_engine.py Phase A — 4-section nav; move Scheduled Broadcasts + Danger Zones off Routing (#15) 2026-07-03 14:57:24 -06:00
central_normalizer.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
chunker.py feat(reply): cap interactive LLM replies to 3 mesh packets (#7) 2026-07-02 16:49:10 -06:00
config.py feat(firms): curated new-fire cluster broadcasts (no per-pixel, no cold-start dump) (#73) 2026-07-06 16:09:25 -06:00
config_loader.py feat(coverage): universal coverage-bbox foundation (config + derivation module) (#59) 2026-07-06 08:27:53 -06:00
connector.py feat(dashboard): MeshCore transport + per-family routing GUI controls (#10) 2026-07-02 16:49:59 -06:00
context.py feat(context): GUI control for chat-context retention (days) + live apply (#20) 2026-07-03 19:03:37 -06:00
coverage.py feat(coverage): widen adapter fetch scope to the enclosing box of coverage areas (#71) 2026-07-06 12:51:54 -06:00
coverage_area.py fix(coverage): NWS carries its alert polygon; gate fails closed for weather (#70) 2026-07-06 12:42:27 -06:00
geo.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
history.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
knowledge.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
main.py feat(coverage): widen adapter fetch scope to the enclosing box of coverage areas (#71) 2026-07-06 12:51:54 -06:00
memory.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
mesh_data_store.py refactor(danger-zones): drop min_severity + position_max_age; table snow (grayed/inert) 2026-06-21 06:56:22 +00:00
mesh_health.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
mesh_models.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
mesh_reporter.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
mesh_sources.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
meshmonitor.py refactor: move source tree into work/, multi-stage Docker build, fix satpass 2026-06-16 03:40:31 +00:00
responder.py feat(transport): CompositeTransport for dual Meshtastic+MeshCore (Phase 4) (#6) 2026-07-02 12:33:17 -06:00
router.py feat(meshcore): decouple per-mesh LLM DM gate + mesh-scoped chat context (#19) 2026-07-03 18:39:26 -06:00
secrets_store.py feat(secrets): GUI-managed .env secrets store — keys are config, but gitignored (#47) 2026-07-05 17:57:45 -06:00
serial_ports.py fix(serial): detect passed-through /dev USB-serial nodes (container GUI detect) (#53) 2026-07-05 23:01:08 -06:00