2026-03-27 打卡

1. 今天做了什么

  • 代码同步:将本地 4 个积压 commit 推送到 GitHub(master → main),确认 origin/master 和 origin/main 已同步
  • 发现并修复 Dashboard 线上 404 问题(详见下方)
  • 全面审查项目代码,梳理当前功能状态和下一步计划
  • 调研支付集成方案,确定使用 LemonSqueezy(无需海外公司,支持全球收款)

2. Dashboard 404 问题排查与修复

问题现象

  • /dashboard 路由线上返回 404,但 /humanize/pricing、首页均正常
  • 本地构建正常,.vercel/output/static/dashboard.html 存在
  • Preview 部署 URL 上 dashboard 返回 200

根因分析

  1. GitHub → Cloudflare Pages 自动构建未触发:push 到 main 后 Cloudflare 没有自动构建,GitHub webhook 可能已断开(项目列表显示 Git Provider = "No")
  2. wrangler.toml 的 [vars] 与 CF Pages 环境变量冲突:deploy 时报 Binding name 'SIGN_SECRET' already in use
  3. wrangler pages deploy 默认部署到 preview:需要加 --branch=main 才会部署到 production

修复步骤

  1. wrangler.toml 移除 [vars] 段(环境变量已在 CF Dashboard 配置,不需要重复定义)
  2. 本地构建 + 使用 wrangler pages deploy --branch=main 直接部署到 production
  3. 获取 CF API Token(需要 Cloudflare Pages Edit 权限)

部署命令(以后使用)

cd ~/projects/ai-humanizer
npm run pages:build
CLOUDFLARE_API_TOKEN=<token> npx wrangler pages deploy .vercel/output/static --project-name=ai-humanizer --branch=main --commit-dirty=true

当前状态

  • ✅ 首页、/humanize、/dashboard、/pricing、API 路由均正常
  • ✅ origin/master 和 origin/main 代码同步
  • ⚠️ GitHub webhook 断开,push 不会自动触发构建(暂用 wrangler 手动部署)

3. 项目当前功能清单

已完成

  • ✅ 24 模式 AI 文本检测 + 人性化重写(核心功能)
  • ✅ 多 Provider 支持(智谱/Gemini/OpenAI 自动降级)
  • ✅ Google OAuth 登录(NextAuth v5)
  • ✅ D1 数据库(用户、使用历史、每日统计)
  • ✅ Credits 系统(注册送 30 次,每次使用扣 1 次,余额不足返回 402)
  • ✅ Dashboard(统计卡片 + 使用历史分页)
  • ✅ 用户菜单(头像、名字、下拉导航)
  • ✅ Pricing 页面(Basic 19/Lifetime $49,UI 已就绪)
  • ✅ Turnstile 人机验证
  • ✅ IP 限流(未登录用户 3 次/天)
  • ✅ Cloudflare Pages 部署(手动 wrangler)
  • ✅ SEO meta tags(title、description、OG、Twitter Card)

待完成

  • [ ] 支付集成(LemonSqueezy)— 需注册账号 + 拿 API Key
  • [ ] Cloudflare Pages 重新连接 GitHub(恢复自动构建)
  • [ ] 自定义域名绑定
  • [ ] sitemap.xml 生成
  • [ ] Product Hunt 发布准备
  • [ ] 安全加固(NEXTAUTH_SECRET 等敏感值从 Dashboard 移除明文)

4. 新认识

  • Cloudflare Pages 的 Git 集成会断开,需要定期检查 webhook 状态
  • wrangler.toml 里的 [vars] 和 CF Dashboard 的环境变量会冲突,二选一
  • wrangler pages deploy 不加 --branch 只部署到 preview,加 --branch=main 才是 production
  • LemonSqueezy 比 Stripe 更适合个人开发者出海:无需海外公司、自带税务处理、支持 PayPal + 信用卡

5. 下一步

  • 注册 LemonSqueezy 账号,拿到 API Key
  • 集成支付:checkout API + webhook + plan 升级逻辑
  • 重新连接 GitHub 到 Cloudflare Pages
  • 绑定自定义域名