Hide engine branding, gate supported divisional columns, align house cells, and add accessible symbol help. Reduce desktop chart width and stabilize the waiting slot. Validated with 78 browser checks and 87 focused frontend tests. Full suite retains 29 identical baseline loader failures; no new failures. Co-Authored-By: Claude Code <noreply@anthropic.com>
14 KiB
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,自动门禁/部署以新提交的实际结果为准。