Skip to content

chore(dashboard): ship the rebuilt chat bundle for team plan confirmation - #4548

Merged
huangruiteng merged 1 commit into
mainfrom
codex/chat-bundle-team-plan
Sep 16, 2026
Merged

huangruiteng merged 1 commit into
mainfrom
codex/chat-bundle-team-plan

Conversation

@huangruiteng

Copy link
Copy Markdown
Collaborator

Why

loopx/web/chat is a git-tracked bundle: the dashboard chat surface ships from it, so a source-only change does not reach anyone until the bundle is rebuilt. #4547 added team.plan to the transport schema and the proposal card, but a readback after promoting the local install showed the shipped bundle still contained no team.plan — the confirmation surface would have been live in source and dead in the product.

What

  • Rebuilt with npm run build:chat.
  • loopx/web/chat/index.html now references the new entry; loopx/web/chat/assets/index-Bv3vTPKb.js contains the team.plan kind (verified: git show HEAD:loopx/web/chat/assets/index-Bv3vTPKb.js | grep -c 'team\.plan' → 2).
  • Bounded retention is preserved: the manifest keeps the new generation plus the previous one, and the older generation's JavaScript is removed (asset-retention.json, one deletion, one addition).

Verification

  • python3 examples/dashboard-pwa-bundle-smoke.py — dashboard-pwa-bundle-smoke ok (index/manifest contract plus bounded chat asset retention).
  • loopx canary premerge --from-git-diff — passed: diff hygiene clean, catalog canaries including the semantic-vocabulary and frontstage projection smokes; one advisory (the known baseline maintainability ratchet).
  • After merging, the local install is promoted again and the served chat asset is read back over HTTP to confirm the shipped surface carries the kind.

Scope

Generated bundle only; no source or behavior change beyond shipping what #4547 already merged.

…tion

The dashboard chat bundle at `loopx/web/chat` is tracked in the repository, so
the source change that lets an owner confirm a validated steward team plan
(#4547) is not shipped until that bundle is rebuilt. This rebuilds it with
`npm run build:chat` and publishes the new generation.

The rebuilt bundle contains the `team.plan` action kind the transport now
accepts, so the shipped chat surface can render a team preview card instead of
failing to parse it. Retention stays bounded: the manifest keeps the new entry
plus the previous generation, and the older generation's JavaScript is removed.

Validated with `python3 examples/dashboard-pwa-bundle-smoke.py`, which checks the
index/manifest contract and the bounded chat asset retention, after the rebuild.

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)
Reviewed exact head: c71a884a9e5269aef2f28a3e7d20185a0253297f

English verdict: APPROVE

动机

loopx/web/chat 是随仓库提交的打包产物:Dashboard chat 面就是从这里出货的,所以只改源码并不能让任何人的产品里有这个改动。#4547 把 team.plan 加进了传输 schema 并接上了确认卡片,但把本机安装提升后回读发现:已打包的 chat bundle 里根本没有 team.plan。也就是说确认面会"源码里有、产品里没有"——这正是 AGENTS.md 要求"打包前端也要验证"的原因。

改动思路

  • 用仓库自己的构建入口重建(npm run build:chat),不手改产物;
  • 保持 bounded retention 契约:manifest 保留新 generation + 上一代,旧一代 JS 删除(asset-retention.json 一增一删);
  • 构建后用仓库既有的 PWA/保留策略 smoke 校验,并在 git 对象层回读新 bundle 是否真的含该 kind。

具体改动

  • loopx/web/chat/index.html:入口指向新 asset。
  • loopx/web/chat/assets/index-Bv3vTPKb.js:新构建产物(git show HEAD:... | grep -c 'team\.plan' → 2);assets/index-BreEWoWw.js 按保留策略删除。
  • loopx/web/chat/asset-retention.json:两代保留记录更新。

对主干的风险

  1. 纯生成物:不含任何手工编辑的源码或行为变化,内容由 npm run build:chat 产生,可重复生成。
  2. 保留策略未被破坏:仍只保留两代(上一代 JS 已删),dashboard-pwa-bundle-smoke 的 bounded retention 断言通过;不会让打包目录无限增长。
  3. 体积:bundle 仍是单 chunk(构建器给出 >500kB 的既有警告,本改动不改变这一点,也没有引入代码分割这种额外结构性变化)。
  4. 未做:没有做浏览器级点击验收;本条只负责让已合并的源码改动真正出货。合并后会把本机安装再提升一次,并通过 HTTP 回读被服务的 chat asset 确认它含该 kind。

我的整体评价

正向且 proportional:3 个文件、纯产物更新,修的是"源码已合并但产品未出货"这一真实断点,而不是追加功能。

验证:python3 examples/dashboard-pwa-bundle-smoke.py 通过;canary premerge 通过(唯一 advisory 为已知基线 maintainability ratchet);git 对象层回读确认新 bundle 含 team.plan。

作为作者自有 PR,GitHub 不允许正式 self-approve,故以本 COMMENTED review 作为放行结论。

@huangruiteng
huangruiteng merged commit 55ebbc6 into main Sep 16, 2026
5 checks passed
@huangruiteng
huangruiteng deleted the codex/chat-bundle-team-plan branch September 16, 2026 12:39
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