Skip to content

重定向 Seed/Relay 的 SuperRelay key fast-path 未 provision 到 BOT_HOME(既有缺口,登录靠 bytedcli SSO 兜底) #606

Description

@deepcoldy

背景

在 PR #605(重定向 Codex 不再暴露宿主 ~/.codex + authPaths 按宿主数据根过滤)的 codex 复审中发现一个与该 PR 正交的既有缺口,此处单独记录以免遗忘。

问题

重定向 bot(sandbox + supportsReadIsolation + !wrapperCli + SESSION_DATA_DIR)会把 CLI 数据重定向到 BOT_HOME(CLAUDE_CONFIG_DIR/CODEX_HOME)。对 Seed / Relay(经 createClaudeFamilyAdaptersupportsReadIsolation: true):

  • worker 在 adapter spawnEnv 之后覆盖 CLAUDE_CONFIG_DIR = <BOT_HOME>/claudeworker.ts spawnEnv@7000 → override@7027,注释明写 "set AFTER spawnEnv so it overrides")。
  • Relay 包(@bytedance-relay/claude-code)的 getStoredBytedCloudApiKey() / 启动 fast-path 从 join(getClaudeConfigHomeDir(), "byted-cloud-auth.json") = $CLAUDE_CONFIG_DIR/byted-cloud-auth.json 读 SuperRelay key。
  • 重定向后该路径 = <BOT_HOME>/claude/byted-cloud-auth.json,但 provisionIsolatedBotHome 的 claude 分支只种 settings.json / .credentials.json / .claude.json从不复制 byted-cloud-auth.json

结果:重定向 Seed/Relay 的 SuperRelay key fast-path 在 BOT_HOME 下始终为空,登录只能靠 ~/.local/share/bytedcli 的 SSO fallback(PR #605 已确保这条 authPath 在重定向下保留)。也就是说当前登录不 broken,但 fast-path 名存实亡,且这是 master 早已存在、非 PR #605 引入。

建议

provisionIsolatedBotHome(或等价的每次冷启同步点)为 claude 家族且声明了 <dataDir>/byted-cloud-auth.json authPath 的适配器(Seed/Relay),把宿主 <dataDir>/byted-cloud-auth.json provision/sync 到 <BOT_HOME>/claude/byted-cloud-auth.json(类似现有 .credentials.jsonwriteCredIfChanged 每次 spawn 同步,让别处 re-login 自愈)。

需一并测清的点(所以单独做而非并进 #605):

  • 同步策略(每次 spawn 覆盖 vs 首次种入)与 token 刷新方向(谁是权威副本);
  • 冷启 / token 过期 / 别处重新登录 三种场景;
  • ~/.local/share/bytedcli SSO fallback 的优先级关系。

参考

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions