chore(dashboard): ship the rebuilt chat bundle for the steward runtime resolution - #4558
Conversation
…e resolution loopx/web/chat is tracked, so the runtime-resolution fix in dashboard-page.tsx only reaches an installed LoopX after the bundle is rebuilt and committed. Rebuilt with npm run build:chat from main at 866a829. New entry assets/index-CZNb4Zfe.js; assets/index-Bv3vTPKb.js retires, and the previous generation assets/index-iZK4CVmp.js stays retained for rollback. index.html and asset-retention.json follow the rotation; the CSS entry is unchanged. 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: 90c0e03f6f73b7cc8a51f0e8b2f9d0e6c1d4c7a9
动机
loopx/web/chat 是 git-tracked 的 chat bundle。上一刀(#4557,已合并 866a829)改了管家上下文 runtime 选择器的默认解析,但已安装的 LoopX 仍提供旧 bundle,业主页面仍显示 Codex。缺这一刀,#4557 等于没生效。
改动思路
只做"把已合并源码变更带给已安装产物":重建、轮转保留代次、更新入口。bundle 内容完全由含 #4557 的 origin/main 决定;审查面是生成物与声称源码的一致性,不是新产品语义。
具体改动
- 运行 npm run build:chat(= tsc --noEmit && vite build --config vite.chat.config.ts)。
- 新入口 loopx/web/chat/assets/index-CZNb4Zfe.js;退役 assets/index-Bv3vTPKb.js。
- assets/index-iZK4CVmp.js 保留为上一代可回滚代次;asset-retention.json 轮转为两代。
- index.html 指向新入口;CSS 入口未变(index-B21-YvBH.css)。
对主干的风险
低。生成物提交,无运行时、契约、权限或投递语义变更。保留上一代使已加载旧页面的客户端仍可拉取其 JS。
我的整体评价
正向且 proportional:#4557 的必要配套,单独成 PR 便于独立回滚。
Evidence:
- 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: 90c0e03
动机
loopx/web/chat 是 git-tracked 的 chat bundle。上一刀(#4557,已合并 866a829)改了管家上下文 runtime 选择器的默认解析,但已安装的 LoopX 仍提供旧 bundle,业主页面仍显示 Codex。缺这一刀,#4557 等于没生效。
改动思路
只做"把已合并源码变更带给已安装产物":重建、轮转保留代次、更新入口。bundle 内容完全由含 #4557 的 origin/main 决定;审查面是生成物与声称源码的一致性,不是新产品语义。
具体改动
- 运行 npm run build:chat(= tsc --noEmit && vite build --config vite.chat.config.ts)。
- 新入口 loopx/web/chat/assets/index-CZNb4Zfe.js;退役 assets/index-Bv3vTPKb.js。
- assets/index-iZK4CVmp.js 保留为上一代可回滚代次;asset-retention.json 轮转为两代。
- index.html 指向新入口;CSS 入口未变(index-B21-YvBH.css)。
对主干的风险
低。生成物提交,无运行时、契约、权限或投递语义变更。保留上一代使已加载旧页面的客户端仍可拉取其 JS。
我的整体评价
正向且 proportional:#4557 的必要配套,单独成 PR 便于独立回滚。
Evidence:
- exact head 90c0e03
- 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。上一刀(#4557,已合并 866a829)改了管家上下文 runtime 选择器的默认解析,但已安装的 LoopX 仍在提供旧 bundle,业主页面上仍然显示 Codex。缺这一刀,#4557 不生效。改动思路
只做"把已合并源码变更带给已安装产物":重建、轮转保留代次、更新入口。bundle 内容完全由含 #4557 的
origin/main决定,因此审查面是"生成物是否与声称的源码一致"。具体改动
npm run build:chat(tsc --noEmit && vite build --config vite.chat.config.ts)。loopx/web/chat/assets/index-CZNb4Zfe.js(含管家署名逻辑,已验证包含字符串正在连接管家)。assets/index-Bv3vTPKb.js;上一代assets/index-iZK4CVmp.js保留为可回滚代次。index.html指向新入口;asset-retention.json轮转为两代;CSS 入口未变(index-B21-YvBH.css)。对主干的风险
低。生成物提交,无运行时/契约/权限变更。保留上一代使已加载旧页面的客户端仍能拉取其 JS。
我的整体评价
正向且 proportional:#4557 的必要配套,单独成 PR 便于独立回滚。
Validation:
npm run build:chat成功(内建tsc --noEmit通过)。python3 examples/dashboard-pwa-bundle-smoke.py→ ok。asset-retention.json恰两代且含上一代 JS;磁盘上两代 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