release: bump version to 0.65.1
Some checks failed
ci / backend (push) Has been cancelled
ci / frontend (push) Has been cancelled
ci / delivery (push) Has been cancelled

This commit is contained in:
2026-05-22 20:41:19 +08:00
parent 65e6a96c0d
commit ae982e51cd
12 changed files with 102 additions and 7 deletions

View File

@@ -1 +1 @@
0.65.0 0.65.1

View File

@@ -15,12 +15,15 @@ ENV PYTHONUNBUFFERED=1
ENV UV_COMPILE_BYTECODE=1 ENV UV_COMPILE_BYTECODE=1
ENV UV_LINK_MODE=copy ENV UV_LINK_MODE=copy
RUN mkdir -p /root/.config/uv
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
curl \ curl \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY pyproject.toml uv.lock /app/ COPY pyproject.toml uv.lock /app/
RUN --mount=type=cache,target=/root/.cache/uv \ RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=secret,id=planet_uv_config,target=/root/.config/uv/uv.toml,required=false \
uv sync --frozen --no-dev uv sync --frozen --no-dev
COPY aiprovider /app/aiprovider COPY aiprovider /app/aiprovider

View File

@@ -1,3 +1,5 @@
# syntax=docker/dockerfile:1.7
ARG PYTHON_IMAGE=python:3.14-slim ARG PYTHON_IMAGE=python:3.14-slim
ARG UV_IMAGE=ghcr.io/astral-sh/uv:latest ARG UV_IMAGE=ghcr.io/astral-sh/uv:latest
@@ -14,12 +16,16 @@ ENV UV_COMPILE_BYTECODE=1
ENV UV_LINK_MODE=copy ENV UV_LINK_MODE=copy
ENV PYTHONPATH=/app/backend ENV PYTHONPATH=/app/backend
RUN mkdir -p /root/.config/uv
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
curl \ curl \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
COPY pyproject.toml uv.lock /app/ COPY pyproject.toml uv.lock /app/
RUN uv sync --frozen --no-dev RUN --mount=type=cache,target=/root/.cache/uv \
--mount=type=secret,id=planet_uv_config,target=/root/.config/uv/uv.toml,required=false \
uv sync --frozen --no-dev
COPY backend /app/backend COPY backend /app/backend
COPY VERSION /app/VERSION COPY VERSION /app/VERSION

View File

@@ -15,12 +15,15 @@ services:
retries: 10 retries: 10
aiprovider: aiprovider:
image: ${AI_PROVIDER_IMAGE_NAME:-planet-aiprovider:latest}
build: build:
context: . context: .
dockerfile: aiprovider/Dockerfile dockerfile: aiprovider/Dockerfile
args: args:
PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim} PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim}
UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest} UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest}
secrets:
- planet_uv_config
container_name: planet_aiprovider container_name: planet_aiprovider
ports: ports:
- "8010:8010" - "8010:8010"
@@ -43,3 +46,7 @@ services:
volumes: volumes:
ollama_data: ollama_data:
secrets:
planet_uv_config:
file: ${PLANET_UV_CONFIG_FILE:-/dev/null}

View File

@@ -2,12 +2,15 @@ version: '3.8'
services: services:
aiprovider: aiprovider:
image: ${AI_PROVIDER_IMAGE_NAME:-planet-aiprovider:latest}
build: build:
context: . context: .
dockerfile: aiprovider/Dockerfile dockerfile: aiprovider/Dockerfile
args: args:
PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim} PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim}
UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest} UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest}
secrets:
- planet_uv_config
env_file: env_file:
- ./aiprovider/.env - ./aiprovider/.env
- ${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-./aiprovider/.env} - ${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-./aiprovider/.env}
@@ -43,3 +46,7 @@ services:
volumes: volumes:
postgres_data: postgres_data:
redis_data: redis_data:
secrets:
planet_uv_config:
file: ${PLANET_UV_CONFIG_FILE:-/dev/null}

View File

@@ -2,12 +2,15 @@ version: '3.8'
services: services:
aiprovider: aiprovider:
image: ${AI_PROVIDER_IMAGE_NAME:-planet-aiprovider:latest}
build: build:
context: . context: .
dockerfile: aiprovider/Dockerfile dockerfile: aiprovider/Dockerfile
args: args:
PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim} PYTHON_IMAGE: ${PYTHON_IMAGE:-python:3.14-slim}
UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest} UV_IMAGE: ${UV_IMAGE:-ghcr.io/astral-sh/uv:latest}
secrets:
- planet_uv_config
env_file: env_file:
- ./aiprovider/.env - ./aiprovider/.env
- ${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-./aiprovider/.env} - ${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-./aiprovider/.env}
@@ -53,3 +56,7 @@ services:
volumes: volumes:
postgres_data: postgres_data:
redis_data: redis_data:
secrets:
planet_uv_config:
file: ${PLANET_UV_CONFIG_FILE:-/dev/null}

View File

@@ -8,6 +8,22 @@ 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.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 ## [0.65.0] — 2026-05-21
Released: 2026-05-21 Released: 2026-05-21

View File

@@ -16,12 +16,13 @@
## Current Version ## Current Version
- `main` 当前主线历史推导到:`0.16.5` - `main` 当前主线历史推导到:`0.16.5`
- `dev` 当前开发分支历史推导到:`0.65.0` - `dev` 当前开发分支历史推导到:`0.65.1`
## Timeline ## Timeline
| Version | Type | Branch | Commit | Summary | | Version | Type | Branch | Commit | Summary |
| --- | --- | --- | --- | --- | | --- | --- | --- | --- | --- |
| `0.65.1` | bugfix | `dev` | `pending` | 统一 `planet.sh` 与 Compose 的 AI Provider 镜像名,并让本地和 Docker build 通过用户级 `uv.toml` 共享 uv 源配置,避免镜像源污染 `uv.lock` |
| `0.65.0` | feature | `dev` | `pending` | Admin Next 数据源触发入口收敛为“触发全部/触发已选 N”队列改为右上角浮层按钮并强化 `planet.sh destroy` 的 OOBE 数据清理 | | `0.65.0` | feature | `dev` | `pending` | Admin Next 数据源触发入口收敛为“触发全部/触发已选 N”队列改为右上角浮层按钮并强化 `planet.sh destroy` 的 OOBE 数据清理 |
| `0.64.0` | feature | `dev` | `pending` | Earth 新增后端状态驱动 OOBE 与 About 配置Admin Next 数据源页新增采集队列,补齐深色主题滑块和用户/技术文档 | | `0.64.0` | feature | `dev` | `pending` | Earth 新增后端状态驱动 OOBE 与 About 配置Admin Next 数据源页新增采集队列,补齐深色主题滑块和用户/技术文档 |
| `0.63.1` | bugfix | `dev` | `pending` | 补上被 `lib/` ignore 规则漏提交的 Admin Next utility module修复新设备初始化后 AdminNextRoutes 动态导入 500 | | `0.63.1` | bugfix | `dev` | `pending` | 补上被 `lib/` ignore 规则漏提交的 Admin Next utility module修复新设备初始化后 AdminNextRoutes 动态导入 500 |

View File

@@ -1,6 +1,6 @@
{ {
"name": "planet-frontend", "name": "planet-frontend",
"version": "0.65.0", "version": "0.65.1",
"private": true, "private": true,
"packageManager": "bun@1", "packageManager": "bun@1",
"dependencies": { "dependencies": {

View File

@@ -125,9 +125,11 @@ MOTION_AGENT_PID_FILE="$PLANET_STATE_DIR/motion_agent.pid"
MOTION_AGENT_LOG_FILE="$PLANET_STATE_DIR/motion_agent.log" MOTION_AGENT_LOG_FILE="$PLANET_STATE_DIR/motion_agent.log"
AI_PROVIDER_BUILD_STAMP_FILE="$PLANET_CACHE_DIR/aiprovider_build.sha256" AI_PROVIDER_BUILD_STAMP_FILE="$PLANET_CACHE_DIR/aiprovider_build.sha256"
AI_PROVIDER_BUILD_LOG_FILE="$PLANET_STATE_DIR/aiprovider_build.log" AI_PROVIDER_BUILD_LOG_FILE="$PLANET_STATE_DIR/aiprovider_build.log"
AI_PROVIDER_IMAGE_NAME="${AI_PROVIDER_IMAGE_NAME:-planet_aiprovider:latest}" AI_PROVIDER_IMAGE_NAME="${AI_PROVIDER_IMAGE_NAME:-planet-aiprovider:latest}"
AI_PROVIDER_CONTAINER_NAME="${AI_PROVIDER_CONTAINER_NAME:-planet_aiprovider}" AI_PROVIDER_CONTAINER_NAME="${AI_PROVIDER_CONTAINER_NAME:-planet_aiprovider}"
PLANET_AI_PROVIDER_RUNTIME_ENV_FILE="${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-$PLANET_STATE_DIR/aiprovider_runtime.env}" PLANET_AI_PROVIDER_RUNTIME_ENV_FILE="${PLANET_AI_PROVIDER_RUNTIME_ENV_FILE:-$PLANET_STATE_DIR/aiprovider_runtime.env}"
PLANET_EMPTY_UV_CONFIG_FILE="$PLANET_STATE_DIR/uv.empty.toml"
PLANET_UV_CONFIG_FILE="${PLANET_UV_CONFIG_FILE:-}"
AI_PROVIDER_RECREATE_REQUIRED=0 AI_PROVIDER_RECREATE_REQUIRED=0
START_RUN_ACTIVE=0 START_RUN_ACTIVE=0
START_RUN_COMPLETED=0 START_RUN_COMPLETED=0
@@ -171,6 +173,46 @@ ensure_local_runtime_bins_on_path() {
ensure_local_runtime_bins_on_path ensure_local_runtime_bins_on_path
resolve_uv_config_file() {
local candidate
if [ -n "${UV_CONFIG_FILE:-}" ] && [ -f "$UV_CONFIG_FILE" ]; then
printf "%s\n" "$UV_CONFIG_FILE"
return 0
fi
for candidate in \
"$SCRIPT_DIR/uv.toml" \
"${XDG_CONFIG_HOME:-$HOME/.config}/uv/uv.toml" \
"$HOME/.uv/uv.toml"; do
if [ -f "$candidate" ]; then
printf "%s\n" "$candidate"
return 0
fi
done
return 1
}
prepare_uv_build_config() {
local uv_config_file
uv_config_file="$(resolve_uv_config_file || true)"
if [ -n "$uv_config_file" ]; then
PLANET_UV_CONFIG_FILE="$uv_config_file"
else
: > "$PLANET_EMPTY_UV_CONFIG_FILE"
PLANET_UV_CONFIG_FILE="$PLANET_EMPTY_UV_CONFIG_FILE"
fi
UV_CONFIG_FILE="$PLANET_UV_CONFIG_FILE"
unset UV_DEFAULT_INDEX UV_INDEX_URL UV_EXTRA_INDEX_URL
export UV_CONFIG_FILE
export PLANET_UV_CONFIG_FILE
}
prepare_uv_build_config
# Shell / Docker helpers # Shell / Docker helpers
is_pid() { is_pid() {
[[ "${1:-}" =~ ^[0-9]+$ ]] && [ "$1" -gt 0 ] [[ "${1:-}" =~ ^[0-9]+$ ]] && [ "$1" -gt 0 ]
@@ -1086,6 +1128,10 @@ compute_ai_provider_build_fingerprint() {
| xargs -r stat --format="%Y %s %n" 2>/dev/null | xargs -r stat --format="%Y %s %n" 2>/dev/null
sha256sum docker-compose.yml docker-compose.simple.yml 2>/dev/null sha256sum docker-compose.yml docker-compose.simple.yml 2>/dev/null
python3 "$SCRIPT_DIR/scripts/compute_aiprovider_dependency_fingerprint.py" 2>/dev/null python3 "$SCRIPT_DIR/scripts/compute_aiprovider_dependency_fingerprint.py" 2>/dev/null
if [ -n "${PLANET_UV_CONFIG_FILE:-}" ] && [ -f "$PLANET_UV_CONFIG_FILE" ]; then
printf "uv-config "
sha256sum "$PLANET_UV_CONFIG_FILE" | awk '{print $1}'
fi
} }
) | sha256sum | awk '{print $1}' ) | sha256sum | awk '{print $1}'
} }
@@ -1166,6 +1212,8 @@ ensure_ai_provider_image_current() {
local current_fingerprint="" local current_fingerprint=""
local previous_fingerprint="" local previous_fingerprint=""
prepare_uv_build_config
current_fingerprint="$(compute_ai_provider_build_fingerprint)" current_fingerprint="$(compute_ai_provider_build_fingerprint)"
previous_fingerprint="$(read_ai_provider_build_stamp || true)" previous_fingerprint="$(read_ai_provider_build_stamp || true)"

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "planet" name = "planet"
version = "0.65.0" version = "0.65.1"
description = "智能星球计划 - 态势感知系统" description = "智能星球计划 - 态势感知系统"
requires-python = ">=3.14" requires-python = ">=3.14"
dependencies = [ dependencies = [

2
uv.lock generated
View File

@@ -757,7 +757,7 @@ wheels = [
[[package]] [[package]]
name = "planet" name = "planet"
version = "0.65.0" version = "0.65.1"
source = { virtual = "." } source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "aiofiles" }, { name = "aiofiles" },