492 lines
29 KiB
Markdown
492 lines
29 KiB
Markdown
# 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.7
|
||
|
||
Released: 2026-04-01
|
||
|
||
### Highlights
|
||
|
||
- Fixed datasource bulk-collection progress so the realtime progress bar now tracks a dedicated batch lifecycle instead of collapsing back to zero when completed tasks drop out of the live running queue.
|
||
- Stabilized frontend WebSocket behavior by unifying dashboard subscriptions on the shared hook, reducing reconnect churn, and making local `/ws` fallback handling more resilient.
|
||
- Cleaned up several frontend console and type-check noise sources so the admin pages now run with a clean `tsc --noEmit` result.
|
||
|
||
### Improved
|
||
|
||
- Improved bulk collection progress tracking in [DataSources.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/DataSources/DataSources.tsx) by introducing a separate `bulkProgressBatch` state that persists task outcomes across the full `trigger-all` batch instead of averaging only the currently running tasks.
|
||
- Improved datasource progress summaries in [DataSources.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/DataSources/DataSources.tsx) and [index.css](/home/ray/dev/linkong/planet/frontend/src/index.css) by replacing the previous ad hoc tag row with unified stat pills for total builtin sources, enabled sources, running tasks, successful batch completions, and failed batch items.
|
||
- Improved datasource notifications in [DataSources.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/DataSources/DataSources.tsx) by switching from static `message.*` calls to `message.useMessage()`, which lets the page consume Ant Design context correctly under dynamic themes.
|
||
- Improved WebSocket address selection in [useWebSocket.ts](/home/ray/dev/linkong/planet/frontend/src/hooks/useWebSocket.ts) so the client prefers same-origin `/ws`, then falls back to direct backend access on local development hosts when the Vite proxy path is unavailable.
|
||
- Improved dashboard realtime updates in [Dashboard.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/Dashboard/Dashboard.tsx) by removing the page-local WebSocket implementation and reusing the shared `useWebSocket` hook for the `dashboard` channel.
|
||
- Improved dashboard loading behavior in [Dashboard.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/Dashboard/Dashboard.tsx) by updating the initial spinner to Ant Design’s supported fullscreen pattern, eliminating the invalid `Spin tip` warning.
|
||
|
||
### Fixed
|
||
|
||
- Fixed the bulk datasource progress regression where each finished task disappeared from the running queue and caused the overall progress bar to reset or jump backward mid-batch.
|
||
- Fixed stale batch summaries in [DataSources.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/DataSources/DataSources.tsx) by clearing completed `bulkProgressBatch` state once every tracked datasource reaches a terminal non-running state.
|
||
- Fixed a WebSocket lifecycle bug in [useWebSocket.ts](/home/ray/dev/linkong/planet/frontend/src/hooks/useWebSocket.ts) where changing callbacks or unmounting during `CONNECTING` could leave behind orphaned sockets or produce repeated browser-side “closed before the connection is established” noise.
|
||
- Fixed repeated dashboard/admin websocket logic drift by consolidating channel subscription behavior into the shared hook instead of maintaining a second handwritten `new WebSocket(...)` path in the dashboard page.
|
||
- Fixed remaining frontend TypeScript hygiene issues in [BGP.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/BGP/BGP.tsx) and [Settings.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/Settings/Settings.tsx) by removing unused anomaly summary state and an unused `Space` import.
|
||
|
||
## 0.22.6
|
||
|
||
Released: 2026-04-01
|
||
|
||
### Highlights
|
||
|
||
- Finished the remaining Earth-side BGP interaction changes that were left out of the previous push, so collector and incident selections now use the intended semantic linking behavior in the globe view.
|
||
|
||
### Improved
|
||
|
||
- Improved [main.js](/home/ray/dev/linkong/planet/frontend/public/earth/js/main.js) so BGP incident cards synthesize a clearer narrative summary when backend text is sparse, instead of exposing a thin raw summary.
|
||
- Improved [main.js](/home/ray/dev/linkong/planet/frontend/public/earth/js/main.js) so incident selection reports impacted region counts and related cable counts directly in the Earth status message.
|
||
- Improved [main.js](/home/ray/dev/linkong/planet/frontend/public/earth/js/main.js) so BGP incident-linked cables use a locked visual state, making event-to-cable correlation easier to read on the globe.
|
||
|
||
### Fixed
|
||
|
||
- Fixed the omitted Earth-side BGP semantic update from the previous push by actually shipping the `incident nearby satellites` wording, incident narrative fallback, and related-cable lock highlighting in [main.js](/home/ray/dev/linkong/planet/frontend/public/earth/js/main.js).
|
||
- Fixed collector selection semantics in [main.js](/home/ray/dev/linkong/planet/frontend/public/earth/js/main.js) so selecting a BGP collector no longer triggers the weaker nearby-satellite hint and no longer dims cable and landing-point layers as if it were an incident state.
|
||
|
||
## 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](/home/ray/dev/linkong/planet/backend/app/services/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](/home/ray/dev/linkong/planet/backend/app/services/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](/home/ray/dev/linkong/planet/backend/app/services/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](/home/ray/dev/linkong/planet/backend/app/services/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](/home/ray/dev/linkong/planet/backend/app/services/collectors/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](/home/ray/dev/linkong/planet/backend/tests/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](/home/ray/dev/linkong/planet/frontend/src/App.tsx) so the dashboard lives only at `/admin`, while `/` no longer opens the admin dashboard directly.
|
||
- Improved sidebar navigation behavior in [AppLayout.tsx](/home/ray/dev/linkong/planet/frontend/src/components/AppLayout/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](/home/ray/dev/linkong/planet/frontend/src/pages/Dashboard/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
|
||
|
||
- Added `/api/v1/system/restart-tasks` task creation, task status, and task log endpoints in [system_control.py](/home/ray/dev/linkong/planet/backend/app/api/v1/system_control.py).
|
||
- Added restart-task Redis helpers and whitelist command mapping in [system_control.py](/home/ray/dev/linkong/planet/backend/app/services/system_control.py).
|
||
- Added detached restart runner orchestration in [system_restart_runner.py](/home/ray/dev/linkong/planet/backend/scripts/system_restart_runner.py).
|
||
- Added `-d` / `--database` support to [planet.sh](/home/ray/dev/linkong/planet/planet.sh) for database-only restarts.
|
||
- Added restart control documentation in [system-service-control.md](/home/ray/dev/linkong/planet/docs/system-service-control.md).
|
||
|
||
### Improved
|
||
|
||
- Improved the dashboard control surface in [Dashboard.tsx](/home/ray/dev/linkong/planet/frontend/src/pages/Dashboard/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](/home/ray/dev/linkong/planet/frontend/src/index.css) with a dedicated toolbar, terminal panel, and scoped action button styles.
|
||
- Improved Vite dev proxy coverage in [vite.config.ts](/home/ray/dev/linkong/planet/frontend/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](/home/ray/dev/linkong/planet/backend/app/models/bgp_observation.py).
|
||
- Added aggregated BGP incident persistence in [bgp_incident.py](/home/ray/dev/linkong/planet/backend/app/models/bgp_incident.py).
|
||
- Added BGP enrichment helpers in [bgp_enrichment.py](/home/ray/dev/linkong/planet/backend/app/services/bgp_enrichment.py) for prefix scope, AS path normalization, ASN organization context, and baseline tracking.
|
||
- Added modular BGP detector helpers in [bgp_detectors.py](/home/ray/dev/linkong/planet/backend/app/services/bgp_detectors.py).
|
||
- Added BGP incident aggregation helpers in [bgp_incidents.py](/home/ray/dev/linkong/planet/backend/app/services/bgp_incidents.py).
|
||
- Added `/api/v1/bgp/incidents` and `/api/v1/bgp/incidents/{id}` in [bgp.py](/home/ray/dev/linkong/planet/backend/app/api/v1/bgp.py).
|
||
|
||
### Improved
|
||
|
||
- Improved BGP collectors so [ris_live.py](/home/ray/dev/linkong/planet/backend/app/services/collectors/ris_live.py) and [bgpstream.py](/home/ray/dev/linkong/planet/backend/app/services/collectors/bgpstream.py) now write observations before deriving anomalies.
|
||
- Improved anomaly generation in [bgp_common.py](/home/ray/dev/linkong/planet/backend/app/services/collectors/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](/home/ray/dev/linkong/planet/frontend/public/earth/js/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](/home/ray/dev/linkong/planet/backend/app/api/v1/visualization.py) so repeated collections return only the latest unique entity records.
|
||
- Improved backend test coverage across [test_bgp.py](/home/ray/dev/linkong/planet/backend/tests/test_bgp.py), [test_api.py](/home/ray/dev/linkong/planet/backend/tests/test_api.py), [test_collectors.py](/home/ray/dev/linkong/planet/backend/tests/test_collectors.py), [test_models.py](/home/ray/dev/linkong/planet/backend/tests/test_models.py), and [test_security.py](/home/ray/dev/linkong/planet/backend/tests/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](/home/ray/dev/linkong/planet/planet.sh) for CLI-driven username, email, password, and admin-role creation.
|
||
|
||
### Improved
|
||
|
||
- Improved `start` and `restart` in [planet.sh](/home/ray/dev/linkong/planet/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](/home/ray/dev/linkong/planet/frontend/public/earth/js/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](/home/ray/dev/linkong/planet/docs/earth-module-plan.md).
|
||
- Added backend TLE helpers in [satellite_tle.py](/home/ray/dev/linkong/planet/backend/app/core/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.
|