Pull Request已成功合入, 合并人@CANN-robot
(感谢 duanbingzhe 的贡献)Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
You can self-configure the PR merge rules for this repository. For more details, please refer to Here.
For more, you also can visit HICANN.
PR Approval Progress
✅ Congratulations! All modules have met the lgtm and approve requirements.
Module Approval Details
| module | lgtm status | approve status |
|---|---|---|
| repo-cann/cannbot-sentry | ✅ guanxinghua, qwren (2/2) | ✅ guanxinghua (1/1) |
💡 Tip:
- Committer can comment
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)
CLA Signature Pass
duanbingzhe, thanks for your pull request. All authors of the commits have signed the CLA. 👍


这个新模块(ENVELOPE_KEY / readEnvelope / envelopeFields)在仓库里没有任何引用——信封双名(x_lake 优先 / x_cannbay 兜底)的读写实际是散落在 mirror.ts(readSessionMetas / bareDirHoldsNativeRecording)、export.ts(xLake 手工双写)里内联字符串字面量完成的,与这里声明的「中立位置,两域都可引」意图脱节。建议要么把这些读/写点收口到本模块,要么删掉这个死模块——否则「下个大版本退役旧键」时每个内联字面量点都要单独改,防回潮哨兵也无法借单一真身判定。


if (!cfgRes.ok) throw new Error(...) 在 try/catch 之外:handleSave 由 onClick 直接调用(未 await 的 async 函数),这里的 throw 会变成 unhandled promise rejection——setError 不会触发,弹窗零反馈,用户只看到「连接数据仓」按钮点了没反应。unconfigured 首次配置路径很容易踩到:地址含 FORBIDDEN_ADDRESS_CHARS(引号/$/;/&/|,例如从文档粘贴的带弯引号 URL)时 PUT 返回 400,静默失败;cfgRes.json() 在非 JSON 错误响应上同样裸抛。建议把这段落进下方 try/catch(或单独 catch 后 setError 再 return)。


loadLakeConfig() 只读新键 cannbot-insight-lake-config,但存量用户的偏好存在旧键 cannbot-insight-cannbay-config(上一版 saveCannbayConfig 写入)——PR 描述与文件头注释声称的「localStorage 降级为存量预填源(保存即迁移)」实际不会发生:升级用户打开设置页表单为空,地址/分支/目录需要全部重填(服务端 lake-config.json 此时还不存在,没有别的迁移源)。clearLakeConfig() 也只清新键,旧键永久残留,与「清旧键防复活」的注释不符。建议 loadLakeConfig 新键 miss 后回落读旧键,clearLakeConfig 同时移除两个键。


嵌套 rootDir 兜底分支把 baseline 硬编码为 false:nestedRe 的 (baseline\/)? 可选组能匹配 <rootDir>/baseline/<sid>/,但命中后 push 的 loc 是 { root: rootDir, baseline: false }——locationPath 解析成 <rootDir>/<sid>/(错误位置)。后果:materializeSession 对该会话报「Session folder not found in lake」,uploadFolder 的 staleLocs 清理也指向错误路径。旧版单根路径对 <rootDir>/baseline/<sid>/ 与普通位都正确识别(rootDir 不含 / 时走多根正则同样正确),这是嵌套 directory + baseline 组合的回归。建议按 rootLevel/rootBaseline 同款方式分别判定两种形态,或循环里记录 m[2] 是否命中 baseline 段。


/compile


| 🚀 CI 流水线已启动 |
|---|
| 📋 执行详情: 点击查看流水线 |


/approve


数据湖链路平台化(4 个 refactor + 哨兵 + 修复,12 提交)
breaking(两条)
LAKE_*:旧前缀环境变量不再识别,部署脚本需迁移;CI/脚本改为直接写服务端配置文件lake-config.json(0600),解析链「请求体(仅编辑态探测)> 服务端配置 > env」——此前 Viewer 等服务端消费面只认环境变量,与设置页配置脱节;换浏览器/服务端加载直接生效lake-auth.json:读旧写新,存量凭据无感迁移架构收敛
src/lib/lake/、API/api/ingest/lake、页面lake_viewer(旧路由跳转保留)——数据湖功能与特定数据仓实现解耦;地址无占位默认,未配置 fail-fast 指引src/lib/lake/,异步克隆栈/详细列表/notes 链归位引擎;session 大文件只落一处lib/lake/platform.ts(host 归一/错误码分诊/属主反查)——引擎其余部分零平台假设,其他托管平台无需适配即用通用语义x_lake(写侧双名过渡、读侧新键优先旧键兜底——存量数据零迁移,全链 17 读点/20+ 写点),下个大版本退役旧键配置体验
修复
防回潮