mirror of
https://github.com/zvx-echo6/meshai.git
synced 2026-08-26 17:31:34 +00:00
* chore(central-ripout 2b): create env/satellite package, move pass_predictor
pass_predictor.py was 100% live (no dead entrypoint) — SGP4 pass
computation used by both the native satpass adapter and the on-demand
!satpass command. Straight move, no code changes: meshai.central.pass_predictor
-> meshai.env.satellite.pass_predictor. Owner directive: satellite code gets
its own folder under the feed adapters, separate from env.satpass (the
adapter) to avoid colliding with env/satpass.py.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(central-ripout 2b): split satpass_handler.py -> env/satellite/pass_format.py
satpass_handler.py was a split file: live wire-formatting/gate logic plus
dead Central-envelope ingest machinery whose only caller was the
already-deleted central/consumer.py NATS bridge.
Moved (live, verified via rg — external callers in env/satpass.py and
commands/satpass_cmd.py, or transitively called by them):
gate_consolidated_pass, format_pass, _check_rate_cap, _upsert_satpass,
_attach_commit, _map_severity, _canonical_id, _azimuth_to_compass,
_short_sat_name, _collapse_compass, _region_paren, _is_synthetic_observer,
_format_time_12h/24h, _format_ampm, _tz_abbr, _date_label,
plus the _SHORT_SAT_NAMES/_SHORT_NAME_SUBSTR/_SYNTHETIC_OBSERVERS tables.
Dropped (dead — zero callers outside the already-deleted consumer.py and
handle_satpass/consolidate_satpass_pending themselves; verified with rg):
handle_satpass, consolidate_satpass_pending, _cleanup_pending,
load_pending_schedule, _log_event_returning_id, _coerce_float,
_coerce_int, _parse_iso_epoch, _now, CONSOLIDATION_DELAY,
_pending_consolidation_ids, drain_pending_consolidation_ids,
_elevation_bucket (already-orphaned pre-ripout: superseded by numeric
"max NN°" wire format, zero callers anywhere but its own tests),
SCHEMA_SATPASS_EVENTS/SCHEMA_SATPASS_PENDING (unused string constants —
actual schema lives in persistence/migrations/*.sql, never imported).
Also dropped now-unused `json`/`time`/`Any` imports.
Straight code move otherwise — no logic changes to any moved function.
Two docstrings updated for accuracy (module docstring, and
gate_consolidated_pass's docstring which referenced the now-deleted
Central consumer path).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(central-ripout 2b): split tle_handler.py -> env/satellite/tle_store.py
tle_handler.py was a split file: live storage helpers plus a dead
Central-envelope ingest entrypoint whose only caller was the
already-deleted central/consumer.py NATS bridge.
Moved (live — used by env.tle_fetch, env.satpass, commands.satpass_cmd,
verified via rg): upsert_tle, get_fresh_tles, get_tle_by_norad,
search_tle_by_name.
Dropped (dead — handle_tle's only callers were tests and the deleted
consumer.py; verified with rg): handle_tle.
Straight code move otherwise — no logic changes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(central-ripout 2b): repoint satellite consumers at env.satellite
Rewire the three production consumers (including their lazy/function-body
imports, not just module-top ones) to the new location:
- env/satpass.py: central.tle_handler -> env.satellite.tle_store,
central.pass_predictor -> env.satellite.pass_predictor,
central.satpass_handler -> env.satellite.pass_format
- env/tle_fetch.py: central.tle_handler.upsert_tle -> env.satellite.tle_store
- commands/satpass_cmd.py: all three, same mapping
Also refreshed docstrings that pointed at the old module paths or described
the now-fully-deleted Central consolidation path
(consolidate_satpass_pending / satpass_pending buffer) as a live
alternative, and updated central/__init__.py's module docstring to stop
listing the three relocated modules among central's remaining contents.
No behavior changes.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* chore(central-ripout 2b): update satpass/tle test suite for the relocation
Repoints every remaining test import at the new env.satellite.* modules
and removes/adapts coverage for the Central envelope-ingest path deleted
in this pass (handle_satpass, consolidate_satpass_pending, handle_tle, and
the filtering/coercion/staleness logic that lived only inside them):
- test_satpass_native.py, test_tle_fetch.py, test_satpass_command.py:
import-path updates only (pass_predictor, tle_store). Also dropped
test_satpass_command.py's TestTLEUpsert.test_returns_none_always
(handle_tle-specific contract, no longer applicable) and rewrote its two
latest-wins tests to call upsert_tle directly — same behavior under test,
now exercised through the still-live primitive instead of the dead
wrapper.
- test_satpass_native.py: deleted test_central_consolidate_feeds_shared_gate_merged
(spied on consolidate_satpass_pending, which no longer exists). The
merge-across-observers logic it guarded is native-side (_consolidate)
and already covered by test_two_observers_consolidate_to_one_broadcast.
- test_satpass_handler.py: gutted to the one test that calls format_pass
directly (test_format_pass_worst_case_fits_140); the rest exercised
handle_satpass's observer/norad/elevation filters, which have no live
equivalent (the native adapter filters at the config level, not
per-envelope) and is redundant with test_satpass_native.py's dedup/wire
coverage via the real SatpassAdapter path.
- test_satpass_broadcast_safety.py: kept every test that calls format_pass
or gate_consolidated_pass-adjacent REGISTRY checks directly (wire format,
clean-format rules, REGISTRY defaults); deleted TestNoradIdTypeCoercion
and TestStalenessGuard (handle_satpass-only logic, no live equivalent)
and the 6 _elevation_bucket tests (_elevation_bucket itself was dead
before this pass too — zero callers anywhere but its own tests, already
superseded by the numeric "max NN°" wire format per its own docstring).
- test_satpass_persisted_timer.py: dropped test_due_at_persisted_on_normal_ingest
(handle_satpass-only); kept the two schema/migration tests, which don't
touch satpass_handler.
- Deleted outright (tested ONLY the dead Central envelope-ingest path, no
live equivalent to port to): test_satpass_event_path.py,
test_satpass_compass_fallback.py, test_satpass_wire_fields.py.
Full suite: 2059 passed, 0 failed (was 0 failed on main pre-change).
Satpass/TLE subset (99 tests across 8 files) verified green in isolation.
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_central_normalizer.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_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_itd_511_work_zone.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 | ||