release: bump version to 0.37.1
This commit is contained in:
@@ -8,6 +8,19 @@ This project follows the repository versioning rule:
|
|||||||
- `improvement` -> `+0.0.1`(bugfix + 小功能混合)
|
- `improvement` -> `+0.0.1`(bugfix + 小功能混合)
|
||||||
- `bugfix` -> `+0.0.1`
|
- `bugfix` -> `+0.0.1`
|
||||||
|
|
||||||
|
## [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.35.1] — 2026-04-22
|
||||||
## [0.37.0] — 2026-04-23
|
## [0.37.0] — 2026-04-23
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,13 @@
|
|||||||
## Current Version
|
## Current Version
|
||||||
|
|
||||||
- `main` 当前主线历史推导到:`0.16.5`
|
- `main` 当前主线历史推导到:`0.16.5`
|
||||||
- `dev` 当前开发分支历史推导到:`0.37.0`
|
- `dev` 当前开发分支历史推导到:`0.37.1`
|
||||||
|
|
||||||
## Timeline
|
## Timeline
|
||||||
|
|
||||||
| Version | Type | Branch | Commit | Summary |
|
| Version | Type | Branch | Commit | Summary |
|
||||||
| --- | --- | --- | --- | --- |
|
| --- | --- | --- | --- | --- |
|
||||||
|
| `0.37.1` | bugfix | `dev` | `pending` | 修复 `planet.sh` 在 `uvicorn --reload` 场景下未清理旧 worker 的问题,避免后端重启后仍停留旧实例并导致算力中心聚合接口 404 |
|
||||||
| `0.37.0` | feature | `dev` | `pending` | Earth 连线系统从巡航语义中完全解耦为通用 callout connector,统一桌面/移动端对象级锚点、临界区锚点滑动与稳定巡航展示链路 |
|
| `0.37.0` | feature | `dev` | `pending` | Earth 连线系统从巡航语义中完全解耦为通用 callout connector,统一桌面/移动端对象级锚点、临界区锚点滑动与稳定巡航展示链路 |
|
||||||
| `0.36.0` | feature | `dev` | `pending` | Earth 新增统一算力中心图层与估算位置展示,继续收口拖拽交互,并补充 AI Provider 指纹与 WSL 局域网访问支撑 |
|
| `0.36.0` | feature | `dev` | `pending` | Earth 新增统一算力中心图层与估算位置展示,继续收口拖拽交互,并补充 AI Provider 指纹与 WSL 局域网访问支撑 |
|
||||||
| `0.35.1` | bugfix | `dev` | `pending` | 收口 Earth 桌面 HUD 与移动端抽屉的统一统计绑定机制,修复态势统计在图层切换后的同步遗漏 |
|
| `0.35.1` | bugfix | `dev` | `pending` | 收口 Earth 桌面 HUD 与移动端抽屉的统一统计绑定机制,修复态势统计在图层切换后的同步遗漏 |
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "planet-frontend",
|
"name": "planet-frontend",
|
||||||
"version": "0.37.0",
|
"version": "0.37.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "bun@1",
|
"packageManager": "bun@1",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
48
planet.sh
48
planet.sh
@@ -1025,7 +1025,14 @@ start_postgres_service() {
|
|||||||
|
|
||||||
# Backend lifecycle helpers
|
# Backend lifecycle helpers
|
||||||
cleanup_backend_processes() {
|
cleanup_backend_processes() {
|
||||||
pkill -f "uvicorn" 2>/dev/null || true
|
local backend_port="${1:-$DEFAULT_BACKEND_PORT}"
|
||||||
|
terminate_backend_processes TERM "$backend_port"
|
||||||
|
|
||||||
|
if ! wait_for_port_release "$backend_port"; then
|
||||||
|
terminate_backend_processes KILL "$backend_port"
|
||||||
|
|
||||||
|
wait_for_port_release "$backend_port" || true
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
start_backend_with_retry() {
|
start_backend_with_retry() {
|
||||||
@@ -1033,7 +1040,7 @@ start_backend_with_retry() {
|
|||||||
local retry=1
|
local retry=1
|
||||||
|
|
||||||
while [ "$retry" -le "$BACKEND_MAX_RETRIES" ]; do
|
while [ "$retry" -le "$BACKEND_MAX_RETRIES" ]; do
|
||||||
cleanup_backend_processes
|
cleanup_backend_processes "$backend_port"
|
||||||
cd "$SCRIPT_DIR/backend"
|
cd "$SCRIPT_DIR/backend"
|
||||||
PYTHONPATH="$SCRIPT_DIR/backend" nohup uv run --project "$SCRIPT_DIR" python -m uvicorn app.main:app --host 0.0.0.0 --port "$backend_port" --reload > /tmp/planet_backend.log 2>&1 &
|
PYTHONPATH="$SCRIPT_DIR/backend" nohup uv run --project "$SCRIPT_DIR" python -m uvicorn app.main:app --host 0.0.0.0 --port "$backend_port" --reload > /tmp/planet_backend.log 2>&1 &
|
||||||
BACKEND_PID=$!
|
BACKEND_PID=$!
|
||||||
@@ -1242,6 +1249,39 @@ collect_port_pids() {
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
terminate_process_group() {
|
||||||
|
local signal="$1"
|
||||||
|
local pid="$2"
|
||||||
|
local pgid=""
|
||||||
|
|
||||||
|
[ -n "$pid" ] || return 0
|
||||||
|
kill -0 "$pid" 2>/dev/null || return 0
|
||||||
|
|
||||||
|
pgid="$(ps -o pgid= -p "$pid" 2>/dev/null | tr -d '[:space:]')"
|
||||||
|
[ -n "$pgid" ] || return 0
|
||||||
|
|
||||||
|
kill "-${signal}" -- "-${pgid}" 2>/dev/null || true
|
||||||
|
}
|
||||||
|
|
||||||
|
terminate_backend_processes() {
|
||||||
|
local signal="$1"
|
||||||
|
local backend_port="$2"
|
||||||
|
local pids=""
|
||||||
|
local pid=""
|
||||||
|
|
||||||
|
pids="$(pgrep -f "uvicorn" 2>/dev/null || true)"
|
||||||
|
for pid in $pids; do
|
||||||
|
terminate_process_group "$signal" "$pid"
|
||||||
|
terminate_process_tree "$signal" "$pid"
|
||||||
|
done
|
||||||
|
|
||||||
|
pids="$(collect_port_pids "$backend_port" || true)"
|
||||||
|
for pid in $pids; do
|
||||||
|
terminate_process_group "$signal" "$pid"
|
||||||
|
terminate_process_tree "$signal" "$pid"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
terminate_process_tree() {
|
terminate_process_tree() {
|
||||||
local signal="$1"
|
local signal="$1"
|
||||||
local pid="$2"
|
local pid="$2"
|
||||||
@@ -1521,8 +1561,8 @@ stop_container_if_running() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
stop_backend_service() {
|
stop_backend_service() {
|
||||||
if pgrep -f "uvicorn" >/dev/null 2>&1; then
|
if pgrep -f "uvicorn" >/dev/null 2>&1 || ! can_bind_port "$DEFAULT_BACKEND_PORT"; then
|
||||||
cleanup_backend_processes
|
cleanup_backend_processes "$DEFAULT_BACKEND_PORT"
|
||||||
log_halt "后端服务已停止"
|
log_halt "后端服务已停止"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "planet"
|
name = "planet"
|
||||||
version = "0.37.0"
|
version = "0.37.1"
|
||||||
description = "智能星球计划 - 态势感知系统"
|
description = "智能星球计划 - 态势感知系统"
|
||||||
requires-python = ">=3.14"
|
requires-python = ">=3.14"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
Reference in New Issue
Block a user