// 更新日志弹层:点右栏底部版本号打开。数据 GET /v1/changelog(公开端点,直接 fetch, // 不走 api() 免绑登录态)。红点:localStorage 记 last seen 版本,与 /healthz 版本不一致 // → 版本号旁亮小红点提示"有更新",打开弹层即视为已看、红点清除。 import { $ } from "./dom.js"; import { escapeHtml } from "./format.js"; import { renderMd, highlightIn } from "./markdown.js"; const SEEN_KEY = "zcbot_seen_version"; let _current = ""; // /healthz 返回的当前版本(main.js loadVersion 灌入) // main.js loadVersion 拿到版本号后调:决定红点亮不亮(localStorage 不可用时静默不亮) export function markVersion(v) { _current = v || ""; const el = $("app-version"); if (!el) return; let seen = ""; try { seen = localStorage.getItem(SEEN_KEY) || ""; } catch (e) {} el.classList.toggle("hasnew", !!_current && seen !== _current); } export function closeChangelogModal() { $("changelog-modal").classList.remove("show"); } async function openChangelogModal() { const body = $("cl-body"); $("changelog-modal").classList.add("show"); body.innerHTML = '