Skip to content

v0.1.2

Latest

Choose a tag to compare

@2951461586 2951461586 released this 12 Nov 08:59
· 4 commits to main since this release

v0.1.2 —— 控制台修复 + 二次全扫 + 线上体检三项

本 tag 已前移到 d89d0b2(原 4f79cd2),因此包含其后的全部修复;下表资产
就是从 d89d0b2 重新构建的。

核心修复

  • 日志页报「日志加载失败:renderLogs is not defined」:v0.1.1 拆 app.js 时
    import 块漏了 ./render/logs.js。ESM 的未绑定标识符不在加载时报错,只在执行到
    renderLogs(state.logs) 那一刻抛 ReferenceError,又被同一个 .catch 改写成
    「接口失败」——而 /admin/api/logs 一直是 200。现在取数与渲染分开收尾。
  • 英文界面空态整段中文(暂无日志 / 密钥 / 账号 / 无):空态行是唯一不经过
    translateDom 的单元格,而空态正是新装用户的默认视图。
  • 设置里的显式 0 被吞成空框:限流关掉(0)后重开控制台,输入框是空的。
  • 账号接口失败把整个概览拖成空白:Promise.all 让 KPI / 模型表一起不渲染。
  • 更新检查的失败会被缓存 6 小时:关个标签页就能污染所有人的「检查更新」。
  • 签到计数虚高:「已有探测在跑」既算 probed 又进 settled。
  • 密钥删除/启停:目标不存在时不再回 200 {"ok":true} 并落盘,改为 404;
    控制台收到 404 会重拉一次,列表与真实状态对齐。

线上体检三项(本 tag 新增)

  • 缓存命中率改今日口径:以前算的是「累计缓存 / 累计入」,却与「今日 Token」
    并排展示。现在主值取今日,累计命中率与绝对量放 tooltip。
    升级当天该格可能显示 0.0%(老版本没按天累计 cached,分子无历史),隔天恢复。
  • 客户端断开不再算失败:context.Canceled 记 499(nginx 约定)且不计入
    failed_requests;DeadlineExceeded 记 504,与真实响应码一致。日志页 499 用
    warn 色。线上此前 4 条 502 里有 3 条是这类。
  • Docker 构建可注入版本:ARG VERSION=docker,否则 parseSemver("docker") 失败
    → 永远收不到升级提示。
    VERSION=$(git describe --tags) docker compose up -d --build

回归防线

  • Go:导入契约(跨模块调用必须 import)、TestVersionStatusSurvivesCallerCancel、
    TestCheckinSkipsInFlightProbes、TestLogsEndpointRejectsUnsupportedMethod、
    TestAdminKeysDeleteReportsMissing、TestStatsDayCachedTokens、
    TestRecordClientGoneIsNotFailure、TestStatusOfUsesUpstreamStatusCode
  • 前端冒烟 21 条(启动即刷新日志页 / 英文空态 / 设置保留 0 / 404 自愈 /
    缓存命中率口径 / 499 徽章 …)
  • 上述断言对旧代码复跑全部 FAIL

验证

sh scripts/lint.sh        exit 0(gofmt / vet / JS 语法 / 冒烟 / 测试)
go test -race ./...       13 包全绿(internal/server 77%+)
552 个用例(420 顶层 + 132 子用例)+ 前端冒烟 21 条

详见 docs/changes.md §53–§56。

校验下载物

sha256sum -c checksums.txt   # Windows: certutil -hashfile <file> SHA256