Skip to content

chore(dashboard): ship the rebuilt chat bundle for the steward answer identity - #4556

Merged
huangruiteng merged 1 commit into
mainfrom
codex/ship-manager-answer-identity
Sep 16, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/ship-manager-answer-identity

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

动机

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。
  • 产物内容核对:新 bundle 含源改动标记;asset-retention.json 恰好两代且含上一代 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 读回。

Approval conclusion (author-owned PR; GitHub blocks formal self-approval)

English verdict: APPROVE

… 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 huangruiteng left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 huangruiteng left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@huangruiteng
huangruiteng merged commit c6e386e into main Sep 16, 2026
5 checks passed
@huangruiteng
huangruiteng deleted the codex/ship-manager-answer-identity branch September 16, 2026 13:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant