Skip to content

v0.6.0(2026-09-12)

v0.6.0 聚焦发布门禁、Supabase 免费版保活与自动恢复,以及可复核的运维证据。 Passkey 会话桥接在版本发布后完成,在下一次补丁版本前记录于 Unreleased。

重点变化

  • 健康就绪契约/api/health 区分必需/可选依赖,并返回 readydegraded 与 Supabase 状态。
  • 定时保活:Vercel Cron 与 GitHub Actions 每日健康检查会触发一次轻量 Supabase 查询,避免免费版项目因闲置被暂停。
  • 自动恢复:定时 workflow 查询 Supabase Management API;项目为 INACTIVE 时执行恢复,并等待数据库恢复就绪。
  • 发布操作:v0.6.0 runbook、生产 smoke 矩阵、回滚 runbook 与 pnpm check:release-docs 构成可复现的证据门禁。
  • 安全与配置:CI 检查迁移、RLS、Supabase 边界、发布文档、依赖漏洞和 安全响应头配置。

升级说明

  1. 部署应用前先按序应用迁移 022-025
  2. GitHub 仓库变量/secret 中配置 HEALTHCHECK_URLSUPABASE_PROJECT_REFSUPABASE_ACCESS_TOKEN,供自动恢复使用。
  3. Supabase 与应用 secret 应保存在 Vercel Secret/Sensitive 环境变量中, 不要把真实值写入会提交到 Git 的 .env 文件。

Unreleased:Passkey 登录

Passkey assertion 验签后,服务端通过一次性 magiclink token 桥接真实 Supabase 会话。浏览器只会收到 Supabase SSR HttpOnly cookie;token、action link、邮箱和 userId 均不会返回。已有已验证 MFA 因子的用户继续完成 aal2 challenge。

部署新版本后可按需启用:

bash
NEXT_PUBLIC_FEATURE_PASSKEY=true
NEXT_PUBLIC_FEATURE_PASSKEY_LOGIN=true

两项均为构建时 flag,应保存在 Vercel Secret/Sensitive 环境变量中。Passkey 要求 HTTPS(本机 localhost 是开发例外)。

基于 MIT 协议开源