2026-09-07。采用 LaoA-GrokBot 527c3b5 的双眼表达和基础轮廓;沿用 v2 配置、颜色、图片及额外造型。没有添加配饰,没有修改服务端协议或用户存量配置。
规范源为 assets/mascot/laoa-source.json,记录完整上游提交与保留的 OpenMausBot 造型。生成器统一转换路径、计算真实轮廓边界,并为较窄造型计算可容纳全部表情的双眼缩放。SVG、Swift 与 Kotlin 使用相同结果,各仓库可独立构建。
node scripts/generate-laoa-avatars.mjs --ios ../hermes-mobile --android ../hermes-android
node scripts/generate-laoa-avatars.mjs --check --ios ../hermes-mobile --android ../hermes-android
列表容器继续为 44;最大可见边从圆形原先约 36.76 增至 44,约放大 19.7%。窄、扁轮廓保持自身比例,文字起点和行距不变。静态列表不运行连续动画,运行态沿用暂停与可见性处理。iOS 为运行态画布留出绘制空间,外部布局仍为原尺寸。
全部使用一次性测试服务和合成账号。Web 种下星星;iOS 界面保存菱形,并将测试照片改为圆角裁剪;安卓读取该菱形,界面改为橙色云朵和开心表情;Web 再经真实登录页面及接口读回。图片字节与 iOS 设置的裁剪方式保持一致。
WORKSPACE_FIXTURE_PORT=18804 WORKSPACE_FIXTURE_UPSTREAM_PORT=19124 node --import tsx tests/fixtures/workspace-server.ts
node scripts/seed-avatar-fixture.mjs
# 随后在独立 iOS 模拟器运行 testAvatarV2ChangesRoundTripThroughWebStorage,
# 在 Android 模拟器运行 AgentAvatarRoundTripTest,再执行:
npx playwright test -c playwright.avatar-roundtrip.config.ts
# 53 个图形样例可单独验证:
npx playwright test -c playwright.avatar.config.ts
安卓真实回读验证同时修复了包含较大头像的 JSON 响应在主线程读取的问题;响应体读取和解析现在在 IO dispatcher 完成。安卓原生 Bot 会在列表展示后读取桌面头像资源,失败保留共享头像,并阻止旧账号/旧刷新结果回写。
本次为源码、构建和模拟器验收;未进行生产发布或真实手机安装。产品官网与桌面应用仓库未修改。