Repository navigation
v1.5.1
📱 MisMiss v1.5.1 — 手机上好用了
移动端全面适配 · 面板不再整页打不开 · 修掉几处「看起来能用其实在坏」的问题
v1.5.1 以移动端适配为主,另修了几个线上真实踩到的坑。桌面端的布局基本未动。
📱 移动端
手机上此前有不少「能显示,但没法用」的地方,这版逐条收拾:
- 账户详情页的 Tab 不再折成两行——六个 Tab 均分窄屏后每个只剩 60px 上下,
「图标 + 四字标签」放不下,标签自己折行了。移动端隐去图标,把宽度让给文字 - 插件日志弹窗——每行原本是「时间 / 级别 / 来源 / 消息」四列横排,光前三个
固定列就占掉 300px,而窄屏减去内边距只剩 310px,消息(日志的主角)几乎
分不到宽度。窄屏改为消息独占一行 - 插件卡片整卡可点进入插件主页,取代原来混在一排小图标里的
ExternalLink
按钮;没有插件主页的插件点了没反应,不做成「看着能点却没响应」的样子 - 筛选区:四组各补齐为四项(新增「即将过期 / Bot 异常 / 未绑定」等),
窄屏默认折叠成一个「筛选」按钮并显示生效数量;日志页与账户页共用同一套开关 - 日志级别在窄屏显示缩写(
SUCCESS→SUC、WARNING→WARN、CRITICAL→CRT),
短的那些(INFO/ERROR/DEBUG)保持原样——它们本来就不占地方 - 开关按钮全站收敛成一份实现,尺寸、过渡、焦点环、保存中的转圈位置统一
🐛 修掉的问题
面板整页 500,三个接口一起挂
CoreApiException: 直播间尚未初始化,请先调用 join()
MissevanLivestream.creator 在直播间未 join 时直接抛异常,而
creator_name 等字段都是它的转发属性。账户列表 / 总览 / 服务状态共用的那条
聚合路径裸读了它——一个没就绪的账户就能让整页打不开。
平时账户都能正常启动所以看不出来;v1.5.0 部署后平台风控导致账户集体起不来,
正好把它踩出来。现已统一走安全取值(同一条链上的「主播简介」早就是这个写法,
只是当初没覆盖到其它字段)。
插件库显示「为空」,但插件其实都在
页面用 Promise.all([插件库, 账户列表]) 把两个互不依赖的请求绑死,再配
一个静默的 catch {}。账户接口 500 → 插件列表也变成空 → 错误被吞 →
界面显示「插件库为空」。真实情况是「另一个接口挂了」,界面却说「你没装插件」,
排查时被这个假象带偏过一轮。改为各自独立结算,并且如实报错。
加入直播间的欢迎语发得很晚
事件是实时的、消息却迟迟不来。根因在出站闸门:它把平台正常应答但业务拒绝
(如给未开播房间发消息返回的「主播休息」)也算作了「限流失败」。32 个账户的
定时消息 8 次就攒满阈值,闸门于是反复进入 30 秒全局退避,把欢迎语这类
实时消息一并压后——而弹幕/进入事件走 WebSocket、不经过闸门,所以「事件到了、
消息没发」。
现在只有确实表明被限流的才计入失败。
悬浮提示与提示条
- Toast 在窄屏左端跑出屏幕:宽度用了
w-full(视口宽 100%),而容器只锚在
右侧 16px、没有左侧约束,屏宽不足 400px 时左边缘被顶到 −16px - Toast 压住顶栏菜单:它距顶仅 16px,而移动端顶栏占 0~48px
- 按钮的悬浮提示被视口边缘裁掉,靠近顶部时还会盖住顶栏;现在贴边会自动
夹回屏内、贴近顶部会自动翻到下方 - 长提示超过屏幕宽度时改为换行,而不是硬撑着一行被切掉
切 Tab 时页面宽度抖动
全局滚动条宽 6px 且占布局宽度:内容矮的 Tab 没有滚动条、内容高的有,
可用宽度差 6px,均分宽度的 Tab 栏就跟着缩一下。已常驻预留滚动条位置。
图标不在正中间
Button 把 children 多包了一层 <span>,而调用方普遍写成
<span className="hidden sm:inline">刷新</span>——内层虽然 display:none,
外层仍是个空 flex item,gap 照常在它与图标之间生效,图标被挤偏。
(原注释「display:none 的元素不占 flex 间距」推理是对的,被这层包装破坏了。)
⚙️ 其它
- Docker 构建:Docker CLI 与 compose 插件下载源默认改走清华镜像
(download.docker.com在国内会传输中途被重置),curl补上
--retry-all-errors——默认的--retry对连接重置完全不重试 - 健康检查放宽
start_period:启动会按账户数错峰(32 个账户约 50 秒),
镜像里默认的 15 秒撑不过去,会让 compose 判定不健康并放弃启动 nginx,
表现为更新完面板打不开
⚠️ 已知问题
面板保存设置会丢掉 config.yml 里的注释——保存走的是 yaml.dump 整表重写,
YAML 注释不在数据模型里,重写即丢失。如果你在 config.yml 里写了注释,
保存过一次面板设置后就没了。功能不受影响,但注释里的说明需要另行留存。
MisMiss v1.5.1 — 手机上终于能顺利用 🎧
What's Changed
- dev by @dikxingmengya in #6
Full Changelog: v1.4.3...v1.5.1