上线前准备清单:盘点距离正式上线还差什么,生成一张对照表 #119

Open
opened 2026-10-28 01:55:41 +08:00 by jesse · 2 comments
Owner

背景

项目现在基本成型了,我想弄清楚离正式上线还差哪些准备。请把仓库、现有工单和部署配置都过一遍,整理成一张表,我按顺序一项一项去核对。

要做什么

以 staging 最新代码和现在开着的工单为准,覆盖下面这些方面(发现别的也一起列进来):

  • 功能完整度:核心流程(建档、排盘、对话咨询、生时校正、报告、合盘)有没有断的地方,还开着、会挡住上线的 bug(例如 #115 网站进不去这种)
  • 稳定性:报错和异常怎么处理,服务挂了能不能自动恢复,日志和告警有没有
  • 性能和容量:同时能撑多少用户,模型调用的限流和超时,高峰期会不会排队
  • 安全:登录和账号安全,密钥和环境变量怎么管理,接口有没有做鉴权和防刷,用户数据有没有隔离
  • 数据:数据库备份和恢复,迁移脚本,用户数据导出和删除
  • 部署和发布:从 staging 到正式环境的流程,回滚办法,域名、HTTPS、CDN
  • 成本:模型调用和服务器的费用预估,有没有设用量上限
  • 合规和法务:隐私政策、用户协议、免责声明(占星内容只供参考),备案和收费资质(如果要收费)
  • 运营:收费和支付、用户反馈渠道、数据统计埋点、客服
  • 体验收尾:新用户引导、空状态、出错时的提示、移动端适配、多语言里有没有漏翻

之前已经有过 beta-safety-net、beta-capacity、release-path-production 这些分支,先查清楚它们做到了哪一步,已经完成的项直接在表里标成已完成。

产出

在本单下回复一张表,按"必须上线前完成 → 最好上线前完成 → 上线后再做"分组,同一组里按重要程度排序。表格的列:

| 序号 | 类别 | 检查项 | 现状(已完成/部分完成/未开始/不确定) | 依据(文件、工单或分支) | 要我做什么(核对/决定/提供资料) | 优先级 | 预计工作量 |

要求:

  • 每一行写成我能直接去核对的具体动作,不要写"加强安全性"这种空话
  • 代码里能确认的,写明依据;确认不了、需要我真机看或者我来拍板的,标出来
  • 只盘点不动手:不改代码,也先别拆子工单。等我对完表,再决定哪些项拆成小单
## 背景 项目现在基本成型了,我想弄清楚离正式上线还差哪些准备。请把仓库、现有工单和部署配置都过一遍,整理成一张表,我按顺序一项一项去核对。 ## 要做什么 以 staging 最新代码和现在开着的工单为准,覆盖下面这些方面(发现别的也一起列进来): - 功能完整度:核心流程(建档、排盘、对话咨询、生时校正、报告、合盘)有没有断的地方,还开着、会挡住上线的 bug(例如 #115 网站进不去这种) - 稳定性:报错和异常怎么处理,服务挂了能不能自动恢复,日志和告警有没有 - 性能和容量:同时能撑多少用户,模型调用的限流和超时,高峰期会不会排队 - 安全:登录和账号安全,密钥和环境变量怎么管理,接口有没有做鉴权和防刷,用户数据有没有隔离 - 数据:数据库备份和恢复,迁移脚本,用户数据导出和删除 - 部署和发布:从 staging 到正式环境的流程,回滚办法,域名、HTTPS、CDN - 成本:模型调用和服务器的费用预估,有没有设用量上限 - 合规和法务:隐私政策、用户协议、免责声明(占星内容只供参考),备案和收费资质(如果要收费) - 运营:收费和支付、用户反馈渠道、数据统计埋点、客服 - 体验收尾:新用户引导、空状态、出错时的提示、移动端适配、多语言里有没有漏翻 之前已经有过 beta-safety-net、beta-capacity、release-path-production 这些分支,先查清楚它们做到了哪一步,已经完成的项直接在表里标成已完成。 ## 产出 在本单下回复一张表,按"必须上线前完成 → 最好上线前完成 → 上线后再做"分组,同一组里按重要程度排序。表格的列: | 序号 | 类别 | 检查项 | 现状(已完成/部分完成/未开始/不确定) | 依据(文件、工单或分支) | 要我做什么(核对/决定/提供资料) | 优先级 | 预计工作量 | 要求: - 每一行写成我能直接去核对的具体动作,不要写"加强安全性"这种空话 - 代码里能确认的,写明依据;确认不了、需要我真机看或者我来拍板的,标出来 - 只盘点不动手:不改代码,也先别拆子工单。等我对完表,再决定哪些项拆成小单
jesse added the agent/待规划agent/试点 labels 2026-10-28 01:55:41 +08:00
Claude added the agent/规划中 label 2026-10-28 02:09:01 +08:00
Collaborator

已接手,正在盘点(基于 staging 最新 0f0fea325,对照 10-14 那次内测体检看哪些变了)。只盘点不动手,表做好贴在这里。

<!-- agent:claude plan started base=0f0fea325 --> 已接手,正在盘点(基于 staging 最新 `0f0fea325`,对照 10-14 那次内测体检看哪些变了)。只盘点不动手,表做好贴在这里。
Collaborator

@jesse 上线前准备清单做好了。基于 staging 最新 0f0fea325,对照了 10-14 那次内测体检,最要紧的几条我亲手抽查过。只盘点,没改代码,也没拆子单。

先说结论

  1. 正式环境还是 8 月 16 日的版本(7b620c7a),staging 比它多了 2025 个提交。协议、隐私政策、注销、AI 标识、限流、首问免费、合盘、新界面……全都只在 staging 上。我实测正式站 /privacy 打开是 404。
  2. 正式环境现在没有定时备份:每日备份要等 main 更新后才开始跑。
  3. 挡住上线的主要是四样:首发本身没做、真机验收积压(46 张单)、法务主体信息和律师审、备案。代码层面大多已经齐了。

「依据」一栏是给我自己和执行方查的,你只看「要我做什么」就行。

一、必须上线前完成

序号 类别 检查项 现状 依据 要我做什么 优先级 预计工作量
1 部署发布 定首发日期,按首发说明书做一次正式发布(main 快进到 staging,不能用合并) 未开始 docs/operations/production-release-runbook-20261014.md;#74 决定日期;首发前一天冻结推送;当天照说明书点按钮 高 操作小,风险大
2 部署发布 确认能退回旧版:回滚要用旧版本的构建产物,而产物只留 30 天,8 月那版的很可能已经没了 不确定 .gitea/workflows/deploy-production.yml 回滚段;构建产物保留 30 天 核对:Gitea → Actions 找 7b620c7a 那次成功的门禁,看产物还在不在。不在就要重新定「发布失败怎么办」 高 小
3 数据 在正式服务器上演练一次数据库升级(75 个改动,含「删本人重复档案」「归档对话全回到列表」「他人档案已采用时间退回」这几条会改用户能看到的数据) 未开始,只在本机空库跑过 docs/testing/production-migration-rehearsal-20261014.md;deploy/rehearse-production-migrations.sh 核对:首发前照说明书第 5 节点演练,看到 rehearsal_ok=1 高 中
4 数据 首发前先建一个新格式的恢复点(8 月的旧备份不能拿来退回) staging 已有,没在正式环境做过 deploy/run-production-recovery.sh;说明书第 4 节 核对:点「Create Production Recovery Point」,结果里有 RECOVERY_FORMAT=2 高 小
5 数据 首发后确认每日备份真的在跑,并做一次恢复演练 代码在 staging,正式环境现在没有定时备份 .gitea/workflows/backup-production-daily.yml(main 上没有);docs/testing/production-restore-drill-20261014.md(空) 核对:首发第二天看到一次成功的每日备份;内测开放前做一次恢复演练 高 中
6 数据 备份是不是存在另一台机器上 不确定 每日备份传到 Gitea(留 14 天) 核对:Gitea 和正式服务器是不是同一台机器;决定 14 天够不够 高 小
7 合规 提供运营主体全称、联系地址、客服邮箱 未开始:三项都是「【待填写】」 frontend/src/lib/legal-entity.ts 提供资料 高 小
8 合规 找律师审用户协议和隐私政策(文中 15 处「待确认」:退款时限、管辖法院、日志保存期、境外模型商名单、出境合规路径等),定稿后去掉「草稿」标记 未开始(10-14 时是 13 处) frontend/src/lib/legal-documents.ts 提供事实 + 找律师 高 中
9 合规 发布前自动拦住「待填写」和「草稿」 未接入:只有手动开一个开关跑测试才会拦,发布流程里没有这一步 deploy/README.md:138 决定:写进首发说明书必做步骤,或让我改成发布时自动检查 高 小
10 合规 ICP 备案 未开始,页脚备案号为空。要不要办取决于服务器在不在境内,仓库里看不出 legal-entity.ts 核对服务器所在地;在境内就用主体去办 高 大
11 合规 生成式 AI / 算法登记(网信办) 未开始,仓库里没有任何材料 无 决定:问律师要不要办 高 大
12 合规 用了境外模型,要单独征得用户同意数据出境 未开始:隐私政策写了会出境,但登录时只勾协议和隐私两份 legal-documents.ts 第三节;/api/account/consent 决定模型商用境内还是境外;请律师定做法 高 中
13 合规 内容安全审核:本地敏感词表已在跑;阿里云审核代码已写好但要密钥 部分完成;正式环境配没配不确定 frontend/src/lib/moderation/ 提供:开通阿里云内容安全,把密钥放进服务器环境文件 高 小
14 真机验收 46 张单停在「待真机」,真机清单有结果的约 10%,而且几乎都是机器填的 积压 Gitea agent/待真机;docs/testing/ 核对:先走 10-14 的内测冒烟清单 11 条(docs/testing/beta-smoke-20261014.md),再按 #115 → #111(连同 #96~#109)→ #73 → #95 顺序关单;纯后台单(#74、#79)可直接关 高 大
15 功能 #115「网站进不去」 staging 已修(BUG-1464),等你关单 #115 核对后关单 高 小
16 功能 核心流程逐个走一遍:新邮箱注册 → 建档 → 第一问不扣点;加家人后来回切不串人;给家人出报告能完成;说「你好」不扣点;说「帮我做生时纠正」能进校正;中文报告切英文没有汉字 staging 都修了,真机都没走;「你好」不扣点从没用真模型测过 BUG-1030、1063、976/977、1306/1317;#95、#103、#89 核对:冒烟清单第 3、5~8 条加 #89 的 5 步 高 小
17 安全 正式环境拒绝测试验证码(只该在 staging 用) staging 已有;正式环境现在实测是关着的 deploy/validate-production-env.sh 核对:首发后看正式站登录页没有固定验证码 高 小
18 安全 / 容量 按用户限流(对话 10 次/分 + 120 次/时、校正 5 次/分 + 40 次/时、报告 3 次/时) staging 已有,正式环境没有。计数存在内存里,服务一重启就清零 frontend/src/lib/request-rate-limit.ts;#76 核对:一分钟连问 11 次,第 11 次提示先停一下且不扣点 高 小
19 容量 压测:从来没跑过(脚本已写好,两次都因为缺测试账号和服务器权限没跑成) 未开始 frontend/scripts/research/beta-load-smoke.mts 决定内测同时在线人数上限;授权在 staging 跑一次 高 中
20 稳定性 告警(服务挂了、磁盘满、备份过期时发飞书)和日志轮转 脚本写好了,服务器上没装,飞书机器人没配 deploy/monitor/;deploy/README.md 告警节;#75 提供飞书机器人 Webhook;首发后装上,故意停一次服务看能不能收到告警 高 中
21 成本 每家模型供应商后台设月度额度和告警(站内没有全站花费上限) 不确定(看不到供应商后台) — 核对并设好;定每个邀请码发多少点 高 小
22 运营 首发是「邀请码内测」还是公开注册(现在任何邮箱都能注册,新账户 0 点 + 首问免费) 待定 docs/operations/beta-invite-codes.md 决定 高 小
23 运营 各功能扣多少点:后台定价页逐项核对(合盘 19 点等)是否都已发布 不确定 /admin/feature-pricing 核对 中 小
24 运营 客服联系方式(现在除了站内「反馈与投诉」,用户找不到人) 未开始 legal-entity.ts 提供客服邮箱(可选微信),定谁来回 中 小
25 运营 首发要不要收费。要收的话:支付方式(现在只有易支付·支付宝,正式环境强制关)、退款规则(现在只能后台人工登记)、营业执照和商户资质 待定 frontend/src/app/api/payment/epay/;/api/admin/orders 决定;收费就提供资质 中(收费则高) 大
26 体验 手机上(iPhone Safari)整份冒烟清单走一遍 多轮修复都在 staging,没有完整的手机走查 BUG-920、1083、1252 核对 中 中
27 部署发布 首发后照「首发核对表」逐项填 表是空的 docs/testing/production-first-release-20261014.md 核对 中 小

二、最好上线前完成

序号 类别 检查项 现状 依据 要我做什么 优先级 预计工作量
28 功能 婚恋合盘:真模型写的报告从没跑过 staging 已有(#79/#82/#85) docs/testing/synastry-full-report-20261018.md 决定合盘进不进首发;进的话走 14 步清单 高 中
29 功能 特殊上升点用的日出时刻错了几个小时 未修(BUG-1462) — 决定:首发先隐藏特殊上升点,还是先修 中 小
30 安全 staging 登录页公开显示固定验证码,任何人都能登进 staging 用模型 10-01 定的保留 staging /login 决定:内测开放后要不要关或限访问 中 小
31 安全 登录防刷:没有图形验证码,任何邮箱都能注册 部分完成(验证码 5 分钟过期、错 3 次作废、每邮箱 60 秒最多 3 封) frontend/src/modules/identity/auth-factory.ts 决定是否只放有邀请码的人、要不要加图形验证码 中 中
32 安全 用两个账号互相访问对方的对话 / 报告 / 人物,确认看不到 数据库有行级权限,测试覆盖一部分,没做过专门的越权测试 frontend/tests/database-*.test.ts 决定首发前是否做一次 中 中
33 安全 网页安全响应头(防嵌套、强制 HTTPS 等)都没加 未开始 deploy/Caddyfile.production.selfhosted;frontend/next.config.ts 决定要不要加(我建议加,改动小) 中 小
34 安全 登服务器核对两个环境文件只有本人可读,8 月的初始密码已换 文档写了,服务器上的实际情况看不到 deploy/README.md 核对 中 小
35 安全 验证码邮件服务(Resend)在境外,国内邮箱可能收不到或很慢 未开始 frontend/src/modules/identity/config.ts 核对:用 QQ / 163 / 企业邮箱各收一次;决定要不要换国内服务 中 中
36 合规 个人信息导出:没有自助导出,隐私政策写的是人工处理、15 个工作日内答复 部分完成 legal-documents.ts 决定首发靠人工处理是否可以 中 中
37 成本 后台没地方填模型单价,成本一直记成 0;七处模型调用没记账 未开始 TASK-cost-accounting-gaps-20260927.md(没人领) 提供各模型单价;决定排期 中 中
38 运营 用户行为统计(日活、注册→建档→首问的转化、留存)一个都没有 未开始 后台只有成本和流水类页面 决定要不要上、用哪家(境内或自托管,要写进隐私政策) 中 中
39 数据 待上线数据库改动的说明文档没跟上:10-14 后新增 12 个没写说明(其中一个会把老用户的「首问免费」标成已用过) 部分完成 docs/operations/production-migrations-20261014.md 无(我来补);看到「首问免费」那条请决定老用户算不算已用 中 小
40 清账 Bug 历史 1263 条,131 条没关(48 条等真机),另有约 150 条写着「已修、待发布」 待清 docs/BUG_HISTORY.md 无(首发后由我清账) 低 中

三、上线后再做

序号 类别 检查项 现状 依据 要我做什么 优先级 预计工作量
41 稳定性 前端出错自动上报(#115 那次是你发现的,不是系统报的) 未开始 — 决定要不要接 中 中
42 稳定性 VedAstro、地点服务、模型供应商挂掉时网站会怎样,没演练过 不确定 deploy/README.md 无(我在 staging 断一次看) 中 中
43 部署发布 CDN:现在没有 未开始 Caddyfile 决定要不要上 低 中
44 运营 支付对账 未开始 — 收费后再定 低 中
45 功能 星历页和星盘页岁差口径不一样(页面上加了说明) 未修(BUG-703/707) — 决定是否接受「加说明」 低 中
46 功能 单独调用宫力接口会报错(星盘页不受影响) 未修(BUG-1463) — 无 低 小
47 体验 网页界面只有中文,英文只覆盖报告 待定 frontend/src/app/layout.tsx 决定是否算缺口 低 大
48 数据 迁移前的 Supabase 旧库还留着(原定只保留 14~30 天) 不确定 deploy/README.md 决定留还是删(删前先最终对账) 低 小
49 安全 仓库匿名可读、含旧资料的提交仍能打开(BUG-1008) 你 10-14 已定不处理 BUG-1008 无 — —

和 10-14 那次相比

  • 前进了:AI 标识和免责、给别人出报告、按用户限流、备份 / 告警 / 日志的代码、首发说明书、首问免费、合盘、新界面,都进了 staging。
  • 原地没动:正式环境没发过版(差距从约 1674 个提交涨到 2025 个);法务主体、律师审、备案、支付、压测、真机验收都没进展。
  • 新发现:回滚可能走不通(第 2 条);发布流程不拦占位符(第 9 条);没有安全响应头、没有错误上报、没有用户行为统计。

建议的顺序:先做你一个人就能定的第 2、7、22 条,再做第 14 条的冒烟清单,然后定首发日期(第 1 条)。表对完后告诉我哪些要拆成小单。

<!-- agent:claude plan brief=- base=0f0fea325 --> @jesse 上线前准备清单做好了。基于 staging 最新 `0f0fea325`,对照了 10-14 那次内测体检,最要紧的几条我亲手抽查过。只盘点,没改代码,也没拆子单。 **先说结论** 1. **正式环境还是 8 月 16 日的版本**(`7b620c7a`),staging 比它多了 2025 个提交。协议、隐私政策、注销、AI 标识、限流、首问免费、合盘、新界面……全都只在 staging 上。我实测正式站 `/privacy` 打开是 404。 2. 正式环境现在**没有定时备份**:每日备份要等 main 更新后才开始跑。 3. 挡住上线的主要是四样:**首发本身没做、真机验收积压(46 张单)、法务主体信息和律师审、备案**。代码层面大多已经齐了。 「依据」一栏是给我自己和执行方查的,你只看「要我做什么」就行。 ## 一、必须上线前完成 | 序号 | 类别 | 检查项 | 现状 | 依据 | 要我做什么 | 优先级 | 预计工作量 | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | 部署发布 | 定首发日期,按首发说明书做一次正式发布(main 快进到 staging,不能用合并) | 未开始 | `docs/operations/production-release-runbook-20261014.md`;#74 | **决定**日期;首发前一天冻结推送;当天照说明书点按钮 | 高 | 操作小,风险大 | | 2 | 部署发布 | 确认能退回旧版:回滚要用旧版本的构建产物,而产物只留 30 天,8 月那版的很可能已经没了 | 不确定 | `.gitea/workflows/deploy-production.yml` 回滚段;构建产物保留 30 天 | **核对**:Gitea → Actions 找 `7b620c7a` 那次成功的门禁,看产物还在不在。不在就要重新定「发布失败怎么办」 | 高 | 小 | | 3 | 数据 | 在正式服务器上演练一次数据库升级(75 个改动,含「删本人重复档案」「归档对话全回到列表」「他人档案已采用时间退回」这几条会改用户能看到的数据) | 未开始,只在本机空库跑过 | `docs/testing/production-migration-rehearsal-20261014.md`;`deploy/rehearse-production-migrations.sh` | **核对**:首发前照说明书第 5 节点演练,看到 `rehearsal_ok=1` | 高 | 中 | | 4 | 数据 | 首发前先建一个新格式的恢复点(8 月的旧备份不能拿来退回) | staging 已有,没在正式环境做过 | `deploy/run-production-recovery.sh`;说明书第 4 节 | **核对**:点「Create Production Recovery Point」,结果里有 `RECOVERY_FORMAT=2` | 高 | 小 | | 5 | 数据 | 首发后确认每日备份真的在跑,并做一次恢复演练 | 代码在 staging,正式环境现在没有定时备份 | `.gitea/workflows/backup-production-daily.yml`(main 上没有);`docs/testing/production-restore-drill-20261014.md`(空) | **核对**:首发第二天看到一次成功的每日备份;内测开放前做一次恢复演练 | 高 | 中 | | 6 | 数据 | 备份是不是存在另一台机器上 | 不确定 | 每日备份传到 Gitea(留 14 天) | **核对**:Gitea 和正式服务器是不是同一台机器;**决定** 14 天够不够 | 高 | 小 | | 7 | 合规 | 提供运营主体全称、联系地址、客服邮箱 | 未开始:三项都是「【待填写】」 | `frontend/src/lib/legal-entity.ts` | **提供资料** | 高 | 小 | | 8 | 合规 | 找律师审用户协议和隐私政策(文中 15 处「待确认」:退款时限、管辖法院、日志保存期、境外模型商名单、出境合规路径等),定稿后去掉「草稿」标记 | 未开始(10-14 时是 13 处) | `frontend/src/lib/legal-documents.ts` | **提供事实** + 找律师 | 高 | 中 | | 9 | 合规 | 发布前自动拦住「待填写」和「草稿」 | 未接入:只有手动开一个开关跑测试才会拦,发布流程里没有这一步 | `deploy/README.md:138` | **决定**:写进首发说明书必做步骤,或让我改成发布时自动检查 | 高 | 小 | | 10 | 合规 | ICP 备案 | 未开始,页脚备案号为空。要不要办取决于服务器在不在境内,仓库里看不出 | `legal-entity.ts` | **核对**服务器所在地;在境内就用主体去办 | 高 | 大 | | 11 | 合规 | 生成式 AI / 算法登记(网信办) | 未开始,仓库里没有任何材料 | 无 | **决定**:问律师要不要办 | 高 | 大 | | 12 | 合规 | 用了境外模型,要单独征得用户同意数据出境 | 未开始:隐私政策写了会出境,但登录时只勾协议和隐私两份 | `legal-documents.ts` 第三节;`/api/account/consent` | **决定**模型商用境内还是境外;请律师定做法 | 高 | 中 | | 13 | 合规 | 内容安全审核:本地敏感词表已在跑;阿里云审核代码已写好但要密钥 | 部分完成;正式环境配没配不确定 | `frontend/src/lib/moderation/` | **提供**:开通阿里云内容安全,把密钥放进服务器环境文件 | 高 | 小 | | 14 | 真机验收 | 46 张单停在「待真机」,真机清单有结果的约 10%,而且几乎都是机器填的 | 积压 | Gitea `agent/待真机`;`docs/testing/` | **核对**:先走 10-14 的内测冒烟清单 11 条(`docs/testing/beta-smoke-20261014.md`),再按 #115 → #111(连同 #96~#109)→ #73 → #95 顺序关单;纯后台单(#74、#79)可直接关 | 高 | 大 | | 15 | 功能 | #115「网站进不去」 | staging 已修(BUG-1464),等你关单 | #115 | **核对**后关单 | 高 | 小 | | 16 | 功能 | 核心流程逐个走一遍:新邮箱注册 → 建档 → 第一问不扣点;加家人后来回切不串人;给家人出报告能完成;说「你好」不扣点;说「帮我做生时纠正」能进校正;中文报告切英文没有汉字 | staging 都修了,真机都没走;「你好」不扣点从没用真模型测过 | BUG-1030、1063、976/977、1306/1317;#95、#103、#89 | **核对**:冒烟清单第 3、5~8 条加 #89 的 5 步 | 高 | 小 | | 17 | 安全 | 正式环境拒绝测试验证码(只该在 staging 用) | staging 已有;正式环境现在实测是关着的 | `deploy/validate-production-env.sh` | **核对**:首发后看正式站登录页没有固定验证码 | 高 | 小 | | 18 | 安全 / 容量 | 按用户限流(对话 10 次/分 + 120 次/时、校正 5 次/分 + 40 次/时、报告 3 次/时) | staging 已有,正式环境没有。计数存在内存里,服务一重启就清零 | `frontend/src/lib/request-rate-limit.ts`;#76 | **核对**:一分钟连问 11 次,第 11 次提示先停一下且不扣点 | 高 | 小 | | 19 | 容量 | 压测:从来没跑过(脚本已写好,两次都因为缺测试账号和服务器权限没跑成) | 未开始 | `frontend/scripts/research/beta-load-smoke.mts` | **决定**内测同时在线人数上限;**授权**在 staging 跑一次 | 高 | 中 | | 20 | 稳定性 | 告警(服务挂了、磁盘满、备份过期时发飞书)和日志轮转 | 脚本写好了,服务器上没装,飞书机器人没配 | `deploy/monitor/`;`deploy/README.md` 告警节;#75 | **提供**飞书机器人 Webhook;首发后装上,故意停一次服务看能不能收到告警 | 高 | 中 | | 21 | 成本 | 每家模型供应商后台设月度额度和告警(站内没有全站花费上限) | 不确定(看不到供应商后台) | — | **核对**并设好;定每个邀请码发多少点 | 高 | 小 | | 22 | 运营 | 首发是「邀请码内测」还是公开注册(现在任何邮箱都能注册,新账户 0 点 + 首问免费) | 待定 | `docs/operations/beta-invite-codes.md` | **决定** | 高 | 小 | | 23 | 运营 | 各功能扣多少点:后台定价页逐项核对(合盘 19 点等)是否都已发布 | 不确定 | `/admin/feature-pricing` | **核对** | 中 | 小 | | 24 | 运营 | 客服联系方式(现在除了站内「反馈与投诉」,用户找不到人) | 未开始 | `legal-entity.ts` | **提供**客服邮箱(可选微信),定谁来回 | 中 | 小 | | 25 | 运营 | 首发要不要收费。要收的话:支付方式(现在只有易支付·支付宝,正式环境强制关)、退款规则(现在只能后台人工登记)、营业执照和商户资质 | 待定 | `frontend/src/app/api/payment/epay/`;`/api/admin/orders` | **决定**;收费就提供资质 | 中(收费则高) | 大 | | 26 | 体验 | 手机上(iPhone Safari)整份冒烟清单走一遍 | 多轮修复都在 staging,没有完整的手机走查 | BUG-920、1083、1252 | **核对** | 中 | 中 | | 27 | 部署发布 | 首发后照「首发核对表」逐项填 | 表是空的 | `docs/testing/production-first-release-20261014.md` | **核对** | 中 | 小 | ## 二、最好上线前完成 | 序号 | 类别 | 检查项 | 现状 | 依据 | 要我做什么 | 优先级 | 预计工作量 | | --- | --- | --- | --- | --- | --- | --- | --- | | 28 | 功能 | 婚恋合盘:真模型写的报告从没跑过 | staging 已有(#79/#82/#85) | `docs/testing/synastry-full-report-20261018.md` | **决定**合盘进不进首发;进的话走 14 步清单 | 高 | 中 | | 29 | 功能 | 特殊上升点用的日出时刻错了几个小时 | 未修(BUG-1462) | — | **决定**:首发先隐藏特殊上升点,还是先修 | 中 | 小 | | 30 | 安全 | staging 登录页公开显示固定验证码,任何人都能登进 staging 用模型 | 10-01 定的保留 | staging `/login` | **决定**:内测开放后要不要关或限访问 | 中 | 小 | | 31 | 安全 | 登录防刷:没有图形验证码,任何邮箱都能注册 | 部分完成(验证码 5 分钟过期、错 3 次作废、每邮箱 60 秒最多 3 封) | `frontend/src/modules/identity/auth-factory.ts` | **决定**是否只放有邀请码的人、要不要加图形验证码 | 中 | 中 | | 32 | 安全 | 用两个账号互相访问对方的对话 / 报告 / 人物,确认看不到 | 数据库有行级权限,测试覆盖一部分,没做过专门的越权测试 | `frontend/tests/database-*.test.ts` | **决定**首发前是否做一次 | 中 | 中 | | 33 | 安全 | 网页安全响应头(防嵌套、强制 HTTPS 等)都没加 | 未开始 | `deploy/Caddyfile.production.selfhosted`;`frontend/next.config.ts` | **决定**要不要加(我建议加,改动小) | 中 | 小 | | 34 | 安全 | 登服务器核对两个环境文件只有本人可读,8 月的初始密码已换 | 文档写了,服务器上的实际情况看不到 | `deploy/README.md` | **核对** | 中 | 小 | | 35 | 安全 | 验证码邮件服务(Resend)在境外,国内邮箱可能收不到或很慢 | 未开始 | `frontend/src/modules/identity/config.ts` | **核对**:用 QQ / 163 / 企业邮箱各收一次;**决定**要不要换国内服务 | 中 | 中 | | 36 | 合规 | 个人信息导出:没有自助导出,隐私政策写的是人工处理、15 个工作日内答复 | 部分完成 | `legal-documents.ts` | **决定**首发靠人工处理是否可以 | 中 | 中 | | 37 | 成本 | 后台没地方填模型单价,成本一直记成 0;七处模型调用没记账 | 未开始 | `TASK-cost-accounting-gaps-20260927.md`(没人领) | **提供**各模型单价;**决定**排期 | 中 | 中 | | 38 | 运营 | 用户行为统计(日活、注册→建档→首问的转化、留存)一个都没有 | 未开始 | 后台只有成本和流水类页面 | **决定**要不要上、用哪家(境内或自托管,要写进隐私政策) | 中 | 中 | | 39 | 数据 | 待上线数据库改动的说明文档没跟上:10-14 后新增 12 个没写说明(其中一个会把老用户的「首问免费」标成已用过) | 部分完成 | `docs/operations/production-migrations-20261014.md` | 无(我来补);看到「首问免费」那条请**决定**老用户算不算已用 | 中 | 小 | | 40 | 清账 | Bug 历史 1263 条,131 条没关(48 条等真机),另有约 150 条写着「已修、待发布」 | 待清 | `docs/BUG_HISTORY.md` | 无(首发后由我清账) | 低 | 中 | ## 三、上线后再做 | 序号 | 类别 | 检查项 | 现状 | 依据 | 要我做什么 | 优先级 | 预计工作量 | | --- | --- | --- | --- | --- | --- | --- | --- | | 41 | 稳定性 | 前端出错自动上报(#115 那次是你发现的,不是系统报的) | 未开始 | — | **决定**要不要接 | 中 | 中 | | 42 | 稳定性 | VedAstro、地点服务、模型供应商挂掉时网站会怎样,没演练过 | 不确定 | `deploy/README.md` | 无(我在 staging 断一次看) | 中 | 中 | | 43 | 部署发布 | CDN:现在没有 | 未开始 | Caddyfile | **决定**要不要上 | 低 | 中 | | 44 | 运营 | 支付对账 | 未开始 | — | 收费后再定 | 低 | 中 | | 45 | 功能 | 星历页和星盘页岁差口径不一样(页面上加了说明) | 未修(BUG-703/707) | — | **决定**是否接受「加说明」 | 低 | 中 | | 46 | 功能 | 单独调用宫力接口会报错(星盘页不受影响) | 未修(BUG-1463) | — | 无 | 低 | 小 | | 47 | 体验 | 网页界面只有中文,英文只覆盖报告 | 待定 | `frontend/src/app/layout.tsx` | **决定**是否算缺口 | 低 | 大 | | 48 | 数据 | 迁移前的 Supabase 旧库还留着(原定只保留 14~30 天) | 不确定 | `deploy/README.md` | **决定**留还是删(删前先最终对账) | 低 | 小 | | 49 | 安全 | 仓库匿名可读、含旧资料的提交仍能打开(BUG-1008) | 你 10-14 已定不处理 | BUG-1008 | 无 | — | — | ## 和 10-14 那次相比 - **前进了**:AI 标识和免责、给别人出报告、按用户限流、备份 / 告警 / 日志的代码、首发说明书、首问免费、合盘、新界面,都进了 staging。 - **原地没动**:正式环境没发过版(差距从约 1674 个提交涨到 2025 个);法务主体、律师审、备案、支付、压测、真机验收都没进展。 - **新发现**:回滚可能走不通(第 2 条);发布流程不拦占位符(第 9 条);没有安全响应头、没有错误上报、没有用户行为统计。 建议的顺序:先做你一个人就能定的第 2、7、22 条,再做第 14 条的冒烟清单,然后定首发日期(第 1 条)。表对完后告诉我哪些要拆成小单。
Claude added agent/需拍板 and removed agent/待规划agent/规划中 labels 2026-10-28 02:20:07 +08:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: root/Jyotisha#119