13 Commits
Author SHA1 Message Date
TermiNexus 093159629b feat(ui): 本地资源代理 + 车库全屏布局与退出入口 2026-10-25 20:50:13 +08:00
TermiNexus 780373180d feat(session): S3 连接层起步,上行编码 golden + 会话解码自检 2026-10-24 22:43:35 +08:00
TermiNexus fdc516b7f3 feat(state): 迁密码登录与 Twitch 切片,拼出 89 槽位根 reducer 2026-10-23 00:38:10 +08:00
TermiNexus a64530761b feat(state): 移植 Redux 内核(Store/中间件/网关)并加 10 项自检
对照 module_10849 的 toString 证据实现:vt=ReduxStore(归约+监听器+中间件链)、yt=ReduxToModelGateway(按动作类先通知、再交给 Store;模型/键/游戏对象三级订阅,重复订阅 fail-fast)。

自检 TANKIOFFLINE_STATE_TEST=1:归约累加、通知次数与新状态可见性、中间件由外向内顺序、动作监听器先于归约、模型订阅/退订、重复订阅抛错、派发经过调度器,共 10 项全通过。

state 模块补 js(IR){browser();nodejs()} 使 :app 可依赖;新增 tools/RunStateTest.ps1。
2026-10-22 12:47:51 +08:00
TermiNexus b083d27165 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 ce8eeec8d6 fix(tools): 审计改用跨记录位游标,修正多记录帧误判 2026-10-21 03:28:52 +08:00
TermiNexus 7845e5becd fix(protocol): 单帧异常不再中断整轮回放,并记录 enum 宽度实验结论 2026-10-21 02:04:54 +08:00
TermiNexus 3b58a43063 fix(protocol): 修正反查漏掉 \$ 前缀类名的错位,回放错误 12→6 2026-10-21 01:53:51 +08:00
TermiNexus 9975a8662f feat(protocol): 采集运行时 modelId→codec 注册并用源码反查模块归属 2026-10-21 01:32:03 +08:00
TermiNexus ca42614056 feat(protocol): 离线回放支持多目录并补齐 pt 解码失败定位信息 2026-10-21 01:16:21 +08:00
TermiNexus 0ca28ff9b2 feat(autotest): 新增双连接接入测试与链路密钥探测
- AutoTest:大厅 Hash Request → 取 digest/空间 id → 空间连接 EnterSpace → 收空间帧
- StreamDecoder:首条密文即穷举单字节链路密钥(K),之后 s2c 自动解密
- 首条空间帧到达后再加密发送 G.q1wd,服务端才会继续下发容器数据
- RunAutoTest.ps1:自动拉起大厅/空间两条中继,跑完自动回收
- 实测通过:握手成功、K 唯一命中、容器 1 条、回编码一致
2026-10-21 00:38:59 +08:00
TermiNexus f3db51cf4b 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 5088524f22 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