From 1adb5969813169200f199cc2377a97a4dfda774d Mon Sep 17 00:00:00 2001 From: XingfenD Date: Mon, 7 Sep 2026 17:22:04 +0800 Subject: [PATCH] docs(plan): execution-time amendments log for plan2-frontend --- docs/superpowers/plans/2026-09-04-frontend.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/superpowers/plans/2026-09-04-frontend.md b/docs/superpowers/plans/2026-09-04-frontend.md index 18efc1b..d6be27a 100644 --- a/docs/superpowers/plans/2026-09-04-frontend.md +++ b/docs/superpowers/plans/2026-09-04-frontend.md @@ -3066,3 +3066,17 @@ git commit -m "feat(web): pwa offline caching, dockerized SPA, full-stack nginx 1. admin 建库→上传 cbz→扫描→书架出封面;member 登录只见书架无删除按钮。 2. 四格式各开一本:翻页/翻篇后刷新同位置续上;关页秒保存。 3. 断网(F12 offline)重开:SPA 壳与读过的 CBZ 页可看。 + +## 执行修订记录(plan2-frontend 分支最终态) + +执行期对上文计划文本的有效修订(评审/环境驱动,均已随代码落地): + +- **sendBeacon → fetch keepalive**(写计划时已注):后端 Bearer-only,beacon 无法带 header,语义等价。 +- **Task 5**:扫描按钮补 `isAdmin` 守卫(全局约束"写操作仅 admin 可见"优先于示例代码;已就地修订上文)。 +- **Task 6/7**:Reader.tsx 的 `lazy` import 随首个 READERS 条目(Task 7)引入(`noUnusedLocals` 不允许空表时导入)。 +- **Task 7**:`PageHeights.range` 返回 `[start, end)` 端点排除(brief 参考实现与 brief 测试矛盾,以测试为准;已就地修订上文)。 +- **Task 9**:已装 pdfjs-dist 为 v6.3 — `page.render({ canvas, viewport })`(canvasContext 已废)、`destroy()` 移到 loading task;仅调用点适配。 +- **Task 10/终评**:`display(cfi)` 失败是 promise reject 非同步 throw → 改为 promise 链回退无参 display 再 setErr;`setReady` 仅在 display 成功后。 +- **Task 12**:新增 `deploy/entrypoint-resolver.sh` —— `deploy/nginx.conf` 恢复 spec §11 变量式 `proxy_pass`,`resolver` 地址启动时从 `/etc/resolv.conf` 首个 nameserver 注入(Docker=127.0.0.11 / podman=gateway 双运行时兼容;计划负责人裁决"保 spec 语义")。Dockerfile.web 的 nginx stage `COPY --chmod=755` 该脚本并覆写 ENTRYPOINT(exec "$@" 保留 CMD)。 +- **终评分支修复波**(cc66a64):nginx 增加 CSP header(spec §7 的既定缓解);AuthContext 401 登出与显式 logout 统一 `clearSession()`(qc.clear + 双 SW 缓存删除);admin 密码框 `type=password`;SW 不可变匹配 `searchParams.has("v")`;CBZ 缺 pages_url 出错误占位。 +- 冒烟脚本 `--wait` 在 podman-compose 下失败时回退 + healthz 轮询(仅脚本层,仓库文件未降级)。