Skip to content

feat(site): publish LHTB five-arm research brief - #4703

Merged
huangruiteng merged 2 commits into
loopx-project:mainfrom
shangzh0:codex/lhtb-five-arm-research-brief
Sep 18, 2026
Merged

huangruiteng merged 2 commits into
loopx-project:mainfrom
shangzh0:codex/lhtb-five-arm-research-brief

Conversation

@shangzh0

@shangzh0 shangzh0 commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • add a bilingual /benchmarks/lhtb/ research brief comparing Plain, Native Goal, LoopX SSH-Goal, Legacy Heartbeat, and New Heartbeat across all 46 LHTB tasks
  • publish public-safe aggregate rewards, runtime metadata, mechanism insights, representative gains/losses, and the full searchable task matrix
  • connect the study to the Long-Horizon Harness benchmark RFC, LHTB official site/paper, and contributor attribution

Evidence boundary

  • one effective trial per task-arm cell; no repeated-seed causal claim
  • New Heartbeat changes multiple runtime dimensions together
  • public aggregate excludes raw trajectories, local paths, gateway details, credentials, and verifier artifacts
  • LHTB reward and the >= 0.95 solved threshold remain benchmark-native

Validation

  • npm run build in apps/presentation/site
  • aggregate recomputation validates 46 tasks and every arm summary
  • desktop 1440px and mobile 390px full-page browser renders: no console errors or document-level horizontal overflow
  • English/Chinese routing, search, and task filters exercised
  • Frontstage Pages CI passed

Signed-off-by: shangzh0 <2586756592@qq.com>
Signed-off-by: shangzh0 <2586756592@qq.com>

@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.

审阅对象:PR #4703,exact head d60813451609ad28b2855fe7acda9a4701740c40(作者 shangzh0),base f22879d,本次审阅该 exact head 的完整增量(6 files, +1482/-1)。

动机

这个 PR 的目标是发布一份公开研究简报:在站点上新增双语页面 /benchmarks/lhtb/,用五种长程执行机制(Plain、Native Goal、LoopX SSH-Goal、Legacy Heartbeat、New Heartbeat)在 46 个 LHTB 任务上的结果做对比,并把公开安全的聚合数据放在 benchmark/LHTB/studies/five-arm-gpt56sol-max/。动机本身成立:站上已有两份同类简报(/benchmarks/swe-marathon/、/benchmarks/deepswe/behavior-discovery/),LHTB 这份在此之前没有公开入口;同时研究目录里已有的公开安全规范(只放泛化代码与公开安全结论)也需要一个新的聚合数据落点。

需要强调:这个 PR 的交付物不是"页面能跑",而是"读者能在 public 站点上打开它"。因此本轮审阅的重点落在发布链路上。

改动思路

页面构造完全复用既有模式,没有引入新机制:

  • main.tsx 在既有二选一(swe-marathon / 首页)上增加一个路径分支,按最后两段路径判断,因此 BASE_URL 前缀下也成立。
  • LhtbBrief.tsx 沿用 SweMarathonBrief.tsx 的结构:构建期直接 import benchmark/.../data.json(路径写法与既有简报一致)、usePublicPageNavigation 共享语言状态、以及 lhtb-copy.json 双语字典;臂顺序用 keyof typeof study.arms 做类型约束,表格模式是闭集联合类型。
  • 数据侧新增 benchmark/LHTB/studies/five-arm-gpt56sol-max/:README.md 明确证据边界(每个 task-arm 格只贡献一次有效 trial;New vs Legacy 是多维同时变化,只能作为机制证据而非单变量消融;替换 trial 已披露;历史成本是估算、New Heartbeat 成本是记录遥测),data.json 只放聚合与逐任务奖励。

具体改动

apps/presentation/site/src/LhtbBrief.tsx(+305)、lhtb-brief.css(+449)、lhtb-copy.json(+256,en/zh)、main.tsx(+6/-1,路由分支与样式导入);benchmark/LHTB/studies/five-arm-gpt56sol-max/README.md(+31)与 data.json(+435)。

关键点讲解:

  1. 路由:main.tsx 第三个分支,pathSegments.slice(-2).join("/") === "benchmarks/lhtb"。在开发服务器与 vite build 产物里都能命中。
  2. 页面:固定五臂顺序 + 逐任务 reward spread + 三种表格模式(all / spread / heartbeat)+ 搜索;页面文案包含 benchmark-native 阈值(0.95)与成本口径说明。
  3. 数据:46 个唯一公开任务 id,只含 mean_reward/pass_095/token/成本/运行时与 heartbeat_comparison;本轮扫描确认没有绝对路径、IP、URL、邮箱或类凭据字符串。
  4. 双语:en/zh 各 182 个叶子键、集合完全一致,不存在只在一侧渲染的文案。

对主干的风险

阻断发现 [P1]:新页面在 public 站点上不会被发布,读者打开 /benchmarks/lhtb/ 会 404,而当前所有检查仍会全绿。

理由是可复核的代码路径与产物事实,而不是推测:

  • 站点是 SPA,vite build 只产出根 index.html(我在该 head 上实跑 npm ci + npm run build,dist/ 只有 index.html、site-assets/、blog/,没有 benchmarks/ 目录;构建本身 tsc --noEmit 干净、1800+ 模块通过)。
  • Pages 产物的子路径入口由 examples/export-frontstage-share-bundle.mjs 的 copyPublicSiteRoutes() 显式枚举:目前只有 benchmarks/swe-marathon(复制首页 HTML)与 benchmarks/deepswe/behavior-discovery(复制静态文章)。该文件与两个产物 smoke、以及 README/benchmark README 中都没有任何 lhtb/LHTB 注册(已用 rg 在该 head 上确认)。
  • examples/frontstage-share-bundle-smoke.mjs 只断言已登记的两份简报条目,因此即使路由缺失,frontstage-pages 工作流也会通过——这就是"绿 CI 掩盖未发布页面"的机制。

最小修复(照搬 swe-marathon 的既有登记方式即可):在 copyPublicSiteRoutes() 的路由列表加入 benchmarks/lhtb;补 manifest 条目 lhtb_brief_entry: "site/benchmarks/lhtb/index.html" 与 content_sources.lhtb_brief = "benchmark/LHTB/studies/five-arm-gpt56sol-max",以及生成的 brief URL/README 引用;在 examples/frontstage-share-bundle-smoke.mjs 增加该条目的存在性与 manifest 断言,并把目的地加入 examples/dashboard-frontstage-design-baseline-smoke.mjs 的列表;建议同时在 benchmark/README.md 的 Current work 与 README 特性列表里列出这份简报,保持与既有两份一致的发现路径。回归测试:frontstage-pages 工作流中的 frontstage-share-bundle smoke(含新条目)与 design-baseline smoke,修复前应失败、修复后通过。

非阻断建议 [P3]:仓库已有一份"发布范围"测试 benchmark/tests/test_publication_scope.py(校验已发布文案与聚合数据的臂/范围一致)。新简报目前没有对应守卫,臂名或范围在 data.json 与 lhtb-copy.json 之间漂移不会被发现;建议按同一形态补一个 LHTB 范围用例。

其余风险面反向检查结果是好的:本次改动只给 main.tsx 增加一个路径分支,首页与既有两份简报不受影响;数据只含聚合与公开任务 id;双语完全对称;页面文案没有把机制对比写成单变量因果断言,反而明确写了边界。

未验证项如实标注:本轮没有执行 Pages 导出/部署(需要 dashboard 依赖与网络),因此 P1 的结论来自导出器代码路径与本地构建产物,而不是已部署 URL;该 head 的 CI 在审阅时仍有 14 项 running(无失败),且即便 frontstage-pages 跑绿也不能消除该发现。修复后建议按 AGENTS.md 的公开首屏要求,在部署预览或本地预览中实际打开该页再合并。

我的整体评价

REQUEST_CHANGES。页面与数据本身做得扎实:完全复用既有简报的模式(同一导航 hook、同样的 benchmark JSON 构建期导入、同形态的双语字典与单个路由分支),数据公开安全且证据边界写得很清楚,双语 182 对 182 完全对称,站点构建在该 head 上干净通过。对一份 1482 行的公开页面来说,这样的复用比自创机制更符合仓库习惯。

但它当前不能合并,原因是交付物与"发布"不匹配:新路由没有进入 Pages 导出器与产物 smoke 的登记清单,public 站点上不会存在 /benchmarks/lhtb/ 入口文档;而现有检查恰好只断言另两份简报,导致这个缺口不会被 CI 捕获。按既有的 swe-marathon 登记方式补齐(路由复制、manifest、内容来源、smoke 断言、design baseline),这个 PR 就可以直接转为 APPROVE;顺带补上 LHTB 版的发布范围测试会更稳。

English verdict: REQUEST_CHANGES - #4703 at exact head d608134 adds a well-built bilingual LHTB five-arm research brief (page, styles and copy reuse the accepted swe-marathon pattern; the site builds cleanly with tsc --noEmit + vite at this head; the published aggregate is public-safe with 46 unique task ids and no paths/IPs/URLs/emails/credentials; en/zh copy have exact 182/182 parity; the study README states its evidence boundary honestly), but the brief is not actually published: the site is a client-side SPA whose single dist/index.html has no benchmarks/ subpath, and examples/export-frontstage-share-bundle.mjs copies entry documents only for the explicitly enumerated routes (benchmarks/swe-marathon, benchmarks/deepswe/behavior-discovery). Nothing in the exporter, the share-bundle smoke, the design-baseline smoke or the READMEs registers the new route, so /benchmarks/lhtb/ would 404 after deployment while CI stays green (the bundle smoke asserts only the two known brief entries). Minimum repair: mirror the swe-marathon registration - add benchmarks/lhtb to copyPublicSiteRoutes(), add the manifest entry, content source and generated brief URL/README reference, assert them in examples/frontstage-share-bundle-smoke.mjs, add the destination to examples/dashboard-frontstage-design-baseline-smoke.mjs, and list the brief in benchmark/README.md for discoverability; a non-blocking follow-up is an LHTB-scoped publication-scope test mirroring benchmark/tests/test_publication_scope.py. Not verified here: the Pages export/deploy itself and the still-running CI checks.

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