fix(settings): the ayanamsa hint says new rectifications follow the setting (BUG-1310)
Also records the 10-12 rectification batch as merged in the bug history, changelog and task index. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HwMNZEzdzmrbPhuRNmZe3C
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
5980e66438
commit
586561eb68
+9
-5
@@ -1,18 +1,22 @@
|
||||
# 印度占星 Skill 更新日志
|
||||
|
||||
## 2026-10-12 — 校正还没打开时,卡片不说已经开始(待验收)
|
||||
## 2026-10-12 — 设置里的岁差说明改对:新开的生时校正也跟着设置走(已合入 staging)
|
||||
|
||||
- 明确要求做校正时,对话里的卡片在真正打开并绑定之前仍是普通提议,按钮是「开始核对出生时间」。打开失败可以再点,不会写成「已经开始」。Skill 版本不变。未推送,未部署。
|
||||
- 设置页换岁差时的说明原来写「生时校正目前仍固定按 Raman」,与实际相反。改为:之后的咨询、报告、星盘库、每日星语和新开的生时校正会按新岁差算;已经开始的那次校正仍按开始时的岁差。Skill 版本不变(BUG-1310)。
|
||||
|
||||
## 2026-10-12 — 对话里明说要校正就直接进入(待验收)
|
||||
## 2026-10-12 — 校正还没打开时,卡片不说已经开始(已合入 staging)
|
||||
|
||||
- 明确要求做校正时,对话里的卡片在真正打开并绑定之前仍是普通提议,按钮是「开始核对出生时间」。打开失败可以再点,不会写成「已经开始」。Skill 版本不变。
|
||||
|
||||
## 2026-10-12 — 对话里明说要校正就直接进入(已部署 staging)
|
||||
|
||||
- 用户这一轮明确要求做生时校正时,直接打开校正,不先写解读、不用点卡。推得不准时的提议仍走卡片。做不了会用一句话说明,不再沉默。普通对话不承诺收窄出生时间,申报时段不写大运、子运的起止年月日。
|
||||
|
||||
## 2026-10-12 — 生时校正开场说清填的时间离换段有多近(未推送,未上线)
|
||||
## 2026-10-12 — 生时校正开场说清填的时间离换段有多近(已合入 staging)
|
||||
|
||||
- 开场两句中间多一句:填的时间离最近会换的地方差几分钟,两边不一样的是父母、工作、住处、婚恋、学业、子女、钱或身体里实际不同的那几件。不到 1 分钟就说不到 1 分钟。这段时间里都不换,就说附近这些盘都不换,先从经历开始。只知道大概时段时不加这一句。
|
||||
- 本命上升也换时,这一句先说「这里连本命上升都换」,再写两边不一样的事。没有别的事时整句停在这里。只有本命上升在换,不说接下来先问。仍是一句。
|
||||
- 开场扫描和盘型段扫描按资料里的岁差算。没填岁差仍是 Raman。不说秒,不说记录时间错了或不准,不说已确认。先问这几件事的开关默认关,所以这句先不承诺接下来先问。打分、闸门和题库都没改。Skill 仍是 10.0.33。设置里「生时校正目前仍固定按 Raman」那句还没改。
|
||||
- 开场扫描和盘型段扫描按资料里的岁差算。没填岁差仍是 Raman。不说秒,不说记录时间错了或不准,不说已确认。先问这几件事的开关默认关,所以这句先不承诺接下来先问。打分、闸门和题库都没改。Skill 仍是 10.0.33。设置里「生时校正目前仍固定按 Raman」那句随同批 BUG-1310 改正。
|
||||
|
||||
## 2026-10-09 — 事业判断表旁边注明不按星性写方向(已合入 staging;回测仍有 1 次,记为已知残余)
|
||||
|
||||
|
||||
+17
-3
@@ -17573,7 +17573,7 @@
|
||||
- 防复发:默认开场两句保持原文字;有换段句时服务端整段替换,不靠模型现编。开关关闭时排序函数返回原数组。打分、闸门、4 件 3 域未改。
|
||||
- 相关记录:BUG-1306、BUG-1115~1117(盘型口径)、BUG-1143/1144(按段选题)、BUG-691(记录优先)、BUG-1240(不说秒级)、BUG-621(历史 case 仍打开旧 Skill)。
|
||||
- 复发自:无。
|
||||
- 修复版本:分支 `codex/rectification-nearest-boundary-opening-20261012`,未推送,未部署。进度 `docs/tasks/PROGRESS-rectification-nearest-boundary-opening-20261012.md`。
|
||||
- 修复版本:实现 `ce4e9803`。2026-10-12 Claude 验收通过(tsc 0;lint 同基线;npm 5020 条、失败 24 逐名同基线;build Static;gzip 0%;快速门全量与基线一致;Raman 请求输出与 staging `798e15ef` 逐字节相同,作为 v5 回放不变的等价证据),产品要求合入;随 10-12 批次推 staging,部署核对见本批次最后一次 BUG 记录提交。进度 `docs/tasks/PROGRESS-rectification-nearest-boundary-opening-20261012.md`。
|
||||
|
||||
## BUG-1308 | 父母静态是非题(D12)对出生时间分界两侧有没有区分力未经评测
|
||||
|
||||
@@ -17590,7 +17590,7 @@
|
||||
|
||||
## BUG-1309 | 分盘段扫描端点写死 Raman:非 Raman 用户的盘型段与档位按 Raman 算,引擎打分按用户岁差
|
||||
|
||||
- 状态:fixed-pending-verify(端点与两处调用已改。77 例持久回放没跑,不标 resolved。未部署)
|
||||
- 状态:fixed-pending-verify(端点与两处调用已改;77 例持久回放没跑,以 Raman 逐字节相同代替;非 Raman 用户真机未走,不标 resolved)
|
||||
- 首次发现 / 最近更新:2026-10-12 / 2026-10-12
|
||||
- 来源:BUG-1307 分支验收(`b285011a`)时发现;同一端点在 staging 现存。
|
||||
- 现象:`/api/rectification/v5/varga-segments`(`scripts/rectification_varga_segments_api.py`)的 profile、逐分钟排盘与返回体都写死 `ayanamsa: "raman"`;调用方 `v9/segment-scan.ts` 不传岁差。校正引擎打分用 `resolveAyanamsa(snapshot)`。
|
||||
@@ -17600,4 +17600,18 @@
|
||||
- 验证:公开 AA 盘上,省略岁差与改前捕获逐字段相同,显式 raman 与省略相同;同一窗口 lahiri 的缓存键和星座都不同。前端两处调用:lahiri 资料发 lahiri,未写岁差发 raman。
|
||||
- 相关记录:BUG-1115、BUG-1307、BUG-1306。
|
||||
- 复发自:无。
|
||||
- 修复版本:分支 `codex/rectification-nearest-boundary-opening-20261012`,未推送,未部署。进度见 `docs/tasks/PROGRESS-rectification-nearest-boundary-opening-20261012.md` 的 F1/F2 一节。
|
||||
- 修复版本:实现 `ce4e9803`(与 BUG-1307 同分支)。2026-10-12 Claude 验收通过(tsc 0;lint 同基线;npm 5020 条、失败 24 逐名同基线;build Static;gzip 0%;快速门全量与基线一致;Raman 请求输出与 staging `798e15ef` 逐字节相同,作为 v5 回放不变的等价证据),产品要求合入;随 10-12 批次推 staging,部署核对见本批次最后一次 BUG 记录提交。进度见 `docs/tasks/PROGRESS-rectification-nearest-boundary-opening-20261012.md` 的 F1/F2 一节。
|
||||
|
||||
## BUG-1310 | 设置页岁差说明写「生时校正目前仍固定按 Raman」,与实际相反
|
||||
|
||||
- 状态:fixed-pending-verify(真机看一眼设置页文案后标 resolved)
|
||||
- 首次发现 / 最近更新:2026-10-12 / 2026-10-12
|
||||
- 来源:BUG-1307 / 1309 验收时发现(`frontend/src/lib/ayanamsa.ts` `AYANAMSA_SWITCH_HINT`);产品 10-12 要求修改。
|
||||
- 现象:设置页切换岁差时提示「生时校正目前仍固定按 Raman,之后的版本才会跟着这项设置走」。
|
||||
- 根因:BUG-511 起校正开案快照就带用户岁差(`case-service` 读 `profiles.ayanamsa` → `resolveAyanamsa`),打分按快照;BUG-1309 起段扫描也按快照。提示句一直没跟上。
|
||||
- 修复:改为「之后的咨询、报告、星盘库、每日星语和新开的生时校正会按新岁差算;已经开始的那次校正仍按开始时的岁差。」DESIGN 同步。
|
||||
- 验证:`frontend/tests/ayanamsa.test.ts` 改两条断言(列举 原值 `/咨询、报告、星盘库和每日星语/` → 新值 `/咨询、报告、星盘库、每日星语/`,原因:列举加入新开的生时校正;另一条:原值 `/生时校正目前仍固定按 Raman/`;新值:含「新开的生时校正会按新岁差算」「已经开始的那次校正仍按开始时的岁差」且不含「固定按 Raman」;原因:旧句与实现相反)。
|
||||
- 防复发:同上测试锁住新句并禁止旧说法。
|
||||
- 相关记录:BUG-511、BUG-1309。
|
||||
- 复发自:无。
|
||||
- 修复版本:随 10-12 批次合入 staging(Claude 直接执行,产品 10-12 授权)。
|
||||
|
||||
@@ -124,10 +124,10 @@
|
||||
| `TASK-rectification-mobile-timeline-readout-20260917.md` | `PROGRESS-rectification-mobile-timeline-readout-20260917.md` | 手机截图:时间轴读数第四项被裁成「已…」(nowrap + inset 内边距,BUG-918);「跳到最新」浮层压住选项 C(BUG-919)。灰卡与「再说一件」矛盾归修复单 BUG-915/917 | 已验收 | `e8e98bbd`(合入时重放为本分支提交,BUG-918/919)。时间轴相关 71 条 + 全量同上;手机上隐藏「已对照 N 件」符合 DESIGN §10;桌面是否也移除待产品拍板。真机清单 `docs/testing/rectification-mobile-timeline-readout-20260917.md` |
|
||||
| `TASK-mobile-viewport-scroll-lock-20260917.md` | `PROGRESS-mobile-viewport-scroll-lock-20260917.md` | iPhone 上键盘收起 / 刷新后整页上移、顶栏点不到(BUG-920):iOS 不支持 `interactive-widget`,键盘弹出时 Safari 滚动 window,`html/body overflow: hidden` 让用户拉不回来,reload 又还原 `scrollY`;代码里无任何 window 级复位。补 `ViewportScrollLock`(`scrollRestoration=manual` + `visualViewport` 复位)。与今天两单无关,既有缺陷。**T3 顶栏积分块「有点扁」(BUG-921)**:两枚芯片 44px 塞在 46px 顶栏里、字号/内边距/圆角各一套、积分块强制 64px 最小宽度;统一尺寸并把手机顶栏放到 52px | 已合入(无独立验收记录) | `1b508d5e`(BUG-920/921 resolved;已部署 staging,run 2715);真机待核 |
|
||||
| `TASK-rectification-session-composer-guard-20260917.md` | `PROGRESS-rectification-session-composer-guard-20260917.md` | 校正会话激活但校正面未开(刷新揭幕超时 / 打开失败不重试 / 删除与 popstate 回退落到列表第一条)时露出可用的普通输入框,问题发到 `/api/consult` 回 404「咨询会话不存在」;`send()` 无会话类型守卫;服务端无独立错误码。关联 BUG-505。BUG 段 924 起 | 已验收 | `6d81062b`(Claude 验收:T1–T5 全通过;409 `session_not_consultation` 在扣点前、不扣点;回退路径多修了归档一条;page.tsx 1830→1830。残留 P3:列表只剩校正会话时 `activeSession` 为空,输入框可用但发送静默无效 → BUG-935 在 fix 单);真机三条欠 |
|
||||
| `TASK-rectification-explicit-entry-20261012.md` | `PROGRESS-rectification-explicit-entry-20261012.md` | **明说要校正就直接进入(BUG-1306)**:模型判断意图(禁正则),服务端判定后直接开案并绑定来源对话;首轮排盘合同对此轮豁免;拒绝必须一句话说明(推翻 BUG-1248 静默两条);普通对话不得假装校正、申报时段不写子运起止。**先做** | 待验收 | — |
|
||||
| `TASK-rectification-nearest-boundary-opening-20261012.md` | `PROGRESS-rectification-nearest-boundary-opening-20261012.md` | **最近分界开场(BUG-1307)**:开场说记录时间离最近换段多近、两侧哪些事不同。F1 段扫描按用户岁差(BUG-1309)、F2 本命上升换段要先说「这里连本命上升都换」,都在本分支,待验收。选题开关默认关(77 例未跑)。不改打分 / 闸门 / 4 件 3 域。未改 page.tsx | 待验收 | 分支 `codex/rectification-nearest-boundary-opening-20261012`,未推送 |
|
||||
| `TASK-rectification-explicit-entry-20261012.md` | `PROGRESS-rectification-explicit-entry-20261012.md` | **明说要校正就直接进入(BUG-1306)**:模型判断意图(禁正则),服务端判定后直接开案并绑定来源对话;首轮排盘合同对此轮豁免;拒绝必须一句话说明(推翻 BUG-1248 静默两条);普通对话不得假装校正、申报时段不写子运起止。**先做** | 已部署 staging `b8bdc003`;F3 跟进随 10-12 批次合入,真机欠 | — |
|
||||
| `TASK-rectification-nearest-boundary-opening-20261012.md` | `PROGRESS-rectification-nearest-boundary-opening-20261012.md` | **最近分界开场(BUG-1307)**:开场说记录时间离最近换段多近、两侧哪些事不同。F1 段扫描按用户岁差(BUG-1309)、F2 本命上升换段要先说「这里连本命上升都换」,都在本分支,待验收。选题开关默认关(77 例未跑)。不改打分 / 闸门 / 4 件 3 域。未改 page.tsx | 已验收,随 10-12 批次合入 staging,真机欠 | `ce4e9803` |
|
||||
| `TASK-rectification-d12-parent-probes-research-20261012.md` | `PROGRESS-rectification-d12-parent-probes-research-20261012.md` | **父母静态是非题(D12)研究(BUG-1308)**:公开案例 ≥60、预登记、乱序与正对照,过门才立实现单;纯研究可并行 | 方向暂停,BUG-1308 closed_by_design | `docs/research/rectification_d12_parent_probes_2026_10_12.md` |
|
||||
| `TASK-rectification-1012-batch-fix-20261012.md` | `PROGRESS-rectification-nearest-boundary-opening-20261012.md` | **10-12 三单验收修复**:F1 开场与段汇总按用户岁差(BUG-1307 / BUG-1309)、F2 本命上升换段开场句,在分支 `codex/rectification-nearest-boundary-opening-20261012`,待验收。F3 打开失败卡片仍说已开始(BUG-1306)未做。F4 研究报告补编码问题与暂停结论(BUG-1308)未做 | F1/F2 待验收 | 本分支,未推送 |
|
||||
| `TASK-rectification-1012-batch-fix-20261012.md` | `PROGRESS-rectification-nearest-boundary-opening-20261012.md` | **10-12 三单验收修复**:F1 开场与段汇总按用户岁差(BUG-1307 / BUG-1309)、F2 本命上升换段开场句,在分支 `codex/rectification-nearest-boundary-opening-20261012`,待验收。F3 打开失败卡片仍说已开始(BUG-1306)未做。F4 研究报告补编码问题与暂停结论(BUG-1308)未做 | F1–F4 已验收合入 staging;另 BUG-1310 岁差说明同批修 | — |
|
||||
|
||||
### 聊天主链路与首页
|
||||
|
||||
|
||||
+1
-1
@@ -370,7 +370,7 @@ The self-profile editor in 星盘资料 (`ChartLibraryPanel`) owns the ayanamsa
|
||||
|
||||
- **Structure:** six 44px stacked radios reused from `.theme-preference-option`, plus a caption under the group. Raman is marked 默认. Each option has a one-line description; selected rows show the same `Check` as the theme panel.
|
||||
- **Values (2026-09-28):** `raman` (default) / `lahiri` / `kp` / `true_citra` / `true_pushya` / `fagan_bradley`, shown as Raman(默认)/ Lahiri / KP / True Citra / True Pushya / Fagan-Bradley. Only values the engine already supports (`scripts/ayanamsa_utils.py`); Djwhal Khul and Sassanian are supported by the engine but deliberately not offered. The label is spelled True Citra, matching the engine's `ayanamsa_display` that the chart page parameter table shows. Copy lives in `frontend/src/lib/ayanamsa.ts`; `profiles_ayanamsa_check` lists the same six.
|
||||
- **Hint:** “之后的咨询、报告、星盘库和每日星语会按新岁差算。生时校正目前仍固定按 Raman,之后的版本才会跟着这项设置走。”
|
||||
- **Hint:** “之后的咨询、报告、星盘库、每日星语和新开的生时校正会按新岁差算;已经开始的那次校正仍按开始时的岁差。”(BUG-1310)
|
||||
- **Placement:** after `ProfileFields` on the self-profile form only. Not on other-chart save, not on `page.tsx`.
|
||||
- **States:** default, hover, selected (`aria-checked` only), keyboard focus. Switching does not clear a confirmed birth minute.
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export const AYANAMSA_OPTIONS = [
|
||||
}>;
|
||||
|
||||
export const AYANAMSA_SWITCH_HINT =
|
||||
"之后的咨询、报告、星盘库和每日星语会按新岁差算。生时校正目前仍固定按 Raman,之后的版本才会跟着这项设置走。";
|
||||
"之后的咨询、报告、星盘库、每日星语和新开的生时校正会按新岁差算;已经开始的那次校正仍按开始时的岁差。";
|
||||
|
||||
export function isAyanamsaName(value: unknown): value is AyanamsaName {
|
||||
return typeof value === "string" && (AYANAMSA_VALUES as readonly string[]).includes(value);
|
||||
|
||||
@@ -23,8 +23,13 @@ test("resolveAyanamsa defaults to Raman and accepts the six product values", ()
|
||||
assert.equal(resolveAyanamsa({ ayanamsa: "djwhal_khul" }), "raman");
|
||||
assert.equal(isAyanamsaName("raman"), true);
|
||||
assert.equal(isAyanamsaName("sidereal"), false);
|
||||
assert.match(AYANAMSA_SWITCH_HINT, /咨询、报告、星盘库和每日星语/);
|
||||
assert.match(AYANAMSA_SWITCH_HINT, /生时校正目前仍固定按 Raman/);
|
||||
// 原值:/咨询、报告、星盘库和每日星语/;新值:/咨询、报告、星盘库、每日星语/;原因:列举里加了新开的生时校正,顿号接续。
|
||||
assert.match(AYANAMSA_SWITCH_HINT, /咨询、报告、星盘库、每日星语/);
|
||||
// 原值:/生时校正目前仍固定按 Raman/;新值:新开的校正跟设置、进行中的按开始时;
|
||||
// 原因:校正开案时快照用户岁差,打分与段扫描都按快照(BUG-1309、BUG-1310),旧句说反了。
|
||||
assert.match(AYANAMSA_SWITCH_HINT, /新开的生时校正会按新岁差算/);
|
||||
assert.match(AYANAMSA_SWITCH_HINT, /已经开始的那次校正仍按开始时的岁差/);
|
||||
assert.doesNotMatch(AYANAMSA_SWITCH_HINT, /固定按 Raman/);
|
||||
});
|
||||
|
||||
// TASK-chart-types-and-report-buttons-20260928 T6: every offered value must
|
||||
|
||||
Reference in New Issue
Block a user