2026-10-21
优化
邮件
[client]邮件详情、空状态及附件统一使用黄色标题栏;寄件人和金额放在标题右侧,正文与附件列表距标题保持 10px 间距。[client]写信表单标签放在输入框上方,收件人校验按钮与输入框同排;内容和附件拆为上下等高的独立边框区域,分别滚动并在回包刷新时保留位置。[client]附件“移除”按钮使用紧凑行内尺寸,手机高 28px、平板高 34px;邮件列表搜索标题和寄件人时不区分大小写。
交易
[client]移动端交易按可交易物品、我方、对方分为三列;手机竖屏依次显示对方、我方、可交易物品三行。三栏物品项使用一致样式,双方金额显示在标题右侧。[client]分类、子类、搜索与“设置金额”同排,手机竖屏移到底部;金额通过输入弹窗设置,未设置时留空,留空确认按 0 处理。[client]移除交易左下角说明和物品详情弹窗;添加物品只填写数量,标题直接显示物品名称。“锁定报价”改为“锁定交易”。[client]确认成交弹窗按我方、对方两列核对物品与金额,长名称完整换行,清单独立滚动,确认与取消按钮保持可见。
聊天与冒险工具
[client]聊天分类“全部消息”简化为“全部”;通过独立覆盖样式取消聊天列表上下留白,私聊对象项与新私聊按钮等宽。平板横竖屏统一三列布局,加宽对象列并减少名称与删除按钮间的空白。[client]表情发送成功后立即关闭移动端聊天窗口;失败时保留窗口和提示,普通文字发送仍保持窗口打开。[client]冒险工具各图鉴、角色与设置统一内容和底栏边界,与顶部搜索框、关闭按钮对齐;修正手机竖屏重复缩进,手机横屏等级与点数、恢复状态及转换职业操作采用三列等宽布局,修改仅作用于冒险工具。[client]冒险工具物品图标取消边框,掉落表格数据与表头左对齐;手机竖屏搜索框延伸至翻页按钮前并保留 6px 间距,地图选项图标上下各保留 3px 留白。[client]平板冒险工具分隔线两侧最终统一为 12px 留白,移除额外列间距;平板竖屏地图隐藏 NPC 坐标,地图与 NPC 栏宽度为 3:2。
修复
[server]修复首次注册同一毫秒及限流窗口到期边界的计数问题,避免连续注册绕过限流。[client]注册错误统一使用简短原因文案,前端与服务端同类错误保持一致;注册说明改为推荐的英文账号与密码长度。[server]自动注册使用独立错误码区分账号或密码过短、重复账号、限流、存储失败、注册关闭、加密不支持与性别无效,记录对应原因,避免把注册输入错误计入密码失败封禁。[client]映射服务端独立注册失败码,准确提示账号已存在、注册限流、保存失败、注册关闭等原因;未知登录错误保留原始错误码。[client]自动注册在连接前校验账号、密码字节长度,明确区分过短与过长,避免将账号不足 6 字节误报为密码错误;注册说明同步补充长度限制,普通登录与会话恢复不受注册校验影响。[client]NPC 对话、选项及任务说明按所在背景统一修正低对比度文字,保留色相与原本清晰的颜色;修复颜色重置和连续标记嵌套,兼顾字体标签、链接及透明背景,不改变对话框背景。
滚动与菜单布局
[client]背包选择物品只更新选中状态与详情,并保留列表位置;手机竖屏空详情与已选详情使用相同网格,避免点击底部物品后跳动。[client]冒险工具图鉴、职业和技能列表选择保留原列表节点或滚动位置;任务选择和同一分类、搜索、页码内的邮件读取同步保留位置,切换筛选或翻页仍从顶部开始。[client]禁用背包及同类移动端列表的上下边缘回弹,覆盖仓库、手推车、任务、社交、商店、摆摊、邮件及冒险工具列表,不改变列表尺寸与留白。[client]社交管理与成员详情采用相同的较高标题尺寸;清除手推车、任务、背包、商店、快捷键、邮件和随从空状态提示的多余段落间距。[client]撤回075d6c4f引入的统一列表透明边框留白和额外外框,恢复各菜单原有列表样式;保留社交详情排版和后续聊天调整,修复聊天分类垂直分隔线被覆盖的问题。
操作反馈
[client]加入交易被服务器拒绝时显示简短提示,区分不可交易、对方负重不足、背包空间不足及物品数量上限。[client]移动端快捷键使用物品和穿戴装备复用背包校验及回执,仅失败时提示;补齐本地使用拦截、已穿戴装备与立即施法失败提示。[client]组件置顶读取实际生效的 CSS 层级,修复获得物品提示被背包等移动端菜单遮挡。[client]手机和平板 toast 长提示自动换行,保留原始换行并允许长英文和错误码折行,避免失败原因被单行省略。
部署与维护
[root]离线部署支持初始管理员账号密码环境变量,初始化不再覆盖已有管理员凭据。[root]Admin 容器支持默认关闭的SHOW_DEFAULT_CREDENTIALS运行时开关,切换登录页初始凭据提示无需重新构建镜像。[root]Gateway 启动时初始化挂载日志目录及已有日志的属主、所有者读写权限,再以 node 用户运行,消除普通 Linux 部署对宿主机 UID 1000 的依赖;权限初始化失败明确报错,不修改日志目录之外的文件。[root]离线包首次空库初始化为happyro/happyro自动创建第一角色位“罗安”:99/50 男剑士、10,000 Zeny,预配技能、普通剑、红蓝药水、可孵化的波利蛋和六个快捷栏;不复制截图临时记录,不改动已有存档。[root]完成 v0.5.0 全量无缓存双架构镜像、完整离线包happyro-v0.5.0.zip(SHA-2567ce06652883f34d72ad2f75fa06454b47ebe7eaab117123b4a1b335ee48a3652);本机 arm64 空库通过七服务健康、admin-init、启动页及登录选角进图。Docker Hub 的v0.5.0与latest已核验完整多架构摘要一致。[root]从同一完整 ZIP 生成happyro-v0.5.0-runtimes.zip与happyro-v0.5.0-images.zip,逐项确认合并后的 76,185 个文件与 210 个目录完整一致;拆分包须合并使用。
验证与待办
[root]Gateway 日志权限已纳入本轮双架构镜像;Linux 容器专项测试覆盖 root/UID 2000 属主挂载目录、旧日志追加及重复初始化、符号链接边界、只读挂载拒绝启动和帮助无副作用。[root]本轮未验收 amd64 实际运行、从 v0.3.2 保留数据升级与回退、真机后台冻结,以及完整正式验收清单中的自定义 NPC/备份恢复矩阵。