ci / verify (push) Canceled after 0s
Add customer and operator login, BLE provisioning, device fleet controls, call memory, memoir generation, and refreshed family and maintenance portals. Include API contracts, migrations, firmware sources, tests, assets, and deployment documentation.
6.4 KiB
6.4 KiB
聊天接入阶段交付
时间:2026-09-14。此文档记录实际完成项,不表示已通过供应商/真机完整聊天验收。
当前版本:简化直连聊天
用户要求简化后,当前已上线 0.88.0-rc.direct1。以下新记录优先于本文旧版阶段记录。
- 设备业务接口缩减为
POST /api/v1/device/chat/start和POST /api/v1/device/chat/end;自动保活复用 start,不再调用 warmup/prepare/events/command-acks,也不上传字幕。 - 火山原生字幕入口:
POST /callbacks/v1/volcengine/chat?session_id=...,会话独立签名、去重、授权检查和迟到回调隔离。现有小程序记录页沿用,不需要另改记录 API。 - 不再要求 H01–H12 profile 发布或人工远端停止证明才能开始下一通;本地 SDK 停止和火山远端状态仍区分保存,不伪造供应商证明。
- 沿用服务器现有豆包 S2S 参数文件。平台已授权记忆放进本次上下文,原生共享记忆库关闭;本版不是火山自动长期记忆同步。
- Go 全包测试通过;独立临时数据库的 callmemory/onboarding/httpapi 测试通过。真实 C 适配器 ASan/UBSan 测试通过:开始取参数、无字幕上传、结束重试不变、失败恢复、权限拒绝、租约过期、迟到响应不恢复音频。SDK 敏感日志检查通过。
- 发布时发现 callbacks 不挂载设备启动参数文件,已移除该服务不需要的配置项;最终 API、worker、callbacks 健康,三个公网接口拒绝未授权请求。完整发布清单及源码归档重新校验通过。
- 已烧录 app 分区,大小 3700048 字节,SHA-256
0afece4ff2484cba17065d7c2350aff7b98fae94a32cb70b75df2f438facf6c5,ELF 前缀61ceb73ac。保留 NVS、Wi-Fi、绑定代次 9。 - 已完成真实火山设备注册:
SDK_REGISTER / SUCCESS_OBSERVED / 0;设备初始化配置确认已到达后端,状态REGISTERED_OBSERVED。这是真实设备注册,不是模拟结果,但仍不等于实际对话和字幕回调验收。 - 最终固件启动观察 55 秒:只有主动 USB 复位一次,没有额外重启;联网、注册、激活结果、初始化确认均返回 HTTP 200;启动任务栈余量 11880 字节。
- 刷机前应用备份:
firmware/echoear-platform-agent/.tmp-call-device/before-direct-chat-app.bin(完整 5 MiB),前 3705696 字节哈希与上一版稳定程序一致。 - 已请用户轻触屏幕试聊并挂断;实际声音和火山字幕回传结果待确认。
以下为旧版阶段记录
已更新
- 后端已上线版本:
0.87.1-rc.call2,部署目录/opt/data-terminal-cloud/releases/0.87.1-rc.call2,数据库 schema 63,未新增迁移;发布后 API、worker、callbacks 健康检查通过,公网版本接口确认一致。 - 新接口:设备
voice-runtime,小程序memories/calls/query、memories/calls/turns。 - 已有通话 prepare/heartbeat 增加最新
voice_chat授权快照检查;没有更改任何用户的实际授权。 - 小程序源代码:
C:\Users\19926\WeChatProjects\peibanzhushou。新聊天记录与旧版记录分别查看,列表分页、详情分页、隐藏页面后的迟到响应隔离。不代表已上传微信体验版或正式版。 - 固件新增 CALL-MEMORY-1.1 适配、RTC 构建、设备级凭据保存、许可/结果上报、首通事件、心跳、本地音频门控、文字事件重试、重启结束补偿。
验证
- Go 全包测试通过;使用独立临时数据库的
callmemory、onboarding、httpapi集成测试通过。 - 小程序 31 项测试通过,8 个 WXML 和 9 个 WXSS 原生编译通过。
- 对真实
call_client.c执行主机 ASan/UBSan 测试:租约过期、真实观察事件顺序、失败重试正文与 ID 不变、撤销保存后的内容清除、缓存上限、超大 JSON 缺口、迟到心跳不可恢复、结束清理。 - 供应商 SDK 的日志扫描覆盖包含 verbose 在内的日志等级,不输出会话正文、配置、Device Secret 或动态注册解密内容。
- 线上新增接口匿名请求被拒绝;API/worker/callbacks 健康检查通过;签名读取确认原设备仍处于绑定状态。
硬件升级与回退
- 设备:EchoEar ECHOEAR-S3 V1.2,COM6,MAC
b4:3a:45:16:34:a8。 - 更新仅写应用分区
0x10000;未擦除 NVS、Wi-Fi、出厂身份、模型、屏幕资源或现有绑定。 - 已读取应用分区完整备份:
firmware/echoear-platform-agent/.tmp-call-device/before-call-app.bin,5 MiB。 - 备份前 3146016 字节 SHA-256 与原稳定版本一致:
68f1dd9f8314079695e47c8940b05f95fb849339bcaf14955a496437143d9199。 - 第一版 RTC 固件的真机验证发现 Wi-Fi DMA 内存不足触发重启;立即恢复上述原固件,25 秒观察中只有主动复位,无额外重启。
- 随后修改 station 模式静态 RX/TX 各 6 帧、动态 RX 16、缓存 TX 8、接收 BA 窗口 6;Wi-Fi 初始化失败改为错误返回,不再触发 abort 重启;纯 BLE 出厂身份可以直接进入正常联网流程,不依赖旧 UUID 凭据。
- 调整后的固件实测 55 秒:只有主动 USB 复位一次,无额外重启;启动登记及语音配置接口返回 200,warmup 返回预期的
PROVIDER_PROFILE_UNVERIFIED。内部空闲 RAM 77647 字节,启动任务剩余栈 11864 字节。 - 最后增加上传前权限字段:warmup/heartbeat 明确返回
transcript_upload_allowed,缺失或拒绝即禁止设备发送正文。 - 最终固件已写入并通过 esptool 内容校验:3705696 字节,SHA-256
738edc55f481bd419d380d2519169bb7e9a82a2f57d547ca86918257424bb712;ELF 前缀65b26cf6b。公网签名查询确认设备仍已绑定。 - 最终固件再次观察 55 秒:仅主动 USB 复位一次,无额外重启;启动登记和语音配置同步均为 HTTP 200;warmup 明确返回 HTTP 409 /
PROVIDER_PROFILE_UNVERIFIED,启动栈余量 11888 字节。尚未进入真实 RTC 通话,以上稳定性结论仅覆盖启动与配置检查。
未完成的验收/功能
当前线上没有已验证发布的 RTC profile,因此不会消耗供应商注册许可或开启聊天麦克风。 以下仍是阻塞/后续项:真实 profile 与 H01–H12 验证、供应商远端停止自动核对、连续多通实测、长字幕分片和修订、打断与播放完成的逐句证据。 不能将“固件编译成功/平台接口可用”说成“已与豆包完成实际对话并上传聊天记录”。
接口与实际通信步骤见 voice-chat-flow.md。