chore(dashboard): ship the rebuilt chat bundle for the steward answer identity - #4556
Conversation
… identity The chat presentation bundle is tracked under loopx/web/chat, so the answer identity fix in dashboard-page.tsx does not reach an installed LoopX until the bundle is rebuilt and committed. Rebuilt with npm run build:chat. New entry assets/index-iZK4CVmp.js carries the manager-channel label logic (verified: the bundle contains "正在连接管家"); assets/index-DHBcQb3i.js is retired, assets/index-Bv3vTPKb.js stays as the previous retained generation, and index.html points at the new entry. Signed-off-by: huangruiteng <14976749+huangruiteng@users.noreply.github.com>
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Exact head reviewed: 02c7df79804eb234a35b37b53c9ee9ba0c63c7ba
动机
loopx/web/chat 是 git-tracked 的 chat 呈现 bundle。上一刀(#4555,已合并 d263a07)改了 apps/presentation/dashboard/src/views/dashboard-page.tsx 的管家答复署名,但已安装的 LoopX 仍提供旧 bundle,业主前端仍显示 Codex。缺这一刀,#4555 等于没有生效。
改动思路
只做"把已合并源码变更带给已安装产物":重建 bundle、轮转保留代次、更新入口。不引入任何新的行为改动——bundle 内容完全由含 #4555 的 origin/main 源码决定,因此审查面是"生成物是否与声称的源码一致",而不是新的产品语义。
具体改动
- 运行 npm run build:chat(= tsc --noEmit && vite build --config vite.chat.config.ts)。
- 新入口 loopx/web/chat/assets/index-iZK4CVmp.js;旧入口 assets/index-DHBcQb3i.js 退役。
- assets/index-Bv3vTPKb.js 保留为上一代可回滚代次;asset-retention.json 轮转为两代。
- loopx/web/chat/index.html 指向新入口。
对主干的风险
低。生成物提交,无运行时、契约、权限或投递语义变更。old-generation 保留使已加载旧页面的客户端仍可拉取其 JS;CSS 文件名未变(index-B21-YvBH.css),侧证样式层未受影响,diff 面收敛为 JS 入口 + 入口 HTML + 保留清单三项。
我的整体评价
正向且 proportional。它是 #4555 的必要配套;把它单独成 PR 而不是塞进 #4555,也让"源码语义"与"生成物轮转"各自可独立回滚。
Evidence:
- exact head 02c7df79804eb234a35b37b53c9ee9ba0c63c7ba
- npm run build:chat: passed(内建 tsc --noEmit 通过)
- python3 examples/dashboard-pwa-bundle-smoke.py: ok
- 产物核对: 新 bundle 含源改动标记字符串「正在连接管家」;asset-retention.json 恰两代且含上一代 JS;磁盘上两代 JS 文件均存在
- loopx canary premerge --from-git-diff: merge_gate_passed true, surfaces general;advisory control-plane-maintainability-ratchet-smoke.py 为 clean origin/main 已知基线
- 合并后将重新 promote 本机安装并做 HTTP 读回验证
English verdict: APPROVE
huangruiteng
left a comment
There was a problem hiding this comment.
Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
Correction: the previous review on this PR quoted an incorrect head OID tail. This review is authoritative; the OID below is the literal output of git rev-parse HEAD at review time.
Exact head reviewed: 02c7df7
动机
loopx/web/chat 是 git-tracked 的 chat 呈现 bundle。上一刀(#4555,已合并 d263a07)改了 apps/presentation/dashboard/src/views/dashboard-page.tsx 的管家答复署名,但已安装的 LoopX 仍提供旧 bundle,业主前端仍显示 Codex。缺这一刀,#4555 等于没有生效。
改动思路
只做"把已合并源码变更带给已安装产物":重建 bundle、轮转保留代次、更新入口。不引入任何新的行为改动——bundle 内容完全由含 #4555 的 origin/main 源码决定,因此审查面是"生成物是否与声称的源码一致",而不是新的产品语义。
具体改动
- 运行 npm run build:chat(= tsc --noEmit && vite build --config vite.chat.config.ts)。
- 新入口 loopx/web/chat/assets/index-iZK4CVmp.js;旧入口 assets/index-DHBcQb3i.js 退役。
- assets/index-Bv3vTPKb.js 保留为上一代可回滚代次;asset-retention.json 轮转为两代。
- loopx/web/chat/index.html 指向新入口。
对主干的风险
低。生成物提交,无运行时、契约、权限或投递语义变更。old-generation 保留使已加载旧页面的客户端仍可拉取其 JS;CSS 文件名未变(index-B21-YvBH.css),侧证样式层未受影响,diff 面收敛为 JS 入口 + 入口 HTML + 保留清单三项。
我的整体评价
正向且 proportional。它是 #4555 的必要配套;把它单独成 PR 而不是塞进 #4555,也让"源码语义"与"生成物轮转"各自可独立回滚。
Evidence:
- exact head 02c7df7
- npm run build:chat: passed(内建 tsc --noEmit 通过)
- python3 examples/dashboard-pwa-bundle-smoke.py: ok
- 产物核对: 新 bundle 含源改动标记字符串「正在连接管家」;asset-retention.json 恰两代且含上一代 JS;磁盘上两代 JS 文件均存在
- loopx canary premerge --from-git-diff: merge_gate_passed true, surfaces general;advisory control-plane-maintainability-ratchet-smoke.py 为 clean origin/main 已知基线
- 合并后将重新 promote 本机安装并做 HTTP 读回验证
English verdict: APPROVE
动机
loopx/web/chat是 git-tracked 的 chat 呈现 bundle,不能靠源码改动自动生效。上一刀 #4555 改了apps/presentation/dashboard/src/views/dashboard-page.tsx的答复署名逻辑,但本机已安装的 LoopX 仍会继续提供旧 bundle,业主看到的仍然是 Codex。改动思路
只做"把已合并的源码变更带给已安装产物"这一件事:重建 bundle、轮转保留代次、更新入口。不含任何新的行为改动;bundle 内容完全由
origin/main(含 #4555)的源码决定。具体改动
npm run build:chat(tsc --noEmit && vite build --config vite.chat.config.ts)。loopx/web/chat/assets/index-iZK4CVmp.js(含管家署名逻辑,已验证包含字符串正在连接管家)。assets/index-DHBcQb3i.js;上一代assets/index-Bv3vTPKb.js保留为可回滚代次。loopx/web/chat/index.html指向新入口;asset-retention.json轮转为两代。对主干的风险
低。生成物提交,无运行时/契约变更。旧客户端仍可回落到保留代次;CSS 文件名未变(
index-B21-YvBH.css),说明样式层未受影响。我的整体评价
正向且 proportional:这是 #4555 生效的必要配套,缺了它源码修复不会到达业主本地。
Validation:
npm run build:chat成功(内建tsc --noEmit通过)。python3 examples/dashboard-pwa-bundle-smoke.py→ ok。asset-retention.json恰好两代且含上一代 JS。loopx canary premerge --from-git-diff→merge_gate_passed: true,surfacesgeneral;advisorycontrol-plane-maintainability-ratchet-smoke.py为 cleanorigin/main上的已知基线。Approval conclusion (author-owned PR; GitHub blocks formal self-approval)
English verdict: APPROVE