Repository navigation
Conversation
|
@Hyperzsb 你好,已为这个 PR 创建自动评审群,请点击下面的链接加入(链接一年内有效): 目前你的飞书账号还不在自动拉群名单里,暂时无法自动邀请;也可以把 GitHub 账号和飞书信息补录到名单文档,补好后后续复审会自动拉你进群:https://bytedance.larkoffice.com/wiki/WJ1nwWbtxi89erkNGNbcgkt9nUe (本条由 botmux 自动评审流程发送) |
|
感谢这个 PR!以下是自动评审的初步意见,最终以维护者审阅为准。 验证情况
整体边界设计是严谨的:lark-cli 应用与用户双重身份都跟发送人走、fail-closed 方向一致、larkdev 显式 opt-in 不静默扩权。 建议修改(均不阻断安全语义)
另外注意到目前 CI 只跑了 Nits(可不阻塞)
行为变更(供维护者评估,非缺陷)升级后:① 旧版复制过共享应用的 |
🔴 追加:复审发现 1 个阻断项(P1,需修后重新评审)二轮复审(独立复核)确认:沙箱会话把当轮发送人的 lark-cli 私有 HOME 快照到了一个基线可读可写的公共目录,导致跨会话/跨 bot 的凭据泄漏。 泄漏路径
而 fs-policy 基线对 用真实
修复方向(已在策略层逐条实证,请按此实现)
其余待改项(维持上一条评论,补充复审意见)
行为变更提醒(供维护者评估,非缺陷):旧版复制过共享应用的 以上为自动评审的初步意见,最终以维护者审阅为准。 |
ff37355 to
361bde5
Compare
|
已根据评审意见完成修复,并 rebase 到上游
验证结果:
PR 描述已同步补充无条件沙箱影响面、存量用户两阶段重新授权提示及最新验证结果,请重新评审。 |
三轮复审(新 commit
|
|
补充一条非阻断建议(交叉复审确认):
其余结论维持上一条:P1 已验证修复;合入前建议修掉 symlink-HOME 的 carve 门控(门控前两侧 realpath 归一 + symlink 断言);larkdev 信号退出码 P3 可一并修。自动评审初步意见,以维护者审阅为准。 |
|
已按最新评审意见完成修复并推送,当前 head 为 修复结果
验证结果
|
四轮复审(新 commit
|
f46f1e1 to
6014846
Compare
整合最新 master(含 deepcoldy#1606 标准会话 lark-cli 绑定):dashboard 授权路由按 boundTool 双轨分流(标准绑定会话走 bot 应用 requestUserAuthorization; 按人鉴权会话走发送人个人 app 的 beginLarkCliLogin),auth-status 轮询按 身份形态分别落 token / HOME,app-token 支不写 trigger-user 身份文件。 Co-authored-by: TRAE CLI <traecli@bytedance.com>
合入前整合说明(维护者操作,已 force-push 到本分支架)为解除与最新 master 的冲突,维护者按评审流程把本分支整合 rebase 到了最新 master( 整合需要解决与 #1606 在同一片身份代码上的冲突,其中 3 处是纯文本并集(import 并存、窄孔路由与授权类型并列、一个条件取交集);另有 1 处真实语义分叉做了双轨分流,在此说明,便于你核对:
整合树验证: 如果这个双轨分流的处理方式你有不同意见,欢迎在本 PR 评论;否则评审通过、维护者确认后即可合入。感谢高质量的四轮迭代。自动评审整合说明,最终以维护者审阅为准。 |
整合最新 master(含 deepcoldy#1606 标准会话 lark-cli 绑定):dashboard 授权路由按 boundTool 双轨分流(标准绑定会话走 bot 应用 requestUserAuthorization; 按人鉴权会话走发送人个人 app 的 beginLarkCliLogin),auth-status 轮询按 身份形态分别落 token / HOME,app-token 支不写 trigger-user 身份文件。 Co-authored-by: TRAE CLI <traecli@bytedance.com>
6014846 to
be1995c
Compare
背景
triggerUserAuth的目标是让同一 Botmux 会话按每轮消息发送人切换 CLI 身份。原有路径中,lark-cli的首次配置可能复用宿主机应用配置,larkdev也可能读取宿主~/.larkdev/auth或 ByteCloud 环境变量,导致应用和登录态越过发送人边界。本修复沿用现有的 per-sender HOME、turn wrapper 和自动授权架构,不引入新的 session 身份模型;重点收紧 lark-cli 应用/登录态、bytedcli JWT 与 larkdev ByteCloud 身份的边界。
改动
lark-clilark-cli-home,首次使用时从空目录执行原生config init --force-init。--new,授权页面仍允许选择已有应用,也可由用户按需新建;成功后自动复用个人应用和登录态。/login仅保留兼容入口。bytedcli/larkdevBYTECLOUD_AUTH_AS和 ByteClaw 标记;wrapper 退出时清理该临时目录。~/.cache/botmux/session-tmp,只对当前会话重开其私有 scratch;未启用triggerUserAuth的沙箱也不能读取其他会话留下的凭据快照。session-tmp,并以更深的可写 carve 仅重开当前会话目录。tools时仍只启用 lark-cli/bytedcli,不会自动扩大权限。config init30 秒内未产生 URL 时记录去除终端控制符后的输出尾部与当前 TUI 阶段。.botmux-login-challenge,并明确注释每轮auth status --verify网络校验的原因。界面示意:
影响面
triggerUserAuth的应用/用户授权、JWT 发布和 wrapper 切换只影响显式启用该能力的 Bot;larkdev 仍需显式选择。session-tmp的 deny 对所有 fs-policy/scratch 沙箱会话无条件生效,当前会话通过更深路径重开自己的目录;非沙箱会话不受影响。兼容与升级说明
lark-cli 1.0.97的config init --force-initTUI/参数契约验证;没有使用会强制创建新应用的--new。origin/master9b8bb024f,author/committer 均使用 GitHub 身份Hyperzsb。验证
bun run buildb05370dacca915 passed806 passed, 2 skippedlark-cli-home可读写。~/.cache。bun run test(原始提交的全量基线)12 failed | 1622 passed | 4 skipped18 failed | 29650 passed | 95 skipped/proc、root 下 chmod 无法模拟 EACCES、watcherEMFILE、运行时/proc/comm=MainThread及既有进程/adopt 路径断言。本次修改覆盖的定向测试均通过。bun run daemon:restart