v3.18.8
修权限自愈被待发布版本永久卡死;审核中改为提示人工
权限自愈被待发布版本卡死(本次核心)
线上 3 台 bot 的权限自愈每次重启都失败、反复给 owner 发「缺 N 项必需权限」的 DM,
而真因被日志吞掉了。两个互相独立的死锁:
- 未提交草稿(
code=10043 版本已创建):飞书不允许并存两个未提交版本,存在草稿时
建新版本一律被拒。修法是提交那个草稿——它的 scope 集合与应用当前已声明集合逐项
相等,正是要发的内容;提交它不新建版本、不烧版本号。 - 应用审核中(
code=10046 审核中):审核期间开放平台把整个应用配置写锁,连
「申请权限」本身都被拒 ⟹ 原先给管理员推的权限深链点了必然无效。现在改为如实
告知:为什么卡(附实测线索:哪几项必填数据范围尚未收敛 + 企业审批规则原文链接)、
怎么修(看审批详情 → 修不合规项 → Withdraw 撤回 → restart 自动重提),并显式否掉
「直接撤回重提」与「手动开通」两条无效建议。同一个待审版本只提醒一次(状态落盘,
且仅在 DM 确认发送成功后记账)。
其它
publish/commit返回成功但版本仍停在草稿态时,不再谎报「已发布」——改为回读版本
状态后据实结论(这正是上述草稿的来源)。- 修一处日志把真因吞掉的缺陷:通用错误描述覆盖了具体错误消息,导致一天 5 次失败只
留下「开放平台 API 错误」,那句唯一有用的诊断一次都没打出来。 - 新增审批流程预判:提交后会自动通过的照常办完并说明已生效;需要真人审批的如实告知
在等谁,避免重复提交或干等。 - 开放平台写请求对「TLS 握手前断连」重试,改头像不再被一次网络抖动打挂。
- 恢复被孤儿 WAL 打坏的 SQLite 会话库并改为 fail-closed。
- fifo teardown 唤醒阻塞 read,修 worker 卡死在 process.exit。
- worker 慢启动不再误报消息未接收。
- pi 用自己的轮边界判定失败,中途重试不再误报网关故障。
Dashboard
- 下拉弹层限高可滚动、空间不足时向上弹,长列表不再被裁掉。
- Bot 配置名册改为满高分栏,搜索框不再被挤出视口。
- Bot 配置页与首页启动链去掉两处无谓开销。
新功能
- 入群开工消息文案支持 bot 级自定义。
测试
- 单测切到 bun test 并加 HOME 围栏,堵住测试写脏真实用户目录。
- 补齐入站幂等的五条不变量回归网。
✨ 新功能
- auto-start: 入群开工消息文案支持 bot 级自定义 (#1080)
🐛 修复
- dashboard: Bot 配置名册改为满高分栏,避免搜索框被挤出视口 (#1095)
- backend: fifo teardown 唤醒阻塞 read,修 worker 卡死在 process.exit (#1091)
- setup: 开放平台写请求对「TLS 握手前断连」重试,改头像不再被一次网络抖动打挂 (#1097)
- session-store: 恢复被孤儿 WAL 打坏的 SQLite 会话库并改为 fail-closed (#1093)
- dashboard: 下拉弹层限高可滚动 + 空间不足时向上弹,长列表不再被裁掉 (#1103)
- worker: 避免慢启动误报消息未接收 (#1050)
- pi: 用 pi 自己的轮边界判定失败,中途重试不再误报网关故障 (#1107)
- setup: 修权限自愈被待发布版本永久卡死,并预判审批是否秒过 (#1104)
⚡️ 性能
- dashboard: Bot 配置页首屏去掉两处无谓开销,1958ms → 77ms (#1102)
🔧 其它
🙏 感谢贡献者
Full Changelog: v3.18.7...v3.18.8