1.0.0
发布日期: 2026-02-22
新增 (Added)
- 响应优化中间件
ResponseOptimize(),自动移除 K8s 系统字段(managedFields, finalizers 等) - API 响应大小减少约 50%,提升加载性能
- 前端 API 配置文件
src/config/api.ts(便于未来路由迁移) - v5.4 重构计划:
docs/refactoring/refactoring-plan-v5.4.md - 新增 GitHub Actions tag 构建流程:打 Git tag 后自动构建
w7panel-ui、同步前端产物到w7panel-server/kodata,并通过ko build推送镜像
修复 (Fixed)
安全修复
- LOCAL_MOCK 模式认证绕过: 修复了
LOCAL_MOCK=true模式下跳过用户认证的问题 - 前端路由认证绕过: 修复了未登录可访问敏感页面的问题
API 路由重构 (v5.3)
- 路由规范化: 分离面板业务 API 和 K8s 代理 API
- 面板业务 API →
/panel-api/v1/ - K8s 代理 API →
/k8s-proxy/
- 面板业务 API →
- 前端 API 路径修复: 330+ 处从
/api/v1/迁移到/k8s-proxy/api/v1/ - Helm API 修复: 从
/k8s-proxy/api/v1/helm/*迁移到/panel-api/v1/helm/* - 文档:
docs/refactoring/refactoring-plan-v5.3.md
性能优化
- 请求合并优化: 6 个页面的串行请求并行化
views/app/apps/index.vue: getList, getClusterInfo, getZpk 并行views/cluster/overview/index.vue: version, service, nodes 并行views/app/pages/detail-content.vue: getData, getSans, getPodList 并行views/app/pages/moniter.vue: metrics 请求并行views/storage/disk.vue: getStorageClasses 与 getList 并行views/storage/disk.vue: deleteTag 循环请求并行
- 预计页面加载时间减少 30-50%
UI 修复
- 自动刷新默认关闭: Pod 列表数据不自动更新 → 移除开关,始终自动刷新
- 应用图标加载失败: 添加 @error 处理和默认图标
- 确认对话框位置不当: 改为 position="rt" 右上角
- 日志查看器资源泄漏: 添加 onUnmounted 生命周期钩子断开连接
僵尸进程修复 (2026-02-22)
- 问题: 容器环境中 PID 1 不回收子进程,导致僵尸进程累积
- 解决方案:
- Go 代码添加
PR_SET_CHILD_SUBREAPER+SIGCHLD忽略 - 停止脚本优化为先 SIGTERM 再 SIGKILL
- Go 代码添加
- 文件:
w7panel/main.go- 添加 init 函数w7panel/scripts/start.sh- 改进优雅停止
- 验证: 启动日志显示
set child subreaper successfully
命名规范修复
- 统一 localStorage 键名从
offlineui-*改为w7panel-*
前端警告修复
- Intlify 翻译警告: 修复
t('')空字符串问题,改为使用路由名称作为备选 - Wujie 事件订阅警告: 创建统一事件管理 Hook (
use-wujie-events.ts),自动处理空值检查 - 隐藏容器终端菜单: 添加
hideInMenu: true到 pod-webshell 路由 - 翻译键缺失: 添加
dialog-pod-webshell键到翻译文件
API 路由修复
- 问题:
/version接口返回内容不对 - 修复: 前端调用从
/version改为/k8s-proxy/version(符合 v5.3 重构规范) - 文件:
w7panel-ui/src/views/cluster/overview/panel.vue
namespace=undefined 问题修复
- 根因: Store 初始值为空字符串
'',组件直接使用导致 API 路径出现undefined - 修复方案:
- 修改 Store 初始值:
namespace: 'default'(根因修复) - 添加 namespaceActive 初始化到
dcform-drawer.vue
- 修改 Store 初始值:
- 涉及文件:
w7panel-ui/src/store/modules/namespace.ts- 初始值修复w7panel-ui/src/components/dcform-drawer.vue- 添加 Store 引用
Drawer 组件性能优化
- 问题: Drawer/Modal 组件在页面加载时就调用 API,即使未显示
- 优化: 延迟 API 调用到真正显示时
- 修复组件:
domain-strategy.vue: 移除 created() 中的 API 调用,移到 watch(show)domain-strategy-plugin.vue: 移除重复的 created() 调用
- 优化效果: 减少页面加载时的不必要 API 请求
重要文档更新
启动参数规范(2026-02-20)
问题现象:
serviceaccounts "admin" is forbidden: User "system:serviceaccount:default:default"
cannot get resource "serviceaccounts" in API group "" in the namespace "default"根因:未正确设置环境变量,系统使用 K8S Pod 内 ServiceAccount 而非本地 kubeconfig
正确启动方式:
bash
# 必须设置的环境变量
export CAPTCHA_ENABLED=false
export LOCAL_MOCK=true # 关键:使用本地 kubeconfig
export KO_DATA_PATH=/path/to/kodata
export KUBECONFIG=/path/to/kubeconfig.yaml # 必须使用绝对路径
# 启动服务
cd /home/wwwroot/w7panel-dev/dist
./w7panel server:start更新文档:
- ✅ AGENTS.md - 添加"重要:启动参数规范"章节
- ✅ docs/src/user-guide/deployment.md - 创建部署指南文档
架构重构设计 (v2.0 - 规划中)
设计方案
/api/auth/* → 认证 API
/api/k8s/* → K8S 资源 API
/api/files/* → 文件操作 API
/api/apps/* → 应用管理 API
/api/cluster/* → 集群管理 API
/k8s/proxy/* → K8S API 代理
/public/* → 公开 API实施状态
- ✅ K8sResponseFilter 中间件已实现(支持 JSON/XML/YAML)
- ✅ RequestLogger 中间件已实现
- ✅ RateLimiter 中间件已实现
- ⏸️ 路由迁移暂缓(保持向后兼容,降低风险)
测试结果
UI 自动化测试
总计:12
通过:10 (83%)
失败:2 (需要应用数据,预期行为)通过的测试:
- ✅ 登录功能
- ✅ 集群概览
- ✅ 应用列表
- ✅ 节点管理
- ✅ 存储管理
- ✅ 用户菜单
