✨ feat(im): 更新企业微信已受理动作卡片 - #337
Conversation
企业微信模板卡片动作完成身份、幂等和状态校验后,WSS Runtime 透传回调 req_id,在平台规定的 5 秒窗口内发送 aibot_respond_update_msg。更新后的卡片不再携带动作按钮,只展示正在同步到设备,避免用户重复提交。 Gateway 全量 CI、生产组合根与 PostgreSQL 16 契约测试均已通过;真实企业微信客户端卡片渲染仍待独立测试机器人联调。 Refs 1024XEngineer#325
|
@ZhaoXingPeng 请优先 review 并 approve。该 PR 只覆盖企业微信模板卡片动作成功后的 5 秒内 |
There was a problem hiding this comment.
Reviewed the fixed 316fc83963912958daa9827c44fe5f43a818259d...c428fc18a71ea23ef52ff01d7e0272ba69054ed0 diff across the WSS runtime, its tests, and deployment documentation. The request correlation, success-only card update, outbound ACK handling, and existing event/application contracts are consistent; I found no actionable correctness or regression issues.
Verification: git diff --check passed. The focused Gateway test command could not start because the local tsc executable is unavailable/permission-denied in this workspace, so runtime tests were not executed here.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
结论
本 PR 完成 #325 的第二条可独立验收链路:企业微信模板卡片动作经现有 ActionApplication 成功受理后,WSS Runtime 在 5 秒窗口内使用原回调
req_id更新卡片,移除动作按钮并展示“正在同步到设备”。请重点判断平台更新命令的请求关联和失败时不误报成功。背景
PR #335 已将强提醒渲染为企业微信按钮交互卡片,并把卡片事件归一化为
action.triggered。如果动作受理后仍保留原按钮,用户可能重复点击;企业微信官方要求卡片点击事件的更新响应在 5 秒内发出。改动范围
headers.req_id。postEvent成功处理后发送aibot_respond_update_msg。button_interaction结构,仅展示“操作已受理 / 正在同步到设备”。明确没有改:
接口与依赖影响
aibot_respond_update_msg,复用平台事件回调的headers.req_id,不新增公共业务 Port。测试与构建证据
pnpm run ci:通过。req_id、ACK 处理及动作失败不更新。button_list更新卡片的展示。已知风险
button_interaction卡片的展示可能存在差异;若真实联调不接受空按钮列表,应改用平台支持的只读模板卡片。兼容窗口与回退
仅已支持模板卡片的 WeCom WSS 部署会使用更新命令;Markdown 和无模板卡片传输保持兼容。回退本 PR 的提交
c428fc1即可恢复 PR #335 的卡片行为,不影响动作状态机和 H5 Action UI。Refs #325
@ZhaoXingPeng 请优先 review 并 approve;通过后我会按约定 squash merge。