From 33bea27d85647d31384d13b4d0eefbdbab9a7017 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 2 Jun 2026 09:22:48 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20embed=20=E6=A8=A1=E5=BC=8F=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=A1=B5=E4=B8=80=E9=97=AA=E8=80=8C=E8=BF=87=20?= =?UTF-8?q?=E2=80=94=20body=20=E9=A6=96=E8=A1=8C=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=9A=90=E8=97=8F=20#login?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #login 默认 display:flex(带 login-in 动画),加 body.embed-mode 隐藏它的 embedInit() 在 body 末尾才执行;单文件 3800+ 行,浏览器常在解析到底部脚本前 就先把登录卡画出来,造成"一闪而过"。改法:在 第一行加一段同步内联脚本, ?embed=1 时立即 add embed-mode,赶在 #login 解析/绘制之前隐藏它。 只是绘制闸门,底部 embedInit(postMessage 握手 / embed-waiting / token 分支) 完全不动,embed-mode 幂等。 Co-Authored-By: Claude Opus 4.8 (1M context) --- PROGRESS.md | 6 +++++- web/static/dev.html | 12 ++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/PROGRESS.md b/PROGRESS.md index bc25550..78c8656 100644 --- a/PROGRESS.md +++ b/PROGRESS.md @@ -2,7 +2,7 @@ > 配合 `DESIGN.md`。本文件只记 phase 状态、决策偏差、文件量、下一步。每条 1-2 句:做了啥 + 关键判断;细节查 `git log` / `git diff` / `DESIGN §7.9`。 -最后更新:2026-06-01(update.sh 加自更新重跑守卫修"改源仍报旧错";默认源改腾讯/避开阿里滞后卡 litellm;build 跳过改 --skip-build;pip 不静默,build 默认 TTY UI) +最后更新:2026-06-02(修 embed 模式登录页一闪而过 — #login 在 embedInit 标记 embed-mode 前先被绘制,提前到 body 首行同步隐藏) --- @@ -21,6 +21,10 @@ ## 已完成关键能力 +### 2026-06-02 + +- **修 embed 模式"登录页一闪而过"(绘制时机,非鉴权)**:`web/static/dev.html` 的 `#login` 默认 `display:flex` 且带 `login-in .35s` 动画,而加 `body.embed-mode`(→ CSS 隐藏 `#login`)的 `embedInit()` 在 body 末尾才跑;单文件 3800+ 行,浏览器常在解析到底部脚本前就先把登录卡画出来 → 闪一下。改法:在 `` 第一行加一段同步内联脚本,`?embed=1` 时立即 `document.body.classList.add("embed-mode")`,赶在 `#login` 解析/绘制之前隐藏它 → 根本不绘制。只是"绘制闸门",底部 `embedInit()`(postMessage 握手 / `embed-waiting` 覆盖层 / token 分支)完全不动,`embed-mode` 幂等。未提前加 `embed-waiting`(有 stored token 时 `embedInit` 走 `enterApp` 不移除等待层会卡死,故等待层决定仍留底部按 token 判)。**bug 修复,DESIGN 不动;URL 参数/命令/env 无变化,RUN 不动**。 + ### 2026-06-01 - **`deploy/update.sh` 加自更新重跑守卫(修"改了源仍报旧错"根因)**:脚本 `git pull` 会改自己 —— 变量默认值在 pull 前已求值、bash 又按字节偏移边读边跑,所以**首次拉到"改 update.sh"的提交那一轮,跑的还是旧脚本的过期行为**(默认源还是阿里 → litellm 仍报缺版本)。改法:pull 后 `git diff --quiet OLD NEW -- deploy/update.sh` 检出本脚本有变更,就 `exec env ZCBOT_UPDATE_REEXEC=1 bash $0 "${ORIG_ARGS[@]}"` 用新版本从头重跑(原始参数原样回传,标记防死循环;pull 幂等,重跑里 pull 变 no-op)。**纯运维脚本,DESIGN 不动**;`RUN.md` §部署 SOP 加一条要点。 diff --git a/web/static/dev.html b/web/static/dev.html index 3a948bd..92b57e6 100644 --- a/web/static/dev.html +++ b/web/static/dev.html @@ -775,6 +775,18 @@ + + +