Skip to content

Commit 4c71800

Browse files
committed
release: 0.4.5
1 parent ddd5ffd commit 4c71800

24 files changed

Lines changed: 390 additions & 82 deletions

.claude/worktrees/agent-a1fa4ae0

Lines changed: 0 additions & 1 deletion
This file was deleted.

.claude/worktrees/agent-a24240fc

Lines changed: 0 additions & 1 deletion
This file was deleted.

.claude/worktrees/agent-a255c7c4

Lines changed: 0 additions & 1 deletion
This file was deleted.

.claude/worktrees/agent-aaece09b

Lines changed: 0 additions & 1 deletion
This file was deleted.

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,16 @@ dist_pkg/
5454
temp_filemanager_remote*.js
5555
deploy_nonebot_*.sh
5656
*.log
57+
build-operation-refactor.log
5758

5859
# Dev container
5960
.devcontainer
6061
.claude
6162
data/
63+
.pnpm-store/
64+
global_logs/
65+
projects/
66+
external-projects/
6267

6368
# Scripts (dev only)
6469
script/

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ global_logs/
453453

454454
# Local agent / workspace state
455455
.claude/
456+
.claude/worktrees/
456457

457458
# Local notes
458459
PROJECT_LOGIC.md

Dockerfile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
ARG APP_VERSION=0.4.4
1+
ARG APP_VERSION=0.4.5
22
ARG VCS_REF=
33
ARG PYTHON_IMAGE=3.11
44
ARG VARIANT=
@@ -22,7 +22,7 @@ RUN pnpm -C frontend run build-only
2222

2323
FROM python:${PYTHON_IMAGE}${VARIANT:+-$VARIANT} AS build-stage
2424

25-
ARG APP_VERSION=0.4.4
25+
ARG APP_VERSION=0.4.5
2626
ARG VCS_REF=unknown
2727
ARG PIP_INDEX_URL
2828
ARG PIP_EXTRA_INDEX_URL
@@ -51,10 +51,12 @@ RUN pip install --no-deps .
5151

5252
FROM python:${PYTHON_IMAGE}${VARIANT:+-$VARIANT}
5353

54-
ARG APP_VERSION=0.4.4
54+
ARG APP_VERSION=0.4.5
5555
ARG VCS_REF=unknown
5656
ARG APT_MIRROR
5757
EXPOSE 18080
58+
VOLUME ["/projects"]
59+
VOLUME ["/external-projects"]
5860

5961
# 创建挂载目录
6062
RUN mkdir -p /opt/nonebot-projects && chmod 777 /opt/nonebot-projects

README.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ _✨ 面向 NoneBot 多实例运维的 WebUI ✨_
5454
- 优化已有实例导入,支持相对路径和容器内绝对路径识别
5555
- 修复坏虚拟环境导致的依赖安装失败,自动备份并重建 `.venv`
5656
- 补齐导入实例后的驱动 / 依赖初始化流程,减少第三步报错
57+
- 修复添加实例失败后仍残留实例记录的问题,失败时自动回滚
58+
- 修复实例列表重复污染问题,避免路径别名与自动扫描把测试实例反复塞回列表
59+
- 将实例运行日志与维护终端拆分,实例操作页与独立终端页职责分离
5760
- 调整概览、通知、日志、终端交互,让运维动作更集中
5861
- 新增关于页,文档入口和项目信息集中展示
5962

@@ -74,7 +77,7 @@ _✨ 面向 NoneBot 多实例运维的 WebUI ✨_
7477
- `docker.io/xisoul/nonebot-webui:master`
7578
- `docker.io/xisoul/nonebot-webui:${version}`
7679

77-
推荐优先使用显式版本号,例如 `0.4.2``0.4`,后面做升级、回滚、版本检测会更方便。
80+
推荐优先使用显式版本号,例如 `0.4.5``0.4`,后面做升级、回滚、版本检测会更方便。
7881

7982
### 非 Docker 安装
8083

@@ -117,7 +120,8 @@ docker run -d \
117120
- `/projects` 给 WebUI 新建实例使用
118121
- `/external-projects` 给宿主机 / NAS 里已经存在的实例使用
119122
- `/app/config.json``/app/project.json` 会被程序写回,不能只读挂载
120-
- 如果 NAS 面板自动带出 `/data` 等默认卷,建议手动删掉,再按上面这些路径重新配置
123+
- 镜像会默认提示挂载 `/projects``/external-projects`
124+
- 如果 NAS 面板自动带出其它旧默认卷(例如 `/data`),建议手动删掉,再按上面这些路径重新配置
121125

122126
### 路径映射说明
123127

@@ -238,20 +242,20 @@ docker logs nonebot-webui
238242
- `${major}.${minor}`
239243
- `${version}`
240244

241-
例如版本 `0.4.4` 会自动生成:
245+
例如版本 `0.4.5` 会自动生成:
242246

243247
- `xisoul/nonebot-webui:latest`
244248
- `xisoul/nonebot-webui:master`
245249
- `xisoul/nonebot-webui:0.4`
246-
- `xisoul/nonebot-webui:0.4.4`
250+
- `xisoul/nonebot-webui:0.4.5`
247251

248252
### 推荐发版步骤
249253

250254
1. 修改代码并在本地测试通过
251255
2. 更新 `pyproject.toml` 中的版本号
252256
3. 同步更新 `Dockerfile` 中的 `APP_VERSION`
253257
4. 提交代码
254-
5. 打版本 tag,例如 `v0.4.4`
258+
5. 打版本 tag,例如 `v0.4.5`
255259
6. 推送 `master` 和对应 tag
256260

257261
示例:
@@ -261,8 +265,8 @@ git add .
261265
git commit -m "feat: your change"
262266
git push origin master
263267

264-
git tag v0.4.4
265-
git push origin v0.4.4
268+
git tag v0.4.5
269+
git push origin v0.4.5
266270
```
267271

268272
### 重要说明

RELEASE_TODO_2026-05-01.md

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Release Todo 2026-05-01
1+
# Release Notes Draft 2026-05-01
22

3-
这份清单用于下次发版前确认哪些修复需要带上
3+
这份清单用于记录 `0.4.5` 计划带上的修复项
44

5-
## 本次建议纳入发版
5+
## 0.4.5 已纳入修复
66

77
### 1. Docker / NAS 创建容器体验修复
88

@@ -19,20 +19,34 @@
1919

2020
- 文件:
2121
- `nb_cli_plugin_webui/app/project/service.py`
22+
- `nb_cli_plugin_webui/app/handlers/process/utils.py`
2223
- 内容:
23-
- `add_nonebot_project()` 只有在安装流程真正走完后才写入项目元数据
24-
- 失败时不再提前写入 `project.json`
24+
- `add_nonebot_project()` `create_nonebot_project()` 失败时自动回滚实例记录
25+
- 异步流程支持失败回调,避免半成品实例残留在 `project.json`
2526

26-
### 3. 添加实例第三步失败时不再白板
27+
### 3. 实例列表去重与自动扫描污染修复
2728

2829
- 文件:
29-
- `frontend/src/components/Modals/AddBot/InstallationItem.vue`
30+
- `nb_cli_plugin_webui/app/project/service.py`
31+
- 内容:
32+
- 目录别名(`/external-projects` / `/opt/nonebot-projects`)不再被当成不同实例
33+
- 停用实例列表查询时的自动扫描回填,避免测试残留和重复实例反复出现
34+
35+
### 4. 实例操作页与维护终端拆分
36+
37+
- 文件:
38+
- `frontend/src/views/Operation/OperationIndex.vue`
39+
- `frontend/src/views/Operation/TerminalItem.vue`
40+
- `frontend/src/views/Terminal/TerminalIndex.vue`
41+
- `frontend/src/router/client.ts`
42+
- `nb_cli_plugin_webui/app/process/router.py`
43+
- `nb_cli_plugin_webui/app/process/service.py`
3044
- 内容:
31-
- 增加失败态错误卡片
32-
- 展示失败原因
33-
- 重试时清理上次失败状态
45+
- `/operation` 只展示实例运行日志
46+
- 新增独立 `/terminal` 菜单用于维护 Shell
47+
- 运行日志与维护终端日志使用独立 log key 分流
3448

35-
### 4. bcrypt / passlib 兼容修复
49+
### 5. bcrypt / passlib 兼容修复
3650

3751
- 文件:
3852
- `pyproject.toml`
@@ -41,7 +55,7 @@
4155
-`bcrypt` 固定为 `4.0.1`
4256
- 避免容器启动时出现 `error reading bcrypt version`
4357

44-
### 5. 包改名后的版本读取修复
58+
### 6. 包改名后的版本读取修复
4559

4660
- 文件:
4761
- `nb_cli_plugin_webui/app/application.py`
@@ -63,8 +77,8 @@
6377

6478
## 发版前建议确认
6579

66-
1. 确认 `pyproject.toml` 版本号与待打 tag 一致
67-
2. 确认 `Dockerfile``APP_VERSION` 同步更新
80+
1. 确认 `pyproject.toml` 版本号与待打 tag `v0.4.5` 一致
81+
2. 确认 `Dockerfile``APP_VERSION` 已同步更新到 `0.4.5`
6882
3. 确认这次不包含 `htmlrender` 下载源策略调整
6983
4. 构建镜像后优先验证 NAS 容器创建页是否还会自动带出错误挂载
70-
5. 复测“添加实例失败”场景,确认不再留脏记录、不再白板
84+
5. 复测“添加实例失败”场景,确认不再留脏记录

frontend/src/client/process.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,21 @@ export const openProjectTerminal = async (projectId: string) => {
1818
}
1919
})
2020
}
21+
22+
export const getProjectTerminalLogKey = async (projectId: string) => {
23+
return client.get<{ detail: string }, { detail?: string }>({
24+
url: '/v1/process/terminal/log-key',
25+
query: {
26+
project_id: projectId
27+
}
28+
})
29+
}
30+
31+
export const getProjectRuntimeLogKey = async (projectId: string) => {
32+
return client.get<{ detail: string }, { detail?: string }>({
33+
url: '/v1/process/runtime/log-key',
34+
query: {
35+
project_id: projectId
36+
}
37+
})
38+
}

0 commit comments

Comments
 (0)