mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-08-26 17:31:34 +00:00
* chore(fire-ripout 2dii-a): remove dead wildfire_growth cutover path + handle_firms
wildfire_growth events are always fully precomposed (env/firms.py sets
_meshai_precomposed=True + title=<wire from _render()>) and the category is
not in cutover.NATIVE_ALWAYS_DECIDE, so the registered fire formatter could
never be reached live via compose_mesh_message for this category -- the
precomposed-title bypass always won first. Removes the dead
is_cutover("wildfire_growth") NEW-PATH branch in
fire_fusion._handle_pass_boundary (kept the live legacy leg that calls
_render unconditionally) and the now-unreachable wildfire_growth formatter
registration in notifications/formatters/__init__.py.
Also removes handle_firms, the dead Central NATS-envelope entrypoint (zero
live production callers -- Central's consumer that drove it is gone), plus
its envelope-specific filtering helpers (_confidence_passes, _in_bbox,
_coerce_severity, _log_event, FIRMS_CONFIDENCE_FLOOR/FRP_FLOOR/BBOX_OPTIONAL)
that had no live callers left. The shared, LIVE fusion core
(_ingest_pixel_core, attribution, clustering, growth/spotting/halt) and
_parse_acq_epoch are unaffected -- still the engine behind the native
ingest_hotspot_pixel entrypoint.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(fire-ripout 2dii-b): remove dead handle_wfigs entrypoint
handle_wfigs (the dead Central NATS-envelope entrypoint) had zero live
production callers -- Central's consumer that drove it is gone. The LIVE
WFIGS path is env/fires.py (native adapter) -> env/store.py::_emit_event,
forced onto gating.fire.decide + the shared fire formatter via
cutover.NATIVE_ALWAYS_DECIDE, independent of this dead handler.
Removes handle_wfigs and its private-only helpers (_coerce_severity,
_log_event, _log_event_returning_id) that had no callers left. _render
remains -- it is called directly by env.fire_fusion._handle_pass_boundary on
the FIRMS wildfire_growth path, and is used as a byte-identity oracle by
tests against the shared, live fire formatter. _build_canonical,
_attach_commit_handles, _fire_too_old_to_announce, _now, _cleanup_stale_fires
and WFIGS_BROADCAST_COOLDOWN_S are kept -- each has its own direct test
coverage independent of handle_wfigs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* test(fire-ripout 2dii-c): rewire fire tests off the deleted dead entrypoints
handle_firms and handle_wfigs (both removed in the prior two commits) were
used throughout this test suite purely as convenient DRIVERS for live logic
(pixel attribution/clustering/growth/spotting/halt fusion; the WFIGS
New/Update/cooldown/closed decider). Per-file disposition:
Rewired to drive the LIVE native entrypoint directly (no behavior change --
same underlying _ingest_pixel_core / gating.fire.decide engines):
- test_fire_tracker_phase1/2/3.py: handle_firms -> ingest_hotspot_pixel
- test_firms_refactor.py: handle_firms driver helpers -> ingest_hotspot_pixel;
dropped the dead wildfire_growth cutover test + the fully-redundant
TestNotCutoverLegacyVerbatim class (already covered by
test_firms_native_fusion.py's TestIngestGrowth/Spotting/Halt against the
live entrypoint); wildfire_growth formatter registration test now
asserts None (matches source change).
- test_wfigs_handler.py: handle_wfigs -> _render (the live WFIGS renderer)
called directly, for the anchor-priority + missing-acres cases that
exercise shared/live code (_location_anchor).
- test_fire_refactor.py: handle_wfigs -> gating.fire.decide() driven
directly, with state written the same unconditional shape the live
native path uses; TestGateSequenceParity trimmed to focus on the
tombstone/closed lifecycle step (not covered by
test_fire_native_growth.py's native-adapter New/Update/cooldown coverage).
- test_tombstone_broadcast.py, test_fire_age_gate.py: handle_wfigs ->
gating.fire.decide() driven directly; same assertions, off the dead path.
Deleted as pure dead-entrypoint contract testing with no live equivalent:
- test_firms_native_fusion.py::TestCentralPathUnchanged (2 tests) --
existed only to guard handle_firms's own envelope parsing.
- test_firms_handler.py: confidence/FRP/bbox filtering, missing-coords,
non-firms-adapter guard, event_log accounting (all handle_firms-specific;
the native adapter filters upstream in a different code path). Kept +
rewired: the shared _ingest_pixel_core dedup behavior and
_parse_acq_epoch's int/short acq_time parsing (both genuinely live/shared).
- test_wfigs_handler.py: envelope field-extraction (acres-fallback chain,
IA-placeholder-as-name), tombstone/perimeter subject -> event_log,
New/Update/cooldown decision + audit-row wiring (all redundant with
tests/test_fire_native_growth.py's coverage of gating.fire.decide()
through the real native adapter).
- test_tombstone_broadcast.py::test_commit_callback_flips_handled --
asserted handle_wfigs's own event_log-row flip on commit, a Central-only
concept the native path never used.
- test_tail_followups.py::test_wfigs_tombstone_stamps_column -- asserted
handle_wfigs's own inline tombstoned_at UPDATE; no live producer emits
_kind=wfigs_tombstone today, so nothing in the live system stamps it.
Both live renderers stay covered: fire_format (wildfire_declared/incident,
via test_fire_refactor.py + test_fire_native_growth.py, untouched) and
_render (wildfire_growth via FIRMS, via test_fire_tracker_phase2.py +
test_firms_native_fusion.py's TestIngestGrowth, both driving the live
ingest_hotspot_pixel entrypoint).
Collection: 2010 -> 1974 tests (net -36: dead-only tests deleted, live
behavior rewired 1:1 or consolidated onto already-existing native-path
coverage). Full suite: 1974 passed, 0 failed.
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>
|
||
|---|---|---|
| .. | ||
| fixtures | ||
| harness | ||
| conftest.py | ||
| test_activity_log_api.py | ||
| test_adapter_avalanche.py | ||
| test_adapter_config_api.py | ||
| test_adapter_config_foundation.py | ||
| test_adapter_ducting.py | ||
| test_adapter_fires.py | ||
| test_adapter_firms.py | ||
| test_adapter_ipaws.py | ||
| test_adapter_nws.py | ||
| test_adapter_roads511.py | ||
| test_adapter_swpc.py | ||
| test_adapter_traffic.py | ||
| test_adapter_usgs.py | ||
| test_adapter_usgs_quake.py | ||
| test_adapter_wzdx.py | ||
| test_avalanche_refactor.py | ||
| test_band_conditions.py | ||
| test_bool_roundtrip.py | ||
| test_capture_script_importable.py | ||
| test_channel_rendering.py | ||
| test_clock_seam.py | ||
| test_cold_start_grace.py | ||
| test_composite_transport.py | ||
| test_config_loader.py | ||
| test_config_partial_save_merge.py | ||
| test_config_source_field.py | ||
| test_configurable_feed_urls.py | ||
| test_context_hot_reload.py | ||
| test_coverage.py | ||
| test_coverage_area.py | ||
| test_coverage_overrides.py | ||
| test_coverage_r3.py | ||
| test_coverage_wiring.py | ||
| test_coverage_wiring_2b.py | ||
| test_coverage_wiring_2c.py | ||
| test_coverage_wiring_2d.py | ||
| test_curation.py | ||
| test_cutover_gate.py | ||
| test_danger_zone_correlator.py | ||
| test_dashboard_config_save.py | ||
| test_destinations_c1.py | ||
| test_dispatcher_persistence.py | ||
| test_dynamic_family_registry.py | ||
| test_env_hot_reload.py | ||
| test_env_reporter.py | ||
| test_env_reporter_fire_recency.py | ||
| test_env_reporter_llm_gaps.py | ||
| test_fire_age_gate.py | ||
| test_fire_native_growth.py | ||
| test_fire_point_fusion.py | ||
| test_fire_refactor.py | ||
| test_fire_reminder_pacing.py | ||
| test_fire_reminder_region_routing.py | ||
| test_fire_tracker_phase1.py | ||
| test_fire_tracker_phase2.py | ||
| test_fire_tracker_phase3.py | ||
| test_fire_tracker_phase4.py | ||
| test_firms_cluster_f3.py | ||
| test_firms_fusion_event_contract.py | ||
| test_firms_handler.py | ||
| test_firms_native_fusion.py | ||
| test_firms_refactor.py | ||
| test_fix_meshcore_save_and_llm_test.py | ||
| test_formatter_scaffold.py | ||
| test_formatters_no_clock.py | ||
| test_generic_http.py | ||
| test_geo_wzdx_parse.py | ||
| test_harness_selftest.py | ||
| test_hydro_refactor.py | ||
| test_import_smoke.py | ||
| test_incident_refactor.py | ||
| test_incident_workzone_suppression.py | ||
| test_include_roundtrip.py | ||
| test_ipaws_county_only_routing.py | ||
| test_llm_reply_cap.py | ||
| test_llm_scoping.py | ||
| test_mesh_health_recommendations_api.py | ||
| test_mesh_reporter_recommendations.py | ||
| test_mesh_send_api.py | ||
| test_meshcore_conn_type.py | ||
| test_meshcore_context_config.py | ||
| test_meshcore_context_filter.py | ||
| test_meshcore_dm_delivery.py | ||
| test_meshcore_rooms.py | ||
| test_meshcore_roster.py | ||
| test_meshcore_telemetry.py | ||
| test_meshcore_transport.py | ||
| test_native_fire_pacer.py | ||
| test_native_hydro_gauge_alerts.py | ||
| test_native_severity_promotion_and_floor.py | ||
| test_no_duplicate_methods.py | ||
| test_notification_toggles.py | ||
| test_nws_refactor.py | ||
| test_nws_zones.py | ||
| test_observer_locations.py | ||
| test_or_arch_continuous.py | ||
| test_persistence.py | ||
| test_pipeline_digest.py | ||
| test_pipeline_grouper.py | ||
| test_pipeline_inhibitor_grouper.py | ||
| test_pipeline_persistence.py | ||
| test_pipeline_scheduler.py | ||
| test_pipeline_skeleton.py | ||
| test_pipeline_toggle_filter.py | ||
| test_quake_refactor.py | ||
| test_region_routing_dispatcher.py | ||
| test_reminders.py | ||
| test_renderers.py | ||
| test_router_env_scope.py | ||
| test_satpass_broadcast_safety.py | ||
| test_satpass_command.py | ||
| test_satpass_handler.py | ||
| test_satpass_native.py | ||
| test_satpass_persisted_timer.py | ||
| test_satpass_region_tagging.py | ||
| test_satpass_registration.py | ||
| test_save_section_secret_preserve.py | ||
| test_secrets_store.py | ||
| test_send_queue.py | ||
| test_serial_ports.py | ||
| test_shadow_inert.py | ||
| test_store_received_delta.py | ||
| test_store_wzdx_persist.py | ||
| test_swpc_refactor.py | ||
| test_tail_followups.py | ||
| test_tle_fetch.py | ||
| test_tombstone_broadcast.py | ||
| test_transport_abstraction.py | ||
| test_uniform_sizing.py | ||
| test_v052_dispatcher.py | ||
| test_v064_guard_commit.py | ||
| test_weather_v057.py | ||
| test_wfigs_handler.py | ||
| test_wzdx_coalescing.py | ||
| test_wzdx_summary_region_routing.py | ||