Commit Graph
54 Commits
Author SHA1 Message Date
joywayerandClaude Opus 4.8 ad661707ec fix(framework): player_login.version 改为数字 versionCode(联调登录成功)
真机联调发现:协议 version 字段=数字 versionCode(源码 8 处 data.version=GameData.versionCode),
框架原发字符串 '1.1' 被服务器版本校验拒绝(kick_server 检查到新版本)。改为数字后登录成功
(state:0 playerid:430511)。
- ChannelIdentity/LoginRequestData.version: string→number,去掉冗余 versionCode 与未发送的 '1.1' 串
- query-string version 解析为数字;测试 fixture 同步

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:33:53 +08:00
joywayerandClaude Opus 4.8 fee5c8b0a0 chore(framework): 真机联调脚本 login-live.ts(复用框架+ws transport)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:25:36 +08:00
joywayerandClaude Opus 4.8 96c6c7c914 fix(framework): decodeFrame 改单层(服务器协议非双层)
真机联调发现:服务器实发单层 {app,route,rpc,data};旧客户端的'外层 data'是浏览器
MessageEvent(00_minhttp.js:266 ws.onmessage=config.onmessage),非协议层。框架传输层
已取 ev.data,decodeFrame 不应再剥一层。修正后 kick_server 等业务包能正确解析。
- decodeFrame 单层化 + 测试改单层帧
- 更正 docs/protocol/01 §3.2(双层→单层,附 MessageEvent 依据)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:25:36 +08:00
joywayerandClaude Opus 4.8 5132fddc4e feat(framework): config 调试 serverOverride(全链路+游戏服连本地)
- DebugProfile 加 serverOverride:debug 抓远程配置走全链路后把连接地址覆盖为此
- staging profile 加 serverOverride=ws://127.0.0.1:3088(联调本地测试服)
- release 一律忽略 serverOverride,用远程解析结果
- 同步指南

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 20:08:59 +08:00
joywayerandClaude Opus 4.8 d461578d6e feat(framework): config 调试登录账号进 profile(DebugAccount)
- DebugProfile 加 account?: DebugAccount(openid 等登录字段,仅 debug 模式生效)
- resolveBootstrap 结果加 account:debug 取 profile.account,release 恒 undefined
- staging profile 留占位 account 待填真值;接入处 setIdentity 合并 identity+account
- 同步指南

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 19:57:41 +08:00
joywayerandClaude Opus 4.8 51a4ee57ac refactor(framework): 移除 resolveBootstrap 下游兜底,立第二准则
- CLAUDE.md 新增「第二准则:数据源权威、唯一,下游不兜底」
- bootstrap 删除 fallbackServers 选项与 ?? DEFAULT_GAMESERVER 猜默认
- 无 server/gameserver、远程失败、解析不出地址 → 一律抛 ConfigFetchError 显式暴露
- 同步 guide + 两篇 spec(删 fallback/降级措辞)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:59:15 +08:00
joywayerandClaude Opus 4.8 39bb964a49 chore(framework): 填入真实渠道身份默认值与测试配置服地址
- BUILD_IDENTITY 的 agentid/channelid/gameid 改为真实渠道身份
- STAGING_GAMESERVER 改为真实测试配置服地址

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:43:50 +08:00
joywayerandClaude Opus 4.8 c8bbae9d88 docs(guide): 配置与调试指南补充 debug/release 一键模式
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:21:19 +08:00
joywayerandClaude Opus 4.8 5ab4a0a4b6 feat(framework): net NetClient 可选 debug 收发包日志
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:16:36 +08:00
joywayerandClaude Opus 4.8 2c2e487d8f feat(framework): config resolveBootstrap 接入 mode + release 锁死 URL 覆盖
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:13:15 +08:00
joywayerandClaude Opus 4.8 8cbc488e0c feat(framework): config 运行模式解析 resolveRuntimeMode(自动+手动覆盖)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 18:10:42 +08:00
joywayerandClaude Opus 4.8 ca3babeeb2 docs(plan): debug/release 一键运行模式实施计划
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 17:59:00 +08:00
joywayerandClaude Opus 4.8 6bfabffcfc docs(spec): debug/release 一键运行模式设计(runtime-mode)
自动跟随 Cocos DEBUG + 可选手动覆盖;release 强制 prod 并完全锁死 URL 覆盖;isDebugger 接到 NetClient 收发包日志。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 17:51:21 +08:00
joywayerandClaude Opus 4.8 e4d16bf412 docs(framework): 澄清 SERVER_KEYS 有意只取 *_server_tcp(WebSocket-only)
最终审查指出 spec 文本列了 *_server_http 而代码注释称逐字一致,易致误解。补注说明本期 WebSocket-only、HTTP 传输模式(netType==1)超范围。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:52:38 +08:00
joywayerandClaude Opus 4.8 632cef35e5 feat(framework): config 生产用 HttpConfigFetcher(全局 fetch)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:47:15 +08:00
joywayerandClaude Opus 4.8 c87d204f28 feat(framework): config 启动编排 resolveBootstrap(身份合并+服务器决策+降级)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:44:43 +08:00
joywayerandClaude Opus 4.8 6333ddc8e4 feat(framework): config 远程配置分层取参 getParam + 服务器解析 resolveServers
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:41:28 +08:00
joywayerandClaude Opus 4.8 231e9ee31c feat(framework): config 调试 profiles + ?profile= 切换
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:38:44 +08:00
joywayerandClaude Opus 4.8 119a457c59 feat(framework): config 原生同步身份来源(window.settings/app_* 逐字对齐)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:36:13 +08:00
joywayerandClaude Opus 4.8 510c074627 feat(framework): config H5 URL query 身份来源
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:33:58 +08:00
joywayerandClaude Opus 4.8 2f97150a6f feat(framework): config 身份类型 + 纯合并 resolveIdentity + 构建期默认
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:30:49 +08:00
joywayerandClaude Opus 4.8 f66771b6b1 docs(plan): 配置/渠道子系统 framework/config 实施计划
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:23:19 +08:00
joywayerandClaude Opus 4.8 bc16d43a91 docs(spec): 配置/渠道子系统设计(framework/config)
身份解析(含原生同步读取)+调试 profiles+URL 覆盖+远程配置 getParam+连接地址解析+启动编排;外部契约逐字保留,内部命名现代化。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 16:09:11 +08:00
joywayerandClaude Opus 4.8 9842c065c8 feat(framework): Cocos/浏览器 WebSocket Transport adapter
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:28:13 +08:00
joywayerandClaude Opus 4.8 dbc5d19e61 test(framework): login 全流程集成测试(over FakeTransport)
集成测试在断言处调用 parseLoginResponse(any login 数据),规避 TS6 对闭包内赋值变量经 assert.ok 收窄为 never 的 CFA 行为;断言与覆盖范围不变。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:27:56 +08:00
joywayerandClaude Opus 4.8 0ada512464 feat(framework): protocol routes 常量 + login 请求构造/响应解析
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:25:29 +08:00
joywayerandClaude Opus 4.8 540cf286a5 feat(framework): net-client 编排(login流程/门控/TcpID/超时重连/服务器切换/事件)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:24:57 +08:00
joywayerandClaude Opus 4.8 79d0071645 feat(framework): net 候选服务器轮询策略
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:23:41 +08:00
joywayerandClaude Opus 4.8 08d41cdec1 feat(framework): net 收包超时看门狗(注入 Clock 可测)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:23:13 +08:00
joywayerandClaude Opus 4.8 90843374f9 feat(framework): net Transport 接口 + 测试用 FakeTransport
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:22:47 +08:00
joywayerandClaude Opus 4.8 7dcdeb6615 feat(framework): net 信封编解码 + 握手/心跳/错误包识别
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:22:18 +08:00
joywayerandClaude Opus 4.8 c1be4dcb1e feat(framework): core 座位↔视图转换
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:21:46 +08:00
joywayerandClaude Opus 4.8 bfd9339f64 feat(framework): core EventBus(类型化+故障隔离)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:21:26 +08:00
joywayerandClaude Opus 4.8 56dbfeb5e2 feat(framework): core 最小集协议类型(envelope/login)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:20:54 +08:00
joywayerandClaude Opus 4.8 f693f45895 chore(framework): TS 测试基建(tsx+node:test) + core 常量
- 补 @types/node(tsconfig types:[node] 所需,原计划遗漏)
- tsconfig 加 allowImportingTsExtensions(import 带 .ts 后缀所需)
- test:framework 改用 run-framework-tests.mjs 递归枚举(node 20.13 <20.14 不支持 --test glob)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:20:25 +08:00
joywayerandClaude Opus 4.8 2e18396388 docs(claude): 新增客户端侧适配约束(远程配置/原生数据/WVJB 桥接)
第二类不可妥协约束:远程配置文件读取(get_config→ServerUrl_Succ)、
原生同步接口(window.settings.getothername)、原生↔H5 异步桥
(WebViewJavascriptBridge: setupWebViewJavascriptBridge + registerHandler/callHandler)
须与原项目逐字一致;含源码位置与 14+ 个已注册 handler 清单 + Cocos 适配注意。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:15:37 +08:00
joywayerandClaude Opus 4.8 905c134017 docs(plan): Plan 2 框架内核 core+net+protocol 实施计划
12 个 TDD 任务:TS 测试基建(tsx+node:test)、core(EventBus/座位/最小集类型/常量)、
net(信封编解码/看门狗/重连策略/可注入Transport/NetClient编排)、protocol(routes/login)、
login 全流程集成测试(FakeTransport)、Cocos WebSocket adapter + 真实服务器联调。
事件驱动剥离 UI 耦合(D1)、依赖注入 Transport(D2)、只实现 WS 剥离旧 quirk(D3)、
忠实 docs/protocol/01(D4)、最小集类型(D6)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 14:09:47 +08:00
joywayerandClaude Opus 4.8 9cb5f11a33 fix(tools): CLI 守卫防 argv[1] 空崩溃 + check-cocos 宿主版本缺失早退
- C1: 4 个 CLI 脚本守卫加 process.argv[1] 空值短路,避免动态 import 时 pathToFileURL(undefined) 崩溃
- I1: check-cocos-version CLI 在宿主 creator.version 为 null 时报错 exit 1,避免 CI 虚假 OK
- M1: scaffold 测试收紧 UUID 正则
- 新增 cli-entry 测试覆盖动态 import 场景

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:31:58 +08:00
joywayerandClaude Opus 4.8 b37c7c5424 docs(tools): 工具链 README + 端到端冒烟通过
全量 22 单测通过;e2e 冒烟 new-game→check-cocos→setup-links 全绿。
README 含命令表、关键约束,并补充 junction 删除安全注意事项
(避免 rm -rf 穿透 junction 误删框架真源)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:22:19 +08:00
joywayerandClaude Opus 4.8 379a510343 feat(tools): bump-cocos 批量升级引擎版本字段
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:20:52 +08:00
joywayerandClaude Opus 4.8 ea1eefe8b8 feat(tools): check-cocos-version 引擎版本一致性校验
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:19:14 +08:00
joywayerandClaude Opus 4.8 beebcb7891 chore(tools): 建立真实种子工程 templates/game-seed
从 YouleNexus 派生工程配置(.creator/settings/package.json + 空 assets),
name 改为 game-seed、保留 creator.version=3.8.8;不含 framework/extensions/缓存。
经 new-game 冒烟验证:生成工程含 game 骨架 + framework junction,真源未受损。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:18:15 +08:00
joywayerandClaude Opus 4.8 28362314d2 feat(tools): new-game 一键新建子游戏工程
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:15:01 +08:00
joywayerandClaude Opus 4.8 8bb3b80544 feat(tools): scaffold.mjs 种子复制/改身份/铺 game 骨架
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:12:59 +08:00
joywayerandClaude Opus 4.8 9a0a7f60c1 feat(tools): setup-links 批量重建 framework junction
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:10:19 +08:00
joywayerandClaude Opus 4.8 5ef65c0d05 feat(tools): junction.mjs 跨平台目录链接创建/检测
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:07:40 +08:00
joywayerandClaude Opus 4.8 e7e9406c48 feat(tools): paths.mjs 路径解析与工程发现
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 12:04:28 +08:00
joywayerandClaude Opus 4.8 5bba8676ea chore(monorepo): 工具层脚手架 + 框架真源占位结构
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:58:20 +08:00
joywayerandClaude Opus 4.8 7ab748919a chore: 纳入项目全部源码进根仓库统一管理
删除 YouleNexus 内嵌 .git,统一由根仓库唯一管理。提交:
- projects/ 旧 H5 模板 Game_Surface_3 与各子游戏源码
- cocoscreator_projects/YouleNexus 工程 + cocos-creator-mcp 扩展源码
- CLAUDE.md、.mcp.json 等配置
library/temp/node_modules/dist 等缓存由 .gitignore 排除。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:55:13 +08:00
joywayerandClaude Opus 4.8 f5673c33c8 docs(plan): Plan 1 Monorepo 骨架与工具链实施计划
10 个 TDD 任务:工具层脚手架、paths/junction/scaffold 库、
setup-links/new-game/check-cocos-version/bump-cocos 脚本、种子工程、端到端冒烟。
纯 Node ESM + node:test,无第三方依赖;遵循 spec §2/§7/§8/§0.1。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:46:19 +08:00
joywayerandClaude Opus 4.8 17a82eb5bf docs(spec): 补充协议 SSOT 引用原则与原项目 bug 规避
- 0.1 协议单一信息源:设计/计划只引用 docs/protocol 章节、不内联复制,
  协议修订无需回改设计与实施计划;framework/protocol TS 类型为其机器镜像
- 0.2 不继承原项目源码 bug:按正确协议语义实现,主动规避同类缺陷

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:37:32 +08:00
joywayerandClaude Opus 4.8 08640ca89a docs(protocol): 交叉源码审计后重修全 8 篇协议文档
基于 00_Surface 平台层源码逐条交叉核对,修订 docs/protocol:
- 补全前后端双向数据包(请求+响应/推送字段),覆盖框架模板全部平台层 rpc
- 修正错误:重连触发条件(deskinfo 而非 isbattle)、小程序桥接(openminigamedata 而非 miniProData)、
  get_player_invitecode 字段、setGameServer/GameData.Server 来源、route 分发守卫等
- 补遗漏 rpc:send_phone_code_wechat、submit_error/submit_log、refresh_task_state、
  update_bean/update_charm/broadcast、connect_agentserver 字段、5 个成对推送常量
- 补 Desk 约 11 个字段、登录响应账号字段、10 个子游戏钩子
- 标注源码 bug(🐛 can_award 接收函数未定义、小程序 checkType=8 误接白名单)
- 校准全篇 file:line 引用;待后端确认项标 ⚠️
- 明确范围:仅框架模板协议,不含子游戏对局包

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:35:47 +08:00
joywayerandClaude Opus 4.8 0211a9eaa6 chore: 新增 monorepo 根 .gitignore
忽略 Cocos 工程生成物(library/temp/local/build/native/profiles)、
子游戏 framework junction、cocos-creator-mcp 扩展的 node_modules/dist、
Node 依赖与系统文件;保留各工程 assets/settings 及 docs/projects 源码入库。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:09:18 +08:00
joywayerandClaude Opus 4.8 739d8fe5ee docs: 新增 Cocos Creator 平台框架与子游戏架构设计 spec
Monorepo + junction 共享框架、6 层单向依赖零耦合、配置+资源覆盖换肤、
种子工程克隆建子游戏、Cocos 版本全 monorepo 统一升级。
接口(IGameModule/GameContext)方向已定、精确签名待后续细化。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-28 11:05:35 +08:00