Files
planet/docs/CHANGELOG.md

24 KiB

Changelog

All notable changes to planet are documented here.

This project follows the repository versioning rule:

  • feature -> +0.1.0
  • bugfix -> +0.0.1

0.22.5

Released: 2026-03-31

Highlights

  • Relaxed the BGP anomaly pipeline so realtime observation batches can produce visible anomaly and incident signals more consistently instead of staying observation-only.
  • Added incident backfill-on-detection behavior so Earth and the BGP console can recover incident objects even when matching anomaly rows already existed from earlier ingests.
  • Tightened BGP detector test coverage around low-signal withdrawal bursts, origin conflicts without historic baseline, and anomaly-to-incident regeneration.

Improved

  • Improved bgp_detectors.py by broadening origin-change detection into a multi-origin conflict path when multiple collectors observe competing origins without a prior baseline.
  • Improved bgp_detectors.py so more-specific burst detection groups on normalized supernets and accepts cross-collector clusters instead of only a same-root count heuristic.
  • Improved bgp_detectors.py so mass-withdrawal detection can trigger on smaller but cross-collector withdrawal pairs, with severity and confidence scaled by collector spread and event count.
  • Improved anomaly evidence payloads in bgp_detectors.py with collector counts, peer counts, unique prefixes, and deduplicated impacted regions, which gives Earth and downstream incident views stronger context.
  • Improved bgp_common.py so incident aggregation now seeds from both newly created anomalies and already-existing matching anomalies, allowing missing incidents to be rebuilt during later ingests.

Fixed

  • Fixed the “observations exist but anomalies/incidents stay at zero” failure mode where realtime BGP batches often produced no visible signals because detector thresholds were too strict for live traffic windows.
  • Fixed the “existing anomaly but missing incident” gap where the pipeline only created incidents from freshly inserted anomaly rows and skipped rebuilding incident objects for already-known anomaly keys.
  • Fixed stale BGP coverage test expectations in test_bgp.py by anchoring recent-window assertions to current UTC time instead of hard-coded past timestamps.

0.22.4

Released: 2026-03-31

Highlights

  • Fixed the admin dashboard navigation so the dashboard no longer appears to hard-reload when operators click the current “仪表盘” entry.
  • Smoothed dashboard revisits by caching the last stats snapshot, reducing visible loading flashes even when the page is remounted by navigation flow.

Improved

  • Improved route ownership in App.tsx so the dashboard lives only at /admin, while / no longer opens the admin dashboard directly.
  • Improved sidebar navigation behavior in AppLayout.tsx by replacing direct link rendering with guarded programmatic navigation that ignores clicks on the already-active route.
  • Improved dashboard data reuse in Dashboard.tsx by caching the latest stats payload and reusing it on remount before the next refresh cycle completes.

Fixed

  • Fixed the dashboard menu entry switching between / and /admin, which caused the dashboard route to remount and replay its initial data-fetch/WebSocket bootstrap.
  • Fixed the most visible “reload” symptom on repeated dashboard clicks by preventing no-op navigation and avoiding an empty loading state when cached dashboard stats are available.

0.22.3

Released: 2026-03-31

Highlights

  • Added a controlled restart console on the dashboard so super_admin users can trigger backend, database, or full-system restarts from the UI.
  • Unified restart operations behind planet.sh semantics, including a new database-only restart flag and stale task recovery for interrupted restart jobs.

Added

Improved

  • Improved the dashboard control surface in Dashboard.tsx with restart action selection, guided full-restart terminal output, persisted task log polling, and clearer modal layout.
  • Improved dashboard restart styling in index.css with a dedicated toolbar, terminal panel, and scoped action button styles.
  • Improved Vite dev proxy coverage in vite.config.ts so dashboard recovery polling can reach backend health checks during local development.

Fixed

  • Fixed restart-task deadlocks by automatically releasing stale in-progress restart tasks before accepting a new one.

0.21.9

Released: 2026-03-30

Highlights

  • Upgraded BGP ingestion from anomaly-only output to a layered pipeline with raw observations, enrichment context, detector modules, and aggregated incidents.
  • Stabilized Earth and visualization data feeds so repeated collections no longer inflate satellite and other entity counts in the globe view.
  • Brought the backend test suite back to green and expanded BGP-specific coverage across helpers, aggregation, and API endpoints.

Added

  • Added raw BGP observation persistence in bgp_observation.py.
  • Added aggregated BGP incident persistence in bgp_incident.py.
  • Added BGP enrichment helpers in bgp_enrichment.py for prefix scope, AS path normalization, ASN organization context, and baseline tracking.
  • Added modular BGP detector helpers in bgp_detectors.py.
  • Added BGP incident aggregation helpers in bgp_incidents.py.
  • Added /api/v1/bgp/incidents and /api/v1/bgp/incidents/{id} in bgp.py.

Improved

  • Improved BGP collectors so ris_live.py and bgpstream.py now write observations before deriving anomalies.
  • Improved anomaly generation in bgp_common.py by routing signals through enrichment and dedicated detector modules, then rolling them up into incidents.
  • Improved the Earth cable layer in main.js so hide/show preserves loaded state correctly and stats remain visible while a layer is hidden.
  • Improved backend visualization endpoints in visualization.py so repeated collections return only the latest unique entity records.
  • Improved backend test coverage across test_bgp.py, test_api.py, test_collectors.py, test_models.py, and test_security.py.

Fixed

  • Fixed Earth satellite overcounting caused by historical duplicate records being returned by visualization endpoints.
  • Fixed BGP event APIs to read from observation records instead of the generic collected-data model.
  • Fixed several stale backend tests so they match the current token, timestamp, collector, and API behavior.

0.21.8

Released: 2026-03-27

Highlights

  • Improved Earth-layer performance controls so satellite and cable toggles now fully unload their scene/runtime state instead of only hiding objects.

Improved

  • Improved the Earth satellite toggle to stop position/trail updates and release satellite rendering resources while disabled, then reload on demand when re-enabled.
  • Improved the Earth cable toggle to unload submarine cable and landing-point objects while disabled so drag and interaction cost drops with the layer turned off.
  • Improved Earth data reload behavior so disabled satellite and cable layers stay disabled instead of being implicitly reloaded during refresh.

0.21.7

Released: 2026-03-27

Highlights

  • Added Earth-side BGP collector visualization support so anomaly markers and collector stations can be explored together.
  • Refined the collected-data distribution treemap so square tiles better reflect relative volume while staying readable in dense layouts.

Added

  • Added /api/v1/visualization/geo/bgp-collectors to expose RIPE RIS collector locations as GeoJSON.
  • Added dedicated Earth collector marker handling and BGP collector detail cards in the Earth runtime.
  • Added collector-specific BGP visual tuning for altitude, opacity, scale, and pulse behavior.

Improved

  • Improved the collected-data distribution treemap with dynamic square-grid sizing, clearer area-based span rules, centered compact tiles, and tooltip coverage on both icons and labels.
  • Improved compact treemap readability by hiding 1x1 labels, reducing 1x1 value font size, and centering icon/value content.
  • Improved Earth BGP interactions so anomaly markers and collector markers can both participate in hover, lock, legend, and info-card flows.

Fixed

  • Fixed Earth BGP data loading gaps by adding the missing bgp.js runtime module required by the current control and visualization flow.
  • Fixed treemap layout drift where compact tiles could appear oversized or visually inconsistent with the intended square-grid distribution.

0.21.6

Released: 2026-03-27

Highlights

  • Refined the Earth page interaction loop with object-driven legend switching, clearer selection feedback, and cleaner HUD copy/layout behavior.
  • Improved the Earth info surfaces so status toasts, info-card interactions, and title/subtitle presentation feel more intentional and easier to scan.

Added

  • Added click-to-copy support for info-card labels so clicking a field label copies the matching field value.
  • Added runtime-generated legend content for cables and satellites based on current Earth data and selection state.

Improved

  • Improved Earth legend behavior so selected cables and selected satellite categories are promoted to the top of the legend list.
  • Improved legend overflow handling by constraining the visible list and using scroll for additional entries.
  • Improved info-panel heading layout with centered title/subtitle styling and better subtitle hierarchy.
  • Improved status-message behavior with replayable slide-in notifications when messages change in quick succession.

Fixed

  • Fixed info-card content spacing by targeting the actual #info-card-content node instead of a non-matching class selector.
  • Fixed cable legend generation so it follows backend-returned cable names and colors instead of stale hard-coded placeholder categories.
  • Fixed reset-view and legend-related HUD behaviors so selection and legend state stay in sync when users interact with real Earth objects.

0.21.5

Released: 2026-03-27

Highlights

  • Reworked the collected-data overview into a clearer split between KPI cards and a switchable treemap distribution.
  • Added a direct Earth entry on the dashboard and tightened several admin-side scrolling/layout behaviors.

Added

  • Added a dashboard quick-access card linking directly to /earth.
  • Added collected-data treemap switching between 按数据源 and 按类型.
  • Added data-type-specific icons for the collected-data overview treemap.

Improved

  • Improved collected-data summary behavior so overview counts follow the active filters and search state.
  • Improved the collected-data treemap with square tiles, a wider default overview panel width, and narrower overview scrollbars.
  • Improved responsive behavior near the tablet breakpoint so the collected-data page can scroll instead of clipping the overview or crushing the table.

Fixed

  • Fixed the user-management table overflow issue by restoring ant-table-body to auto height for that page so the outer container no longer incorrectly takes over vertical scrolling.
  • Fixed overly wide scrollbar presentation in collected-data and related admin surfaces by aligning them with the slimmer in-app scrollbar style.

0.21.3

Released: 2026-03-27

Highlights

  • Upgraded the startup script into a more resilient local control entrypoint with retry-based service boot, selective restart targeting, and guided CLI user creation.
  • Reduced friction when developing across slower machines by making backend and frontend startup checks more tolerant and operator-friendly.

Added

  • Added interactive createuser support to planet.sh for CLI-driven username, email, password, and admin-role creation.

Improved

  • Improved start and restart in planet.sh with optional backend/frontend port targeting and on-demand port cleanup.
  • Improved startup robustness with repeated health checks and automatic retry loops for both backend and frontend services.
  • Improved restart ergonomics so restart -b and restart -f can restart only the requested service instead of forcing a full stack restart.

Fixed

  • Fixed false startup failures on slower environments where services needed longer than a single fixed wait window to become healthy.
  • Fixed first-run login dead-end by ensuring a default admin user is created during backend initialization when the database has no users.

0.21.2

Released: 2026-03-26

Highlights

  • Reworked the Earth page HUD into a bottom-centered floating toolbar with grouped popovers and richer interaction feedback.
  • Unified toolbar and corner cards under a liquid-glass visual language and refined status toasts, object info cards, and legend behavior.
  • Made the legend state reflect the currently selected Earth object instead of a fixed static list.

Added

  • Added a reusable Earth legend module in legend.js.
  • Added Material Symbols-based Earth toolbar icons and dedicated fullscreen-collapse icon support.
  • Added click-to-copy support for info-card field labels.

Improved

  • Improved Earth toolbar layout with centered floating controls, popover-based display toggles, and zoom controls.
  • Improved Earth HUD visuals with liquid-glass styling for buttons, info cards, panels, and animated status messages.
  • Improved info-card spacing, scrollbar styling, and object detail readability.
  • Improved legend rendering so cable and satellite object selection can drive the displayed legend content.

Fixed

  • Fixed tooltip coverage and splash copy mismatches in the Earth page controls.
  • Fixed several toolbar icon clarity, centering, and state-toggle issues.
  • Fixed status-message behavior so repeated notifications replay the slide-in animation.

0.20.0

Released: 2026-03-26

Highlights

  • Stabilized the Earth big-screen module for longer-running sessions.
  • Fixed satellite orbit generation by correcting TLE handling end to end.
  • Added a reusable backend TLE helper and exposed tle_line1 / tle_line2 to the Earth frontend.

Added

  • Added a dedicated Earth module remediation plan in earth-module-plan.md.
  • Added backend TLE helpers in satellite_tle.py.
  • Added backend support for returning tle_line1 and tle_line2 from the satellite visualization API.

Improved

  • Reworked the Earth module lifecycle with cleaner init, reload, and destroy paths.
  • Improved scene cleanup for cables, landing points, satellite markers, and related runtime state.
  • Reduced Earth interaction overhead by reusing hot-path math and pointer objects.
  • Switched satellite animation timing to real delta-based updates for more stable motion.
  • Reduced fragile global-state coupling inside the legacy Earth runtime.

Fixed

  • Fixed white-screen risk caused by iframe cleanup behavior in development mode.
  • Fixed incorrect client-side TLE generation:
    • corrected line 2 field ordering
    • corrected eccentricity formatting
    • added checksum generation
  • Fixed fallback orbit issues affecting some Starlink satellites such as STARLINK-36158.
  • Fixed partial Earth data load failures so one failed source is less likely to break the whole view.

Notes

  • The Earth frontend now prefers backend-provided raw TLE lines.
  • Older satellite records can still fall back to backend-generated TLE lines when raw lines are unavailable.
  • This release is primarily focused on Earth module stability rather than visible admin UI changes.

0.21.1

Released: 2026-03-26

Highlights

  • Refined the Earth big-screen toolbar with clearer controls, hover hints, and more consistent visual language.
  • Replaced emoji-based Earth toolbar controls with SVG icons for a cleaner HUD.
  • Updated the Earth loading splash so manual reloads no longer show legacy wording.

Improved

  • Improved zoom controls by adding tooltips for reset view, zoom in, zoom out, and resetting zoom to 100%.
  • Improved Earth toolbar readability with larger icons and revised glyphs for rotation, reload, satellites, trails, cables, terrain, and collapse.
  • Improved loading overlay copy to better distinguish initial initialization from manual refresh.

Fixed

  • Fixed rotate toggle rendering so play/pause state no longer relies on emoji text replacement.
  • Fixed Earth autorotation target syncing so inertial drag is preserved while the globe is still coasting.

0.21.0

Released: 2026-03-26

Highlights

  • Added legacy-inspired inertial drag behavior to the Earth big-screen module.
  • Removed the hard 10,000-satellite ceiling when Earth satellite loading is configured as unlimited.
  • Tightened Earth toolbar and hover-state synchronization for a more consistent runtime feel.

Added

  • Added inertial drag state and smoothing to the Earth runtime so drag release now decays naturally.

Improved

  • Improved drag handling so moving the pointer outside the canvas no longer prematurely stops rotation.
  • Improved satellite loading to support dynamic frontend buffer sizing when no explicit limit is set.
  • Improved Earth interaction fidelity by keeping the hover ring synchronized with moving satellites.

Fixed

  • Fixed the trails toolbar button so its default visual state matches the actual default runtime state.
  • Fixed the satellite GeoJSON endpoint so omitting limit no longer silently falls back to 10000.
  • Fixed hover ring lag where the ring could stay behind the satellite until the next mouse move.

0.19.0

Released: 2026-03-25

Highlights

  • Refined data collection storage and history handling.
  • Moved collected data away from several strongly coupled legacy columns.
  • Improved data list filtering, metadata-driven detail rendering, and collection workflows.

Added

  • Added collected data history planning docs.
  • Added metadata backfill and removal-readiness scripts.
  • Added version history tracking.

Improved

  • Improved datasource task tracking and collection status flow.
  • Improved collected data search, filtering, and metadata rendering.
  • Improved configuration center layout consistency across admin pages.

Fixed

  • Fixed several collected-data field mapping issues.
  • Fixed frontend table layout inconsistencies across multiple admin pages.
  • Fixed TOP500 parsing and related metadata alignment issues.

0.22.2

Released: 2026-03-31

Highlights

  • Refined Earth BGP collector presentation so coverage sectors, scanning behavior, and surface-aligned station markers read more like a coherent observability layer.

Improved

  • Improved BGP collector rendering with surface-aligned mesh icons, directional scanning sectors, and tighter sector geometry that stays closer to the globe surface.
  • Improved collector icon styling by centralizing marker visual parameters in BGP_CONFIG.collectorIcon and restoring clearer low-saturation status color on the icon body.
  • Improved dense collector readability by widening overlap spreading and reducing default non-selected glow so stations stay legible without blooming into bright clusters.

0.22.1

Released: 2026-03-31

Highlights

  • Refined the Earth HUD interaction model so panels and floating menus no longer leak pointer state into the globe runtime.
  • Normalized Escape handling across hover menus, click-open menus, and locked scene selections.

Improved

  • Improved floating toolbar behavior so Escape now closes visible secondary menus before clearing locked scene objects.
  • Improved toolbar hover recovery after forced close, avoiding double-hover reopening glitches.
  • Improved control-module maintainability by deduplicating tooltip, menu, and hide-selection helpers.

Fixed

  • Fixed HUD overlap cases where hovering panels could still leave stale scene hover state active.
  • Fixed info card pointer blocking so panel regions consistently shield underlying globe interactions.

0.22.0

Released: 2026-03-31

Highlights

  • Expanded the BGP stack from raw events into collector coverage, incident weak-correlation, and Earth-side observability overlays.
  • Upgraded the BGP console and Earth runtime so collector baselines and nearby infrastructure context remain visible even outside active anomaly spikes.

Added

  • Added BGP collector coverage APIs and dynamic GeoJSON enrichment for collector baseline metrics.
  • Added weak correlation from BGP incidents to nearby landing points, cable names, and regional exchange hints.
  • Added BGP collector coverage views in the admin console, including recent activity and baseline scope summaries.

Improved

  • Improved Earth BGP rendering with clearer collector markers, activity-driven halos, selected coverage overlays, and nearby satellite highlighting.
  • Improved incident presentation by surfacing related infrastructure directly in BGP incident listings and Earth detail cards.
  • Improved BGP backend test coverage around collector coverage and infrastructure inference.

0.21.9

Released: 2026-03-31

Highlights

  • Expanded the BGP pipeline with observations, enrichment, detectors, and incidents.
  • Stabilized backend tests and improved visualization deduplication across repeated collections.

Improved

  • Improved visualization APIs so repeated satellite and infrastructure collections no longer inflate rendered entity counts.
  • Improved backend coverage for BGP observations, incidents, and API summaries.

Fixed

  • Fixed several backend tests to match the current UTC serialization and collector behavior.