# 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.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.
