layout: restructure into src/ tests/ android/ scripts/ tools/

- extension/src/{port,platform,codepage} -> src/; native_render -> src/host
  (+ dxt, shaders/); libgr2 -> src/gr2; extension/third_party -> third_party
- extension/tests -> tests/port, libgr2/tests -> tests/gr2
- android-native -> android (build.sh, push-client.sh moved in)
- script -> scripts; tools/40250 -> tools/server; oracle -> tools/granny-oracle;
  perf tools -> tools/perf
- all build trees under build/ (native, release, android, port-gate)
- xrender:: CMake aliases -> mt::; port-map ledger impl paths rewritten

No code changes. ctest 15/15, port_gate macos+android PASS, port_map check 0 errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shenlei
2026-09-29 19:08:19 +09:00
co-authored by Claude Opus 5.5
parent 70710477cf
commit a46093104c
2817 changed files with 13728 additions and 13744 deletions
+6 -6
View File
@@ -276,7 +276,7 @@ FAIL: in-game peer close keeps the LoginWindow retry owner on the same session
- `extension/src/net/classic/classic_session.h/.cpp`:统一静态 Matrix/Passpod/Panama/HS/XTrap 和动态 HybridCrypt 的 unsupported guard,保留当前 phase owner。
- `extension/src/net/classic/classic_parser.h`:允许 session 记录未处理 header,保持现有诊断队列。
- `extension/src/net/m2_client.cpp`:增加 `optional_security_required` 信号,供 Godot 部署层显示或阻断不兼容服务配置。
- `extension/tests/net_classic_session_test.cpp`:增加动态 HybridCrypt 分帧、显式通知、owner 保留和后续包对齐回归。
- `tests/port/net_classic_session_test.cpp`:增加动态 HybridCrypt 分帧、显式通知、owner 保留和后续包对齐回归。
修复后验证:`net_classic_session_test` PASS。完整 HybridCrypt key/SDB 注入、Panama IV、Matrix/Passpod UI、HS/XTrap response 仍未实现,
因此本分支只关闭“不可见/误断线”的部署前置差异,合同继续保持 `PARTIAL`。
@@ -773,7 +773,7 @@ peer close、旧新 socket 竞态和完整 UI retry 包序仍没有 fixture,
- `extension/src/net/classic/classic_stream.h/.cpp`:增加可选 `on_unknown_header` phase-owner hook;hook 接受时清空 receive burst 并保留连接,未设置或拒绝时保留严格默认行为。
- `extension/src/net/classic/classic_session.cpp/.h`:为 active session 安装统一 unknown-header owner,并增加析构前解绑所有 stream 回调,避免 stream 最终 `Offline` 通知写入已析构的 session 字段。
- `extension/tests/net_classic_session_test.cpp`:加入真实 loopback socket 上的 Loading 未知包回归。
- `tests/port/net_classic_session_test.cpp`:加入真实 loopback socket 上的 Loading 未知包回归。
修复后验证:
@@ -811,7 +811,7 @@ peer close、旧新 socket 竞态和完整 UI retry 包序仍没有 fixture,
修复内容:
- `extension/src/net/classic/classic_session.cpp`:增加 auth stream connect-failure 回调,清理 auth/game transition 标志、记录连接错误并回到 Offline owner。
- `extension/tests/net_classic_session_test.cpp`:加入死端口连接失败、旧 stream 清理、同 session 重试和重新发送单个 `CG_LOGIN3` 的回归。
- `tests/port/net_classic_session_test.cpp`:加入死端口连接失败、旧 stream 清理、同 session 重试和重新发送单个 `CG_LOGIN3` 的回归。
修复后验证:
@@ -846,7 +846,7 @@ peer close、旧新 socket 竞态和完整 UI retry 包序仍没有 fixture,
修复内容:
- `extension/src/net/classic/classic_session.cpp`:抽取统一 active phase-owner unknown-header 回调,并同时安装到游戏/认证 stream;不是针对 header 200 的单包特判。
- `extension/tests/net_classic_session_test.cpp`:加入 `PHASE_AUTH -> unknown application header` 的 live loopback 回归。
- `tests/port/net_classic_session_test.cpp`:加入 `PHASE_AUTH -> unknown application header` 的 live loopback 回归。
修复后验证:
@@ -1176,7 +1176,7 @@ DirectEnter/GC_WARP live 包序和可选安全 runtime 仍未取证,合同继
修改文件:
- `extension/src/net/classic/classic_session.cpp`
- `extension/tests/net_classic_session_test.cpp`
- `tests/port/net_classic_session_test.cpp`
修复后验证:
@@ -1884,7 +1884,7 @@ FAIL: auth success starts game transport before clearing auth transport like 402
- `ClassicSession::pump()` 在认证成功交接中先调用 `m_stream.connect()`,再调用
`m_auth_stream.disconnect()`;共享的 transition guard 仍覆盖两个清理/连接回调,未改变
游戏连接失败、peer close 或登录重试 owner。
- `extension/tests/net_classic_session_test.cpp` 增加真实 loopback 双 transport fixture,
- `tests/port/net_classic_session_test.cpp` 增加真实 loopback 双 transport fixture,
验证 `game:connecting -> auth:offline` 的顺序,并继续接受替换后的游戏连接,覆盖连接成功、
认证清理和旧 transport 边界。