docs(tasks): accept the page.tsx growth fix — rectification P0 scope is green

page.tsx 1964 → 1951,正好回到冻结上限。tsc 0 错;lint 0 error / 118 warning;
定向 8 套件 134 项全绿;全量 fail 33 → 31 且无新增;build exit 0、/ 仍 ○ Static;
首屏 gzip +0.14%。

行为逐条核对未变:resolveBootstrapSessionSelection 与 readLoginSessionReturn
整体下沉进 home-cloud-sync 的 resolveLookupBootstrap,BUG-705 的 found /
missing / unavailable 三分支原样;await 后的 aborted 早返回改成抛 AbortError,
与该 effect 既有写法一致,外层 catch 本就放行 AbortError。

BUG-699 / 704 / 705 / 706 / 708 / 709 全部验收通过。

剩余 4 条红全属另一会话的星历 / 星盘页,已由 TASK-readonly-pages-fix-20260916
接手;staging 仍停在 2d7698ea 未部署。另记两条无自动化覆盖的欠账:动了数据库
结构但 test:db 没跑(门禁 workflow 里也没有),以及标题 / updated_at 修补脚本
在 staging 未执行。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155nFCgCHtoA7jhSDGmZmMu
This commit is contained in:
Jesse_Chen
2026-09-15 10:05:01 +00:00
co-authored by Claude Fable 5
parent a38a941522
commit 766028399c
@@ -40,3 +40,31 @@
## 合入
`git push origin HEAD:staging`,核对远端 SHA。
## 验收(Claude2026-09-15`origin/staging` @ `a38a9415`
**通过。** 本单范围内零未通过项。
| 项 | 结果 |
| --- | --- |
| `frontend/src/app/page.tsx` 换行数 | `f51e494c` 1964 → **1951**,正好回到冻结上限 |
| `tsc --noEmit` | 0 错 |
| `npm run lint` | 0 error / 118 warning(全部既有) |
| 定向 8 套件(含 `chart-view-route` | 134 项 **全绿** |
| 全量 `npm test` | `f51e494c` fail 33 → **fail 31**,无新增失败 |
| `npm run build` | exit 0`/` 仍是 `○ Static` |
| 首屏 JS gzip-9 | 584,476 B(对 `ff5023a2` 583,660 B**+0.14%** |
修好的两条:`page.tsx does not grow to host the chart page`(本单)、`the ephemeris page is its own route and never grows page.tsx`(另一会话 `a38a9415`)。
**行为未变,已逐条核对**`resolveBootstrapSessionSelection` + `readLoginSessionReturn` 整体下沉进 `home-cloud-sync.ts``resolveLookupBootstrap`BUG-705 的三分支(found / missing / unavailable)语义原样保留;原来 `await` 之后那句 `if (controller.signal.aborted) return;` 改成 `throwIfAborted``AbortError`,与该 effect 既有写法一致——外层 `catch` 本来就有 `if ((caught as Error).name !== "AbortError" && !controller.signal.aborted)` 的分支,不会把中止渲染成错误态。
一处风格备忘(不构成未通过):`page.tsx``resolveLookupBootstrap` 的调用把两个属性压到同一行以省行数。行为无碍,但下次这个文件再逼近上限时,应当继续往 `lib/` 搬,而不是继续压排版。
## 仍然欠着(不属于本单)
- **`npm run test:db` 没跑**`f51e494c` 动了数据库结构(新增 `touch_chat_session_from_rectification_case` 函数与触发器)。验收机无 Docker;`backend-quality-gate.yml` 里也没有 `test:db`,这条至今没有任何自动化覆盖。需要产品在 staging 走 `Migrate Staging Database` 并确认触发器生效。
- **标题与 `updated_at` 修补脚本未执行**`frontend/scripts/repair-rectification-session-titles.mjs` 默认只读,staging 未跑,损坏面数字仍为空。
- **浏览器 / 真机走查**`docs/testing/rectification-open-identity-20260915.md``docs/testing/rectification-tiebreak-card-loss-20260915.md`
- **staging 仍未部署**`deployment.gitCommit` = `2d7698ea`,其后含门禁路径的提交未上线。本单范围已全绿,剩余 4 条红全部属于另一会话的星历 / 星盘页改动(`ephemeris_events failure degrades…``gated paths are one list…``panchanga still returns…``unauthenticated ephemeris requests are 401`),已由 `TASK-readonly-pages-fix-20260916.md`BUG-710712)接手。