Files
ft/CodexOutput/upserver/开发进度存档-2026-09-21-最小登录交接.md

9.8 KiB
Raw Blame History

开发进度存档:最小登录交接

最新进度:2026-09-22 独立复审与故障验收完成

先读本轮执行结果→修复后独立复审→真实网络故障结果。独立审查发现两处P2,实际Unity另复现Stage停止窗口;按实施前裁决最小修复四文件,58项定向测试及限定独立复审通过。最终Unity快速101→102→101三轮Error=0、核心进度相同、实际Hub Test=OK;已核对加载新程序集。当前Editor最后为PlayMode、101/FishingStage。

HTTP401/真实断流/15秒超时恢复、WebSocket断线自动恢复已在生产源码+实际SignalR DLL外部宿主通过;Unity Restricted不允许独立网络构造测试,故不冒充Unity完整UI/最终平台通过。仍待Unity/最终平台故障补验、主动业务推送、必要人工钓鱼及完整存档核对;真实SDK/真机最后统一打包确认。正式API仍为 http://s101.local:18080/。KV/俱乐部扩展/SDK删除暂停;无Git提交/发布。下方更早进度为历史,不覆盖本条。

最新结论:第二轮验收收尾(2026-09-21 21:40)

先读第二轮验收结果及本轮限定自审。本轮补齐真实Unity登录等待中退出、旧重试按钮、成功延迟中退出;快速101→102→101三轮错误0,Cookie/旧Hub释放通过,最终实际Hub Test=OK。测试发现问题后仅修复SoundService、FishingAct、FishingBehaviorB、FishingStage四文件,实施前均有方案裁决。编译0错误/271警告;新补丁只有主会话自审,尚无新独立复审。

101抽查的等级/金币/钻石/鱼竿前后相同,已打开战令预览及社交页;真实SDK/真机、HTTP故障、真实断网与业务推送、必要钓鱼玩法及完整存档仍待验收。正式API http://s101.local:18080/;Editor最后取证为PlayMode、101/FishingStage。下一步补验收条件,发现问题再评审编码;KV/俱乐部扩展/SDK删除暂停。下方较早状态均为历史,不能覆盖本条。

存档日期:2026-09-21。本文件是交接时的进度快照,后续变化请继续写开发日志;不要覆盖历史证据。本次存档未修改业务代码、重跑测试、操作正式服或提交Git。

1. 当前结论

最小登录代码收尾、已具备条件的验证和独立限定复审已完成;Unity场景及真实渠道SDK/真机仍待验收。 当前没有剩余已确认的限定范围代码阻塞,但不能标记端到端阶段验收全部通过。

优先级最高的范围文件是《当前阶段范围裁决-仅最小登录.md》。旧文档中的“优先KV”“A/B并行”“继续完整俱乐部”是历史计划,不是当前授权。

2. 环境与不可弄错的配置

项目 当前值
工作区 C:/projects/ft
Unity客户端 C:/projects/ft/Client
服务端参考源码 C:/projects/N3-Server-CN,只读核对契约,不默认修改
当前分支/基线 feat/upserver / f40a816cc(本次存档实际核对)
正式API http://s101.local:18080/
登录/Hub account/Login / gamehub
测试账号 101、102,用户已授权
工作区状态 多项业务修改及新增文件尚未提交;CodexOutput也未跟踪

源码已核对Svr101配置和默认API;实际Unity持久化配置仍需现场确认,不能改回192.168.9.101或误写101.local。保留其他环境配置,不用全局替换主机名。

落盘不等于Git提交或独立代码备份。接手应使用当前工作区,只有基线commit无法恢复这些未提交修改。不得reset/clean、整文件回退或覆盖其他任务的改动。

3. 身份语义与实现位置

项目 当前语义/位置
UserId 仍是旧PlayFabId,保留存档与旧链路兼容,不能全局替换
CustomId 涂游或测试输入的数字ID
ApiPlayerId 当前已认证的数字ID,正式API本人身份使用它
InternalId account/Login返回的服务器内部编号,不替代上述所有身份用途
认证与Cookie Client/Assets/Scripts/Services/Account/S101AccountSession.cs;数字ID校验、响应检查、独立Cookie/身份销毁
HTTP会话 Client/Assets/Scripts/Core/CustomServerMgr.cs;会话版本、替换传输及迟到响应隔离
用户登录/注销 Services/UserService.cs、Services/AggUserService.cs;世代检查、提前注销与LoginLifetime令牌
登录界面 Stages/PFLoginAct.cs、Stages/AggLoginAct.cs;关联注销/销毁令牌、重试防重、旧续体失效
退出入口 Stages/QuitAct.cs;注销先于等待Hub释放,保留非注销退出语义
SignalR Services/RTService.cs;WebSockets+SkipNegotiation、首连预绑定、串行释放和旧回调隔离
首页必要兼容 Services/ClubService.cs中的GetSelfClub;数字身份、授权/版本检查,非法响应不清状态

后面几行代码路径均相对Client/Assets/Scripts。活动/战令既有缺配置保护见DataCenter/BargainPackData.cs、PiggyBankPackData.cs、BattlePassData.cs及UI/Home/HomeBtnBattlepass.cs;不要扩展玩法。

4. 最后完成的小步骤

  1. 核对范围与已有实现,避免重做;增加101→101→102→101会话/Cookie回归。
  2. 复现GetSelfClub空响应清状态;完成专项方案裁决后,仅对该方法增加合法响应校验。
  3. 重跑必要回归,2079源码编译成功;正式服4轮认证/只读授权/raw Hub探测成功。
  4. 独立审查发现R1:旧登录界面在退出后仍可能弹重试框或继续Mail/IAP/Unload。先落盘专项方案,再修复PF/Agg生命周期及服务注销令牌,增加LoginActTests。
  5. 原独立审查agent复审并独立复跑LoginActTests,关闭R1;更新状态、TODO、验证入口与开发日志。

本轮最后一批生产差异为GetSelfClub保护,以及UserService/PFLoginAct/AggLoginAct取消保护;其他最小登录能力复用既有实现。

5. 验证证据及局限

已完成验证 证据与不能替代的内容
MinimalLoginTests 32项通过 实际认证会话/manager源码;不是完整Unity/渠道登录
ExitTests 4组通过 实际QuitAct+依赖替身,验证注销与释放调用顺序
RealtimeTests通过 实际RTService+Hub替身;不代表真实断网重连
HomeLoginTests通过 提取实际GetSelfClub;合法/非法/空/旧响应、未授权路径
LoginRegression通过 提取实际活动/战令方法;缺配置不重置、不写回,非场景验收
LoginActTests通过,独立审查者复跑通过 提取PF/Agg登录/重试/销毁及PF输入、实际Logout;SDK/UI为替身。Agg类型面板仅静态核对
2079源码Roslyn编译通过 最新工程源码及引用,不等于Unity导入、IL2CPP打包
s101正式探测4轮成功 101→101→102→101登录、授权playerdata/Get 200、raw WebSocket gamehub/Test=OK,每轮关闭/清Cookie;不等于Unity HubConnection或SDK换号
独立限定复审通过 《仅最小登录-限定代码审查.md》,保留初审和R1关闭证据

复跑命令集中在《验证入口.md》及测试宿主;测试生成器必须重新从生产源码提取,源码编译必须重新生成RuntimeCompile.rsp,不可沿用旧DLL声称新代码通过。

上轮探测没有KV写删、会员或资产写入。当前测试范围为登录、只读授权与Hub探测;不能以历史测试账号授权恢复已暂停的KV开发。不要在日志输出Cookie或令牌。

6. 接手后按顺序执行

  • 先读取范围/验收/复审/外围清单并检查当前git差异;确认没有其他任务在修改同一文件。
  • 确认可用的Unity实例与项目路径、Svr101实际配置、控制台状态。上轮有两个Unity进程但UnitySkills registry为空,这是历史观测,接手需重新发现。
  • Unity测试正常登录、认证失败重试、同账号退出再登录、101→102→101;记录账号、操作、预期、实际、证据路径,不记录Cookie值。
  • 登录待返回时退出、重试成功延迟中退出/销毁、旧按钮再次触发、重复点击;确认旧界面不再推进初始化/Unload。
  • 真实渠道SDK/真机验证换号、登录途中注销、迟到回调和全局账号状态;模拟测试不能勾选这一项。
  • Unity SignalR首连业务消息、退出释放、重登与实际断网重连;区分raw测试、替身Hub与Unity真实连接。
  • 首页/钓鱼复测缺配置30801336、30701029、BattlePass空引用、GetSelfClub身份兼容,确认没有清档/重置。
  • 发现范围内缺陷时,先补完整方案评审、裁决和文件边界,再修复/回归/限定代码review;每小步或最多15分钟更新开发日志。
  • 无法执行的项目明确写待验收、缺少的环境和下一操作;不要为填进度扩展外围业务。

7. 暂停范围与外围差异

暂停完整俱乐部业务、聊天/捐赠身份迁移、KV适配/存档切换和PlayFab SDK删除。已有ClubService F1/F2、成员UI、签到等外围改动仍留在工作区,不等于已剥离。

详见《仅最小登录-外围差异清单.md》。如未来需要只包含最小登录的提交/发布包,先逐差异段归属与评审再拆分,不能整批回退ClubService/UserService等混合文件。当前未要求提交、推送或发布。

8. 文档阅读顺序

  1. 当前阶段范围裁决-仅最小登录.md
  2. 本存档
  3. 仅最小登录-最终验收.md
  4. 仅最小登录-限定代码审查.md(包含最终复审)
  5. 仅最小登录-核对验证方案.md、仅最小登录-外围差异清单.md
  6. TODO.md顶部、验证入口.md、开发日志.md末尾

所有文档均在C:/projects/ft/CodexOutput/upserver。供复制给其他AI的任务指令见《其他AI接手提示词-最小登录.md》。