fix(read-isolation): send-cred/riff-env 带上 brandLabel,修复隔离/沙盒 bot 的 botmux send 页脚丢角色#508
Open
xu4wang wants to merge 1 commit into
Open
fix(read-isolation): send-cred/riff-env 带上 brandLabel,修复隔离/沙盒 bot 的 botmux send 页脚丢角色#508xu4wang wants to merge 1 commit into
xu4wang wants to merge 1 commit into
Conversation
…脚丢角色
隔离 bot 的沙盒会话跑 `botmux send` 时读不到 bots.json(读隔离 deny),只能从
自己 BOT_HOME 的 send-cred.json 拿配置。但 send-cred 此前只写了 `brand`(feishu/lark
域名),没写 `brandLabel`(页脚模板,如 `[{cwdName}]({cwdUrl})`)。而
`registerSelfFromCredFile` 用 send-cred 在内存注册后,`resolveBrandLabel()` 直接返回
内存里的 `config.brandLabel`(已注册就不再回落读 bots.json)→ 返回 undefined →
`renderBrandTemplate(undefined,…)` 退化成默认品牌 → **隔离 bot 的 send 页脚丢掉角色
名/链接**。(daemon 侧渲染的卡片不受影响:daemon 不沙盒、内存里有 brandLabel。)
修复:把 brandLabel 沿「init 消息 → send-cred.json → registerSelfFromCredFile」这条链
一路带下去:
- types.ts:init 消息类型加 `brandLabel?: string`
- worker-pool.ts:两处 forkWorker 建 init 时填 `brandLabel: botCfg.brandLabel`
- worker.ts:写 send-cred.json 时带上 `brandLabel: cfg.brandLabel`
- cli.ts:`registerSelfFromCredFile` 从 send-cred 读 `brandLabel` 并注册进去
测试:新增 2 个单测锁定「注册带 brandLabel → resolveBrandLabel 返回它 / 不带 → undefined」
(隔离 send 路径依赖的正是这条语义);相关 305 测试无回归;build 通过。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- 补 riff env 模式:riff 远程沙盒无 send-cred 文件,改由 daemon 注入 BOTMUX_LARK_BRAND_LABEL 环境变量,riffModeSession 读回填进合成 BotConfig(codex 复验发现的第 3 条 send 路径)。
- riff env 空串处理:改用 `!== undefined` 注入、读时不再 `|| undefined`,让 brandLabel=''(=显式关闭页脚)在 riff 也如实 round-trip,与 send-cred 路径一致(codex 复验第 2 点)。
xu4wang
force-pushed
the
fix/isolated-brand-footer
branch
from
July 17, 2026 05:15
f3bcf10 to
2735902
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题
隔离(读隔离)bot 的沙盒会话跑
botmux send时读不到bots.json(读隔离 deny),只能从自己 BOT_HOME 的send-cred.json拿配置;riff 远程沙盒 更是没有本地文件、只能吃 daemon 注入的 env。而这两条路都只传了brand(feishu/lark域名),没传brandLabel(页脚模板,如[{cwdName}]({cwdUrl}))。registerSelfFromCredFile()/riffModeSession()用这些源在内存注册 bot 后,resolveBrandLabel()直接返回内存 config 的brandLabel、不再回落读 bots.json → 返回undefined→renderBrandTemplate(undefined,…)退化成默认品牌 → 隔离/沙盒 bot 的 send 卡片页脚丢掉角色名/链接。(daemon 侧渲染的卡片不受影响:daemon 不沙盒、内存里有 brandLabel。)修复
把
brandLabel沿所有「沙盒 send」链路一路带下去:types.ts:init 消息类型加brandLabel?: stringworker-pool.ts:两处forkWorker建 init 时填brandLabel: botCfg.brandLabel(普通 + adopt 路径,resume/refork 复用)worker.ts:写send-cred.json时带上brandLabel;cli.tsregisterSelfFromCredFile读回并注册worker.ts:注入BOTMUX_LARK_BRAND_LABEL环境变量(镜像已有的BOTMUX_LARK_BRAND);cli.tsriffModeSession读回填进合成 BotConfig兼容性
brandLabel的 bot / 非隔离 bot 行为不变(仍undefined→ 默认页脚)。brandLabel只是页脚模板字符串,放进已是0600的 send-cred 无额外泄漏面。测试
pnpm build通过(tsc 全链路类型打通);相关 305 测试无回归。