diff --git a/BLOCKED.md b/BLOCKED.md index 66994f12..d06c2f4f 100644 --- a/BLOCKED.md +++ b/BLOCKED.md @@ -1,5 +1,13 @@ # BLOCKED +## TASK-chart-surface-polish:受控登录、实体手机与基线全量失败(2026-09-29) + +- 本轮 Chrome、Edge、Docker 均可用,不套用历史“无 Chrome / 无 Docker”。真实 Chrome + golden 的本地组件验收及骨架高度修复后复验已完成(70+8 项通过);没有受控线上登录账号、实体手机和读屏实测;不能代替完整账户/人物/请求链路。清单见 `docs/testing/chart-surface-polish-20260929.md`。 +- Linux 保真基线全量前端 4369 项,4340 通过 / 29 失败 / 0 cancelled / 0 skipped,exit 1;两个既有生命周期测试文件均报 `tailwind-merge/dist/bundle-mjs.mjs:99:50 Parse error`,定向及关闭 tsx 缓存仍复现。final-r2 为 4386 项、4357 通过 / 29 失败 / 0 cancelled / 0 skipped,exit 1;逐名逐原因核对无新增失败、无诊断变化。根因未定,直接 import 同包正常,不能称包损坏;不改依赖或测试消红,不声称全量通过。证据见本轮 PROGRESS 和 `artifacts/chart-surface-polish-validation-20260929/baseline-test-summary.json`。 +- 本轮 pre_work_check exit 1:远端 verified、适配器成功,但碎片扫描 90 秒、focused tests 45 秒超时。未伪造历史镜像、未清其他会话目录。 +- 真实 Chrome 前后对照发现既有印度盘多星同宫的个别字形边缘裁切,基线/实现坐标相同、可见中心仍能触发正确说明。本轮没有引入或修复该布局欠账;不将“无新增裁切”说成“全部字形无裁切”。证据见本轮 PROGRESS 的 `vedicVisibleAudit`。 +- 前次任务书文档推送认证失败尚未解除;本轮只实施与本地验收,未提交、未推送、未部署,不借用任何凭据。 + ## ~~TASK-birth-sky-cover T5:报告封面没有可靠的出生资料绑定(2026-09-28)~~ → 已解除:产品 2026-09-28 选 A → 2026-09-29 产品决定去掉报告封面(TASK-mobile-chart-and-confirmed-edit-20260929 M5;生成时写入的 `subject.birthFingerprint` 保留) - ~~任务书要求「只有报告生成时的出生资料与现在一致时才显示封面」。逐项查过,报告侧**没有任何出生资料指纹**:~~ diff --git a/CHANGELOG.md b/CHANGELOG.md index 14513953..8a6dd329 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # 印度占星 Skill 更新日志 +## 2026-09-29 — 星盘展示去引擎、能力列收口与图标说明(本地实施完成,未发布) + +- 星盘参数不再展示引擎品牌;岁差、交点与准确性边界保留。 +- 分盘庙旺保留入旺 / 自宫 / 落陷,同位只在 D9 显示;上升庙旺写「不适用」。宫位表头与数值统一左对齐。 +- 盘内符号增加鼠标、键盘与轻点说明,不增加运势解读,不改变西洋盘点选相位。 +- 桌面印度绘图区上限 440px、西洋 480px;手机结果盘保持原自适应,报告与校正盘不缩。等待盘沿用相同宽度,并预留图例高度,避免结果出现时盘框跳动。 +- Skill 版本不 bump;不改算法、数据库、许可证或依赖版本。验收状态见本轮 PROGRESS。 + ## 2026-09-29 — 年运返照时刻改为真正的本地时间;PL9 导出文件减半(待验收) - 专业报告里「Varshapravesha(太阳返照时刻)」此前打印的是世界时(北京盘差 8 小时,跨日时日期也错),现在按出生地时区显示;有夏令时的地区按返照那一刻的实际偏移(BUG-1095)。Sahams 昼夜判定也改用真实返照时刻。 diff --git a/docs/BUG_HISTORY.md b/docs/BUG_HISTORY.md index 2c80170c..1d744257 100644 --- a/docs/BUG_HISTORY.md +++ b/docs/BUG_HISTORY.md @@ -2604,6 +2604,7 @@ - 验证:个人报告聚焦测试覆盖 answer-first 顺序、十二宫坐标/裁切/密集数据、独立滚动边界、打印表格与分页、原生附录 disclosure、PDF 操作能力保护;浏览器在 1363×936 CSS viewport 实测报告容器 `clientHeight=936`、`scrollHeight=3466`,滚动后 `scrollTop=980` 并可到达底部,附录展开后高度增至 5219;参考图与实现图完成同画布视觉比对。聚焦 ESLint、生产构建和 `git diff --check` 作为最终门禁重新执行。 - 防复发:聊天根滚动锁与报告阅读滚动必须分层;报告回归测试不得删除 `100dvh/overflow-y:auto` 合同。任何命盘 occupants 改动必须验证至少两个不同宫位 transform、clipPath 与 12 项密集输入。打印回归必须覆盖长摘要、长主题、最小宽度表格和无滚动容器的 A4 输出;PDF 入口的隐藏/恢复必须同步更新明确的能力与 ready-state 合同。 - 2026-09-24 产品修订:`TASK-report-reader-actions-20260924` D2 明确撤下打印按钮与专用调用,不是此 Bug 复发;A4、壳层解锁、表格分页以及 beforeprint/afterprint 展开/恢复保留,浏览器 Ctrl+P 仍可用。本地候选只更新入口合同,不把受阻完整测试、真机打印或部署记为通过。 +- 2026-09-29 关联观察(investigating,未修复):星盘展示单真实 Chrome 在 390px 的既有 D1 golden 发现个别边缘 glyph 的 bbox 超出 SVG;基线/实现坐标相同,可见中心均能触发正确说明。本轮未改布局坐标/clipPath,不能认定为本轮新增,也未证实与本记录原根因相同。旧 transform/密集裁切合同不等于所有真实字体边界都不裁切;后续布局单应补真实字体 bbox 与可见区域检查。证据见 `PROGRESS-chart-surface-polish-20260929.md` 的 `vedicVisibleAudit`;本轮不扩改报告/校正布局算法。 - 相关记录:BUG-126 - 复发自:无 - 修复版本:本地候选(未 push / deploy) @@ -14730,3 +14731,31 @@ - 相关记录:BUG-1095、ERR-111 - 复发自:无 - 修复版本:分支 `codex/upstream-sync3-20260929`,未合入 + +## BUG-1098 | 星盘行星表宫位标题左对齐,内容误用居中样式 + +- 状态:investigating(2026-09-29 本地修复及独立浏览器验证通过;最终全量无新增失败,但保留 29 项既有加载失败,未部署、线上待验) +- 首次发现 / 最近更新:2026-09-29 / 2026-09-29 +- 影响面:`chart-vedic-tab.tsx` 分盘、本命/月亮、Bhava、行运表格与对应 CSS。 +- 现象 / 触发:打开上述盘型,宫位标题与每行宫位内容不在同一左边线。 +- 根因:标题继承默认左对齐,宫位 td 误用 `chart-page-planet-mid`。旧测试验证数据、列数与 D1 字节冻结,没有检查宫位 computed alignment;分盘之外同类写法也存在。 +- 修复:分盘、Bhava、行运仅移除宫位格 mid;本命/月亮保留原八列 markup,通过八列表头限定 CSS 第四列左对齐。宿主、pada、速度、换宫等刻意居中列不变,不全局改 mid。 +- 验证:执行方前端定向与 D1 字节冻结通过;新增源码/样式合同。独立真实 Chrome 六盘型×六视口确认宫位 computed text-align left、标题和值 padding 12px、宿主/pada仍居中,窄屏无整页横滚;独立全量结果见 `PROGRESS-chart-surface-polish-20260929.md`。未部署,不提前宣布线上解决。 +- 防复发:各盘宫位标题/值同左对齐和 padding;保留 BUG-1083 外层可收缩与表内横滚合同。 +- 相关记录:BUG-1076、BUG-1083;本地诊断任务书记录延续,非重新编号。 +- 复发自:无旧对齐修复证据;属于既有表格未覆盖的展示问题。 +- 修复版本:`codex/chart-surface-polish-20260929` 工作区,未提交、未推送。 + +## BUG-1099 | 星盘分盘表把全部 Dn 同座比较统一展示为原生同位能力 + +- 状态:investigating(2026-09-29 D9 能力边界本地验证通过;最终全量无新增失败,但保留 29 项既有加载失败,未部署、线上待验) +- 首次发现 / 最近更新:2026-09-29 / 2026-09-29 +- 影响面:`chart-view-mapper.ts::buildVargas`、`chartViewVargaSchema`、`chart-vedic-tab.tsx::VargaTable`。 +- 现象 / 触发:非 D9 分盘也显示同位,没有能力声明,false 横杠无法区分不支持与未命中。 +- 根因:09-28 产品约定将任意 Dn 与 D1 同座泛化为 vargottama;原生 `_calc_vargottama` 只处理 D9。算术比较本身没错,旧测试按旧产品定义验证,并非计算回归漏检。 +- 修复:服务端可选能力声明,两列独立严格 true 才展示;D9 有有效来源时支持同位,其他 Dn 隐藏;三档庙旺保留,上升标不适用。支持性由有效来源而非结果真值判断。旧模块快照缺声明保守隐藏,不改原始引擎缓存或身份隔离。 +- 验证:能力组合、全 false/null、坏类型、缺失/无效源、缓存直读与分层合并均增加 golden 回归;Python 合同直接将真实 TS mapper 与 `_calc_vargottama` 行星和 `build_d9_summary` 上升分别对照。执行方及独立定向通过,最终 87 项受影响前端测试、5 项 Python 合同全部通过;全量新增 17 项、删除 0,29 项基线加载失败逐名逐原因一致。完整证据见 PROGRESS。 +- 防复发:禁止用 `some(vargottama)` 判断支持,禁止将未知补 false;缺能力整列不渲染,分盘行不能退回 D1。 +- 相关记录:BUG-1076、`TASK-chart-types-and-report-buttons-20260928.md` T3;本任务书明确有限修订旧约定。 +- 复发自:无;产品术语能力范围的收口,不是 D1 冒充分盘复发。 +- 修复版本:`codex/chart-surface-polish-20260929` 工作区,未提交、未推送。 diff --git a/docs/research/pre_work_error_ledger.md b/docs/research/pre_work_error_ledger.md index f8106661..e5f13be7 100644 --- a/docs/research/pre_work_error_ledger.md +++ b/docs/research/pre_work_error_ledger.md @@ -2,6 +2,19 @@ Purpose: read this file before substantial project work. It exists to stop repeat mistakes caused by multiple Codex windows, WorkBuddy mirrors, local drafts, backup folders, and partial cloud-git visibility. +## 2026-09-29 · 星盘展示获准推送后的预检 + +- 产品在获知本轮全量 29 项既有失败后明确授权推送 staging。重新 fetch,远端仍为已验基线 `78b9c5b65cda44650e8c7ca019931ce33a85a95d`;19 个业务/测试变动文件与 final-r2 快照哈希一致,隐私检查 63/63 通过。 +- 推送前预检这次不再超时:remote verified、碎片扫描与适配器成功;focused 22 通过 / 2 失败,整体 exit 1。复现历史同类机器目录假设:缺 `.workbuddy/skills/jyotish-vedic-astrology`,candidate_count=6 小于 workspace_residue_count=1937。未造镜像、未清其他会话目录、未修改测试;原日志 `artifacts/chart-surface-polish-validation-20260929/push-pre-work-check.log` 保留。 +- 此处只记录推送准备,写认证、远端 SHA 与门禁/部署另行核验;不把远端可读当作已写入。 + +## 2026-09-29 · 星盘展示实施预检与保真基线 + +- 独立工作树 `codex/chart-surface-polish-20260929`,fetch 后固定 `78b9c5b65cda44650e8c7ca019931ce33a85a95d`。Windows Python 3.11.7 加 UTF-8 环境变量运行预检;remote verified、适配器成功,碎片扫描 90 秒与 focused tests 45 秒分别超时,整体 exit 1。原日志在本轮 `artifacts/chart-surface-polish-validation-20260929/pre-work-check.log`。不套用此前单条镜像断言失败,不造目录、不清他人残留。 +- 本机 Docker 29.8.0、真实 Chrome 可用。Linux 独立 Git archive 基线保留 5485 tracked 文件及 8 个 symlink,mode 校验零差异;不以 Windows checkout 的 symlink/mode 替代 Linux 结果。Node 22.23.2 / Python 3.13.15,不更改依赖锁。 +- 基线 npm 全量 4369 项中 29 项失败,集中两个生命周期文件的 `tailwind-merge/dist/bundle-mjs.mjs:99:50 Parse error`,定向重跑与关闭 tsx 缓存仍复现;不是 Docker 不可用。保留失败原日志,最终逐名逐原因比较,不修改业务或断言迎合工具。tsc/lint/build 与 Python quick 基线成功,具体数字见本轮 PROGRESS。 +- 浏览器 harness 初稿误落主检出 artifact,随后复制到本轮实现树,后续产物只写独立工作树;未清理其他会话文件。前次纯文档写认证失败未解除,本轮无 push、无部署。 + ## 2026-09-26 · 校正时延单预检(BUG-1047) - `python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45` 在 Linux / Python 3.13 上整体 exit 0:远端 verified,碎片扫描、外部引擎适配器诊断与 5 个 focused 目标全部通过(本机没有复现 09-24/09-25 记录的 `.workbuddy` 镜像断言失败)。 diff --git a/docs/tasks/PROGRESS-chart-surface-polish-20260929.md b/docs/tasks/PROGRESS-chart-surface-polish-20260929.md new file mode 100644 index 00000000..8ecdd543 --- /dev/null +++ b/docs/tasks/PROGRESS-chart-surface-polish-20260929.md @@ -0,0 +1,148 @@ +# PROGRESS · 星盘展示收口(2026-09-29) + +## 授权与基线 + +- 产品要求“请你执行任务书”,对应 `TASK-chart-surface-polish-20260929.md`;实施计划已批准。 +- fetch 后基线仍为 `78b9c5b65cda44650e8c7ca019931ce33a85a95d`,独立工作树 `.worktrees/chart-surface-polish-20260929`,分支 `codex/chart-surface-polish-20260929`。 +- 未 stash、未提交、未推送、未部署;前次文档写认证失败尚未解除,不尝试借用凭据。浏览器 harness 初稿曾误写主检出 artifact,已复制至本树,后续产物仅写本树,未清理其他会话文件。 +- 工作树清单与会话检查未见同日报告两单正在本机修改共享 SVG;保持本单共享 SVG 先于后续报告单串行接续的约定。 + +## 执行边界与补充决策 + +- 去掉用户可见引擎行及专用展示字段,不删内部计算元信息或许可证。 +- 庙旺保留三档同源派生,同位只 D9;能力声明与命中结果分离,旧缓存缺声明保守隐藏,不新造缓存系统。 +- 宫位对齐审计发现本命/月亮、Bhava、行运也使用相同居中类。按 T3 统一修复宫位类格;本命八列结构和数据字节冻结不动,以八列表头限定 CSS 第四列左对齐。宿主、pada 等仍居中。 +- 盘宽只在既有 ≥1024px 断点收紧;印度限内部绘图区,参数卡和表格不缩,报告/校正不受影响。 +- 图标说明由 `/chart` 页面交互包装层承接,共享绘图默认静态。固定说明区避免挡住相邻符号;静态导出白名单不扩。西洋固定文字放在透明行星命中圆之上,避免说明归属被截走。 + +## 进度 + +| 项 | 状态 | +| --- | --- | +| T1 去引擎 / T2 能力列 / T3 对齐 | 已实现;定向通过 | +| T4 图标说明 | 已实现;定向与真实浏览器通过 | +| T5 桌面盘宽与等待槽位 | 已实现;六视口真实浏览器通过 | +| 基线全量与最终验收 | final-r2 完成,无新增失败;全量仍有 29 项既有失败,独立只读审查闭环 | +| 文档与真人清单 | 已回填;受控登录、实体手机和读屏留待真人验收 | + +## 本轮环境与预检 + +| 项目 | 实测 | +| --- | --- | +| Windows Node / npm | 22.23.2 / 10.8.1 | +| Windows Python | 3.11.7(UTF-8 环境变量) | +| Docker Server | 29.8.0 | +| 实际浏览器 | Chrome 154.0.8037.57,独立临时配置,无个人登录态 | +| Linux Node / npm / Python | 22.23.2 / 10.9.8 / 3.13.15 | +| 实现树 npm ci --ignore-scripts | exit 0;未改 lockfile | +| pre_work_check | exit 1:remote verified、适配器成功;碎片扫描 90s 超时,focused tests 45s 超时 | + +预检原日志:`artifacts/chart-surface-polish-validation-20260929/pre-work-check.log`。本轮不是旧镜像路径断言的失败计数,不伪造历史目录、不清理别人的残留、不把整体 fail 写成通过。 + +Linux 基线使用本轮独立 Node/Python/DinD 容器和卷,Git archive 保留 5485 tracked 文件及 8 个 symlink,精确 index/mode 校验零差异。不挂宿主 Docker socket,不更改依赖锁。archive SHA256:`23f0b42bad804e59362959c64fa282ed4437faa301773f98b731e6ddfbcee76a`。最终另建快照,不覆盖基线。 + +## 既有断言变更账本 + +| 原值 | 新值 | 原因 | +| --- | --- | --- | +| 西洋所有视口 max-width 520px | 窄屏仍 520px,≥1024px 上限 480px;viewBox 520×520 保留 | 只收紧桌面绘图区,不改变手机和几何 | +| 完整 markup 中“逆”只出现一次 | 只统计可见 text,仍一次;另增说明与默认静态无交互断言 | title/aria 的事实说明可含逆行,不能误当成盘内重复标签 | +| 临时浏览器追加检查要求骨架 SVG 与结果 SVG 总高相等 | 要求绘图容器、stage 等高及说明起点相同;400 方盘主体同宽同高,内部空 SVG 不要求绘制图例带 | 以真实无跳动布局为合同,保留静态空 SVG;旧失败原日志保留,外框高度断言未放宽 | + +数据能力测试只新增断言,原 D9 六列、D1 八列字节冻结保留。没有删除用例来消红。 + +## 执行方与主会话定向验证 + +| 检查 | 结果 | +| --- | --- | +| 数据六文件前端定向 | 55 pass / 0 fail / 0 cancelled,exit 0 | +| Python 表格/原生同位合同 | 5 passed,exit 0 | +| 图标、静态报告、西洋布局与新交互 | 31 pass / 0 fail / 0 cancelled | +| 星盘页、西洋布局与新交互 | 36 pass / 0 fail / 0 cancelled | +| 主会话独立星盘页、尺寸、交互定向(初轮) | 32 pass / 0 fail / 0 cancelled / 0 skipped,exit 0 | +| 主会话 r2 定向(含高度合同及 Bhava/Transit 成功参数表) | 42 pass / 0 fail / 0 cancelled / 0 skipped,exit 0 | +| 主会话 Python 原生合同 / 隐私 | 5 + 63 passed,exit 0 | +| 主会话 tsc / 完整 lint | exit 0 / exit 0(0 error / 126 warning) | +| 主会话差异空白检查 | exit 0 | + +数据代理首轮新增缓存测试 54/55,因新测试缺少身份 pin 前置而失败;补齐测试前置后整组 55/55,未修改生产缓存逻辑。图标测试是实际 React handler/生命周期测试,不伪称浏览器布局仿真。主会话原日志:`artifacts/chart-surface-polish-validation-20260929/main-targeted.log`。 + +## Linux 同环境基线 / 最终对账 + +证据目录:`artifacts/chart-surface-polish-validation-20260929/`。 + +| 检查 | 基线 | final-r2 | +| --- | --- | --- | +| tsc | exit 0 | exit 0 | +| lint | 0 error / 126 warning,exit 0 | 0 error / 126 warning,exit 0 | +| npm test | 4369 项:4340 pass / 29 fail / 0 cancelled / 0 skipped,exit 1 | 4386 项:4357 pass / 29 fail / 0 cancelled / 0 skipped,exit 1 | +| 测试名多重集合 | 顶层 4339;含嵌套 4369 | 顶层 4356;含嵌套 4386;新增 17、删除 0 | +| build / 首页 | exit 0 / ○ Static | exit 0 / ○ Static | +| 完整首屏直链 JS/CSS gzip | 720027 B(32 资源) | 720933 B,+0.12583% | +| 相对父 layout 增量 JS gzip | 233663 B(8 块) | 234101 B,+0.18745% | +| 首页专属 JS gzip | 133914 B(4 块) | 134352 B,+0.32708% | +| Python 定向 / 隐私 | 3 + 63 passed,exit 0 | 5 + 63 passed,exit 0 | +| Python quick | 1000 passed / 2 skipped / 3 subtests passed,exit 0 | 1000 passed / 2 skipped / 3 subtests passed,exit 0 | +| 受影响前端定向 | — | 87/87 pass,fail/cancelled/skipped/todo 0,exit 0 | + +quick 使用 `--profile quick --skip-frontend-runtime`,前端另外完整执行 tsc/lint/npm test/build,不省 Python 核心。基线 29 项失败均在 `home-warm-return-lifecycle.test.tsx`(14)和 `new-chat-from-people-lifecycle.test.tsx`(15),报 `tailwind-merge/dist/bundle-mjs.mjs:99:50 Parse error`,定向及禁用 tsx 缓存重复同错。不属于 Docker 不可用,不改业务/测试/依赖迎合工具;final-r2 已逐名核对 name/error/code/location(仅归一快照目录),新增失败 0、诊断变化 0。主会话独立读取 summary、名称多重集合与失败诊断证据,未将 exit 1 写成成功。最终证据:`final-r2-summary.json`、`final-r2-versus-baseline.json`、`final-r2-failure-diagnostics-versus-baseline.json`、`final-r2-gzip-versus-baseline.json`。 + +## 真实浏览器验收 + +高度修复后最终稳定轮:`artifacts/chart-surface-polish-browser-20260929/run-2026-09-29T10-31-46-677Z/results.json`;触控/高度追加轮 `run-2026-09-29T10-31-31-386Z/results.json`。脚本 `run-browser.cjs`、日志 `acceptance-post-height-fix.log` 与 `touch-height-post-fix.log`。两轮使用同一源码哈希快照;旧 `run-2026-09-29T10-18-19-676Z` 初轮和其后高度失败证据保留。Chrome 真实组件 + 完整 CSS + 项目字体 + 真实引擎 golden,同一 harness 前后对照,源码前后哈希一致。 + +| 验证 | 实测 | +| --- | --- | +| 检查汇总 | 主套 70 PASS / 0 FAIL + 追加 8 PASS / 0 FAIL,两次 exit 0;pageerror 0(未监听全部 console.error) | +| 宫位对齐 | 6 盘型 × 6 视口,computed text-align left,标题/值 padding 12px;宿主/pada仍center | +| 西洋拥挤盘 | 64 golden × 6 视口 = 384 盘;17190 字符命中归属/nearest语义归属错误 0,字框碰撞 0 | +| 375px 西洋 | 最小实际字号 12.533px;命中直径 44.854px | +| 交互 | 实际 hover/focus/tap/Esc/leave/blur/切盘清理;西洋选择/取消/相位过滤、星座/宫号/角点说明通过 | +| 印度可见符号 | 10 个可见 glyph 中心均能触发正确说明;逆行线同对象 | +| 共享绘图 | 报告实际组件与校正共享宿主六视口尺寸同基线;导出静态、无脚本或交互、无 height auto | +| 页面宽度与等待 | 无整页横滚,表内可滚;六视口骨架与结果绘图区同宽 | + +| 视口 px | 基线印度 px | 实现印度 px | 基线西洋 px | 实现西洋 px | +| --- | ---: | ---: | ---: | ---: | +| 375 | 317 | 317 | 343 | 343 | +| 390 | 332 | 332 | 358 | 358 | +| 480 | 422 | 422 | 448 | 448 | +| 1023 | 949 | 949 | 520 | 520 | +| 1024 | 497.594 | 440 | 520 | 480 | +| 1280 | 565.797 | 440 | 520 | 480 | + +浏览器第一轮运行时实现方仍在调整西洋文字层,哈希不稳定,不算最终证据;harness 也修正了零高度 SVG 逆行线定位(改几何中心真实 mouse.move)和扩展 aria-label 前缀定位,没有放宽业务断言。最终稳定轮已重跑全套。 + +### 既有视觉欠账与未验边界 + +- 390px D1 个别多星同宫字形 bbox 越 SVG 边界,基线/实现坐标与可见中心相同,属于既有裁切,不是本轮新增;可见中心能正确说明,不把“无新增裁切”写成“全部字形无裁切”。证据含 `vedicVisibleAudit` 和前后截图。 +- 没有受控线上登录态、实体手机或真实读屏验收。校正只覆盖共享绘图宿主,不是完整 Case 流程;本地 golden harness 不能代替账户/人物/服务端请求链路。 +- 真人清单:`docs/testing/chart-surface-polish-20260929.md`;缺口保留在 `BLOCKED.md`。 + +## 独立审查与追加修复 + +修复单:`TASK-chart-surface-polish-fix-20260929.md`,与原任务同一授权/分支,不扩大发布范围。 + +- 未参与实现的审查方完成能力声明、缓存、静态 SVG、安全边界与西洋事件审查,最小 20 项测试通过、fail/cancelled 0、exit 0,未发现确定的新数据或交互回归。 +- 审查发现 T5 高度验收缺口:骨架空 SVG 为 400×400,结果有图例为 400×452。虽是既存比例差,本任务书要求揭幕后不跳尺寸,因此不缩窄解释为“只限宽度”。追加 Chrome 实测六视口外框增高 41.203 / 43.156 / 54.859 / 123.359 / 57.188 / 57.188px,六项失败、exit 1;日志 `touch-height.log` 和 `run-2026-09-29T10-23-27-737Z/results.json` 保留。 +- 最小修复只给 `/chart` 印度骨架容器 `.chart-page-skeleton.chart-page-vedic-plot` 添加 `aspect-ratio:400/452`,留出图例带;不改空 SVG/viewBox,不改报告/校正。新增合同;新稳定浏览器追加轮 8 PASS / 0 FAIL、exit 0,六视口绘图槽/外框高度及说明起点差均为 0,方盘主体尺寸差 <0.1px。证据 `run-2026-09-29T10-31-31-386Z/results.json`,pageerror 0、源码哈希稳定。内部两个 SVG 自身不要求等高,因为骨架不绘图例。 +- 触控追加可信原生事件序列为 pointerup(touch) → pointerout/leave(touch) → 兼容鼠标事件 → click(touch),印度/西洋在完整事件后 0/50/500/1500ms 说明均保留;没有复现触控立即消失。不扩推到所有移动浏览器。 +- 补强 Bhava/Transit 的真实成功 golden 参数表断言:参数表、岁差、交点存在且无引擎,两个文件 9/9 pass、fail/cancelled/skip 0、exit 0。不是仅验证失败占位不含引擎。 +- 29 项基线错误只能定性为既有生命周期测试加载失败,根因未定:同环境直接 import tailwind-merge 并执行正常,不能写成缺依赖或包损坏。 +- final-r1 为中间快照,不能替代上述改动;4385 项中 4356 pass / 29 fail / 0 cancelled / 0 skipped,新增 16 个测试名、删除 0,29 项失败 name/error/code/location 归一快照路径后逐项相同。tsc/lint/build/quick 成功,首页 Static。r1 最初 Python 与 Node 依赖复制并行导致新增两项 skip,依赖就绪后真实补跑 5 个定向 + 63 隐私全部通过,原日志不覆盖。 +- final-r2 新保真快照 SHA256 为 `7af1408accee383ade7906c638d032fc992cca8e06986f43526616a58c804a34`,5491 tracked、index/mode 零差异。主会话逐项核对 19 个变动业务/测试文件 source_sha256 与当前树一致,mismatch 0;文档最终回填另做隐私检查(主会话已独立 63/63 pass,exit 0)。 + +## 当前结论 + +本地实施完成:五项展示需求及独立审查发现的骨架高度缺口均已落实,冻结后真实浏览器 78/78、受影响前端定向 87/87、tsc/lint/build、Python 定向与 quick 通过;首页 Static,三种 gzip 变化均小于 2%。独立审查无未处理意见,主会话另外完成关键复验。 + +全量 npm 仍为 exit 1:29 项既有生命周期加载失败与基线逐名逐原因完全一致,新增失败 0;不能称全部测试全绿。预检超时、实体手机/读屏和受控线上链路未验、既有印度边缘裁切均明确保留。BUG-1098/1099 记录为本地验证通过但线上待验,不宣称生产已解决。 + +本地验收完成时,交付仅限工作树 `G:/Ferti/Jyotisha/.worktrees/chart-surface-polish-20260929`,尚未提交、推送或部署。算法、依赖锁、迁移、发布配置未改。本地证据不能替代远端 SHA/部署核验。 + +## 2026-09-29 · staging 推送授权 + +- 产品在获知上述 29 项既有全量失败及真人验收缺口后,明确要求“请你帮我推送到staging”。本轮授权包括提交已验收改动并快进推送 staging,不包括提升 main 或手动生产发布。 +- 推送前重新 fetch;`origin/staging` 与本轮基线仍同为 `78b9c5b65cda44650e8c7ca019931ce33a85a95d`,无需合并或重放代码。重新执行预检、源码快照一致性与隐私检查;只提交明确列出的业务/测试/文档,不纳入本地产物、依赖、截图或凭据。 +- 推送前源码核对 19 文件 mismatch 0,隐私 63/63 通过。预检 exit 1:remote verified、碎片与适配器成功;focused 22 pass / 2 fail,分别是历史镜像路径不存在与 candidate_count=6 小于 workspace_residue_count=1937,不再是开工时超时。原日志 `push-pre-work-check.log` 保留,未修改测试或清理其他会话目录。 +- 本节记录授权与推送准备,不预言写认证、远端门禁或部署成功。提交后须单独核对远端 SHA,自动门禁/部署以新提交的实际结果为准。 diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 3a528321..652e63e6 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -229,6 +229,7 @@ | 任务书 | 进度 | 主题 | 状态 | 落点 | | --- | --- | --- | --- | --- | +| [TASK-chart-surface-polish-20260929](TASK-chart-surface-polish-20260929.md)([验收修复](TASK-chart-surface-polish-fix-20260929.md)) | [PROGRESS](PROGRESS-chart-surface-polish-20260929.md) | 去引擎展示、庙旺三档保留、同位仅 D9、宫位左对齐、图标解释与桌面盘宽收紧(BUG-1098 / 1099) | 本地实施完成(定向/浏览器通过;全量保留 29 项基线失败,未推送) | `codex/chart-surface-polish-20260929`;不发布、不提升 main | | `TASK-docs-reconcile-20260926.md` | `PROGRESS-docs-reconcile-20260926.md` | **状态板 / BUG / BLOCKED 过期对账**(纯文档):约 35 行校正任务状态过期、BUG-085/086/743/981/984 记录过期、BLOCKED latency 条目过期;逐条附证据改,不把欠真机写成通过 | 待验收 | `codex/docs-reconcile-20260926`(本地提交,未推送) | | `TASK-people-ephemeris-ui-20260926.md` | `PROGRESS-people-ephemeris-ui-20260926.md` | **星盘档案页补样式 + 星历可读性改版**(原型 https://claude.ai/artifact/FmPy9xZ7dQw9u7yrW4WzTw ,产品 09-26 确认):/people 样式 0 条(BUG-1039)→ 手机列表→详情、桌面两栏;星历五要素先中文后梵文(附唯一对照表)、吉凶彩色标签、固定规则当日总评(不调模型)、标题栏大按钮移到底部提示卡。必须真实浏览器截图验收。与 BUG-1038 单并行、文件不交叉 | 已验收(Claude 09-26 直接执行模式:子代理实现,Claude 独立复验 tsc/lint 0、全量 3916 条失败名单与基线逐条一致、四路由 ○、gzip +0.00%、36 张浏览器截图核对与原型一致) | `0ab061b9`(已部署,run 2910,health 一致) | | `TASK-round-0925-followup-20260925.md` | `PROGRESS-round-0925-followup-20260925.md` | **0925 收尾单**:西洋盘标签偏移 ≤30° + 第三圈;删除后只在当前人物里回退;人物接口故障降级为本人;P3 删旧面板、点击按最近行星、删除年运死调用 | 已验收(Claude 09-26:偏移 ≤30° 达成;删后回退按人、人物接口降级、账户单次请求、面板与死代码删除均通过;残留 0.73% 盘标签重叠为 P3) | `d08ffdc0` + 合同修复 `e84d6eb8`(d08ffdc0 的门禁 run 2901 红于一条引用已删面板文案的 Python 合同,Claude 经产品授权直接修复);已部署 run 2906,health 一致 | diff --git a/docs/tasks/TASK-chart-surface-polish-20260929.md b/docs/tasks/TASK-chart-surface-polish-20260929.md new file mode 100644 index 00000000..5b426f31 --- /dev/null +++ b/docs/tasks/TASK-chart-surface-polish-20260929.md @@ -0,0 +1,154 @@ +# TASK · 星盘去引擎展示、能力列按支持显示、宫位对齐、图标解释与盘面收紧(2026-09-29) + +> 初稿为任务书模式。产品于 2026-09-29 明确要求“请你执行任务书”,已进入独立工作树实施;执行后独立验收,本轮不推送、不发布。 +> +> 执行补充:尺寸只在既有 ≥1024px 桌面两栏断点收紧,印度 440px 指绘图区而非含 padding 的外框。T3 同时修复本命、月亮、Bhava、行运的同类宫位对齐;本命/月亮保留原八列 markup,按八列表头精确限定 CSS 第四列,不全局改 `mid`。 + +## 1. 基线与串行依赖 + +- 调查基线:`origin/staging = 78b9c5b65cda44650e8c7ca019931ce33a85a95d`。执行开工重新 fetch,记录实际 SHA。 +- 实现分支:`codex/chart-surface-polish-20260929`;工作树:`.worktrees/chart-surface-polish-20260929`。 +- 进度:`docs/tasks/PROGRESS-chart-surface-polish-20260929.md`;真人清单:`docs/testing/chart-surface-polish-20260929.md`。 +- 必须接在 `codex/mobile-chart-confirmed-edit-20260929`(BUG-1083)合入之后;本基线已包含其修复。不得重新引入手机宽表撑开外层网格的问题。 +- 同日报告两单既有顺序不变:`codex/report-reader-polish-20260929` → `codex/report-english-edition-20260929`。本单优先限定 `/chart`;若要同时编辑共享 `vedic-chart-svg.tsx`、报告图盘导出或同一 CSS/文档段落,必须串行交接,不能各自在旧基线上覆盖。默认本单共享 SVG 改动先合入,英文版再接续;若对方已开工,先协调,不重置别人分支。 + +## 2. 事故实证与根因 + +本轮输入为产品截图和展示要求,不记录截图中的真实星盘数据。本轮没有登录态浏览器复现或全量业务验收。代码定位按符号为准,以下行号对应上述基线: + +| 现象 | 证据与根因 | +| --- | --- | +| 所有印度盘显示引擎来源 | `frontend/src/lib/chart-view-mapper.ts:822` 投影 `engineName`,`chart-view-contract.ts:261` 要求该字段;`components/chart-page/chart-param-table.tsx:28` 把它作为参数行无条件渲染。`chart-vedic-tab.tsx:312` 的共享 `VedicLayout` 让该行出现在全部 23 种印度盘型。西洋盘不走此表,不能声称其已有同一行。 | +| 分盘宫位标题左、内容居中(BUG-1098) | `chart-vedic-tab.tsx:148,163` 的 `VargaRow` / `VargaAscendantRow` 给宫位套了 `chart-page-planet-mid`。`globals.css:5210–5215` 本来统一左对齐,却被 `:5249` 的该类覆盖成居中。是单元格类使用不当,不是引擎数据错误。 | +| 盘内符号无悬停解释 | `components/personal-report/vedic-chart-svg.tsx:168–220` 的 `OccupantGlyph` 渲染行星、逆行短线、As,没有逐符号 `