Skip to content

fix(site): complete LHTB Pages publication - #4709

Merged
huangruiteng merged 1 commit into
loopx-project:mainfrom
shangzh0:codex/lhtb-static-publish-v3
Sep 18, 2026
Merged

huangruiteng merged 1 commit into
loopx-project:mainfrom
shangzh0:codex/lhtb-static-publish-v3

Conversation

@shangzh0

Copy link
Copy Markdown
Contributor

Summary

  • register the already-merged LHTB brief in the Frontstage Pages manifest, generated README, and export result
  • add artifact-level smoke assertions for the LHTB entry and content source
  • expose the brief from the public homepage and benchmark documentation
  • add a publication-scope regression test for all 46 tasks, five arms, aggregate metrics, and bilingual copy

This is the focused follow-up to the P1 review on #4703. The page and aggregate data are already on main through #4703; #4705 added the static route copy. This PR supplies the remaining publication contract and regression coverage. It supersedes the stale-history PR #4707.

Verification

  • npm run build (apps/presentation/site)
  • python3 -m pytest benchmark/tests/test_publication_scope.py -q (4 passed)
  • node examples/dashboard-frontstage-design-baseline-smoke.mjs
  • node examples/frontstage-share-bundle-smoke.mjs

The full bundle smoke verifies that site/benchmarks/lhtb/index.html is emitted and matches the compiled SPA entry.

Signed-off-by: shangzh0 <2586756592@qq.com>
@shangzh0
shangzh0 force-pushed the codex/lhtb-static-publish-v3 branch from 4bf0048 to a657565 Compare September 18, 2026 17:00

@huangruiteng huangruiteng left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Request changes

Reviewed exact head: a6575656270c0930c58ebef0e99eab0364b612c7

主要发现

[P1] Rebase 后请区分“五臂实验全集”和“三臂主叙事”。

benchmark/tests/test_publication_scope.py:110 当前把 mechanismRows 也要求为五臂全集。这个断言在 PR 自己的旧基线通过,但将本提交应用到当前 main (96d98f3d4) 后会稳定失败:当前主干有意让 armLabels / armKinds 保留五臂,而 mechanismRows 只展示 plain、native_goal、new_heartbeat 三个主比较臂。

请先 rebase 当前 main,保留 data.json、armLabels、armKinds 的五臂校验,并把 mechanismRows 的期望集合改为上述三臂,然后重跑:

uv run --extra test pytest benchmark/tests/test_publication_scope.py -q

动机

这项改动要解决的真实缺口成立:LHTB 双语研究简报已有内容与路由,但尚未完整进入首页发现入口、share bundle、manifest、README 和发布巡检。把既有文章接入这些标准发布面,是一个独立、可回滚且对读者直接有用的增量。

改动思路

整体设计复用了现有发布链路:App.tsx 负责中英文首页卡片与路由顺序,export-frontstage-share-bundle.mjs 负责静态路由、README 与 manifest,既有 bundle/browser/publication smokes 负责消费端验证。没有另造内容 registry,也没有改变 LHTB 数据、评分或 benchmark 执行语义。

正向路径是:首页卡片 → /benchmarks/lhtb/ → share-bundle 路由复制 → manifest/source lineage → 浏览器与 bundle smoke。负向路径目前暴露出一个基线集成问题:旧 head 上的新 pytest 通过,但 current-main merge result 因三臂主叙事被误要求为五臂而失败。

具体改动

  • README.md、README.zh-CN.md 和 benchmark/README.md 增加 LHTB 双语发现入口与证据边界。
  • apps/presentation/site/src/App.tsx 增加两种语言的 LHTB 卡片,并保持卡片和目标路径的顺序一致。
  • examples/export-frontstage-share-bundle.mjs 增加 LHTB route、README 链接、manifest entry 和 public-safe content source;对应 bundle、design 与 browser smoke 均加入该入口。
  • benchmark/tests/test_publication_scope.py 新增 46 题唯一性、均分/通过数重算和双语 arm id 覆盖,但最后一项需要按当前主干合同修正。

关键代码讲解

  1. writeShareReadme / writeManifest / main(examples/export-frontstage-share-bundle.mjs):沿既有 SWE-Marathon/DeepSWE 模式注册 LHTB,生成产物由 bundle smoke 读回;缺失时直接阻断发布。
  2. content.explore.cards 与 route mapping(apps/presentation/site/src/App.tsx):中英文卡片共同进入公共首页,中文路由附带 ?lang=zh;browser smoke 校验完整、有序 href。
  3. test_lhtb_published_data_and_bilingual_copy_share_scope(benchmark/tests/test_publication_scope.py):读取真实 tracked JSON 并重算 aggregate,是合理的长期回归测试;但必须分别表达五臂数据合同和三臂主叙事合同。

对主干的风险

主要风险不是静态路由本身,而是 PR 落后于主干后产生的错误 CI 义务。当前主干将 mechanismRows 收敛为三个主要比较臂,同时保留五个实验/历史臂供标签和细节使用;本 PR 用同一个 arms 集合校验两者,既会把 merge result 测红,也可能诱导后续维护者为了“修测试”而把已收敛的叙事重新扩张。

语义与 CI 对齐

当前义务是:data.json、armLabels、armKinds 覆盖五臂,mechanismRows 覆盖三个主比较臂。触发冲突的是第 110 行的集合相等断言;观察证据是在 current main 上应用此提交后得到 1 failed, 3 passed。最小修复是 rebase 并拆成两个显式集合,再运行上述 pytest 与原有 export/browser checks。

验证结果:

  • PR exact head:4 passed。
  • current-main merge result:1 failed, 3 passed,失败点即第 110 行。
  • git diff --check:通过。
  • GitHub checks:发布审查时仍有 pending;修复并更新 head 后需要重新跑完。

页面当前把“完整通过数尚未超过 Plain”放进大标题的问题并非本 PR 引入,因此不作为本 PR 的额外 blocker;它适合在独立的小型文案/测试 PR 中处理,同时把 7/7/4 的事实保留在正文。

我的整体评价

发布补全的方向、边界和大部分实现都合理,改动也复用了正确的现有 owner;这不是需要推翻的设计。当前唯一阻断是 stale-base 上新增的测试与主干三臂叙事合同冲突。请按最小修复 rebase 并更新断言,届时再对新 exact head 复审;在已知 merge-result 红测下不能合并。

English verdict: REQUEST_CHANGES - At a6575656270c0930c58ebef0e99eab0364b612c7, the publication wiring is well scoped, but rebasing onto current main makes test_publication_scope.py:110 fail because the test requires all five arms in the intentionally three-arm mechanismRows; split the full-data and main-narrative expectations, rerun the focused test and CI, then request re-review.

@huangruiteng
huangruiteng merged commit 138795d into loopx-project:main Sep 18, 2026
21 of 22 checks passed
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.

2 participants