Skip to content

v1.5.1

Choose a tag to compare

@dikxingmengya dikxingmengya released this 04 Oct 01:22
· 24 commits to main since this release

📱 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

Full Changelog: v1.4.3...v1.5.1