2026-10-22
新增
[root]增加可重放的 happyro2 功能测试账号 SQL,包含摆摊铁匠、波利宠物、弓箭手佣兵和 Amistr 生命体四个角色;配套技能、物资及伙伴关联,重复导入保留已有测试进度,同名冲突拒绝覆盖。
优化
[client]恢复桌面端和移动端原有注册说明,移除长度建议;账号密码长度校验及明确错误提示保持不变。[client]注册长度提示明确为账号最少 6 个字节、最多 21 个字节,密码最少 6 个字节、最多 23 个字节;同步前端校验及服务端错误码对应文案。
修复
[api]同步当前服务端及已审核客户端物品资料快照,修正旧中文名称、说明及两条 NPC 脚本引用;不修改游戏服务端逻辑、物品 ID 或数值属性。[client]同步物品子类来源摘要、名称覆盖及魔物名称和掉落资料,保持图鉴与 API 资料一致。[root]同步装备卡片词缀表中的已审核中文名称。[client]恢复移动端交易双方已报价物品的只读说明,点击查看不发送交易请求;更新客户端测试的浏览器环境、协议回执及当前表单交互,保留数量、草稿和服务端确认校验;全量 1830 项测试通过,1 个历史归档空测试文件保持跳过。[client]摆摊名称行改为按标签宽度自适应排列,修复四字标签被输入框遮挡;标签关联输入框,出售与收购共用修复。[client]桌面摆摊明确摊位名称及空值提示,销售记录补充无成交空状态、修复空列表宽度塌缩,并默认居中显示、保留拖动位置;同步明确公会角色名称、魔物名称及邮件收件人角色名,避免复用通用姓名文案。[root]本机角色清理工具停写目标改为 Go API 容器 happyro-api,修复迁移后仍查找旧后台容器导致操作失败。[root]macOS 资源归档禁用 AppleDouble 扩展属性文件,避免离线包混入._元数据。[root]修正物品子类资源校验脚本的 Go CLI 入口,使用迁移后的 happyro-api。[server]游戏自动注册改用数据库自增账号 ID,避免删除账号后复用 ID 命中删除屏障,导致新账号无法进入选角;与后台注册共用数据库 ID 分配。[client]冒险工具物品、Zeny 发放与角色命令在响应丢失后重试复用原幂等键,并发提交合并;成功或切换游戏会话后使用新键,避免重复执行。[root]Admin 构建基础镜像固定为php:8.4.27-fpm-bookworm,要求包含 CVE-2026-109618、CVE-2026-109619 修复的 PHP 版本,避免继续使用浮动的 8.4 标签。此修改不更新已运行容器或已生成的离线包。[server]为 Go 管理后台迁移新增账号真实断线命令,通过地图服会话退出和存档流程执行,替代仅修改数据库在线标记。[server]为 Go 管理后台接入账号删除队列、存档确认与进度心跳;修正角色清理错误传播,清理失败保留角色主记录供重试。[server]Go 后端迁移配套:地图服在收到账号删除通知后拒绝该会话的后续角色控制命令,覆盖断线通知与会话实际移除之间的窗口;编译及带内存检查的回归验证通过。[server]统一 Web 与地图服游戏控制请求校验,拒绝无效命令标识和字段类型,避免控制请求导致地图服 JSON 类型异常。[server]设置控制协议增加实例和版本前置条件,拒绝过期命令;Go 管理端发送前持久化凭据并在中断恢复时保持原值。[server]设置控制新增版本屏障,供 Go 管理端恢复未知结果时阻止旧请求晚到执行,并保留原命令优先完成时的执行凭据。[server]角色删除补齐收件宠物蛋关联记录清理;真实 char-server 隔离数据库测试验证正常删除与失败重试,并保留其他收件人的资源。[admin]修复容器initialize --help意外执行初始化的问题;帮助列出容器专用命令,未知参数在执行前拒绝,serve --help不再修改设置目录。[admin]增加 Go Admin launchd 配置生成器,显式加载受限环境文件且不自动安装或启动;本机服务脚本在启动数据库前拒绝旧 PHP/Artisan 后端配置。[server]补齐父母角色删除后的关联清理、在线缓存通知与存档防回写校验,保留存活家庭成员关系和技能。[server]修复角色服 SQL 存档失败仍确认最终存档的问题,保持地图服重试与管理后台删除屏障有效。[root]Go Admin 容器验收支持独立浏览器探针,验证实际登录、账号与物品页面、刷新后会话;仅使用临时数据库与回环端口,并在结束后清理。[client]修复桌面邮箱点击邮件时编号字符串被编码为 0,导致邮件无法打开;在 DOM 边界转为 BigInt,并补充点击到真实封包的回归测试。[root]提交前审计修正资料刷新脚本的 systemd 服务名为 happyro-api,并清理发布清单中旧 PHP APP_KEY 要求;Go 后端 changelog 与实现一同归入独立 API 仓库。[admin]补齐邮箱编辑入口,物品重量按游戏单位显示,删除任务时间明确 UTC。[api]角色查询支持角色名筛选及与用户名组合查询。
部署与维护
[root]将 Docker Hub 上传脚本纳入 tools/deployment,统一校验双架构 OCI 与离线包来源,推送版本标签和 latest 后核对远程完整摘要。[root]职业外观生成器的 Admin 目标切换为 Go 参数白名单,保持客户端、服务端和后台使用同一来源摘要。[client]冒险工具设置修改携带稳定请求标识,相同参数失败重试复用原标识,并发点击合并请求;成功后及切换游戏会话后使用新标识。[root]将 Admin 镜像改为 Go 构建与单进程运行,移除 PHP-FPM、Nginx 和 Supervisor 配置;更新初始化、健康检查、环境模板、游戏库初始化及备份目录,停止生成 APP_KEY。[client]物品子类生成改用 Go Admin 共用分类规则并更新来源哈希;刷新脚本删除 PHP/Artisan 依赖,使用服务账号显式加载环境后原子导入四类资料快照。[admin]架构、NPC 导入和装备查询文档切换到 Go 实现与当前资料表,修正旧 PHP 路径。[server]账号删除增加未结算拍卖检查,阻止删除仍持有买卖关系的角色,保留拍卖托管资产并提供明确重试提示。[root]发布文档更新 Admin 的 Go 依赖锁定说明,明确源码部署测试所需的 PyYAML 环境。[root]管理前端迁至 happyro-admin 根目录,Go API 提取到独立 happyro-api;资源生成、构建上下文及原生服务工具更新源码路径,离线发布来源校验纳入 API 仓库。[server/api]游戏库账号唯一约束与邮件回执 SQL 统一由 happyro-server 提供;API 仅检查结构,移除游戏库 DDL 命令,数据库容器初始化直接使用服务端 SQL。[client/gateway]客户端资料生成改为读取 happyro-api;Gateway 使用 HAPPYRO_API_URL,部署服务与镜像类别统一为 api。[root]同步独立 API 与管理前端的仓库边界、运行拓扑和部署检查说明。[root]本机服务管理同步启停独立管理前端与 Go API,确保 8000 前端入口随整套服务启动。[root]changelog 检查器新增 api 仓库作用域,文档站同步 Go 架构说明。
验证与待办
[root]happyro2 SQL 通过隔离库首次创建、幂等重放、同名冲突及 MyISAM 中途失败清理验证;四角色无头实机登录通过,确认摆摊商品及宠物、佣兵、生命体资料正常加载。[root]修正备份回归的资料分页参数并断言每页数量;自定义资料测试使用规范化临时路径,避免 macOS 系统目录符号链接造成误报。[root]Go Admin 的 Linux amd64/arm64 测试镜像完成构建及隔离 HTTP 验证;新数据库镜像验证账号唯一索引、删除队列和邮件回执初始化。Admin 前端使用构建机架构生成静态资源,运行时启用 Gin release 模式。[root]增加可选的隔离 Docker 备份恢复测试,实际验证 Go 管理账号、游戏账号、共享设置和自定义内容的恢复,并自动清理临时 Compose 项目。[admin]隔离部署回归增加完整资料导入、真实 HTTP 登录页与 CSRF 会话登录、资料查询;最新 Go Admin 双架构测试镜像通过上述检查及数据库、共享设置和自定义内容备份恢复。[client]客户端资料集成检查改为与 API 源图片摘要、完整图集条目和 NPC 实例内容核对;地图与筛选状态使用既有行为测试验证,移除过时的实现文本断言。[root/admin/api]本机完成浏览器及游戏实机主流程验收;保留一条未复现的 AxiosError 观察记录。未正式打包或推送。