Files
corleom 2042f88c8b release: 3.0.0-beta
修复客户反馈的问题,补齐缺失的后台入口,并解决 NAS 等低配设备装不上的问题。

多件订单只发一份
按订单件数发货此前默认关闭,还要逐个商品手动打开,买家一单买三件只收到
一份卡券。改为默认开启,并加数据库迁移 1.6 补齐存量商品。仍可对单个商品
关闭,该设置不会被后续升级覆盖。

AI 回复频繁失败
- choices[0].message.content 为 None 时直接 .strip() 抛错。回复被 max_tokens
  截断、命中内容过滤,以及把正文放在 reasoning_content 的推理类模型都会走到
  这条路径,表现为"接口是通的,回复却时有时无"。改为分场景明确报错并兼容
  reasoning_content。
- 完全没有重试,一次限流或抖动就放弃。补上有限重试:限流、超时、网关错误
  退避重试,鉴权和参数错误立即放弃,避免拖慢回复。
- max_tokens 三处硬编码 100,中文只有 50~70 字,极易截断。改为读配置,
  默认 400 并做上下限保护。

NAS 与低配设备装不上、资源被打满
- Dockerfile-cn 的 apt、pip、npm 都指向了国内镜像,唯独 Chromium 仍走官方
  CDN,国内构建会卡到超时。补上 PLAYWRIGHT_DOWNLOAD_HOST。
- nuitka、ordered-set、zstandard 只在打包成二进制时用到,服务本身一行都没
  import,却装在主依赖里,在弱 CPU 上会编译到卡死。移到 requirements-build.txt。
- 容器内跳过前端构建:镜像已带产物,运行时既没有 npm 也没有 node_modules。
- 前端目录扫描改为先剪枝再遍历。原本用 rglob 先把 node_modules 几万个文件
  走一遍再过滤,机械盘上能卡好几分钟。
- Playwright 检测优先读 PLAYWRIGHT_BROWSERS_PATH。容器里浏览器在 /ms-playwright,
  原逻辑找不到就靠"真启动一次浏览器"来判断,白烧一次冷启动。
- 新增 docker-compose.nas.yml:直接拉预构建镜像,不在本机编译,也不依赖 .env
  (NAS 图形界面没地方放 .env,缺变量会直接中断部署),内存上限放到 3G。
- 新增 docker-publish.yml,构建并发布 amd64/arm64 镜像到 ghcr。

缺失的后台入口
- 设置页补「修改登录密码」。后端 /change-password 一直都在,只是没有界面。
- 登录页补注册入口与注册表单。「允许用户注册」开关此前开了也看不到入口。
- 注册邮箱验证改为后台开关:没配 SMTP 的部署可以关掉先用起来,配好再开。

验证码邮件不再外发给第三方
未配置 SMTP 时,原先会回退到站外接口 dy.zhinianboke.com 代发,把注册者邮箱
交给第三方,部署方和用户都不知情,而且返回 200 就报"发送成功",用户只会
一直等一封永远收不到的邮件。现已移除该回退:发不出去就直接报错。

设置页开关关掉后打不开
后端把开关存成 'true'/'false' 字符串,前端当布尔用。'false' 是 truthy,关掉
的开关仍显示开启,取反后恒为 false。新增 toBool 统一转换,修正 6 个开关。

其他
- 版本号统一为 3.0.0-beta,「关于」页加官网 xy.corleom.com。
- 更新群二维码,README 补充 NAS 部署与排查说明。
2026-08-14 12:57:52 +08:00
..
2026-08-14 12:57:52 +08:00
2026-08-14 12:57:52 +08:00