Files
planet/docs/CHANGELOG.md
linkong 5bdb55f3f1
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled
release / images (push) Has been cancelled
release: bump version to 0.74.0
2026-06-30 13:52:52 +08:00

162 KiB
Raw Permalink Blame History

Changelog

All notable changes to planet are documented here.

This project follows the repository versioning rule:

  • feature -> +0.1.0
  • improvement -> +0.0.1bugfix + 小功能混合)
  • bugfix -> +0.0.1

[0.74.0] — 2026-06-30

Released: 2026-06-30

Highlights

  • 扩展统一 i18n 到 Web Earth、控制台、认证页和公开 Docs 的更多动态入口,减少英文界面中文残留。
  • 强化 Earth HUD 的通知胶囊、品牌栏、语言 switch、图例、tooltip、详情卡、新闻和 TV 文案展示,避免英文态裁切或错位。
  • 将容易遗漏的 i18n 入口和视觉回归加入 harness让 smoke 覆盖通知位置、内容宽度、语言切换状态和动态文案。

Added / Fixed / Improved

  • 新增 Earth runtime i18n 入口,统一高清材质、启动状态、错误提示和图层状态文案来源。
  • 补齐国家名、属性名、卫星 legend、详情页 tooltip、新闻/TV 默认文案和 API 错误提示的英文翻译与回退。
  • 更新控制台与 Earth 布局规则,保留 brand 尺寸语义,同时让标题、副标题和通知胶囊按内容完整显示。
  • 扩展 frontend smoke 与 harness 文档固化一屏高度链、i18n 动态入口、胶囊/tag overflow 和截图证据要求。
  • 更新 Earth 新闻本地化服务与测试,确保英文界面新闻内容不再回退中文 UI 文案。

[0.73.0] — 2026-06-29

Released: 2026-06-29

Highlights

  • 新增前端统一 i18n 基础设施让认证页、Docs UI、控制台外壳、导航、搜索和核心共享组件共用 zh-CN / en-US 语言状态。
  • 控制台侧边栏偏好面板接入语言与主题切换,并修复一屏高度链、账号区、状态指示器和英文态文案裁切问题。
  • 扩展 harness 与 smoke 覆盖,确保 admin shell 高度、移动/缩放布局、语言切换、搜索、Docs 和核心控制台交互在发布前被验证。

Added / Fixed / Improved

  • 新增 frontend/src/i18n/,用 i18next / react-i18next 维护资源、locale 映射、Docs 兼容和过渡期 legacy UI 翻译桥。
  • 将 AdminLayout、route manifest、admin search、Auth、DataTable、Dialog、Toast、MarkdownRenderer 和 Users 页迁移到统一翻译资源。
  • 补齐 Planet Content、Collected Data、System Logs、Datasources、Settings 和 Collection Management 等英文态残留翻译,并覆盖动态计数字符串。
  • 改进控制台侧边栏账号区、语言 switch、状态 pill 自适应宽度和 admin shell overflow ownership避免首屏溢出和状态词裁切。
  • 更新 i18n 计划、控制台前端上下文、harness 文档和规则,记录语言迁移边界、状态指示器布局约束和一屏验证要求。

[0.72.0] — 2026-06-29

Released: 2026-06-29

Highlights

  • 将 agent 入口收敛到单一 AGENTS.md,并让 harness 明确阻止小写入口再次分叉。
  • 新增完整本地 harness 验证层,覆盖 backend/frontend/docs/security 静态规则、前端 build 和 Playwright 路由/交互 smoke。
  • 扩展 Earth News 与控制台 smoke确保新闻源测试、新增取消、手动新闻组创建、桌面/移动菜单和 zoom 布局都在发布前验证。

Added / Fixed / Improved

  • 新增 scripts/harness/* 规则检查、doctor、validate 和前端 smoke 脚本,并将未跟踪 harness 设施纳入发布。
  • 清理 SpaceTrack 与 PeeringDB collector 的 stdout/debug 输出,改用结构化日志并移除 SpaceTrack 不可达重复 fetch 路径。
  • 强化控制台布局、auth 表单、Docs 页面、Earth shell 和 Earth toolbar 的响应式与无障碍细节。
  • 同步 README、CODEMAP、HARNESS、harness audit、用户手册、快速开始和开发者文档明确当前 Web Earth / React admin / FastAPI / aiprovider 边界。
  • 将 backend、frontend、docs 和 Earth News 检查纳入 scripts/harness/quick-check.shscripts/harness/validate.sh 的稳定验证面。

[0.71.1] — 2026-06-26

Released: 2026-06-26

Highlights

  • 修复 Earth 欧洲、美洲、中东与非洲等区域新闻被亚太来源和旧来源过滤饿死的问题,滚动条、面板和巡航重新回到同一批区域 payload。
  • 将当前可见新闻和巡航新闻提升到目标位置/翻译优先队列,避免历史普通 Redis backlog 阻塞用户正在看的新闻精修。
  • 新增 agent harness 入口、代码地图、验证脚本与双语技术说明,让后续维护能按现有 uv/Bun/Gitea 工作流检查而不替代项目规则。

Added / Fixed / Improved

  • EarthFeed 在全局和巡航队列中按区域轮转候选新闻,保留区域视图的“当前区域 + global”规则并补充回归测试。
  • news.js 按区域、类型、来源和数量隔离并发刷新请求,丢弃旧区域响应;跨区域时不再复用旧来源筛选。
  • 新闻展示在中文本地化未完成时回退原始标题和摘要,避免出现有内容却显示“新闻汉化中”的卡片。
  • 新闻目标位置 worker 新增优先 stream、pending reclaim、任务超时和并发处理无效消息会确认并删除减少队列堆积。
  • 补充 Earth 新闻源、Earth 前端结构、harness 和版本历史文档,并移除控制台 auth store 的调试日志。

[0.71.0] — 2026-06-11

Released: 2026-06-11

Highlights

  • 将 Motion Agent 升级为可供 Web/UE 共用的双向控制服务,补齐真实 MediaPipe 识别 worker、设备控制、动作白名单和 WSL 摄像头开箱启动链路。
  • 新增 Earth 手动新闻内容组、条目、导入与重处理能力,并改进按 locale 和启用来源进行的新闻补充与多样化。
  • 对齐动捕模式下的 Earth 点击、详情锁定和卫星轨迹交互,同时完善启动脚本、测试 harness 与运维说明。

Added / Fixed / Improved

  • Motion Agent 支持命令结果、状态、骨架与手势事件,统一单路/双路输入配置,并随 planet.sh 默认启动;仓库内提供 usbipd-win fallback 安装包。
  • Earth 新闻服务集中处理显示就绪判断和来源多样化,避免存储层与编排层重复筛选;新增手动新闻 API 与回归测试。
  • 清理 Motion Agent 重复识别执行路径、前端不稳定随机 key 和过时计划描述,补齐 pytest 路径 harness、双语使用手册、快速开始与数据流文档。

[0.70.0] — 2026-06-04

Released: 2026-06-04

Highlights

  • 新增后端枚举契约治理,将稳定协议状态集中到 app/core/enums.py,同时保持数据库和 API 的小写字符串兼容。
  • 改进 Earth 新闻分类、重要度与 Breaking 插队链路,并补齐中英文新闻源与枚举契约文档。
  • 将 Earth 船只展示改为 vessel_current_state 当前状态快照,保留 AIS 原始历史用于轨迹和态势分析。
  • 清理错误的船只视口刷新/订阅思路,恢复全球船只显示,并让性能优化集中到批量渲染、关闭动态聚类和减少 hover/rebuild 开销。

Added / Fixed / Improved

  • earth_news_classification.py 集中管理新闻类型、重要度和 Breaking 规则,避免抓取编排层重复判断。
  • /api/v1/vessels/snapshot 支持全球当前状态读取和小数 zoom诊断信息明确返回 vessel_current_state 来源。
  • 船只前端使用全球 bbox + limit=3000,不再随相机视口重复请求或建立多视口 WebSocket 订阅。
  • 中英文技术文档同步更新船只、采集器、数据流、渲染层级、样式参数和历史计划状态。

[0.69.0] — 2026-06-03

Released: 2026-06-03

Highlights

  • 新增 Earth 新闻源治理能力,支持多 Feed 子项、源属性标签、新闻类型过滤、重要度规则和健康测试。
  • 新增观测日志聚合视图,按 fingerprint 汇总 Earth、Admin 和服务端重复运行时事件,并保留原始发生明细。
  • 改进 TV/HLS 播放恢复和代理重写,降低字幕、分片和源站波动导致的直播不可用噪声。

Added / Fixed / Improved

  • Earth 新闻面板和 UE 端统一通过 /api/v1/news/earth-feed 使用 categorieslocale 服务端过滤Web 端新闻类型偏好仅保存在当前浏览器。
  • 控制台日志页新增重复统计、原始日志和审计日志模式,前端上报器会合并短窗口内的重复错误并提交 occurrence_count
  • AI Provider / 服务端运行时可通过受保护的 observability ingest 入口写入结构化事件。
  • 新闻源文档新增中英文配置说明,并补齐 Earth 前端、控制台日志和公开 Docs 索引。

[0.68.1] — 2026-05-28

Released: 2026-05-28

Highlights

  • 修复 CelesTrak active 未更新窗口下清库后无法恢复的问题fallback 会优先复用本地有效 group 缓存。
  • 修复数据源任务队列“查看日志”无法按 task_id=... 命中数据库结构化日志的问题。

Added / Fixed / Improved

  • CelesTrak fallback group 列表改为公开可用分组,移除失效 group并在没有 active 缓存时仍可从本地 group 缓存恢复采集。
  • 数据库日志搜索补充 JSON context 的 key=value 别名,支持 task_id=26906datasource_id=20 这类控制台跳转查询。
  • 补充 CelesTrak 缓存边界、数据源任务日志跳转和运维恢复说明的中英文文档。

[0.68.0] — 2026-05-28

Released: 2026-05-28

Highlights

  • 新增数据源任务队列的实时指标校准和批量删除进度,让大表清理、取消和完成状态在控制台中可感知。
  • 新增智能星球 interactable 可插拔聚类策略,支持稳定 3D 球面聚类、动态屏幕聚类和 250% 以上自动散开。
  • 改进新设备启动流程,planet.sh 会在启动前同步前端依赖,避免缺失依赖导致控制台动态导入失败。

Added / Fixed / Improved

  • 数据源列表改为中文记录数指标,并对 AIS 大表使用统计估算 + 单条详情精确校准,降低首次加载成本。
  • 数据删除任务改为分批删除并广播进度,清理 AIS 衍生表后自动 ANALYZE,同时修复取消中任务恢复和状态文案。
  • Earth BGP、算力中心和 interactable 图层默认使用 stable-spherical 聚类,船舶实时层保留 dynamic-screen
  • 新增中英文 Earth interactable clustering 文档,并补充采集队列、后端删除语义和前端依赖同步说明。

[0.67.0] — 2026-05-27

Released: 2026-05-27

Highlights

  • 新增控制台日志实时跟随与前端运行时错误上报,帮助在控制台内直接排查 Admin / Earth 客户端异常。
  • 重构智能星球 Interactable 聚合和 wheel 缩放输入,保持真实地理锚点稳定,同时让鼠标滚轮和触控板拥有各自合适的缩放手感。

Added / Fixed / Improved

  • 新增 /ws 日志 tail 通道、数据库/文件日志统一事件读取,以及 Admin error / unhandledrejection / React ErrorBoundary 上报链路。
  • 优化控制台日志页状态颜色、跟随体验和运行时错误展示,并将 Admin 本地工具模块从 lib 命名迁移为局部 utils
  • 修复智能星球国界/高清材质壳半径对齐、Interactable cluster 圆点显示、缩放目标累积和触控板连续缩放问题。
  • 更新 planet.sh.gitignore,避免新环境构建污染锁文件并移除前端 lib 目录特殊放行。
  • 补充智能星球前端、渲染层级、控制台状态与运行时日志文档。

[0.66.3] — 2026-05-26

Released: 2026-05-26

Highlights

  • 修复控制台 Admin 动态导入时缺失 ../lib/utils 导致 Vite 返回 500 的问题。
  • 补齐前端依赖安装状态,确保 Markdown Mermaid 渲染器可解析 mermaid 包。

Added / Fixed / Improved

  • 新增 Admin 本地 cnformatNumber 工具模块恢复布局、UI 组件和 Dashboard 的共享工具引用。
  • 放开 .gitignorefrontend/src/admin/lib 的源码例外,避免 utility module 再次被全局 lib/ 规则漏提交。
  • 重启前端开发服务并验证 /admin 无 Vite overlay 和 console error。

[0.66.2] — 2026-05-26

Released: 2026-05-26

Highlights

  • 统一中文界面和公开文档中的产品命名:Earth 显示为“智能星球”,Admin 显示为“控制台”,Docs 显示为“文档”。
  • 修复文档手册、Docs catalog、控制台入口和智能星球设置中残留的中英混排标题。

Added / Fixed / Improved

  • 更新控制台侧边栏、智能星球系统设置、移动端抽屉和登录页品牌文案。
  • 同步前后端 Docs metadata、中文技术文档标题、使用手册、快速开始、术语表和运维手册中的产品命名。
  • 补充清理智能星球图层缓存、品牌配置、展示缓存等控制台 toast / dialog 文案。

[0.66.1] — 2026-05-26

Released: 2026-05-26

Highlights

  • 修复 CelesTrak active 更新窗口内清库后无法恢复的问题,新增持久原始下载缓存和完整 fallback group mode。
  • 避免数据源任务 WebSocket 与轮询同时完成时重复弹出采集失败 toast。
  • planet.sh destroy 保留上游原始下载缓存,数据库清空后仍可用缓存重灌。

Added / Fixed / Improved

  • CelesTrak 403 GP data has not updated 会先复用 active 缓存;无 active 缓存时完整拉取 starlink/gps-ops/galileo/glonass/beidou/leo/geo/iridium-next,任一 group 缺失则整体失败,不保存 partial。
  • 下载器缓存从 /tmp 迁到 $PLANET_CACHE_DIR/downloads,并保留 HTTP 错误响应正文以支持上游限频语义判断。
  • 补充 CelesTrak cache/fallback 回归测试和中英文运维/卫星策略文档。

[0.66.0] — 2026-05-26

Released: 2026-05-26

Highlights

  • 将 Admin 正式化为唯一控制台入口,移除旧 AntD 后台、Admin Next 路由痕迹和相关依赖。
  • 引入 PostgreSQL 数据作业队列、Earth outbox 同步和可交互对象管线,让采集、清理和 Earth 刷新进入可追踪异步链路。
  • 强化 AI、AI 工具、设置连接测试和采集任务的结构化业务日志,关键事件可在系统日志中检索。
  • CelesTrak 轨道根数采集改为完整 active 目录下载、续传和重试,避免部分分组失败时保存不完整卫星数据。

Added / Fixed / Improved

  • Admin 数据源页修复内置源调度启停按钮,使用 is_active 判断 /enable/disable,避免采集状态误导调度开关。
  • Earth 新增通用 interactables 层和平台数据流文档,支持对象级 delta 同步与后续小图层扩展。
  • planet.sh init/start/destroy 补齐 uv 镜像回退、Bun unzip 依赖、HTTPS/LAN 跳转协议和 OOBE 清理语义。
  • Markdown code block、数据源队列、演示模式、About 版本展示、TV 链接协议和文档索引同步完成。

[0.65.2] — 2026-05-22

Released: 2026-05-22

Highlights

  • Stabilize AI Provider rebuild detection so unchanged source no longer rebuilds just because file timestamps or local cache state changed.
  • Keep uv.lock on the official registry while still allowing local and Docker builds to use the user's uv.toml.
  • Prevent local startup and bootstrap commands from rewriting uv.lock when a user-level mirror is configured.

Added / Fixed / Improved

  • AI Provider fingerprints now use content hashes, base image inputs, dependency metadata, and an image label instead of file mtimes.
  • planet.sh and scripts/bootstrap-dev.sh now use uv sync --frozen, and backend startup uses uv run --frozen.
  • Docker Compose passes the AI Provider fingerprint into the image build so future starts can inspect the image label directly.

[0.65.1] — 2026-05-22

Released: 2026-05-22

Highlights

  • 修复 planet.sh 与 Docker Compose 对 AI Provider 镜像名不一致导致的重复构建问题。
  • 让本地 uv 与 Docker build 统一使用用户机器上的 uv.toml,避免把镜像源写入 uv.lock
  • 通过 BuildKit secret 向容器构建传入 uv 配置,保留用户源选择且不把配置写入镜像层。

Added / Fixed / Improved

  • planet.sh 自动解析 UV_CONFIG_FILE、仓库 uv.toml 与用户级 ~/.config/uv/uv.toml,并清理会覆盖配置的 UV_INDEX_URL 环境变量。
  • AI Provider 和后端 Dockerfile 在 uv sync 阶段挂载 uv 配置 secret并复用 BuildKit uv cache。
  • Docker Compose 三套配置统一声明 planet-aiprovider:latest 镜像名和 planet_uv_config build secret。

[0.65.0] — 2026-05-21

Released: 2026-05-21

Highlights

  • 收敛 Admin Next 数据源触发入口:主按钮在未勾选时触发全部,勾选内置源后切换为“触发已选 N”并移除手填 ID 的批量触发弹窗。
  • 优化数据源采集队列入口:右上角按钮常驻,空态显示队列图标,有任务时显示纯圆环进度,队列改为浮层避免挤压表格。
  • 强化 planet.sh destroy 清理语义,销毁时先硬重置运行中的本地 Postgres public schema避免残留采集数据让 OOBE 误判 ready。

Added / Fixed / Improved

  • Admin Next 表格新增可选选择列,仅在 /datasources 内置源分区启用,支持当前可见行全选并在筛选、切分区或刷新时清空选择。
  • 数据源批量触发复用 /datasources/trigger-batchsource_ids,成功后写入现有采集队列并清空勾选。
  • destroy 补充清理 planet-aiprovider:latest 镜像以及 Python/Vite 等本地编译缓存,同时保留源码和 .env
  • Docs Gatekeeper 与 Tactile UI 文档/样式继续补齐覆盖本轮按钮、队列、OOBE 和销毁流程说明。

[0.64.0] — 2026-05-21

Released: 2026-05-21

Highlights

  • 新增 Earth 首次初始化 OOBE由后端真实采集状态决定是否显示避免 localStorage 清空后误弹,并提供桌面毛玻璃引导与移动端 bottom sheet。
  • 数据源页新增下载列表式采集队列,把单源、批量和触发全部的任务进度统一展示,并支持失败重试与跳转详情。
  • Earth 内容新增“关于”配置接口和后台 tabEarth 设置页 About 卡片改为运行时读取配置并带默认 fallback。

Added / Fixed / Improved

  • 新增 /api/v1/earth/oobe-status/api/v1/earth/about GET/PUT/DELETE并让 Earth 前端加载 about.jsoobe.js
  • Admin Next 数据源队列优先消费 datasource_tasks WebSocket断线时轮询 /datasources/{id}/task-status,刷新后只恢复后端仍在运行的真实任务。
  • Admin Next 深色主题滑块补齐 Docs 同款 dark token侧栏主题控件在 dark 模式下不再保持浅色底座。
  • 用户手册、快速开始、Earth 前端上下文和 Admin 前端上下文同步记录 OOBE、采集队列、About 配置与主题滑块行为。

[0.63.1] — 2026-05-21

Released: 2026-05-21

Highlights

  • 修复新设备初始化后 Admin Next 无法打开的问题:补上被 .gitignorelib/ 规则误忽略的 Admin Next utility module。

Added / Fixed / Improved

  • frontend/src/admin-next/lib/utils.ts 纳入版本控制,恢复 DashboardNextAdminNextLayout 等页面对 cnformatNumber 的运行时依赖。
  • 避免 Vite dev server 在新 clone 环境中因缺失源码模块而对 /src/admin-next/* 返回 500并导致动态导入 AdminNextRoutes 失败。

[0.63.0] — 2026-05-21

Released: 2026-05-21

Highlights

  • 新增 ./planet.sh init 首次初始化入口,将 uv/bun 依赖同步、env 模板补齐、数据库容器启动、建表 seed 和默认用户生成串成一条空项目引导路径。
  • 新增 ./planet.sh destroy 破坏性重置入口,带 CLI 确认保护,可清理 Planet 容器、卷、镜像和本地编译/运行状态,同时保留源码与 .env 配置。
  • 改进 planet.sh 日志体验,只在带状态标签的输出行末尾追加时间戳,并让 init 在应用服务已运行时自动跳过重复初始化。

Added / Fixed / Improved

  • init 复用现有 Docker/依赖 helper支持重复执行时不覆盖 env、不清空数据并在完成后提示默认本地登录账号。
  • destroy 停止本地服务后清理 Docker compose 状态、项目镜像、数据卷、.venvnode_modules、前端构建产物和 Planet state/cache。
  • README 快速启动补充 initdestroy 命令说明,明确首次引导和重置路径。

[0.62.0] — 2026-05-21

Released: 2026-05-21

Highlights

  • Admin Next 转正为正式后台入口,旧 AntD 控制台完整迁移到 /legacy/admin/* 作为回退和对照,并保留 /admin-next/* 兼容重定向。
  • 新后台完成采集、AI Provider、Earth 内容、日志、BGP/告警、设置和认证链路的全量收口,新增 lazy tab loading、层级配置、移动端详情和 Markdown 文档渲染体验。
  • 抽出 Tactile UI 按钮、开关、tooltip、滚动条和表格滚动组件为未来独立 npm 组件库打基础,同时补齐中英文开发文档。

Added / Fixed / Improved

  • 新增采集管理分层工作台,覆盖采集器配置、采集调度、采集历史/快照、凭证教程生成/重置、映射 propose/preview/create/activate 和真实连接/运行状态。
  • 改进 AI Provider 与工具调用配置,修复 key fallback、脱敏显示、轻量连通性测试、默认 provider、OpenCode Go 路由和 Playground Markdown 输出。
  • 更新 Earth 内容管理和 Earth 前台体验,支持品牌预览/上传/重置、TV 默认源与新增草稿、图层/新闻/3D 模型配置入口以及 live TV 预览。
  • 强化后端数据源、系统日志、WebSocket、AI client、位置 LLM fallback、Earth layer cache 和 datasource connectivity并补充相关回归测试与运维脚本能力。

[0.61.0] — 2026-05-18

Released: 2026-05-18

Highlights

  • 新增 Earth 图层 Redis 读穿缓存、防击穿锁、stale 兜底和 payload budget降低演示前重图层与船只 snapshot 对后端内存的冲击。
  • 保持前端原 API 不变为海缆、登陆点、卫星、算力中心、BGP、summary 和船只 snapshot 增加透明缓存 header 可观测性。
  • 新增 super admin Earth 图层缓存状态与清理接口,并在采集写入后按 source 主动失效相关缓存。

Added / Fixed / Improved

  • 新增 earth:layer:v1:* 缓存命名空间、fresh/stale 双 key、Redis 故障 bypass 和 OOM 防护诊断。
  • 船只 snapshot 使用短 TTL、bbox 量化和响应预算,避免重复视窗请求和超大 payload 触发后端 OOM。
  • 补充 Earth layer cache 计划文档与后端测试,覆盖 hit、refresh、stale、bypass、锁竞争、cache header 和运维清理。

[0.60.0] — 2026-05-17

Released: 2026-05-17

Highlights

  • 新增 Earth 内容与国界运行体验:品牌内容配置、国界精度滑块、高精国界首次应用按钮和高精重载构建入口共同收口。
  • 完成新闻中文展示链路收敛:滚动新闻改用一句话摘要,新闻本地化状态避免未完成内容进入滚动展示,英文原文继续保留在数据层。
  • 重构 AI Provider 与提示词边界:aiprovider 保持纯净模型适配,业务提示词集中到后端 AI task 默认注册表并支持运维台覆盖和重置。

Added / Fixed / Improved

  • 新增 AI 设置提示词 tab按功能入口选择、编辑、保存和重置默认提示词并修复态势告警 / BGP 简报展示生成内容而非 prompt。
  • 更新 Earth 新闻、HUD、巡航、桌面详情和移动详情的中文显示策略并优化新闻摘要提示词为新闻式一句话概要。
  • 补充 Agent Runtime、Earth LLM 指令、语音识别和多角色态势感知的详细计划,并同步 README 架构说明、用户手册、FAQ 与开发者文档。
  • 补齐相关后端测试,覆盖 Earth 品牌配置、AI 简报接口和态势告警 AI 简报生成链路。

[0.59.0] — 2026-05-16

Released: 2026-05-16

Highlights

  • 将 Earth 国界从采集器体系迁移为 Earth 静态资产,恢复低精 GeoJSON fallback并新增 Earth 工具栏高精国界下载/构建进度与热应用。
  • 重组后台“运维与配置”:新增 Earth 内容与采集管理二级入口,电视直播、国界精度、采集器、采集调度各归其位,未接入模块以占位页呈现。
  • 新增 AI task prompt 覆盖管理,按稳定 task key 管理新闻汉化、告警研判、BGP 简报等业务提示词,避免全局 prompt 污染。

Added / Fixed / Improved

  • Earth 新闻锚点链路增加队列化 enrichment 状态、Redis Streams 后台精修和 WebSocket patch 语义,前端汉化/锚点策略更稳定。
  • 国界 hover 与 interactable tooltip 解耦,鼠标位于国家 polygon 内时保持国界高亮,同时卫星/船只/BGP 等对象仍可显示自身信息。
  • 新增 /api/v1/earth/boundaries/* 状态、配置、构建和进度接口,并在启动初始化中清理旧 boundary datasource/task/snapshot 历史入口。
  • 补齐中英文用户手册、FAQ、quickstart、运维手册和开发者上下文文档明确用户 UI、运维操作和开发者稳定边界。

[0.58.0] — 2026-05-15

Released: 2026-05-15

Highlights

  • 新增 Earth 高精度国界 PMTiles/MVT 前端链路,移除旧低精度 GeoJSON 国界兜底,国界缺失时显式报错。
  • 将 Earth 边界数据拆成 Admin-0、coastline、claim-lines 三个标准源采集器,并把 earth_boundary_tiles 收口为下游 PMTiles 构建器。
  • 修复 Earth 远距缩放下海陆基座与高清贴图 z-fighting 导致的雪花/黑块闪烁,并记录地表多层 shell 的深度间距规则。

Added / Fixed / Improved

  • 新增 earth_boundary_source 目标 schema、China POV policy 配置、PMTiles readiness/build 脚本和 collector artifact 登记流程。
  • Earth 新闻巡航改为优先使用可缓存的目标地点解析队列,并补充媒体新闻归档采集器与回归测试。
  • 调整数据源列表任务状态展示,让 Earth 采集器失败/未就绪状态可见,不再表现为“未执行”。
  • 更新中英文采集器、数据源设置、Earth 图层顺序、运维 runbook、FAQ、规则和计划文档。

[0.57.0] — 2026-05-14

Released: 2026-05-14

Highlights

  • 新增 WSL --allow-lan 临时 Windows relay保持本机 localhost:3000 / localhost:8000 不变,同时用 Windows 局域网 IP 暴露相同端口。
  • 启动脚本会检测旧 netsh interface portproxy 冲突并请求管理员 PowerShell 清理,避免 svchost.exe / iphlpsvc 持久占用 3000/8000。
  • 修复 Vite CJS Node API deprecated warning将前端配置迁移到 ESM并让脚本按实际后端端口注入代理目标。

Added / Fixed / Improved

  • 新增 scripts/windows-lan-relay.ps1,在 Windows 侧启动随 WSL 服务健康状态自动退出的 TCP relay。
  • planet.sh --allow-lan 仅在 WSL + PowerShell 可用时启用 Windows relay并自动检查 Windows 防火墙规则;非 WSL 环境保持原有路径。
  • 更新中英文 README、FAQ 和运维文档,说明旧 portproxy 清理、UAC 防火墙授权、同端口 localhost/LAN 访问和故障恢复方式。

[0.56.0] — 2026-05-13

Released: 2026-05-13

Highlights

  • 修复 Earth 卫星 SGP4 坐标口径,当前点/短尾迹使用地固坐标,锁定预测轨道使用固定地球姿态下的闭合惯性轨道。
  • 优化真实高度压缩显示上限,将高轨显示控制在地球半径外约四分之一,保持 GEO/MEO/LEO 分层同时避免轨迹过远。
  • 统一 BGP 光晕与图标色调,并更新超算中心建筑图标和 Earth 新闻/HUD 面板体验。

Added / Fixed / Improved

  • 修正卫星详情卡近地点/远地点高度计算,避免把轨道半径误显示为离地高度。
  • 调整 BGP event / collector halo 的浅色派生规则,使红色事件、橙色活跃观测站和蓝色 idle 观测站保持各自色相。
  • 补充中英文用户手册、FAQ、Earth frontend context、render order、layer style reference 和相关计划文档。

[0.55.0] — 2026-05-13

Released: 2026-05-13

Highlights

  • 新增 Earth 卫星真实高度显示开关,默认按 TLE/SGP4 真实轨道高度压缩分层,关闭后恢复旧版同层球面。
  • 将卫星轨迹显示保留在设置面板,并让轨迹、预测轨道和锁定视觉跟随真实高度开关即时刷新。
  • 修复 Earth 设置面板 switch 圆点垂直居中问题并同步更新用户手册、FAQ 和 Earth 开发者文档。

Added / Fixed / Improved

  • 新增 satelliteRealAltitudeEnabled 本地偏好和真实高度压缩参数,保留 TLE 缺失/传播失败时的 fallback 固定高度。
  • 更新卫星渲染高度、轨迹、预测轨道和设置持久化链路,避免同一轨迹混入两套高度模型。
  • 补充中英文 manual、quickstart、FAQ、Earth frontend context、render order 和 layer style reference。

[0.54.0] — 2026-05-13

Released: 2026-05-13

Highlights

  • 新增 Earth 轨迹显示设置,将卫星轨迹从图层列表迁移到桌面与移动设置面板,便于独立控制轨迹线显示。
  • 优化卫星静止呼吸与低缩放圆点闪烁参数,让卫星态势视觉节奏更柔和、层次更清晰。
  • 更新算力中心图标资产,统一 Earth 交互图标在高分辨率显示下的视觉规格。

Added / Fixed / Improved

  • 新增轨迹显示偏好持久化,并在卫星图层不可用时同步禁用轨迹设置入口。
  • 调整卫星呼吸、透明度和 twinkle 参数,降低闪烁频率并增强可读性。
  • 将轨迹控制状态同步到桌面设置、移动设置和图层卡片刷新流程。

[0.53.0] — 2026-05-13

Released: 2026-05-13

Highlights

  • 新增正式交付基线Gitea Actions CI、镜像发布、staging 自动部署,以及 Kubernetes Helm chart。
  • 前端生产镜像改为 vite build 静态产物 + nginx 托管,后端与 AI Provider 镜像移除开发 reload 并加入容器健康检查。
  • 明确 planet.sh 只作为开发启动入口,生产环境交给 Kubernetes Service、Ingress、readiness/liveness probe 和 rollout 管理。

Added / Fixed / Improved

  • 新增 frontend/backend/aiprovider 镜像 build smoke、Helm lint/template、staging rollout 与 HTTP smoke test 流水线。
  • 新增 Helm values、single-node 演示依赖、ConfigMap/Secret 引用、ClusterIP 服务和 frontend Ingress。
  • 更新运维文档与交付计划,保留 Vite 生产构建路线,不新增 Webpack 双构建链Electron 暂不进入主线。
  • 继续收口启动脚本风险状态目录、健康检查端口默认值、PID 校验、端口诊断和开发环境跨平台边界说明。

[0.52.0] — 2026-05-12

Released: 2026-05-12

Highlights

  • 新增邮箱验证码注册/找回密码链路、SMTP 设置面板和连接测试组件,补齐公开账号自助入口。
  • 重构 AIS 船只实时链路:新增受控船只 snapshot、WebSocket vessels 订阅、AISStream 长连接状态与节流广播。
  • 新增数据产品统计接口、受控 /layers/* 图层接口骨架,以及数据源产品域筛选和批量采集。

Added / Fixed / Improved

  • 新增 /api/v1/data-products/api/v1/layers/*/api/v1/datasources/trigger-batch,拆分全量统计与地图渲染数据。
  • 将 Earth 船只层迁移到 /api/v1/vessels/snapshot,并修正 vessels WebSocket 订阅 payload。
  • 更新中英文手册、采集器文档、运维手册和计划状态覆盖注册、SMTP、AISStream、数据产品和图层保护流程。

[0.51.1] — 2026-05-11

Released: 2026-05-11

Highlights

  • 修复 Earth 静态资源引用方式,图标和国家边界数据改为模块相对 URL避免部署路径变化时资源加载失败。
  • 将 Material Symbols Rounded 字体切换为本地资源,减少 Earth 页面首屏对外部字体服务的依赖。

Fixed

  • 修复 BGP 广播图标、算力中心图标和国家边界 GeoJSON 在非固定 /earth 路径下可能失效的问题。

[0.51.0] — 2026-05-11

Released: 2026-05-11

Highlights

  • 新增 AI Settings 控制台页面与 backend/app/services/ai_tools/ 工具层,串通 Web Search Provider 与轻量 Agent orchestrator。
  • 重写 Earth 算力中心候选「预览 / 保存」交互:单一委托 click + 内存 candidate Map新增空心呼吸圈预览保存后即时生成正式图标后台刷新失败不再误报为保存失败。
  • 重写动作捕捉 zoom 识别mirror-safe 的 trend + pose hold 双通道,张开/合拢手势直接对应 zoom_in/out 并支持持续触发;单臂 rotate 仅在另一只手明确静止时才允许。

Improvements

  • 同步中英文 earth-frontend-context.mdfrontend-admin-frontend-context.mdfaq.mdmanual.mdquickstart.md
  • Earth 模块多处优化bgp-cruise-adapter、interactable、satellites、presentation-controller、controls 调整与回归测试补全。

[0.50.0] — 2026-05-10

Released: 2026-05-10

Highlights

  • 新增 Earth 动作捕捉双通道控制Browser Camera 本地识别与 Motion Agent WebSocket 高级接入,并补齐调试 HUD、骨架预览和手势冷却保护。
  • 新增 Motion 目标展示的 PresentationController 接入,动捕聚焦复用巡航卡片和 connector同时保持 BGP/News 原巡航体验不变。
  • 扩展位置候选管线与 AI Provider 兜底,支持算力中心和 BGP 观测站候选采集、保存、待定位队列与 LLM factcheck。

Added / Fixed / Improved

  • 改进 planet.sh:支持可选 Motion Agent 启动、摄像头 index/URL 参数、WSL 摄像头引导、端口清理细化和 AI Provider/Motion 依赖自动处理。
  • Settings 与 Playground 支持多 provider AI 配置、密钥来源脱敏预览和运行时默认 provider 解析。
  • Docs 新增 FAQ 入口并同步中英文手册、Earth 前端上下文、位置管线和启动脚本文档。
  • Earth 媒体面板记录直播/新闻 tab 状态,刷新后恢复用户上次选择。

[0.49.0] — 2026-05-08

Released: 2026-05-08

Features

  • 新增统一地理位置解析 Pipeline支持 SourceCoordinates / Nominatim / Registry / Inherit 多策略链式 resolver。
  • 新增 BGP 采集站与算力中心地理定位服务(bgp_collector_locationscompute_center_locationsbgp_event_locations)。
  • 新增 Docs Gatekeeper 带鉴权文档 API/api/v1/docs),按用户权限动态返回文档目录与内容。
  • 新增 Earth 全球新闻栏(/api/v1/news/earth-feed),根据地球视角坐标推断地区并聚合多源 RSS 信息流。
  • Earth 新增 Mobile 算力中心国家高亮(mobile-center-country-highlight.js)。

[0.48.0] — 2026-05-07

Released: 2026-05-07

Highlights

  • 自定义数据源新增 REST / WebSocket 映射运行时,并提供本地 AIS mock WebSocket用于实时船只 upsert 链路验证。
  • AIS 原始观测、聚合策略、字段来源、冲突记录与船舶 enrichment 继续完善Earth 船只实时展示链路更接近生产数据形态。
  • Earth 全球态势 summary 改为轻量 SQL 聚合,并在卫星 current 异常时回退到最近有效 TLE 批次,避免统计接口被大规模明细读取拖慢。

🔧 Improvements

  • 修复 /geo/summary/geo/satellites 在大表下加载慢或超时的问题,并补充 collected_data 与 AIS raw 相关索引。
  • WebSocket 管理器支持匿名连接、频道订阅清理和更稳的连接生命周期测试,前端 WebSocket candidates / fallback 更可靠。
  • planet.sh 强化端口释放、端口诊断和前端启动流程mock AIS server 提供 Bun 脚本入口。

[0.47.0] — 2026-04-30

Released: 2026-04-30

Highlights

  • 新增 AISStream WebSocket 船只采集器,并将 AIS 多源数据写入原始观测层,由聚合接口统一去重、合并和解释字段来源。
  • 设置页新增 AISStream API Key、采集范围 preset、运行状态、连接验证和凭证教程入口让全球 AIS 采集链路可配置、可观察。
  • Earth 船只图层默认不再限制 5000 艘,并统一 marker 颜色、详情卡、hover 和搜索结果的船型归一化显示。

🔧 Improvements

  • 聚合接口新增 field_sourcesselected_reasonssource_summaryquality_flags 和冲突记录调试接口,动态字段默认优先采用更新的实时流观测。
  • AISStream 标准化支持 MetaData.ShipName 船名兜底,并将 AIS 数字船型映射为 Cargo / Tanker / Passenger / Fishing / Military。
  • 将仓库 docs 技能改为通用文档工作流Planet 专属白名单、双语、裸文件标题和凭证教程规则迁移到 docs/documentation-coverage-rules.md
  • 更新 AIS v4/v5 TODO 与计划文档,明确后续聚合策略配置、船舶资料 enrichment 和媒体缓存边界。

[0.46.3] — 2026-04-30

Released: 2026-04-30

🐛 Fixes

  • 优化 Starlink footprint 显示后的地球拖拽性能,避免旋转地球时每帧重建 footprint 大网格,同时保持现有视觉效果不变。
  • 恢复点击线缆后的呼吸透明度动画,让 locked / hover 线缆重新使用既有 pulse 配置。

[0.46.2] — 2026-04-30

Released: 2026-04-30

🐛 Fixes

  • 修复 Earth 启动时高清材质、云图和图层可见性绕过 startupPriority 的问题,统一由启动队列按文档顺序加载。
  • 修复保存为关闭的高清材质/图层仍会先加载再关闭的问题,并保持海陆基座作为国界线图层的常驻底图。
  • 修复搜索跳转会误关媒体面板、船只轨迹末端不贴合当前船只、Iridium footprint 被地表层遮挡等 Earth 交互问题。

📝 Documentation

  • 更新 Earth 图层顺序、样式参考、使用手册和 AIS 聚合计划,补齐中英文说明与后续接入策略。

[0.46.1] — 2026-04-30

Released: 2026-04-30

🐛 Fixes

  • 修复新增 technical docs 文件存在但未进入 Docs 前端白名单时,侧栏不显示且 Markdown 链接无法解析到 /docs/<slug> 的问题。
  • 补齐数据源/采集器连接验证与 Earth Interactable 使用说明的英文文档,保证公开 Docs 切换 EN 时同名页面可访问。
  • 清理中英文 technical docs 中裸 .md 文件名链接标题,改为面向读者的语义标题。

📝 Documentation

  • 将 Docs 前端白名单、公开文档双语配对、裸文件名链接标题三项检查写入 Claude 与 Codex 的 docs 技能流程。

[0.46.0] — 2026-04-30

Released: 2026-04-30

Highlights

  • Earth 新增通用 Interactable 图标层船只、算力中心、BGP 事件与观测站统一使用批量 Points、屏幕拾取、状态 glow 和状态缩放。
  • BGP 事件保留向外扩散圈,观测站保留雷达扫描层,并与 Interactable 主图标解耦到稳定的地表渲染层级。
  • 登陆点回归黄色球形 Sprite贴近海缆层级并保持更稳定的地表显示和遮挡表现。

🔧 Improvements

  • 新增 SVG asset 到 canvas texture 的 Interactable 资产加载路径,支持统一图标资源、缓存和可选染色。
  • 同坐标 Interactable 自动做地表切向避让,降低重叠物件无法选择的问题。
  • 优化 Earth toolbar 初始尺寸注入,避免首次显示原始尺寸后再跳到缩放尺寸。
  • 补充 Interactable 计划、使用说明、图层顺序和 Earth 前端上下文文档。
  • 修复船只 hover/locked 状态仅发光但放大反馈不明显的问题,将已有状态缩放接入通用图标层。

[0.45.0] — 2026-04-29

Highlights

  • 采集任务新增阶段级量化进度,fetching 可展示百分比、阶段说明和字节下载量。
  • AI Provider 启动链路支持从 aiprovider/.env~/.zshrc 注入运行期配置,并避免密钥/模型变化触发镜像重建。
  • AI Provider Docker build context 收敛到服务必需文件,uv sync 接入 BuildKit 缓存以减少重复下载。

🔧 Improvements

  • IPtoASN、OpenGeoFeed、NRO delegated 下载型采集器接入真实字节进度上报。
  • 数据源页、采集中任务弹窗和任务历史页展示阶段摘要,并在 tooltip 中保留完整进度细节。
  • 调整 Earth 船只默认高度偏移,进一步贴近地表展示。

[0.44.2] — 2026-04-29

📝 Documentation

  • 补充 Earth 船只图层技术文档,记录分桶 THREE.Points 批量渲染、同尺寸交互 overlay 和屏幕空间 picking 的设计约束。
  • 同步 Earth 渲染图层顺序和样式参考,明确 AIS 船只 renderOrder、depthTest、图标尺寸、航向分桶与 hover 命中半径。
  • 更新船只渲染性能计划状态,标注 0.44.1 已落地的实现与后续全球 AIS / LOD 演进方向。

[0.44.1] — 2026-04-29

🐛 Fixes

  • 修复 Earth 船只图层拖动不跟手的问题,将普通船只从独立 Sprite 切换为按航向分桶的批量 Points 渲染。
  • 修正船只 hover/click 拾取错位,改为屏幕空间命中检测并在拖拽/惯性期间跳过 hover 拾取。
  • 统一 AIS 船只普通态与交互态方向,并让 hover/locked glow 与普通图标保持同尺寸覆盖。
  • 恢复船只深度测试并收敛默认图标尺寸,避免北部岛屿/冰面附近出现明显压盖陆地的视觉问题。

[0.44.0] — 2026-04-29

Highlights

  • 重构数据源与采集器设置边界:数据源页回归目录和采集触发,采集器 endpoint、请求头、凭证与连接验证统一进入设置页
  • BarentsWatch AIS 完整接入凭证解析、连接检查、默认教程、AI 生成教程和船只采集/可视化链路
  • Earth 新增船只图例、缩放反馈胶囊、缩放感知拖拽灵敏度,并将船只渲染性能优化方案沉淀到 plans
  • 仪表盘重启服务新增前端重启 action并让 runner 通过 ~/.zshrc 继承本地环境变量

🔧 Improvements

  • 采集器连接状态改为基于成功采集或手动连接校验 checksum 判断,避免只依赖前端样式状态
  • 数据源页新增采集中任务标签和任务进度弹窗,内置与自定义数据源统一展示
  • Earth 国界线进一步贴近地表,并补充船只图层渲染顺序、样式和用户手册说明
  • docs skill 与 Claude/Codex 文档流程补齐技术文档和 plans 的职责边界

[0.43.1] — 2026-04-28

🐛 Fixes

  • 修正 planet.sh 在全量 restart 后启动 AI Provider 时的提示语义,避免把预期内未就绪描述成异常不健康

[0.43.0] — 2026-04-28

Highlights

  • 新增 Earth 船舶追踪链路,接入 BarentsWatch AIS 凭证配置、采集器、后端 vessel 模型/API 与前端 Earth 船舶图层
  • 新增自定义数据源映射流程,支持样本抓取、目标 schema、AI 辅助生成映射、预览校验和映射执行
  • Settings 拆分 AI Provider 与采集器凭证配置DataSources 只保留采集状态、运行参数和必要引导

🔧 Improvements

  • AI Provider 支持运行时 LLM 配置、provider preset 下拉与刷新,并在 Playground 中引导到 AI 配置页
  • Markdown 渲染器补齐代码块复制按钮、语言标签、任务列表、图片、自动链接、删除线和文档主题样式
  • Docs 公开导航改为显式元数据白名单,避免开发任务文档自动出现在“其他”分组
  • 将 Codex/Claude cleanup、docs、goal-driven、release 流程补充 CLI-first 约束,并把 rules.md 整理成可按模块加载的工程规则

[0.42.2] — 2026-04-28

🐛 Fixes

  • Docs 中文模式下补齐左侧分组、文档标题、页头分类与搜索结果分类翻译,并更新文档站品牌标题/副标题文案

[0.42.1] — 2026-04-28

🐛 Fixes

  • 修正 release skill 的 feature 版本计算规则minor 进位时 patch 必须重置为 0,例如 0.41.2 应发布为 0.42.0

[0.42.0] — 2026-04-28

Highlights

  • 新增公开 /docs 文档站支持中英文技术文档、使用手册、Quickstart、搜索、目录锚点与浅色/深色/跟随系统主题
  • Earth 在无高清材质时新增轻量 Fresnel 边缘提示,并调整卫星覆盖默认显示与地表材质可读性

🔧 Improvements

  • 将技术文档整理为 docs/technical/zhdocs/technical/en,并补充控制台、planet.sh、Earth 与公共组件使用说明
  • 新增 SegmentedControl 公共滑块组件,支持缩放参数,复用到 docs 语言与主题切换
  • Markdown 渲染器接入自定义滚动条,表格与代码块在深色模式和 overflow 场景下保持可读
  • Docs 搜索结果支持内部滚动、点击外部关闭、重新聚焦恢复上次搜索结果
  • Earth 工具栏展开状态与设置持久化版本迁移继续收口,改善默认面板和快捷关闭行为

[0.41.2] — 2026-04-27

🔧 Improvements

  • planet.sh 启动链路新增 verbose 滚动输出窗口,并在后端端口占用时打印目标地址和监听进程诊断
  • Docker 构建支持通过 build args 覆盖 Python 与 uv 镜像,方便 Docker Hub 不稳定时切换镜像源

🐛 Fixes

  • Earth 海缆登陆点改为基于相机射线与地球遮挡判断可见性,修复旋转后 pin 可见性滞后一帧的问题

🔧 Improvements

  • docker-compose*.yml 为 AI Provider 构建传入 PYTHON_IMAGE / UV_IMAGE 参数,默认仍使用官方镜像
  • 后端启动失败遇到 Address already in use 时输出 lsofss 与 PID 命令行信息
  • verbose 模式下 AI Provider build、后端与前端启动日志会在 spinner 下方保留最新 5 行滚动展示

[0.41.1] — 2026-04-27

🐛 Fixes

  • 修复新闻直播面板设置项持久化失效:closeTransientMobileOverlays 通过旁路路径隐藏面板导致下次 persist 快照到错误状态,改为不重新从 DOM 读取面板可见性
  • 修复登陆点 pin 在地球侧面被半截遮挡改为在接近地平线前dot < 0.05)主动隐藏,避免深度测试切片

🔧 Improvements

  • 将所有画布绘制的图标抽取为 SVG存入 frontend/public/earth/assets/icons/,新增图标规范到 rules.md

[0.41.0] — 2026-04-27

Highlights

  • Earth 图层系统完成地表到天空的注册顺序与关注优先的面板顺序拆分支持基座海陆色块、国界、高清材质、云图、地形、算力、BGP、卫星、轨迹与海缆的稳定层级
  • 国界层新增真实行政区轮廓交互与中国/台湾联动高亮修复高清材质、地形、footprint、卫星与经纬线之间的遮挡和 hover 竞争

🔧 Improvements

  • 新增无轮廓基座地图,所有图层关闭时仍保留 #010609 海洋与 #080f1b 陆地色块
  • 将大气云图抽象为独立图层并接入桌面/移动端图层开关、持久化状态与启动同步
  • 高清材质改为独立纹理覆盖层,地形显示在高清材质上方,并在高清材质关闭/恢复时保持原地形开关意图
  • 补充 Earth 渲染层级与图层样式文档,记录正式图层名、变量名、材质颜色、线宽与 renderOrder

[0.40.5] — 2026-04-26

🔧 Improvements

  • 卫星拖尾改用 Instanced screen-space ribbon单 draw call 渲染所有轨迹段,支持像素级宽度控制
  • Iridium 地面覆盖重写为球面投影径向网格,修复填充光晕不可见问题;新增外圈 LineLoop
  • 搜索面板打开时改用双 rAF 延迟聚焦输入框,确保 CSS 过渡完成后焦点可靠触发
  • 代码清理:提取 IRIDIUM_OVERLAY_COLORIRIDIUM_REFERENCE_ALTITUDE_KM 常量,消除重复三角函数调用

[0.39.0] — 2026-04-24

[0.40.4] — 2026-04-26

🔧 Improvements

  • 新增页面可见性恢复处理,页面从后台切回前台时主动刷新卫星位置,避免累积后台时间在下一帧一次性回放
  • 抽出卫星轨迹状态与轨迹几何清理 helper统一后台恢复与清空数据时的轨迹重置路径

🐛 Fixes

  • 修复页面在后台停留较久后恢复前台时,卫星轨迹因超大 deltaTime 突然跳变、拖尾异常拉长的问题
  • 修复后台恢复后首帧仍沿用旧轨迹缓存,导致轨迹与当前卫星位置短时错位的问题

[0.40.3] — 2026-04-25

🔧 Improvements

  • 卫星点云升级为自定义 ShaderMaterial支持 per-point alpha 控制,锁定/悬停卫星从点云中精确隐藏
  • 修复锁定环与自发光选中标记的 depthTest 错误false → true消除远端渲染穿透 artifact
  • 新增锁定环悬停态缩放与线宽LOCKED_RING_HOVER_SCALE / LOCKED_RING_HOVER_LINE_WIDTH
  • 修复 updateLockedDotWorldTransform / updateLockedHaloWorldTransform 未强制刷新 matrixWorld 导致的位置漂移

[0.40.2] — 2026-04-24

🔧 Improvements

  • 卫星点大小随镜头缩放动态调整,拉近变大、拉远变小,响应与相机距离线性对应
  • 调小卫星点默认基础尺寸dotSize 2.8),缩放范围更合理

[0.40.1] — 2026-04-24

🔧 Improvements

  • 卫星选中标记lockedring / lockeddot / 光晕)颜色统一跟随图例轨道倾角分类配色
  • 修复 Starlink footprint 在特定视角下遮蔽卫星点的渲染顺序问题Group renderOrder 影响子 Mesh 排序)
  • footprint 材质改为 depthTest: false + 相机朝向 limbFade替代 polygonOffset 深度竞争方案
  • 修复选中海缆时误触发附近卫星高亮(该行为属于 BGP 事件点逻辑,不应用于海缆)

[0.40.0] — 2026-04-24

Highlights

  • Earth 卫星 footprint 正式按星座能力分层Starlink 保留专用地表覆盖Iridium 改为独立外圈覆盖表达,其它非 Starlink 星座不再误用同一套 footprint
  • Earth 卫星详情卡补齐覆盖能力与当前显示说明,用户现在可以直接看见每颗卫星为什么显示 footprint、为何回退为自身发光

🔧 Improvements

  • 后端可视化接口新增并透传 constellation_groupfootprint_policy,前端据此执行 capability-gated footprint renderer
  • 新增 Iridium 独立 coverage ring adapter并继续保留 Starlink 专用 footprint 调校与昼夜可读性增强
  • 新增 Earth 卫星 footprint 策略技术文档,明确 GNSS、generic LEO、GEO 与 Iridium 的显示边界

🐛 Fixes

  • 修复前后端对 Iridium footprint policy 命名不一致,导致策略分发语义含混的问题
  • 清理 Starlink footprint 渲染中的未使用常量与过时命名,减少后续继续调校时的歧义

[0.39.0] — 2026-04-24

Highlights

  • 后端正式落下统一结构化日志地基:请求上下文、事件名、脱敏与持久化链路开始收口为可扩展的企业级日志体系
  • 系统日志页重构为真正的日志工作台:顶部筛选更紧凑,终端日志区成为主视觉,移动端 Earth 新闻/态势细节交互继续补稳

🔧 Improvements

  • 新增 backend/app/core/logging.py,统一 request_idserviceevent 注入与敏感字段脱敏,并接入后端主入口、调度器、缓存、数据库和可视化链路
  • 系统日志页筛选区重排为更紧凑的两层结构,信息摘要并入终端工具栏 tooltip日志终端区留出更稳定的按钮避让空间
  • Earth 移动端态势抽屉补齐宽度约束与图例换行规则,新闻详情抽屉在巡航切换时可同步更新标题和摘要

🐛 Fixes

  • 修复 /tmp/planet_backend.log 中混入空字节时,日志摘要条行数与实际可见日志不一致的问题
  • 修复移动端“态势”tab 在内容渲染后被图例文本撑宽、超出一屏的问题
  • 修复移动端新闻详情抽屉在巡航切换下一条新闻时标题更新但 summary 不同步的问题

[0.38.0] — 2026-04-23

Highlights

  • Earth 新闻正式接入通用巡航层:新闻和 BGP 统一进入可配置巡航模块,桌面端与移动端都能在巡航聚焦时展示对应新闻卡片
  • 系统日志页升级为结构化过滤链路:按真实时间戳、结构化级别和字符串检索统一筛选,不再依赖前端或后端从日志文本里猜结果

🔧 Improvements

  • 新闻巡航补齐业务适配层:按发生地与时间生成巡航目标,桌面端与移动端统一标题 + summary 卡片风格,并增加连线与打字机摘要展示
  • 日志页筛选体验重排,统一服务源、级别、行数、时间和检索布局,日历标记改为由后端返回的结构化每日聚合结果驱动
  • 后端补充 system_logs 结构化解析与多级别精确过滤能力Earth 浏览器端日志缓冲与系统日志 API 现在走同一套筛选语义

🐛 Fixes

  • 修复新闻巡航模块开启后难以关闭、桌面/移动端设置状态互相污染的问题
  • 修复新闻巡航卡片缺少摘要、移动端详情样式不统一、新闻巡航缺少连线的问题
  • 修复日志级别筛选会被访问日志 query string 中的 level=error 等参数污染,从而把 INFO 行误判为 ERROR 的问题

[0.37.2] — 2026-04-23

Highlights

  • Earth 图层系统新增经纬线开关,桌面图层面板与移动端抽屉都可直接控制

🔧 Improvements

  • 经纬线正式接入 Earth layer registry复用现有图层切换、移动端图层卡片与设置持久化流

🐛 Fixes

  • 修复经纬线只能默认常驻、无法作为独立图层开关控制的问题

[0.37.1] — 2026-04-23

Highlights

  • planet.sh 后端重启链路修复 uvicorn --reload 残留 worker 场景,restart 现在能真正替换旧实例

🔧 Improvements

  • 收口后端清理逻辑,统一按 uvicorn 进程、端口占用进程和进程组执行清理,减少 reload 场景漏杀分支

🐛 Fixes

  • 修复部分机器执行 ./planet.sh restart --allow-lan 后后端仍停留旧实例,导致 /api/v1/visualization/geo/compute-centers 返回 404 的问题

[0.35.1] — 2026-04-22

[0.37.0] — 2026-04-23

Highlights

  • Earth 连线系统正式从巡航里解耦成通用 callout connector桌面端和移动端统一支持对象级锚点、四边切换与临界区边缘滑动
  • BGP 巡航展示继续收口为稳定的“先定位卡片、再连真实锚点、再展示卡片”链路,移动端 popup 与桌面 info panel 的路线规则统一

🔧 Improvements

  • connector 配置从 CRUISE_CONFIG 拆到独立 CONNECTOR_CONFIG,默认类名、动画名和实例命名也全部去 cruise 语义
  • 移动端 popup 增加更稳定的 dock/obstacle 处理,拖动卡片时连线起终点会持续按几何关系自适应刷新
  • Earth 多个图层与控制逻辑继续收口,补充算力中心/BGP 风格对齐、layer panel 与相关交互细节调整

🐛 Fixes

  • 修复巡航模式下终点只像“视觉锚点”而不是真实绑定对象的问题,卡片拖动后终点现在会跟随
  • 修复移动端与桌面端多类连线路线异常:压线、反向、临界区折返、起点遮挡事件点等问题
  • 修复对象矩形临界区内连线仍强制中点到中点导致路线像“先钻进 source 内部”再出去的问题

[0.35.1] — 2026-04-22

[0.36.0] — 2026-04-22

Highlights

  • Earth 新增统一“算力中心”图层:接入超算与 GPU 集群,支持搜索、统计、图例、详情卡与独立图层开关
  • 算力中心支持精确位置与估算位置两种状态,估算点会以问号角标区分,避免数据不全时整批节点在地图上消失

🔧 Improvements

  • Earth 详情卡拖拽与地球拖拽交互继续收口,减少拖动卡片和旋转地球时的选中文本与 pointer 竞争
  • planet.sh 改为通过独立脚本计算 AI Provider 依赖指纹,降低与根仓库依赖版本文件的无关耦合
  • README 补充 WSL / Windows 局域网访问排查与转发配置说明,便于开发环境联调

🐛 Fixes

  • 修复 Earth 算力中心图层在无原始坐标时无法显示的问题,支持站点提示和国家级估算回退
  • 修复信息卡拖拽事件可能被卡片级 stopPropagation 吞掉,导致拖拽流中断的问题

[0.35.1] — 2026-04-22

Highlights

  • Earth 统计展示改为统一 data-earth-stat 绑定机制,桌面 HUD 和移动端抽屉复用同一套状态更新入口

🔧 Improvements

  • 收口海缆、登陆点、卫星、BGP 事件与 BGP 状态的统计写入逻辑,减少后续继续补桌面/移动双写分支的成本

🐛 Fixes

  • 修复移动端态势抽屉中的海缆、登陆点与 BGP 统计在图层切换后可能停留旧值的问题

[0.35.0] — 2026-04-22

Highlights

  • Earth 移动端底部抽屉系统全面上线响应式布局自动切换、Tab 导航、手势上拉/下滑开合、惯性速度判定
  • 移动端点击可交互物件海缆、登陆点、卫星、BGP后弹出智能定位悬浮卡片可拖动点击跳转详情

🔧 Improvements

  • 抽屉把手区域缩小至 36pxcollapsed 时仅露出把手,不遮挡地球操作区)
  • 抽屉定期弹跳动画提示用户可上拉5 秒间隔,打开后自动停止
  • 通知胶囊位置调整,不再覆盖品牌 logo
  • 移动端单指旋转、双指捏合缩放地球触控事件冲突修复pointer-events 级联)

🐛 Fixes

  • 修复移动端抽屉 shell 因 layout 高度240px+遮挡地球触控区域pointer-events 改为按层级精确控制
  • 修复悬浮卡片因 setPointerCapture 在 iOS Safari 抑制合成 click 事件导致无法点击的问题

[0.34.0] — 2026-04-22

Highlights

  • Earth 搜索面板正式接入支持搜索海缆、登陆点、卫星、BGP 事件与观测站,并可直接聚焦到对应对象
  • planet.sh --allow-lan 打通 Bun + Vite 的局域网开放链路,启动成功后自动打印推荐访问地址与后端健康检查地址

🔧 Improvements

  • 前端开发启动链统一改成 Bun 直接执行 Vite 入口,不再依赖 shell 中额外暴露的 Node 路径
  • Earth 搜索结果接入登陆点详情卡片与对象聚焦,搜索后可直接进入对应详情流
  • planet.sh 补充局域网 IPv4 自动识别与推荐地址输出,减少 WSL 局域网调试成本

🐛 Fixes

  • 修复 ./planet.sh restart --allow-lan 全量重启时未把 --allow-lan 继续传给 start(),导致前端退回本机监听的问题
  • 修复 WSL + Bun 环境下前端偶发因 Vite 启动链不稳定而无法正确监听 0.0.0.0:3000 的问题

[0.33.0] — 2026-04-22

Highlights

  • news_live_streams 采集器默认接入 iptv-org 频道目录,并将采集结果稳定并入 Earth TV 直播源列表
  • 数据源页支持直接编辑内置数据源 override并为内置源提供一键恢复默认配置入口

🔧 Improvements

  • News Live Streams 现在作为可直接触发的内置默认数据源提供,无需先手工补 override 才能采集
  • TV 播放源菜单会直接区分 [内置][采集] 来源,频道来源信息也会同步展示
  • 新增 earth-news-source-configuration-and-collector-plan.md,正式规划 Earth 态势新闻源配置化与后续采集器化路线

🐛 Fixes

  • 修复 news_live_streams 采集完成后 /api/v1/tv/streams 因读取不存在的 updated_at 字段而导致默认频道全部消失的问题
  • 修复内置数据源操作列按钮显示不全,以及编辑抽屉中多个 Collapse 紧贴的问题

[0.32.0] — 2026-04-22

Highlights

  • Earth 设置新增“地球默认大小”持久化项,重置视角、缩放百分比重置和 BGP 巡航视图现在统一复用这一份默认 zoom
  • 卫星焦点层次继续收口:巡航进入 presentation 前不再过早 dim非焦点卫星改成“降亮度/尾迹/背板”而不是去饱和度

🔧 Improvements

  • Earth 设置面板区块和左右留白进一步收紧,整体更贴近 HUD 面板的密度
  • toolbar 展开边界缓存改为按需刷新,减少 document 级 mousemove 期间的重复布局读取
  • Scrollbar 和 ScrollbarOverlay 收窄 observer 范围,减少大表格和动态菜单下的额外刷新成本
  • 更新 earth-frontend-context.md,补充默认视图大小已进入 Earth 设置持久化真源

🐛 Fixes

  • 修复开启巡航后,尚未进入连线/presentation 时卫星已经整体变暗的问题
  • 修复默认大小重置链路分散在多个入口、实际 reset/cruise/缩放提示不一致的问题
  • 修复开启地形后卫星反馈层与地球背面可见性之间的一组表现问题,保留正面反馈同时恢复背面轨道遮挡

[0.31.3] — 2026-04-22

Highlights

  • Earth 图层注册表和启动任务框架继续收口,启动顺序、启动模式、启动提示和任务注册现在都能从统一入口扩展
  • 修复 Earth 普通旋转模式与巡航模式切换时的一组交互回归,同时让卫星/地形/昼夜模式的表现更稳定

🔧 Improvements

  • 新增 layer-startup-tasks.js 启动任务注册表,支持 registerLayerStartupTask(id, taskFactory),并拆成海缆 / 卫星 / BGP 独立注册函数
  • Earth 图层控制改成注册表驱动,统一承载 startupPrioritystartupModestartupLabelstartupMessage 与图层持久化元信息
  • Earth 设置支持持久化图层开关、旋转模式、HUD 面板显示状态、地形透明度与日夜模式,并提供一键重置
  • 更新 earth-frontend-context.md 记录图层注册表、启动任务、设置持久化与巡航适配边界

🐛 Fixes

  • 修复普通旋转模式下点击海缆 / 卫星 / BGP 后卡片和选中表现会被异常清空的问题
  • 修复巡航模式切回旋转再切回巡航后无法继续自动巡航的问题
  • 修复开启地形后卫星选中反馈层被高海拔区域吞掉的问题,并恢复轨道只在地球前半侧可见
  • 修复关闭日夜模式后地球照明仍沿真实昼夜切换、亮部过曝和偏色的问题,改成更中性的 inspection lighting
  • 修复 toolbar 收起态仍挡住地球交互,以及首帧短暂展开闪现的问题

[0.31.2] — 2026-04-21

Highlights

  • Earth 巡航模式重构为“通用巡航队列 + 通用连线动画 + BGP 业务适配”三层结构,后续扩到海缆、卫星或新闻巡航时不必再复制一套 main.js 状态机
  • 修复巡航重构后的交互回归:空白点击重新稳定切到下一项,连线按“起点 → 引导线 → 终点”顺序入场

🔧 Improvements

🐛 Fixes

  • 修复巡航模式下点击空白处无法稳定跳转到下一项、切回旋转再切回巡航后直接卡住的问题
  • 修复巡航连线被实时重定位覆盖导致“直接出现”而非绘制动画的问题
  • 修复连线动画节点入场节奏不对的问题,改为先出现起点,再绘制连线,最后出现终点

[0.31.1] — 2026-04-21

Highlights

  • Earth 图层开关状态统一成可复用的 active / loading 状态机,首次启用地形和卫星时不再像按钮失效
  • 文档目录重构为 docs/technicaldocs/plansdocs/deprecated,并吸收 .sisyphus/plans 中有价值的 Earth / 卫星 / UE5 草案

🔧 Improvements

  • 新增 layer-button-state.js,统一按钮 tooltip、aria-busy、禁用态和状态文本同步
  • 地形图层支持 hover/focus 预热与空闲预热,首次点击等待前移,加载中状态持续可见
  • 卫星图层启用前会立即切换为 loading 中间态,请求完成后再切回正常开关表现

🐛 Fixes

  • 修复地形首次加载时通知过早消失、开关仍像关闭状态导致用户误判按钮损坏的问题
  • 修复卫星接口较慢时按钮没有任何中间态反馈的问题

[0.31.0] — 2026-04-21

Features

  • Earth 新增"巡航展示"模式:自动轮播 BGP 异常事件逐帧追踪连接线位置支持外部交互立即中断序列cancel notifier 模式)
  • 巡航目标事件点高亮显示hover 外观 + 锁定脉冲动画,并与点击行为统一展示周边受影响卫星与海缆
  • BGP 事件图标新增填充 W 形波动符号flap 类型),替换原有难以辨认的贝塞尔细线
  • 巡航/点击激活时其余卫星自动降饱和度 + 增加透明度以突出焦点;海缆未受影响时同步变暗

🔧 Improvements

  • 修复巡航轮播期间 BGP 事件 polling 刷新导致标记闪烁消失的问题clearBGPData 延迟到请求完成后执行)
  • 点击与巡航锁定颜色统一为 hover 色0.92, 0.98, 1.0 全透明),移除锁定态脉冲动画
  • 巡航连接折线转折点从尖角调整为钝角linkElbowDropPx提升连线可读性

[0.30.0] — 2026-04-21

Features

  • Earth 新增真实地形图层:后端代理 Terrarium DEM 瓦片(/api/v1/visualization/terrain/terrarium/{z}/{x}/{y}.png),前端新增 terrain.js 负责瓦片拉取、顶点位移与按海拔着色
  • 设置弹窗新增"地形"分组,支持通过滑块实时调整地形图层透明度

🔧 Improvements

  • 地形按钮改为异步加载,首次点击显示进度提示并在失败时自动回退
  • 启动阶段改用 applyImmediateView 直接应用初始视角,showStatusMessage / queueStatusMessage 区分即时与队列态状态消息,加载中不再被临时状态打断
  • 控制面板抽取 applyTerrainUiState / getViewRotation 收敛地形切换与视角旋转的重复 UI 同步逻辑

[0.29.2] — 2026-04-21

Highlights

  • Earth 继续收口 HUD 交互与设置面板表现,设置弹窗改成更接近从按钮展开的窗口感,同时加入系统级 admin 入口
  • 修正天球太阳方向与地球受光解耦后的日照逻辑,地表昼夜判断改为按太阳直射点经纬度落到地球贴图坐标

🔧 Improvements

  • toolbar 进一步收成更贴近 hub 的浅弓形排列,并统一成与 HUD panel 一致的液态玻璃配色与透明度
  • 设置弹窗与各 HUD panel 继续统一样式、等比缩放和头部基线,设置列表补充系统分组与 admin 跳转
  • 所有 HUD panel 增加更统一的液态玻璃高光与 hover / press 反馈

🐛 Fixes

  • 修复设置弹窗仍像旧圆角矩形、标题文案重复和从底边直直飞出的动画问题
  • 修复天球与太阳方向混用显示校准导致中国白天仍落在夜面的日照错误

[0.29.1] — 2026-04-20

Highlights

  • Earth 加载状态条改成单一队列式通知面板,加载阶段不再因为步骤文案变化而回缩,也不会被其他通知打断
  • 调整 brand panel 的呈现方式与昼夜/选中态可读性,让品牌区更自然、交互高亮在白天和黑夜里都更稳定

🔧 Improvements

  • 移除旧的地球加载浮层结构,统一由 HUD 状态消息承载三点脉冲加载过程
  • brand panel 改为无边框品牌层,仅保留轻微氛围光,不再因为非常规尺寸显得像第五块功能面板
  • 温和收敛地球昼夜材质与主背光强度,保留昼夜辨识度的同时提升白天地表纹理和夜面交互可见性

🐛 Fixes

  • 修复加载地球时通知条在步骤切换中反复缩短、其他状态消息抢占加载流程的问题
  • 修复海缆、登陆点和 BGP 选中高亮在黑夜中过暗、在高光中过亮导致难以辨识的问题

[0.29.0] — 2026-04-20

Highlights

  • Earth 新增天球层第一版:引入真实全天星图、亮星层与太阳/月亮位置计算,地球场景首次具备可校准的天文背景
  • 地球昼夜分隔升级为更明显的日夜增强效果,夜面、晨昏带和太阳方向联动更容易直接读出来

🔧 Improvements

  • 新增 celestial.js 模块和 assets/celestial/ 资源目录,统一管理星图、亮星数据以及太阳/月亮与光照同步
  • 卫星图例改为按倾角分组,严格固定为“赤道轨道 → 低倾角轨道 → 中倾角轨道 → 高倾角轨道 → 逆行轨道”顺序,并全部中文化
  • 图层面板补齐关闭按钮,拖拽脱离左列后不再被流布局 margin 影响,能够真正贴到品牌面板下沿

🐛 Fixes

  • 修复天球球壳放大后被相机 far plane 裁剪导致的外层黑环问题
  • 修复图层面板在左侧上移时始终与 brand panel 保持额外间距的问题

[0.28.2] — 2026-04-20

Highlights

  • 修正媒体情报面板在 电视直播 / 态势聚合 tab 间切换时的尺寸记忆逻辑,切回原 tab 后可恢复各自大小状态
  • 清理 docs/ 根目录遗留的旧路径文档,只保留新的分组目录和归档目录,结束同一文档双路径并存状态

🔧 Improvements

  • media-panel 切换逻辑改成按 tab 分别记忆尺寸状态,避免 A -> B -> A 时继续共用同一套外层尺寸
  • 目录整理真正完成收尾:旧的 docs/*.md 平铺计划文档删除,继续以 docs/agents / earth / backend / frontend / ops / ue5 / deprecated 为唯一入口

🐛 Fixes

  • 修复拉伸 media-panel 后切换 tab 时,news-panel 高度回退到旧默认值的问题
  • 修复拉伸后切换 tab 导致面板视觉锚点异常的问题,切换时改为围绕当前卡片自身右下角进行尺寸恢复

[0.28.1] — 2026-04-20

Highlights

  • 收口 Earth 媒体情报面板命名,明确外层 media-panel 与内部 tv-panel / news-panel 的职责边界
  • 整理 docs/ 目录分组,并将已完成或已废弃的计划文档归档到 docs/deprecated

🔧 Improvements

  • 底部 tab 语义统一为 media-panel-tabs / media-panel-tab,并将文案更新为“电视直播 / 态势聚合”
  • 补充媒体面板、聚合新闻模块的注释说明,减少 tv-panel 同时指代外层壳和内层直播 pane 的阅读歧义
  • 更新 README、AI Provider README 与历史文档互链,适配新的 docs/agents / docs/earth / docs/frontend / docs/backend / docs/ops / docs/ue5 分组结构

🐛 Fixes

  • 修复媒体情报面板标题组在头部撑出多余空白的问题,去掉 hud-panel__title-group 的无效弹性占位
  • 修复聚合 tab 头部仍保留冗余固定标题的问题,现在仅显示区域标签

[0.28.0] — 2026-04-20

Features

  • 将 Earth 的“新闻直播”和“全球态势聚合”合并为统一的“媒体情报”面板,支持底部 tab 切换与共享标题栏操作区
  • 聚合新闻不再单独占据一个 HUD 面板,而是作为媒体情报面板内的第二视图与直播协同呈现

说明:

  • 当前结构中,外层 HUD 壳为 media-panel,内部 tab 内容区分别为 tv-panelnews-panel

🔧 Improvements

  • TV / News 面板切换加入底边锚定的 reform 动画,并继续保留拖拽、缩放和共享 HUD 行为收口
  • 聚合新闻视图新增默认高度约束与内部滚动填充逻辑,避免初始高度过度膨胀
  • tv.jsnews.js 进一步清理共享 HUDPanel 迁移后的残留逻辑,收紧 tab / resize / reform 相关局部 helper

🐛 Fixes

  • 修复媒体情报面板右下角缩放时高度异常抬升、标题栏被顶出视口的问题
  • 修复直播/聚合 tab 切换时按钮高亮、内容切换和底边基准表现不一致的问题

[0.27.7] — 2026-04-16

[0.27.8] — 2026-04-20

🔧 Improvements

  • Earth HUD 共享 HUDPanel 默认展开/收缩逻辑继续收口,图例与图层面板统一使用同一套边缘阈值与箭头状态机
  • 保持新闻直播面板现有特例折叠行为不变,避免播放器区域被默认折叠逻辑影响

🐛 Fixes

  • 修复图例与图层面板展开/收缩箭头方向和实际动作不一致的问题
  • 修复拖动到屏幕底边附近时初始箭头、拖动中箭头和点击后动作不同步的问题

[0.27.7] — 2026-04-16

🔧 Improvements

  • 用户管理、数据源配置、电视直播源表格统一接入可折叠操作列,窄宽度下自动收起到下拉菜单,减少操作区挤压
  • 电视直播设置改为表格总览 + 弹窗编辑模式,主表内容更紧凑,适合控制台一屏浏览
  • Earth TV 面板新增失败源探测与自动回退恢复标记,便于值班时快速识别异常直播源

🐛 Fixes

  • 修复 Settings 电视直播源新增后取消编辑会残留未保存草稿的问题
  • 修复 Settings 删除直播源只改本地状态、刷新后恢复的问题,删除现在会立即持久化
  • 修复 Users / DataSources / Settings 表格“备注/状态”和“操作”之间的空白占位列问题
  • 修复 useCollapsedActions 未释放 ResizeObserver 导致的潜在内存泄漏与重复回调问题

[0.27.6] — 2026-04-15

🔧 Improvements

  • BGP 告警页表格纵向 overflow 修复:补全 flex 布局链tabs content-holder 正确撑满剩余高度
  • 用户管理表格横向滚动修复:采用 flex-fill 方案替换 height: auto !important,自定义滚动条 X 轨道位置对齐表格底部
  • Playground 宽布局隐藏"服务状态"按钮:侧边栏可见时不显示冗余入口
  • AI Chatbox 输入框失焦收起为单行,聚焦或有内容时展开完整 composer

[0.27.4] — 2026-04-14

🔧 Improvements

  • info-card 改为懒加载动态挂载:页面初始 DOM 不再含隐藏的 #info-panel 节点,仅首次点击交互元素时创建

[0.27.5] — 2026-04-14

🔧 Improvements

  • 统一控制台多页面滚动体验BGP、alerts、采集数据、用户管理、任务、设置、Playground 等区域接入自定义滚动条与表格滚动容器
  • 优化 BGP 与 alerts 页响应式布局:顶部概览卡在窄宽度下优先重排,必要时才启用横向滚动,避免卡片裁切和全局滚动条接管
  • 调整 situational alerts 布局策略:统计卡按宽度在单行、两列和横滚之间切换,下方详情卡保持单行高度优先
  • 实时采集进度优化:一键采集完成后在未刷新页面时保留 100% 完成态,不再错误归零
  • 补充 UE5 MVP 融合方案文档,完善后续集成规划沉淀

🐛 Fixes

  • 修复 BGP summary 与 alerts 顶部卡片在无真实溢出时误出现横向滚动的问题
  • 修复 alerts 页面缩窄后外层全局竖向滚动被接管的问题,恢复“一屏内、内部滚动”的布局逻辑
  • 修复 situational alerts 在两排布局下详情卡竖向溢出的问题,改为更稳定的分区响应式排版
  • 修复自定义滚动条交互反馈,悬停、聚焦、拖拽时颜色加深但不再显示多余外圈

[0.27.3] — 2026-04-14

🔧 Improvements

  • TV panel meta 折叠展开方向稳定:底部锚定时向上生长,拖拽后(顶部锚定)通过 JS 补偿 top 保持播放器底部位置不变
  • 修复 TV panel 展开/折叠时视频区域跳动问题:移除面板 min-height使播放器高度在两种状态下保持一致
  • 修正 TV panel meta toggle 箭头方向:展开朝下,折叠朝上
  • 修复图例面板折叠按钮失效legend-bar-btn 补充进拖拽排除列表)
  • 调整图层搜索框图标尺寸为 20pxBR 缩放角标改为直角 L 形

[0.27.2] — 2026-04-14

🔧 Improvements

  • 修复 brand copy 宽度不随内容收缩的问题,现在与 title 图片宽度保持一致
  • 提取 --brand-copy-width CSS 自定义属性,消除 160px / 172px 魔法数字重复

[0.27.1] — 2026-04-14

🔧 Improvements

  • 面板拖拽新增 L 形边界约束,其他面板无法覆盖 brand 面板区域,并从右侧/底部自然卡边
  • brand 组件引入 --brand-scale 整体缩放变量padding 与内容尺寸独立控制
  • 图层控制面板宽度收窄260px与 brand 面板错落排列,间距调大

🐛 Fixes

  • 修复搜索框 type="search" 导致清除按钮重复显示的问题
  • 修复 [hidden] 属性被组件 display 规则覆盖的问题

0.27.0

Released: 2026-04-14

Highlights

  • 全面重构 Earth HUD 布局:品牌面板、图层控制面板、信息详情卡片各自独立,支持拖拽与折叠,信息卡片改为跟随点击位置悬浮显示。
  • 新增图层控制面板Layer Panel海缆、卫星、地形、BGP 等图层集中管理,支持关键字搜索过滤。
  • Earth 大气层渲染升级,引入 Fresnel 着色器双层辉光效果和深度遮挡球体。

Features

  • 新增独立 Layer Paneljs/controls.js, css/layer-panel.css),图层开关、搜索过滤、折叠收起,取代原工具栏弹出菜单
  • 信息详情面板info-panel改为点击时定位到鼠标附近js/info-card.js),悬停改为轻量 tooltip降低视觉干扰
  • Earth 材质重构(js/earth.js, js/constants.js):新增 EARTH_MATERIAL_CONFIGFresnel 内外大气层辉光、深度遮挡球体,纹理加载独立为 loadEarthTexture()

🔧 Improvements

  • Earth Stats 面板改为 2 列 KPI 网格布局,支持拖拽和关闭(css/earth-stats.css
  • 数据加载改为分步串行(登陆点 → 海缆 → 卫星 → BGP → 纹理),每步之间 yield 帧,改善视觉渐现体验(js/main.js
  • 图层按钮状态更新逻辑统一至 updateLayerButtonState(),消除重复实现
  • 海缆状态识别新增 active 枚举值(兼容旧 In Service

0.26.1

Released: 2026-04-12

Highlights

  • Cleaned up the first TV follow-up and replaced the dashboard sidebar's brittle one-off scroll behavior with a reusable Scrollbar component, so the new live module code is easier to maintain and the console navigation can scroll without layout jitter.

Improved

Fixed

  • Fixed frontend/public/earth/js/tv.js by refactoring repeated iframe/video reset paths into shared helpers, so TV source switching, empty-state fallback, and playback retry handling no longer duplicate cleanup logic across multiple branches.

0.26.2

Released: 2026-04-12

Highlights

  • Stabilized the new reusable scrollbar work by restoring reliable sidebar visibility and extending the same floating scrollbar language to the Data Sources tables without letting scrollbars squeeze layout width or regress the console navigation.

Added

Improved

Fixed

0.26.0

Released: 2026-04-12

Highlights

  • Added an operator-facing TV live module to Earth, including backend-configurable live sources, a draggable/resizable live-news HUD window, default global news channels, and a dedicated settings workflow so the Earth page can open real news playback instead of only static telemetry.

Added

Improved

Fixed

0.25.3

Released: 2026-04-11

Highlights

  • Refined the Earth HUD visual system into a calmer operator-facing style, turned the top-left Earth brand into a real reusable component with language-driven rendering, and cleaned up duplicated brand assets so the page now has a single source of truth for HUD branding.

Added

Improved

Fixed

  • Fixed frontend/public/earth/css/info-panel.css so the Earth brand area now uses consistent earth-brand component selectors and English-specific typography hooks, avoiding the earlier one-off brand-banner naming drift and duplicated title styles.

0.25.2

Released: 2026-04-10

Highlights

  • Refined the Earth HUD operator polish so settings now behave like a true bounded menu, HUD panels render at the correct scale from the first frame, and dragged panels animate cleanly into and out of maximized layout targets without drifting to screen edges.

Improved

  • Improved frontend/public/earth/index.html by precomputing the initial --hud-scale before Earth CSS loads, so HUD panels no longer flash at full size before shrinking to the target scale.
  • Improved frontend/public/earth/css/hud.css by cleaning up duplicated settings-modal close-button styles, aligning the settings title with the shared HUD title system, and constraining the settings sheet to a stable centered width instead of viewport-relative modal sizing.

Fixed

0.25.1

Released: 2026-04-10

Highlights

  • Cleaned up the first persistent Playground rollout, fixed sidebar submenu persistence to match the intended operator behavior, and added reusable code-hygiene rules to prevent this class of drift from accumulating again.

Improved

Fixed

  • Fixed frontend/src/components/AppLayout/AppLayout.tsx so first-level menu expansion now behaves correctly across in-app navigation: 采集与数据 remains the default expanded group after refresh, while manually expanded groups stay open when navigating to their own child routes and reset only on page reload.

0.25.0

Released: 2026-04-10

Highlights

  • Turned AI Playground into a persistent backend-backed chat workspace, added dedicated alert workspaces as a foundation for future situational analysis, and aligned the operator UI around a more structured AI + alerts workflow instead of one-off playground calls.

Added

Improved

Fixed

0.24.8

Released: 2026-04-10

Highlights

  • Refined the BGP AI brief operator workflow so the tab now stays compact and metadata-focused, while the full Markdown brief opens in a bounded modal that respects the repos single-screen layout rules.

Improved

  • Improved frontend/src/pages/BGP/BGP.tsx by turning the brief action row into a clearer 历史简报下拉框 + 查看 + 生成 flow, keeping inline metadata visible in the tab while moving full Markdown reading into a dedicated modal workspace.

Fixed

0.24.7

Released: 2026-04-10

Highlights

  • Formalized repository release hygiene and frontend layout guardrails so repeated versioning chores and recurring layout regressions now have explicit repo-level rules instead of living only in conversation context.

Added

  • Added release-workflow/SKILL.md, defining the repository release workflow for version bumps, changelog/version-history updates, minimal validation, and commit/push sequencing.

Improved

  • Improved rules.md by adding mandatory release-workflow requirements and a new frontend layout constraint section covering single-screen workspaces, overflow ownership, tab-pane behavior, compact-mode expectations, and readable-card fallbacks.
  • Improved frontend-layout-guidelines.md by summarizing the recurring Earth, Playground, BGP, and admin-layout regressions into concrete constraints for future frontend work, including “prefer scrollbars over unreadable compression” and “do not treat every tab as a table pane.”

0.24.6

Released: 2026-04-10

Highlights

  • Tightened several backend hot paths outside the original BGP page fixes, stabilized BGP collector coverage after the recent query refactors, and rebuilt the BGP AI brief tab so saved Markdown briefs render and scroll like a proper operator workspace instead of collapsing inside the shared table layout.

Improved

Fixed

0.24.4

Released: 2026-04-09

Highlights

  • Refined the planet.sh AI Provider rebuild UX so image rebuilds now feel like first-class scripted tasks, with clearer stage boundaries and cleaner fallback messaging instead of leaking raw Compose output into the terminal.

Improved

  • Improved planet.sh by keeping AI Provider image build logs in a temporary file, surfacing stage-specific detail copy for docker compose v2 and docker-compose v1, and showing an explicit success line when the image rebuild finishes before container health checks begin.

Fixed

  • Fixed planet.sh so the AI Provider image rebuild stage no longer dumps raw Compose build output into the main spinner flow during normal successful runs.
  • Fixed planet.sh so the 构建 AI Provider 镜像 phase now ends with an explicit completion signal instead of visually blending into the subsequent container health-check phase.

0.24.3

Released: 2026-04-09

Highlights

  • Extended AI Playground from a minimal prompt form into a more repeatable diagnostics workspace, and hardened planet.sh so AI Provider restarts can rebuild changed images and expose clearer Compose fallback behavior.

Improved

  • Improved frontend/src/pages/Playground/Playground.tsx by adding preset scenarios, response metadata, thinking block visibility, raw JSON inspection, and copy actions so the page works more like a proper AI diagnostics console.
  • Improved frontend/src/index.css by styling Playground presets, result metadata, raw response sections, and responsive action groups without breaking the single-screen workspace layout.
  • Improved planet.sh so AI Provider restarts detect code/config changes, rebuild the image when needed, and surface which Compose path is being used during image and container operations.

Fixed

  • Fixed the AI Provider restart path in planet.sh so code changes inside aiprovider/ no longer stay hidden behind an old container image after restart -a.
  • Fixed Compose error reporting in planet.sh by making the script explicitly show docker compose v2 first, then docker-compose v1, and only fail after both execution paths are exhausted.

0.24.2

Released: 2026-04-09

Highlights

  • Fixed the public-entry and AI diagnostics regressions introduced during the recent frontend routing and playground work, while also reducing the main frontend bundle by switching to route-level lazy loading and more targeted vendor chunking.

Improved

  • Improved frontend/src/App.tsx by lazy-loading admin pages and large workspaces through React.lazy() plus Suspense, so the initial frontend entry no longer pulls every route into the first bundle.
  • Improved frontend/vite.config.ts by adding targeted manual chunking for React, icon, network, and Earth-related vendor dependencies instead of leaving everything in one monolithic application bundle.
  • Improved frontend/src/index.css by adding a shared route-loading state and making the Playground help panel size to its content instead of stretching to fill the sidebar.

Fixed

0.24.1

Released: 2026-04-09

Highlights

  • Refined the /earth HUD into a cleaner class-first structure with responsive scaling, clearer CSS layer boundaries, and lower coupling between HTML, CSS, and runtime UI updates.
  • Hardened local startup conventions around Bun so frontend tooling, docs, and planet.sh behave more predictably in fresh Ubuntu and mixed WSL environments.

Added

  • Added frontend/public/earth/css/hud.css, extracting shared HUD panel surfaces, shared HUD typography rows, status messaging, tooltip overlays, and layout-expanded panel transitions out of the old monolithic base layer.
  • Added frontend/public/earth/css/toolbar.css, isolating Earth toolbar, popover, zoom dock, liquid-glass button, and toolbar-tooltip behavior into a dedicated toolbar layer.
  • Added explicit Bun package-manager metadata to frontend/package.json so the frontend package manager choice is declared instead of inferred from the lockfile alone.

Improved

Fixed

  • Fixed the Earth HUD cleanup path where splitting styles previously left the page with a missing base.css entry and mismatched utility class names during the refactor.
  • Fixed several Earth UI update paths so toolbar tooltip text, legend re-rendering, status message classes, and mouse coordinate styling continue to work after removing legacy fallback selectors.
  • Fixed the local developer bootstrap path where planet.sh start could fail in a clean Ubuntu or agent shell session simply because Bun or uv were installed outside the current shell's inherited PATH.

0.24.0

Released: 2026-04-09

Highlights

  • Added a dedicated AI Playground admin entry so operators can validate provider connectivity and run controlled situational-analysis prompts from the main frontend without introducing a separate UI service.
  • Established a first explicit frontend layout rulebook centered on single-screen workspaces, internal module scrolling, and BGP-style page composition for future admin pages.

Added

Improved

  • Improved frontend/src/components/AppLayout/AppLayout.tsx and frontend/src/App.tsx by wiring AI Playground into the main admin navigation and route tree instead of pointing operators to a nonexistent aiprovider chat page.
  • Improved planet.sh by replacing the incorrect localhost:8010/chat closeout link with the frontend AI Playground entry.
  • Improved docker-compose.yml by attaching ./aiprovider/.env to the aiprovider service so provider identity, model, and credentials actually reach the running container.
  • Improved README.md by linking the new frontend layout guidance and AI Playground development plan.
  • Improved frontend/src/index.css by refining the Playground workspace into a notebook-friendly left-sidebar plus right-tabbed layout, reusing thin scrollbars, and making provider/help/result regions degrade more gracefully under constrained height.

Fixed

  • Fixed the local AI status flow so provider configuration no longer appeared permanently disabled / not configured merely because aiprovider/.env was not mounted into the container.
  • Fixed repeated Provider 状态 refetching when switching away from and back to /playground by caching the last known provider status within the browser session until the operator explicitly refreshes it.
  • Fixed several Playground layout regressions where auxiliary panels could push the result area out of view or clip provider details without exposing internal scrolling.

0.23.4

Released: 2026-04-08

Highlights

  • Fixed the BGP overview workspace so summary cards and tabular data now share viewport space more predictably, keeping the table header visible while preserving internal horizontal and vertical scrolling.

Improved

  • Improved BGP.tsx by switching BGP tables from frontend pagination to in-table scrolling, setting explicit horizontal scroll baselines per tab, and reshaping the summary cards into a desktop two-row layout with a compact single-row horizontal strip on tighter screens.
  • Improved index.css by hardening the BGP table layout chain from card body to Ant Design table body, so width overflow stays inside the table region and compact summary cards no longer consume unnecessary vertical space above the workspace.
  • Improved release consistency by aligning VERSION, pyproject.toml, frontend/package.json, and uv.lock on the same 0.23.4 bugfix version.

Fixed

  • Fixed the BGP collector/events tables so shrinking the browser window no longer clips the table card frame without exposing a usable horizontal scrollbar.
  • Fixed the BGP table region so the Ant Design header row is no longer obscured by an overgrown table body after the page switched to full-height internal scrolling.
  • Fixed the BGP summary area so medium and large screens no longer collapse the six KPI cards into overly narrow single-row tiles.

0.23.3

Released: 2026-04-08

Highlights

  • Refined planet.sh startup and restart presentation so service bring-up, health checks, and frontend dev-server readiness are easier to follow in real time.

Improved

  • Improved planet.sh by standardizing the script on zsh, tightening frontend startup stage rendering, and making spinner-driven subtask feedback show up step by step instead of bunching at the end.
  • Improved planet.sh by clarifying health-check subtask copy, filtering noisy frontend startup lines, and aligning terminal output spacing across spinner and status rows.

Fixed

  • Fixed several zsh compatibility issues in planet.sh, including reserved variable name collisions during restart and container health checks.
  • Fixed planet.sh so frontend readiness animation no longer appears frozen while waiting for Vite startup and health probes.

0.23.2

Released: 2026-04-08

Highlights

  • Hardened datasource retrigger handling so operators can safely force reruns without losing control of task state visibility or rollback behavior.

Improved

  • Improved frontend/src/pages/DataSources/DataSources.tsx by mapping phase-local task percentages into a continuous overall progress bar, pre-checking running task status before retriggering, and consolidating the trigger/force-confirm flow.
  • Improved planet.sh by polishing startup CLI output, reducing duplicated spinner cleanup, and standardizing log/help output around the newer terminal presentation.

Fixed

  • Fixed forced datasource reruns in backend/app/services/collectors/base.py by rolling back invalid SQLAlchemy session state before marking cancelled or failed task cleanup, preventing PendingRollbackError during operator-triggered cancellation.
  • Fixed datasource trigger UX in frontend/src/pages/DataSources/DataSources.tsx so batch and single-source progress no longer jump straight to 100% on frontend-side status coercion while the backend is still reporting real progress.

0.23.1

Released: 2026-04-07

Highlights

  • Fixed the BGP overview page so high-DPI and lower-height screens can keep the observation workspace visible within a single viewport.

Improved

  • Improved BGP.tsx by switching the page to a height-aware shell, compact summary layout, and tabbed data workspace so observation tables retain the majority of the screen.
  • Improved index.css by adding responsive BGP-specific compact spacing, denser table paddings, and an internal scroll region for collector coverage and event tables.

Fixed

  • Fixed the BGP observation page on small or high-scale displays where stacked stats and full-height blocks consumed too much vertical space, leaving only a couple of visible table rows.

0.23.0

Released: 2026-04-07

Highlights

  • Introduced a dedicated aiprovider service so the main backend now exposes stable AI business APIs while model-vendor integration lives behind an internal adapter boundary.
  • Added multi-protocol model access for openai-compatible, claude-compatible, and native ollama local-model flows, including local startup templates and service-aware restart controls.
  • Standardized Python runtime management on uv across backend and aiprovider, removing the old container-side pip/requirements.txt installation path.

Added

Improved

  • Improved backend-to-provider tracing by propagating X-Request-ID through the AI call chain and returning the same header from both backend and aiprovider.
  • Improved resilience by adding lightweight retry handling to both backend -> aiprovider and aiprovider -> model provider HTTP calls.
  • Improved operator workflow by folding aiprovider startup, health checks, restart support, and log viewing into planet.sh.
  • Improved planet.sh by adding bounded retry and container-health self-recovery for dependency installs, database startup, aiprovider startup, and interactive PostgreSQL boot paths.
  • Improved README.md by documenting the new planet.sh retry and health-check tuning environment variables with concrete override examples.
  • Improved container consistency by switching backend/Dockerfile and aiprovider/Dockerfile to uv sync / uv run.

Changed

  • Changed the repository Python dependency source of truth to pyproject.toml + uv.lock, and removed the old backend/requirements.txt path.
  • Changed local restart wording in the dashboard from the vague 重启服务器 label to the more specific 重启后端, reducing ambiguity once aiprovider became independently restartable.

0.22.14

Released: 2026-04-07

Highlights

  • Completed the pending prefix-geography collector add-ons by shipping dedicated OpenGeoFeed and NRO delegated stats collectors.
  • Finalized this slice as a bugfix release (+0.0.1) with version metadata synchronized across backend/frontend lockfiles.

Added

  • Added opengeofeed.py, introducing opengeofeed_prefix_geo ingestion for high-confidence geofeed-backed prefix geography overrides.
  • Added nro_delegated.py, introducing nro_delegated_prefix_geo ingestion for registry-allocation fallback geography.

Improved

  • Improved collector registration wiring to include the new prefix-geography sources in the runtime collector registry and datasource catalog integration flow.
  • Improved BGP roadmap traceability by aligning shipped collector capabilities with the staged prefix-geography strategy (override source + registry fallback source).

Fixed

  • Fixed repository drift where datasource mappings and enrichment priority chain referenced OpenGeoFeed/NRO source names before the corresponding collector modules were fully committed in-tree.

0.22.13

Released: 2026-04-07

Highlights

  • Added zoom-aware drag sensitivity on Earth interaction so drag distance naturally becomes finer when zoomed in and faster when zoomed out.
  • Shipped as a focused bugfix release (+0.0.1) to improve operation feel without changing existing data/visual layers.

Improved

  • Improved main.js by replacing fixed drag rotation gain with a dynamic factor derived from current zoom level.
  • Improved main.js by introducing getDragRotationFactor() so interaction tuning stays centralized instead of mixing formulas in pointer handlers.
  • Improved constants.js by adding explicit drag tuning knobs: dragRotationFactorBase, dragRotationScaleMin, and dragRotationScaleMax.

Fixed

  • Fixed the previous interaction mismatch where drag traveled the same angular distance regardless of zoom level, making close-up inspection too jumpy and far-view browsing too slow.
  • Fixed maintainability drift where drag sensitivity had a hardcoded literal in logic code instead of configurable constants.

0.22.12

Released: 2026-04-02

Highlights

  • Completed Earth BGP / cables / landing points visual-parameter consolidation so the latest overlap/size fixes are no longer scattered as magic numbers.
  • Shipped a bugfix version bump for the constant-extraction and marker-size stabilization work (+0.0.1).

Improved

  • Improved constants.js by introducing structured BGP_CONFIG groups (marker, pulse, ring, halo, sizeStabilization) and by extracting additional cable/landing-point render parameters into CABLE_CONFIG.
  • Improved bgp.js by fully switching BGP marker/ring/pulse logic to the new nested constants, including collector status-core scale floors and distance/FOV-based size-stabilization knobs.
  • Improved cables.js by removing hardcoded landing-point visual constants and centralizing base scale, pulse, dimming, opacity, emissive, and stabilization thresholds.
  • Improved main.js by passing camera through landing-point visual update/reset flows so stabilized sizing remains consistent during normal render-loop interactions.
  • Improved planning continuity in TODO.md by documenting the optional HTML marker migration path for near-fixed screen-size BGP markers as a non-blocking follow-up.

Fixed

  • Fixed drift from earlier iterative tuning where BGP/cable size and animation behavior depended on multiple dispersed literals, which made overlap and readability regressions more likely during subsequent tweaks.
  • Fixed a partially applied refactor state where some BGP collector/status-core scaling still bypassed shared config, preventing clean global tuning.

Notes

  • During this round, an over-tight marker-size clamp path was intentionally not kept; the final shipped config uses wider stabilization bounds so zoom-level response remains visible while still reducing overlap blow-up.

0.22.11

Released: 2026-04-02

Highlights

  • Cleaned up the most obvious BGP/Earth cleanup leftovers from the recent stabilization work without changing the current user-facing interaction model.

Improved

  • Improved bgp.js by factoring the BGP Earth loading flow into smaller helpers, separating timed GeoJSON fetch fallback from incident vs anomaly render-mode selection.
  • Improved bgp.js by extracting shared feature parsing helpers so anomaly and incident marker preparation no longer duplicate coordinate, severity, and timestamp parsing logic.
  • Improved visualization.py by consolidating repeated BGP evidence geography parsing into a shared helper used by both anomaly and incident geography-hint builders.
  • Improved planning hygiene in TODO.md by recording the deferred bgp.js responsibility split as an explicit follow-up task instead of leaving the idea only in conversation context.

Refined

  • Refined constants.js by removing stale Earth BGP configuration entries that were left behind after the floating event hub design was removed.
  • Refined bgp.js by removing no-longer-used arc helpers that only served the deleted off-surface hub/link route.
  • Refined visualization.py by dropping an unused _lookup_prefix_geography import after the earlier rollback from expensive live prefix-geography visualization lookups.

Fixed

  • Fixed the codebase drift where Earth BGP cleanup patches had left behind dead constants, duplicate parsing branches, and fallback-loading glue that was harder to reason about than the now-stable runtime required.

0.22.10

Released: 2026-04-02

Highlights

  • Recovered the Earth-side BGP experience after a failed cache-busting / asset-loading refactor temporarily broke the globe runtime, removed textures, and made the BGP layer disappear when one backend endpoint timed out.
  • Added a first usable prefix_geography data layer backed by IPtoASN / IP-to-Country ingestion so BGP geography can start moving away from pure collector-centric placement.
  • Reworked BGP Earth rendering to keep collectors visible under degraded backend conditions, restore symbol-based incident markers, and split icon pulse from outward event-ring animation.

Added

Improved

  • Improved BGP enrichment in bgp_enrichment.py so events now attach prefix_geography, prefix_scope, ASN profile context, and country-centroid-backed geography hints in one place.
  • Improved incident aggregation in bgp_incidents.py so existing incidents refresh their regions and geography metadata instead of remaining pinned to stale first-generation evidence forever.
  • Improved anomaly generation flow in bgp_common.py by cleaning up duplicate incident-seeding paths and only feeding newly created or refreshed anomalies forward.
  • Improved Earth BGP loading in bgp.js so collectors are now the mandatory baseline layer while anomalies and incidents can fail independently without blanking the whole BGP surface.
  • Improved Earth BGP marker language in bgp.js and constants.js by restoring typed event symbols, reducing additive white blowout, and making the incident ring animation read as an outward pulse instead of a generic glow blob.
  • Improved Earth event animation semantics in bgp.js by separating icon pulse from ring expansion so the center marker can breathe while the ring expands independently.
  • Improved Earth texture reliability in earth.js by switching clouds back to a local static asset under the restored public/earth runtime.
  • Improved frontend boot noise in frontend/index.html by removing the default Vite favicon request that was generating irrelevant vite.svg timeouts during Earth debugging.
  • Improved project planning docs in bgp-context.md and TODO.md so the roadmap now explicitly prioritizes activity layer, prefix-centric geography, and follow-up geofeed/whois work.

Fixed

  • Fixed a failed Earth asset-versioning route where hand-applied cache-busting and a parallel Vite multi-entry experiment introduced duplicate module instances, broken /earth boot paths, missing textures, and severe runtime instability; the globe has now been restored to the stable frontend/public/earth runtime instead of the abandoned refactor path.
  • Fixed Earth cloud and terrain loading regressions by restoring the old static Earth entrypoint and ensuring local cloud and 8K day-map assets resolve again from public/earth/assets.
  • Fixed a full-layer BGP disappearance regression where bgp-anomalies or bgp-incidents timeouts caused the entire BGP layer to show 0 collectors and 0 events even though collector data still existed.
  • Fixed prefix_geography lookups in bgp_enrichment.py that previously failed because JSON metadata access mixed SQL column names and ORM property names.
  • Fixed stale anomaly and incident geography reuse so pre-existing records can now absorb refreshed evidence instead of staying locked to older Amsterdam-centric geography forever.
  • Fixed a wrong optimization path in visualization.py where live prefix_geography lookups were pushed directly into Earth visualization endpoints, causing bgp-anomalies and bgp-incidents to time out under load; the visualization layer now prefers cached evidence again so Earth remains responsive.
  • Fixed Earth-side BGP fallback rendering so anomaly fallback no longer collapses into a single undifferentiated glow layer when incidents are unavailable.
  • Fixed extreme incident brightness and same-coordinate blowout in bgp.js by removing additive blending from incident cores, reducing ring intensity, and deduplicating incident rendering at the coordinate level.
  • Fixed the confusing floating BGP event hub in bgp.js by removing the suspended off-surface glow anchor and its arc links, leaving Earth incidents grounded on the globe surface with regional halo context instead.

0.22.9

Released: 2026-04-02

Highlights

  • Polished startup wait messaging in planet.sh so the script no longer shows retry counters before an actual restart attempt happens.
  • Kept the service boot flow quieter during normal warm-up while preserving explicit retry feedback when a backend or frontend relaunch is really needed.

Improved

  • Improved planet.sh wait-state messaging by simplifying the initial readiness output to 等待服务就绪... during health polling.
  • Improved operator readability during local startup by reserving numbered retry messages for real process restart attempts instead of normal first-pass health checks.

Fixed

  • Fixed misleading startup output where the first health-check loop looked like an immediate retry sequence even though the service was still in its initial boot window.

0.22.8

Released: 2026-04-01

Highlights

  • Fixed the configuration center form lifecycle so revisiting the Settings page no longer triggers Ant Design's useForm warning during async settings hydration.
  • Aligned repository version metadata across the backend, frontend, and lockfiles so the new bugfix release reports a consistent 0.22.8 version everywhere.

Improved

  • Improved settings data hydration in Settings.tsx by staging fetched system, notification, and security payloads in React state first instead of writing directly into form instances during the request callback.
  • Improved settings form synchronization in Settings.tsx by delaying setFieldsValue(...) until the page loading skeleton is gone, ensuring each Ant Design form is actually mounted before values are pushed into it.
  • Improved tab readiness in Settings.tsx by keeping the primary configuration tabs force-rendered so revisits and tab switches no longer race form instance registration.
  • Improved release consistency by updating VERSION, pyproject.toml, frontend/package.json, frontend/package-lock.json, and uv.lock to the same bugfix version.

Fixed

  • Fixed the Instance created by useForm is not connected to any Form element warning in Settings.tsx, which could still reappear after navigating away from the configuration center and returning while settings were being refetched.
  • Fixed the timing bug where the page attempted to hydrate hidden/loading tab forms before the enclosing Card loading state had mounted the real form tree.

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 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 and 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 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 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 by removing the page-local WebSocket implementation and reusing the shared useWebSocket hook for the dashboard channel.
  • Improved dashboard loading behavior in Dashboard.tsx by updating the initial spinner to Ant Designs 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 by clearing completed bulkProgressBatch state once every tracked datasource reaches a terminal non-running state.
  • Fixed a WebSocket lifecycle bug in 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 and 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 so BGP incident cards synthesize a clearer narrative summary when backend text is sparse, instead of exposing a thin raw summary.
  • Improved main.js so incident selection reports impacted region counts and related cable counts directly in the Earth status message.
  • Improved 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.
  • Fixed collector selection semantics in 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 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.