fix: restore ayanamsa state and keep tests hermetic
This commit is contained in:
@@ -7904,3 +7904,18 @@
|
||||
- 相关记录:BUG-511
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
## BUG-513 | Gulika 计算泄漏进程级岁差模式,Raman 请求回执与后续计算可能漂移
|
||||
|
||||
- 状态:resolved
|
||||
- 首次发现:2026-09-03
|
||||
- 最近更新:2026-09-03
|
||||
- 影响面:`scripts/gulika.py`、`scripts/jyotish_api_server.py`、`scripts/prashna_context.py`
|
||||
- 用户现象:请求选择 Raman 时 Gulika 曾按其他岁差返回或污染后续恒星黄道计算;同一常驻进程的下一次计算可能继承错误模式。
|
||||
- 触发条件:Gulika / Upagraha 计算在已设置另一岁差的进程内调用 `houses_ex(..., FLG_SIDEREAL)`。
|
||||
- 根因:Swiss Ephemeris 岁差模式是进程全局状态;Gulika 设置请求岁差后没有恢复调用前模式,API 与 Prashna 调用方也没有始终传入本次请求岁差。
|
||||
- 修复:`ayanamsa_utils.temporary_ayanamsa` 在 `finally` 恢复前一模式;Gulika 的恒星上升计算统一使用该上下文;API 与 Prashna 显式透传并回执实际岁差。
|
||||
- 验证:Raman→Lahiri、Lahiri→Raman 两向同进程回归测试均保持调用前 Moon 黄经;模式设置所有权测试锁定只有 `ayanamsa_utils.py` 可直调 `set_sid_mode`;API Raman smoke 回执为 `raman` / `Raman`。
|
||||
- 防复发:临时切换进程级岁差必须通过 `temporary_ayanamsa`;业务模块不得直接调用 `set_sid_mode`。
|
||||
- 相关记录:BUG-511、BUG-512
|
||||
- 复发自:无
|
||||
- 修复版本:待发布
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
# PROGRESS · 仓库整备修复单(2026-09-03)
|
||||
|
||||
工作树:`.worktrees/repo-hygiene-20260903`
|
||||
分支:`codex/repo-hygiene-fix-20260903`
|
||||
基线:最新 `origin/staging`(提交前重放)
|
||||
|
||||
本轮完成修复与本地验证;交付目标为 `origin/staging`,提交/推送状态以 Git 远端为准;不手动部署。其他工作树的既有脏改动未触碰。
|
||||
|
||||
## 已完成
|
||||
|
||||
- BUG-512:Gulika / Upagraha 临时切换岁差后恢复进程原模式;API 与 Prashna 透传同一请求岁差,回执使用实际标准化名称。
|
||||
- 设置 UI:提示语明确咨询/报告/星盘库/每日星语跟随设置,生时校正目前仍固定 Raman;无样式类名由最新 staging 删除,不重复增加空样式。
|
||||
- 默认值:修复单列出的 Prashna、校正扫描、Muhurta、Solar Return CLI、ephemeris contract 改用 `DEFAULT_AYANAMSA_NAME`;五个参考/外部对照脚本保留显式 Lahiri 并标注参考口径。
|
||||
- 仓库卫生:三个 oracle 生成器支持 `--output-dir`,对应测试写入 pytest 临时目录,不再改写 `references/oracle`。
|
||||
- 记录:新增 `BUG-512`,更新本状态板。
|
||||
|
||||
## 验证
|
||||
|
||||
```text
|
||||
python -m pytest -q \
|
||||
tests/test_gulika.py \
|
||||
tests/test_gulika_ayanamsa_mode.py \
|
||||
tests/test_ayanamsa_mode_ownership.py \
|
||||
tests/test_prashna_context.py \
|
||||
tests/test_standalone_ayanamsa_defaults.py \
|
||||
tests/test_full_technique_invocation_matrix.py \
|
||||
tests/test_muhurta_factor_only_scoring_packet.py \
|
||||
tests/test_prashna_sphuta_oss_case_probe.py
|
||||
# 24 passed
|
||||
|
||||
node --test --import tsx \
|
||||
tests/ayanamsa.test.ts \
|
||||
tests/settings-mvp-contract.test.ts \
|
||||
tests/class-name-definition-contract.test.ts
|
||||
# 8 passed
|
||||
|
||||
./node_modules/.bin/tsc --noEmit
|
||||
# exit 0
|
||||
|
||||
npm run lint
|
||||
# exit 0; 73 个既有 warning,0 error
|
||||
|
||||
npm run build
|
||||
# exit 0;5 个既有 Turbopack 动态文件访问 warning
|
||||
|
||||
JYOTISH_PRE_WORK_PYTHON=/Users/jesse/Downloads/Copse/astrology/yinduzhanxing/.venv/bin/python \
|
||||
python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45
|
||||
# pass
|
||||
```
|
||||
|
||||
额外 smoke:`_attach_gulika_observation` 输入 `ayanamsa=raman`,回执为 `ayanamsa=raman`、`ayanamsa_display=Raman`。测试后 `git diff -- references/oracle` 为空。
|
||||
|
||||
## 明确未做
|
||||
|
||||
- 可选任务 5(机器相关计数测试加 `external` marker):任务书要求产品同意,本轮没有该授权,未改。
|
||||
- Python quick gate:503 passed、1 skipped。前端全量 `npm test` 在本机数据库/Docker 与缺少 PyYAML 等既有环境项失败;本轮相关的 8 项定向测试通过。
|
||||
- 最新 staging 另有不在修复单表内的显式 Lahiri:Solar Return / Transit 的独立 helper 仍有现成合同测试要求 Lahiri,VedAstro、PyJHora、三引擎 parity 等为外部参考口径;因此旧的宽泛 grep 验收命令仍会列出这些预存行,本轮没有越界改写其业务口径。
|
||||
@@ -92,7 +92,7 @@
|
||||
| 任务书 | 进度 | 主题 | 状态 | 落点 |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| `TASK-repo-hygiene-20260903.md` | `PROGRESS-repo-hygiene-20260903.md` | 岁差默认 Raman + 用户设置可选、参考集锁口径、发布门本地可复现、注册表白名单、仓库地址、早期日志搬家、远端分支清理 | 已验收(带修复单) | `b6a70aa7`、`2415e751`、`01a45363`(BUG-511);验收结论见修复单附录 |
|
||||
| `TASK-repo-hygiene-fix-20260903.md` | — | Gulika 全局岁差泄漏(P1)、设置类名无样式、提示语对齐校正现状、剩余 lahiri 字面量、测试不写仓库 | 待领取 | 分支 `codex/repo-hygiene-fix-20260903` |
|
||||
| `TASK-repo-hygiene-fix-20260903.md` | `PROGRESS-repo-hygiene-fix-20260903.md` | Gulika 全局岁差泄漏(P1)、设置类名无样式、提示语对齐校正现状、剩余 lahiri 字面量、测试不写仓库 | 修复完成 | 分支 `codex/repo-hygiene-fix-20260903`;交付状态以 Git 远端为准 |
|
||||
|
||||
### 上游同步与能力接入
|
||||
|
||||
|
||||
Reference in New Issue
Block a user