Files
Jyotisha/docs/tasks/PROGRESS-synastry-report-chat-20261018.md
T
06dba28d3a
Independent Staging Quality Gate / validate (push) Successful in 15m56s
Independent Staging Quality Gate / publish (push) Failing after 24m38s
docs(tasks): accept synastry report chat after the dasha wording fix
The follow-up checker now rejects a shifted antardasha or English mahadasha, and the onboarding source contract matches the new sentence.

Co-Authored-By: Claude (agent loop) <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-20 08:52:53 +08:00

7.5 KiB
Raw Blame History

进度:合盘报告追问(2026-10-19)

基线:origin/staging 123295135。分支 codex/synastry-report-chat-20261018。#82 的代码已在这条基线上。功能提交 3956519f3 没有进 staging。

做了什么

  • 会话类型增加 synastry_report。绑定 personal_reports.id(删除后置空,会话留下,只读)和八节之一。对方人物记在 synastry_partner_subject_id,这样报告删了之后两边的侧栏仍能找到这条对话。
  • 报告末尾打开「对哪一段想再问清楚?」。点一节只创建会话并预填问题,不调用 /api/consult,不扣点。
  • POST /api/consult 在这类会话上走独立分支,不调用 run-jyotish-consultation。每轮先读该节已存材料,再核对盘面。对不上改写一次,仍对不上就回复「这一点在这份合盘里没有算到,我不能确定」。计费键是 chat.standard。
  • 侧栏标题是「甲 × 乙 · 合盘追问」。任一方是当前人物都会列出。人物选择器锁住,显示两个人的名字。报告删除后输入框是「这份合盘已删除」。
  • 普通单人对话的提示、证据卡和工具没有改。scripts/jyotish_api_server.py 没有改。Home() 的状态数没有增加。

让步

没有。T4 的任一方侧栏、锁定的「甲 × 乙」和删除后只读都在这一轮里。

验证

项 结果
tsc --noEmit 0 错。webpack 构建里的 TypeScript 也通过
npm run lint 0 error。原有 warning 没有改
定向测试 合盘追问、报告阅读页、会话列、入口、列表过滤、计费列合同、容量列合同、输入框禁用、Home 增长护栏,通过
数据库 frontend/tests/database-synastry-report-chat.test.ts 通过。别人的报告和非法节被拒绝;删除报告后会话还在、报告编号为空、不能再扣 chat.standard
next build --webpack 通过。/ 仍是 Static
首屏 gzip-9 基线 123295135 613,694 B;本轮 615,879 B;+2,185 B,+0.36%(35 个首屏 js/css,±2% 内)
全量 npm test 退出码 1。本轮改坏的三条源码合同已改完并单独重跑通过。其余失败是这台机器的环境:路径被拼成 G:\G:\、没有 WSL、浏览器测试落到另一个工作树的 node_modules。回答计时两条单独重跑通过
模型 / 浏览器 没有模型凭据,没有登录态。部署后按 docs/testing/synastry-report-chat-20261018.md 在 staging 看

Turbopack 不能用这个工作树里的 node_modules 联接(联接指向工作树外面)。首屏数字来自同机 next build --webpack。

断言改动

位置 原值 新值 原因
报告阅读页测试 页面不含「对哪一段想再问清楚」 含这句,八节可点,共同练习不是按钮 #83 打开入口
会话列表列 / 详情列 列到人物字段后就是时间 中间加上报告、节、对方人物 侧栏和删除后只读要读到这些列
另一人物的会话过滤 eq:chart_profile_id or 同时匹配本人列和对方列 合盘追问两边都要看见
创建字段表 chatSessionCreateSchema.shape chatSessionCreateFields.shape 交叉校验包在字段表外面,字段表仍不收 context_summary
普通发送起点 const birthPlace = selectedBirthPlace(profile) 合盘追问跳过出生地 不能因为查看者没有出生地而停住
咨询读取列 select 到 context_summary 后面加上报告、节、对方人物 同一条读取要认出合盘会话
会话详情列合同 人物字段后是 created_at 中间加上这三列 详情和容量合同跟着列走
输入框禁用 subjectDeleted 开头 synastryClosed 开头,合盘追问不看查看者资料是否齐全 报告删除后只读;追问不要求查看者出生资料
称呼按钮 资料停在称呼步时按钮是「确认称呼」 合盘追问仍是「发送」,也不再被出生资料表单挡住 预填问题要能发出;查看者自己的资料没填完也能问
引导表单 const onboardingFormActive = !profileComplete && onboardingStep !== "name" 前面加上 !synastryChat && 合盘追问跳过引导表单;普通对话仍按原条件收起输入框

验收(2026-10-20)

结论:未通过。修复单 docs/tasks/TASK-synastry-report-chat-fix-20261020.md。

被验 SHA 基于 origin/staging 123295135,可以快进。本轮只把修复单推上 staging,没有推功能提交。

检查 结果 数字
祖先关系 通过 123295135 是 3956519f3 的祖先
tsc 通过 0 错
lint 通过 0 error,122 warning
定向测试 通过 80 通过,0 失败,0 取消
数据库新测试 通过 database-synastry-report-chat.test.ts 1 通过
Home 护栏 通过 useState 33 / useRef 37 / 1340 行
计费函数差异 通过 四份函数相对上一版只改了会话类型条件
大运核对 未通过 小运和英文 mahadasha / antardasha 写错年份仍判通过
首页源码合同 未通过 onboardingFormActive 的原文断言没有跟着改
全量 npm test 退出码 1 约 15 分钟,42 条 not ok。要修的是首页源码合同那 1 条。其余是双盘符、另一工作树的浏览器依赖、Windows 已知的备份和权限失败,以及两条不在本次 diff 里的回答计时。两条数据库迁移失败时错误输出是空的,并行起了很多 Postgres;合盘追问的数据库测试单独跑是通过的
全库 test:db 环境未整包重跑 新测试已单独通过;Grok 回报的新测试也是通过,没有多出来的失败名
模型 / 浏览器 环境缺口 无模型凭据、无登录态。功能未进 staging,真人清单先不跑

普通单人对话的提示、证据卡和工具不在这次 diff 里。scripts/jyotish_api_server.py 和 .gitea/ 没改。

修复(2026-10-20)

核对改去认时间线实际写下的句子:中文「大运」「小运」,英文 mahadasha、antardasha,中间是 to。材料用 buildTimelineSegments 生成的 basis。原样引用通过;年份改一年失败;两稿都对不上仍是「这一点在这份合盘里没有算到,我不能确定」。名人三条仍是通过、失败、失败。时间线生成器的用词没改。

预填文案只留「合盘报告里「节名」这一段,在我们两人的盘里依据是什么?」英文说明留一句。

项 结果
tsc --noEmit 0 错
npm run lint 0 error,122 warning
tests/synastry-report-chat.test.ts、tests/birth-time-consultation-consent.test.ts 21 通过,0 失败

复验(2026-10-20)

结论:通过。被验 549e37b9952e76bb9b26f32c1426eaa6adfe7475。

检查 结果 数字
能否快进 可以 staging 470275797 是这枚提交的祖先
小运 / 英文大运 通过 原样引用通过;年份改一年失败;两稿不对仍是固定答复
引导表单合同 通过 已改成带 !synastryChat && 的句子,并写了三栏
预填文案 通过 只留「合盘报告里「节名」这一段…」一句
tsc 通过 0 错
lint 通过 0 error,122 warning
定向测试 通过 21 通过,0 失败
全量 npm test 未整包重跑 上次要修的那条合同已在这次定向里通过。其余失败是双盘符、另一工作树和 Windows 已知项
模型 / 浏览器 环境缺口 部署后按 docs/testing/synastry-report-chat-20261018.md 看