Conversation
|
你好 @xgp01 ,这个 PR 的自动评审群已建好:飞书评审群,首次 review 与复审正在群内进行。不过你目前不在我们的自动拉群名单里,暂时没有把你拉进群。如果希望直接在群里参与讨论,麻烦把你的 GitHub 账号和飞书信息补录到这份名单文档:https://bytedance.larkoffice.com/wiki/WJ1nwWbtxi89erkNGNbcgkt9nUe ,补好后后续复审我们会自动把你拉进群。本条为自动流程消息,感谢贡献! |
Co-authored-by: TRAE CLI <traecli@bytedance.com>
b962516 to
4526776
Compare
|
感谢这个 PR,设计文档写得很清楚,实现整体也很完整(nonce 落盘前哈希、幂等发布 UUID、audience/admin 双重校验都考虑到了)。下面是自动评审的初步意见,按建议处理顺序列出,最终以维护者审阅为准。 评审基线:已在本地 rebase 到最新 F1(设计级,建议先决策):与主干「统一回复卡」的投递模型冲突
const replyRecord = canUseReplyCard ? replyStore.read(replyKey) : undefined;
if (replyRecord && replyKey) {
// 统一回复卡分支:直接 replyStore.update(...) 公开投递
} else {
const stagedMessageId = await maybeStageFinalReview(cardJson); // 私密审核只在这里
...
}私密审核的 staging 只存在于 需要说明的是,这个绕过是有条件的,不是全量失效:命中上面那条分支的门是 另外,把 staging 补进 unified 分支恐怕也救不回语义: 建议方向(二选一,但不建议维持现状):
现网影响有限:目前所有 bot 都是 legacy 模式,该路径暂不可达,所以这更像是「先把闸关上」而非线上故障。 F2(改断言):一处既有测试需要同步
if (effectiveResponseKind === 'final' && !customCard && !pureVideoSend
&& !vcMeetingManagedSendOrigin && !privateReviewStaged && messageId) {主干 #1341( F3(补一个负向测试):nonce 校验缺覆盖
if (record.nonceHash !== nonceHash(input.nonce)) return { ok: false as const, reason: 'expired' };把这行改成恒真短路后,相关 10 个用例仍然全绿;作为对照,把下面的 两个非阻断的小建议
以上为自动评审的初步意见,可能有误判,最终以维护者审阅为准。F1 涉及设计取舍,建议先确认方向再动手。辛苦了! |
变更
privateReplyReview配置,默认关闭。botmux send --response-kind final和 daemonfinal_output兜底两个公共出口。/card不受该开关影响。影响面
botmux send和 daemon fallback。验证
NPM_CONFIG_CACHE=/private/tmp/botmux-npm-cache npx --yes bun@1.4.2 run test -- test/private-reply-review.test.ts test/private-reply-review-config.test.ts test/cli-send-hook-context.test.ts test/bridge-final-output-retry.test.ts test/dashboard-bot-payload.test.ts test/card-prefs-auto-start.test.tsNPM_CONFIG_CACHE=/private/tmp/botmux-npm-cache npx --yes bun@1.4.2 run buildgit diff --checkCloses #1360