Skip to content

feat(feishu): reduce reply fragmentation across card and ordinary modes - #724

Draft
riba2534 wants to merge 4 commits into
mainfrom
codex/feishu-streaming-card-refresh
Draft

riba2534 wants to merge 4 commits into
mainfrom
codex/feishu-streaming-card-refresh

Conversation

@riba2534

@riba2534 riba2534 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

普通富文本和纯文字回复也按实测容量尽量合并:内层 content JSON 使用 150,000 字节预算,仅超过整条消息上限才拆分。原生普通回复每页独立 Outbox,明确 230025 拒绝时只重新规划失败页;全部替代页确认后持久标记父记录已替代,恢复不重复发前页。图片说明和卡片降级路径覆盖同一容量检查,并修复超长围栏死循环与超时后迟到 ACK 继续发送后页的问题。

飞书长回答原先每 12KB 提前续卡,90 条要点会拆成 3 张。现在按实际整卡 JSON 容量尽量合并;单个流式正文组件接近 100,000 Unicode 字符时,在同卡增加正文组件,只有整卡装不下或飞书明确返回容量超限才续卡。200K 英文可使用同一卡片的三个正文组件,复杂 Markdown 被拒绝时从失败页缩小预算,已确认前页保持稳定。

正文放在首位,执行详情按需折叠;修复长文截断、代码围栏碎片、停止提示覆盖正文、用量更新及确认超时并发导致重复发送的问题。结构变更未知 ACK 继续阻止重发,完整保留规范正文。新增挂载级回复模式覆盖,使指定群使用 Assistant 流式卡片,其他共用 Home 的来源继承原模式;schema 75 持久化配置,并隔离热进程及 SDK 恢复模式。

验证:

  • 当前提交 173495af1636736bb514d6e53799a1ff127efefa:4,131 项测试通过、23 项跳过,三个子项目类型检查与生产构建、格式与文档检查通过;GitHub CI(34717708767)全部成功,包含上游故障 smoke、移动浏览器交互和 Agent Runner 自检;本轮独立 Agent 完成 108 项相关测试及 Outbox/并发 ACK 审阅。

  • Mac mini 已部署以上精确提交;复用已通过四组构建与运行测试的不可变 Agent 镜像 git-e3329aaa3581210dcfb837b6b010ac0fbbd5ca73,后续提交没有 container 差异。现有数据和配置保留,未创建部署备份。

  • 当前生产公网 Web/Container Agent 完成真实文件写入、读取和最终回复,浏览器收到 19 个流式事件,包括 text_delta。两个公网入口健康、TLS、静态资源及未登录鉴权正常。临时验收工作区已删除,临时认证会话已撤销。

  • 卡片模式前次真实正式回答:11,018 字符、90 条编号、表格、末尾代码块及 HC_FEISHU_CAPACITY_ONE_CARD_END 全部保留,仅 1 张原生卡片;客户端实际卡片数据确认正文首位、流式正常结束,生产快照 completed 且无错误。上一版同类 9,651 字符答复为 3 张。

  • Mac mini 真实 API 探针验证已发送卡片可以流式写入 99,000 个汉字(297KB),随后成功收尾。未发送实体验证同卡动态新增正文槽、流式写入 200K 英文、删除额外槽及收尾均成功。

  • 之前同分支已验证短回答和真实生成中断:已显示正文保留、卡片显示已中断、流式关闭。「调研」保持 assistant,其他 7 个 Home 挂载继承 proactive,原绑定与历史保留。

  • 本次「调研」普通模式正式回答:8,821 字符 / 23,597 UTF-8 bytes,90 条编号、表格、代码块和结束标记,只有 1 条 POST;实际用户端读取内容去掉段落包装后与规范正文完全一致。Outbox delivered、turn completed、无错误。验收后已恢复该群 assistant 流式卡片模式。

  • 部署版本的分页器经真实接口验证:225,002 字符拆成 2 条 POST,内层 JSON 分别 150,000 和 77,398 字节;逐页读取 content_v2 验证完整原文和结束标记。容量探针消息已撤回。

普通模式依据及边界实测见 docs/feishu-ordinary-message-capacity-2026-09-13.md;卡片容量依据及边界实测见 docs/feishu-card-capacity-2026-09-13.md。300KB 是实测基础上的原始 JSON 预算,复杂 Markdown 的服务端渲染成本可能提前触发限制,不能视为统一正文硬上限。

限制:飞书网页版受到企业设备访问策略限制,未完成客户端动画、滚动及深浅色的直接视觉观察;已核验真实发送结果与客户端接收的卡片结构。

@riba2534 riba2534 changed the title fix(feishu): preserve streamed answers and stabilize card lifecycle feat(feishu): improve streaming cards and configure reply mode per chat Sep 12, 2026
@riba2534 riba2534 changed the title feat(feishu): improve streaming cards and configure reply mode per chat feat(feishu): improve streaming cards and reduce reply fragmentation Sep 12, 2026
@riba2534 riba2534 changed the title feat(feishu): improve streaming cards and reduce reply fragmentation feat(feishu): reduce reply fragmentation across card and ordinary modes Sep 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant