TermiNexus
|
20cc0f9858
|
fix(protocol): TankState 按 23 字节定长 blob(T5)解码,修复 TankCC 后续字节错位
- codec_fields:module_87072::T5 记为单字段 bytes23;pq.tankState 的 TypeCodec 由 85183::jq 改指 87072::T5
- 生成器支持 bytes<N>(ByteArray / R.ReadRaw(N) / W.WriteRaw),重生成 Module87072、Module85183
- 审计链:lib_space_codec 新增 bytes<N>;audit_pt_boundaries / audit_bit_budget 支持 --body/--plain;semantic 暴露 Out.Bits
- 新增工具:audit_bit_budget(nullmap 位预算)、probe_pt_record(pt 项级)、analyze_item_trace(客户端项级打点对照)、dump_codec_src
- wss_server 新增 --dump-plain:把解密+解压后的裸帧体落到 plain/,供离线审计
- 镜像打点:opt 全量位位置、pt 项级字节/位区间、TankCC 逐字段区间;重新打包 unpacked.pack.json
|
2026-10-21 15:21:10 +08:00 |
|
TermiNexus
|
78ce1e60d7
|
fix(tools): 审计改用跨记录位游标,修正多记录帧误判
|
2026-10-21 03:28:52 +08:00 |
|
TermiNexus
|
62ab7f0b2c
|
fix(protocol): 单帧异常不再中断整轮回放,并记录 enum 宽度实验结论
|
2026-10-21 02:04:54 +08:00 |
|
TermiNexus
|
ecd3575a53
|
fix(protocol): 修正反查漏掉 \$ 前缀类名的错位,回放错误 12→6
|
2026-10-21 01:53:51 +08:00 |
|
TermiNexus
|
fcd071485d
|
feat(protocol): 采集运行时 modelId→codec 注册并用源码反查模块归属
|
2026-10-21 01:32:03 +08:00 |
|
TermiNexus
|
76e00f7aa2
|
feat(protocol): 离线回放支持多目录并补齐 pt 解码失败定位信息
|
2026-10-21 01:16:21 +08:00 |
|
TermiNexus
|
9adce9bc93
|
feat(protocol): 补齐容器命令与短命令别名机制
- Containers.kt 实现 lt/pt/zt/alias 四种布局,覆盖 ModelService 4 条容器命令
- 生成 ModelRegistry.ByModelId,供 pt 项按 modelId 展开
- 短命令:_setModelCommandAlias 解码后写入别名表,记录链可按别名继续解
- 下行注册补到 681 条;railgun-battle 400 帧复跑仍为 399/399 回编码一致
|
2026-10-21 00:13:12 +08:00 |
|
TermiNexus
|
a84f87f543
|
feat(tankioffline): 搭建 Kotlin/JS 多模块工程与 S2 全量协议层
- 新增 TankiOffline 多模块骨架(app/core/net/ecs/physics/render/resource/state/battle/ui)
- core 实现帧边界、nullmap 位流、大端读写、varint、fflate 解压
- GenerateProtocol.py 从 names 表生成 644 个模型、679 条下行、361 条上行 Kotlin codec
- 手写 TankState 的 23 字节位打包 codec(真实注册点是 module_87072 的 T5)
- app 增加 Node golden 自检:抓包解码后立即回编码逐字节比对
- 实测 plain/railgun-battle 400 帧:399 条记录全部回编码一致
|
2026-10-21 00:03:18 +08:00 |
|