环境
- 版本:
v1.8.4(release tag,2026-05-12,通过 install-release.sh 一键安装)
- OS:macOS Darwin 25.5.0 (arm64)
- codex CLI:
codex-cli 0.130.0
- 飞书 App:PersonalAgent,长连接订阅模式
- 同一台 daemon、同一 bot,DM 路径正常
现象
在群聊里 @bot /list 后弹出 target picker。点击卡片里的「选择工作区」按钮不会触发任何后续动作——卡片不更新,daemon 不发出 select_session / confirm,也没有错误日志。连续点 3 次仍无响应,只能 cancel。
同一台 daemon、同一 bot,在私聊里走同样流程会顺序触发:
select_workspace → select_session → confirm → block.committed
群聊路径只触发到 select_workspace 就停了。
复现步骤
- 完成 WebSetup,把 bot 加入一个飞书群
- 群里
@bot 发任意文本,确认 bot 已收到事件
- 群里发
/list
- picker 卡片出现,点击其中任一「选择工作区」按钮
- 卡片无任何视觉/状态变化
期望
群聊 picker 与私聊一致:点击「选择工作区」后立即进入 workspace-selected 状态,进而引导新建/继续会话。
日志证据
~/.local/share/codex-remote/logs/codex-remote-relayd.log
群聊路径(失败)
18:54:49 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.message.text "@唐遥民的Codex 我在群聊里…"
18:54:49 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=notice
18:55:02 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.menu.list_instances "/list"
18:55:02 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=target.picker
18:55:24 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.target_picker.select_workspace event=2409d13f... ← 1st click
18:55:29 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.target_picker.select_workspace event=180f6246... ← 2nd click
18:55:37 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.target_picker.select_workspace event=cca37c7d... ← 3rd click
18:55:39 surface=feishu:唐遥民的Codex:chat:oc_700344cec5... kind=surface.target_picker.cancel ← 放弃
select_workspace 触发了 3 次(不同 event_id,同一 message_id),但没有任何后续 select_session / confirm / state 变化事件。
私聊路径(正常,作为对照)
18:43:20 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.select_workspace
18:43:31 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.select_workspace ← 重复点击
18:43:43 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.cancel
18:43:57 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=target.picker ← 再次打开
18:44:09 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.select_workspace
18:44:22 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.select_session ← 进入下一步 ✓
18:44:26 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=surface.target_picker.confirm ← 确认 ✓
18:46:04 surface=feishu:唐遥民的Codex:user:ou_6c36b5bc... kind=block.committed
私聊路径会 select_workspace → select_session → confirm;群聊路径只到 select_workspace 就再也走不下去。
猜测
- 两条路径都触发了
surface.target_picker.select_workspace action,但 DM/Group 的 surface 标识不同(user:ou_... vs chat:oc_...)
- 怀疑 picker action handler 把"选中工作区"的状态记到了和 surface key 强绑定的位置,而群聊 surface 的 key 在写入或读取时不匹配,于是 selection 没"落下来",UI 也不更新
- 可能跟群聊的 actor-vs-chat-vs-thread 分层有关(actor 是 user open_id,chat 是 group open_id)
备注
环境
v1.8.4(release tag,2026-05-12,通过install-release.sh一键安装)codex-cli 0.130.0现象
在群聊里
@bot /list后弹出 target picker。点击卡片里的「选择工作区」按钮不会触发任何后续动作——卡片不更新,daemon 不发出select_session/confirm,也没有错误日志。连续点 3 次仍无响应,只能cancel。同一台 daemon、同一 bot,在私聊里走同样流程会顺序触发:
群聊路径只触发到
select_workspace就停了。复现步骤
@bot发任意文本,确认 bot 已收到事件/list期望
群聊 picker 与私聊一致:点击「选择工作区」后立即进入 workspace-selected 状态,进而引导新建/继续会话。
日志证据
~/.local/share/codex-remote/logs/codex-remote-relayd.log群聊路径(失败)
select_workspace触发了 3 次(不同 event_id,同一 message_id),但没有任何后续select_session/confirm/ state 变化事件。私聊路径(正常,作为对照)
私聊路径会
select_workspace → select_session → confirm;群聊路径只到select_workspace就再也走不下去。猜测
surface.target_picker.select_workspaceaction,但 DM/Group 的 surface 标识不同(user:ou_...vschat:oc_...)备注