4.4 KiB
4.4 KiB
远程配置读取与内存解析验收
日期:2026-09-05。分支:codex/local-platform-login。设计与计划提交:62328b6。
范围
debug、release 均读取远程 JSON,按原工程身份层级读取参数,仅保存在内存变量。无远程配置文件落盘、localStorage 快照或失败缓存兜底。Login Layer/MainMenu 和其他 RPC 接线不在本批。
实际浏览器预检
- funplay MCP
fp_c4e73df9a6e175c3:Creator 打开G:/Works/YouleGamesCocosCreator/cocoscreator_projects/YouleNexus,场景 dirty=false;已有预览窗口 9 位于http://127.0.0.1:7456/?profile=local。 fp_bc76fa976d3b5404:在该真实 Chromium 预览 origin 使用 POST 空 body 读取源码 DEFAULT_GAMESERVER(附时间戳)。HTTP 200,JSON 文本字符数 31519、根字段 25,agentlist 为数组,无根 data 包装。未保存响应文件,也未输出配置内容。fp_aadb469bca47420b:使用源码 BUILD_IDENTITY 比对该次真实响应,匹配 agentid;其下没有匹配的 gameid,故 channel/market 层未进入。按原 get_paravalue 应继承 agent/全局值,不更换身份。- 上述仅验证浏览器能读取配置及响应结构;新代码的完整启动验收在实现后单独记录。
新代码实际边界
实现提交 053302c。通过 MCP 逐个刷新五个既有 TS 资源,无序列化资源写入;重新加载已有本地预览窗口。
fp_dc324592cdfbe09c:实际 LocalPlatformLogin 启动,loading-first-draw=848.4ms,startup-config=905ms,source=remote,最终唯一目标为 ws://127.0.0.1:3088,诊断数据无 rawConfig;resources-ready=907.4ms,最短展示门=1353.5ms,login 页激活=1354.5ms。ready=true,未显示错误。未点击登录,未验收其他 RPC。fp_5524451aad3e7ff5:从 Creator import map 导入实际编译的 runtime-config 与 HttpConfigFetcher,在真实 Chromium 中调用两种模式,底层仍使用真实 fetch。debug/local 请求一次,HTTP 200,source=remote,唯一目标为本地;rawConfig===remoteConfig.raw,getValue 可用,游客服务器字段存在;前后 localStorage 内容未变化。- 同一调用中 release 也请求一次、HTTP 200;之后因 game_server_tcp/player_server_tcp 缺失明确报错,未创建生产 WebSocket,localStorage 未变化。说明读取和内存解析入口实际执行,不能称 release 正式启动已通过。
fp_a0676df82b7d83ae:停止实际本地预览后 ready=false、stopped=true、pendingCount=0。fp_115a6f611fcebfc0:地址校验修复后再次刷新编译并重开实际预览,source=remote、ready=true、page=login;从 Creator 编译模块调用解析器确认空#片段抛出 ConfigParseError。停止后 stopped=true、pendingCount=0。
当前配置来源限制
真实响应经新生产解析器确认:当前身份的 game_server_tcp、player_server_tcp 均为 null,visitor_server_tcp 为字符串;hall_config、logimage 为 null。debug/local 在读取与层级解析成功后按原 serverType 语义使用明确本地地址。release 保持显式缺失错误,未切换身份、未选择真实子游戏、未用游客服务器兜底。
因此:本地远程读取→内存解析→本地连接→登录页通过;当前 BUILD 身份对应的正式启动因远程配置缺少地址而未通过。本批不修改远程配置服务或服务器。
自动验证和工作区
053302c:纯 TS 显式枚举 606/606;指定 import-boundaries/presentation-boundaries 架构测试 49/49;框架类型与导入边界检查通过。- TDD 包含原函数差分对照、local 必须等待读取、读取失败/停止期间零连接、正式地址缺失、不泄露远程配置到诊断等。保留既有错误路径测试的预期 boom 日志。
- 原有 50 个未跟踪文件 SHA256 全部不变,两项历史 meta 删除仍保留,共 52 项原有改动未处理。没有新资源文件,没有 worktree,没有合并或推送。
- 独立审查发现 URL 片段会通过 URL 解析却被 WebSocket 构造器拒绝;
58c974e已在配置入口拒绝字面#(包含空片段),保留合法%23。该修复 RED 为 5/6,GREEN 为 6/6;仅修改解析器及对应测试,未重复无关全量测试。 - 独立规格/质量审查在片段修复后通过;最终整体复审覆盖
556c47a..d79bed0,无新增可操作缺陷。release 来源限制准确保留,未误报正式启动成功。