v0.6.0(2026-09-12)
v0.6.0 聚焦发布门禁、Supabase 免费版保活与自动恢复,以及可复核的运维证据。 Passkey 会话桥接在版本发布后完成,在下一次补丁版本前记录于 Unreleased。
重点变化
- 健康就绪契约:
/api/health区分必需/可选依赖,并返回ready、degraded与 Supabase 状态。 - 定时保活:Vercel Cron 与 GitHub Actions 每日健康检查会触发一次轻量 Supabase 查询,避免免费版项目因闲置被暂停。
- 自动恢复:定时 workflow 查询 Supabase Management API;项目为
INACTIVE时执行恢复,并等待数据库恢复就绪。 - 发布操作:v0.6.0 runbook、生产 smoke 矩阵、回滚 runbook 与
pnpm check:release-docs构成可复现的证据门禁。 - 安全与配置:CI 检查迁移、RLS、Supabase 边界、发布文档、依赖漏洞和 安全响应头配置。
升级说明
- 部署应用前先按序应用迁移
022-025。 - GitHub 仓库变量/secret 中配置
HEALTHCHECK_URL、SUPABASE_PROJECT_REF与SUPABASE_ACCESS_TOKEN,供自动恢复使用。 - 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 是开发例外)。