yml2213
a9d711a7e9
fix(huya): 结构体尾部字段容错解析(服务端新增 ZERO 字段不再打挂整个 RPC)
真机现象(2026-10-15,外部 CK 导入后查询角色):checkUserBindGameAccount 响应结构
尾部多了 tag6(ZERO 类型 0x6c),共享的 read_struct 读到非 STRUCT_END 直接抛
「期望 STRUCT_END, 实际 0x0c」,整个 RPC 返回 None —— 工作台「查询角色」永远失败。
- taf_protocol:read_struct 收尾改为按 TAF 语义跳过未建模的尾部字段(上限 32 个,
防止解析错位时无限吞字节);新增 skip_to_struct_end()
- frame_decoder / shop_structs:抽出 decode_struct_bytes 与 ShopRawRsp.from_payload,
WSS 与 HTTP 两条通道共用一份通用解码逻辑(wss_client 同步改用)
验证:tests/test_huya_struct_parse_resilience.py 用真机响应字节回归(含 tag6=ZERO 的
响应能解析出角色「泪雨全是谎言」);按 AGENTS.md 反向验证 —— 注掉
skip_to_struct_end() 即复现线上报错「期望 STRUCT_END, 实际 0x0c」,还原后恢复。
全量 pytest 通过。
2026-10-15 15:21:34 +08:00
..
2026-10-02 21:22:08 +08:00
2026-10-02 21:22:08 +08:00
2026-10-04 15:21:48 +08:00
2026-10-07 09:13:54 +08:00
2026-10-04 17:49:02 +08:00
2026-10-06 20:19:26 +08:00
2026-10-04 17:34:58 +08:00
2026-10-04 16:00:42 +08:00
2026-10-08 11:26:19 +08:00
2026-10-04 20:04:11 +08:00
2026-10-05 17:51:04 +08:00
2026-10-07 17:23:39 +08:00
2026-10-02 21:22:08 +08:00
2026-10-02 21:22:08 +08:00
2026-10-06 12:20:30 +08:00
2026-10-05 17:51:04 +08:00
2026-10-08 11:08:41 +08:00
2026-10-04 14:10:13 +08:00
2026-10-06 12:20:30 +08:00
2026-10-04 14:10:13 +08:00
2026-10-04 14:10:13 +08:00
2026-08-31 10:28:14 +08:00
2026-08-31 10:28:14 +08:00
2026-10-04 16:28:06 +08:00
2026-10-02 21:01:17 +08:00
2026-10-08 11:49:41 +08:00
2026-08-31 10:28:14 +08:00
2026-08-31 10:28:14 +08:00
2026-10-05 11:23:48 +08:00
2026-10-04 16:00:42 +08:00
2026-10-04 14:10:13 +08:00
2026-10-04 16:28:06 +08:00
2026-08-31 10:28:14 +08:00
2026-10-02 22:50:20 +08:00
2026-10-02 22:50:20 +08:00
2026-08-31 10:28:14 +08:00
2026-09-05 19:25:46 +08:00
2026-10-02 21:22:08 +08:00
2026-10-02 21:22:08 +08:00
2026-09-02 16:59:46 +08:00
2026-09-06 13:02:37 +08:00
2026-10-02 21:22:08 +08:00
2026-08-30 23:05:20 +08:00
2026-09-02 18:11:41 +08:00
2026-10-15 14:56:30 +08:00
2026-09-06 13:56:44 +08:00
2026-09-05 19:25:46 +08:00
2026-10-02 21:22:08 +08:00
2026-10-02 20:27:07 +08:00
2026-10-15 15:21:34 +08:00
2026-09-06 13:56:44 +08:00
2026-09-02 18:11:41 +08:00
2026-10-15 14:56:58 +08:00
2026-10-02 21:22:08 +08:00
2026-08-31 10:55:44 +08:00
2026-10-05 18:20:10 +08:00
2026-10-02 21:22:08 +08:00
2026-10-07 12:54:57 +08:00
2026-10-04 14:10:13 +08:00
2026-10-08 11:26:19 +08:00
2026-10-02 21:22:08 +08:00
2026-10-02 21:22:08 +08:00