docs:CHANGELOG 补 2026-06-18 推送通知(Web Push + 桌面原生)

- 网页 / PWA Web Push(VAPID)+ 桌面原生通知一条;HTML 与 md twin 同步,build.sh 重建
  CHANGELOG.html
This commit is contained in:
2026-06-18 17:01:41 +08:00
parent b414c57b6a
commit c306daff92
2 changed files with 57 additions and 3 deletions
+22
View File
@@ -25,6 +25,18 @@
<p class="lede">本 Changelog 自 2026-05-22 起以 HTML 格式维护。此前之变更可从 main 分支 <code>git log</code> 取得;下表为近期较显著之 commit。</p>
<h2>2026-06-18 — 推送通知:网页 / PWA Web Push + 桌面原生通知</h2>
<p>页面 / PWA 关闭、或桌面窗口非前台时也能收到系统通知;判定统一为「页面打开走应用内提示,关闭则系统通知」,三端各自落地。</p>
<ul>
<li><strong>网页 / PWAWeb Push, VAPID</strong>:服务端在事件未经 SSE 投递到设备时(即该设备页面已关)发 Web Push —— 收到文件、消息、传输完成 / 失败均可。新增 <code>push_subscriptions</code> 表(含 <code>locale</code>,主键为 endpoint 的 SHA-256 以幂等 upsert+ <code>/api/push/{vapid-key, subscribe}</code> 端点 + <code>internal/push</code> 发送器(404 / 410 自动清理死订阅)。文案按订阅设备语言在服务端渲染(中简 / 中繁 / 英)。覆盖浏览器 / Android / iOS 16.4+ 已安装 PWA</li>
<li><strong>桌面客户端原生通知</strong>:仅窗口非前台时弹原生系统通知(前台仍走应用内提示),复用 WebView 事件分发 + 客户端本地化。macOS 走 <code>UNUserNotificationCenter</code>(未签名时安全空操作,待签名 / 公证后显示)、Windows 走原生 toast</li>
<li><strong>判定复用既有信号</strong>:网页端「页面是否打开」直接取 <code>Hub.SendTo</code> 的投递结果,零额外状态;离线消息改返 202,文本随推送送达</li>
<li><strong>开关与配置</strong>:设置页新增「推送通知」面板(仅浏览器 / PWA),登录后自动把既有订阅重新登记到当前用户;prod 可选设 <code>CDROP_VAPID_PUBLIC_KEY</code> + <code>CDROP_VAPID_PRIVATE_KEY</code><code>just vapid-keygen</code> 生成一对,二者须同时设置,都留空则推送惰性关闭)</li>
<li>commit <code>92a03ae</code></li>
</ul>
<h2>2026-06-16 — 浏览器免重登 + 设备名持久化</h2>
<p>浏览器端不再每次重启都要重新登录;长寿命 refresh_token 从此完全不进 JS,改由服务端 HttpOnly cookie 会话持有。对长寿命凭据而言比原先(refresh_token 在 JS 内存、开页期 XSS 可读)严格更安全。</p>
@@ -124,6 +136,16 @@
时间倒序细粒度迭代见 git 历史本档只记录结构性 / 行为性变更与重要 fix
## 2026-06-18 推送通知网页 / PWA Web Push + 桌面原生通知
页面 / PWA 关闭或桌面窗口非前台时也能收到系统通知判定统一为页面打开走应用内提示关闭则系统通知
- 网页 / PWAWeb Push, VAPID服务端在事件未经 SSE 投递到设备时发 Web Push收到文件 / 消息 / 传输完成 / 失败新增 push_subscriptions locale主键为 endpoint SHA-256+ /api/push/{vapid-key, subscribe} + internal/push 404 / 410 / / / Android / iOS 16.4+ PWA
- 桌面客户端原生通知仅窗口非前台时弹前台走应用内macOS UNUserNotificationCenter未签名时安全空操作待签名后显示Windows 原生 toast
- 判定复用 Hub.SendTo 的投递结果零额外状态离线消息改返 202文本随推送送达
- 设置页新增推送通知面板仅浏览器 / PWAprod 可选设 CDROP_VAPID_PUBLIC_KEY + CDROP_VAPID_PRIVATE_KEYjust vapid-keygen 生成都留空则惰性关闭
- commit 92a03ae
## 2026-06-16 浏览器免重登 + 设备名持久化
浏览器端不再每次重启都要重新登录长寿命 refresh_token 完全不进 JS改由服务端 HttpOnly cookie 会话持有比原先 refresh_token JS 内存严格更安全