Skip to content

Release LoopX 2.3.0 - #8273

Merged
loopx-agent merged 94 commits into
mainfrom
codex/release-2.3.0-20261107
Nov 8, 2026
Merged

loopx-agent merged 94 commits into
mainfrom
codex/release-2.3.0-20261107

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Nov 7, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Prepare LoopX 2.3.0 so operators can verify Goal acceptance using retained evidence, compare matching research results, and recover work in the original conversation. The package, command manual, Developer Book and bilingual guide use the same version.

The product source is a22516b48d9d542440f565892dc12b4640a7ad16 (tree 76a35eac68fea0eaca7a04ceeb10413639310200) on the frozen release cut 6b8b85754a343feadf7fc375f1106c99e3610723. The current integration head is 93f345437d9b2486c717beef78bed1055bf5ba1a on main c8dd6f7b488fc7f114b4117d283fc6e78998c1a4. Both heads retain the reviewed claim-recovery ancestry from #8279.

Author Declaration

Criterion Disposition Verification
Build and package version match Implemented Wheel and normalized source distribution, Twine metadata and checksum verification
Document activation, validation and rollback in both languages Implemented Versioned release note and contributor credits
Preserve original admission, claims and settlement across host recovery Implemented Scheduler readback repair #8277, capture and lease recovery #8279, and retained decision reads
Preserve task identity across managed Session and report recovery Implemented File and SQLite task validation, same-Turn lease and scoped no-model report probe
Publish and verify distribution Pending Exact-source release qualification, merge readiness and verified publishing

Validation

Check Result Evidence
Native host admission and resumed work Focused regressions passed File and SQLite exercised source vetoes, exact checkpoint continuation and one debit, direct recovery and lease requirements. The 409 recovery waits for the original Session's completed reply, scopes readback to the rejected submit, and keeps the reported Turn pending until the single-reply assertion. Source coverage and installed-wheel probes exercised original queue identity, typed non-delivery, steering and interrupt.
Current main and first reads Focused regressions passed The split reader preserves original digest and receipt binding, with explicit windows still accepted on the native reader. The CLI output differential passed 98 rows per revision after accounting for the current main's 136-character Stride citation limit guidance in the fixed fixture allowance. RFC bilingual validation passed on the exact head.
Package and upgrade Passed on the exact frozen product Strict Twine, checksum, installed wheel and rebuilt sdist passed. The isolated v2.2.0 upgrade preserved existing File and SQLite Todos, original receipts and the active lease. The installed Codex app-server passed startup and profile readback.
Static checks and public boundary Focused checks passed Ruff, mypy, TypeScript and 63 tool-closeout pytest cases passed. Full Python and public smoke evidence are tracked on the exact Python run and public smoke run.
Installed workspace Passed on the exact frozen product All 86 installed Workspace scenarios and the Team and Craft companions passed. The integration follow-up asserts the actual event stream has attached before checking a single pending reply for the same Session and Turn. It passed current source coverage and the frozen installed wheel.
Default model behavior Release qualification remains open A verified direct Ark run completed 122 real calls, 22 scenarios with two repeats, and six contrasts. Twenty-one scenarios and all contrasts passed. One terminal repeat reported workspace_authoring_failed before writeback; an isolated diagnostic completed the four original receipts in eight calls. The complete run remains failed.
Release promotion Pending Exact release qualification still requires the public smoke receipt, passing model portfolio, and the benchmark manual review. Integration also requires current exact review, independent CODEOWNER approval, and required CI.

Inputs are synthetic fixtures and public product material.

Frontend / Visual Evidence

The report reader uses shared panel and border tokens. These images use an isolated SQLite Goal and synthetic report material through the real Chat HTTP reader. The corrected first viewports were inspected on the packaged report reader for 69413657f1216aeda663d2df5fef3ee9d6650286 at desktop and narrow widths.

Viewport Before Corrected
1200 × 854 Original desktop report reader Corrected desktop report reader
390 × 844 Original narrow report reader Corrected narrow report reader

Quick Navigation

Before the fix, an initialization effect could clear the query after focus and leave Enter pointed at the unfiltered results. The packed frontend now initializes the dialog before it accepts input. The first viewports below use synthetic Workspace data on 58b8838151621a2c884f85cc363c376b59cb5711.

Desktop, English Narrow, Chinese
Workspace command palette on a desktop in English Workspace command palette on a narrow screen in Chinese

Latest Integration

The release proposal was merged with current main. The conflict resolution preserves the release branch’s native task preparation while adopting main’s Explore turn_context_projector so each fresh decision read uses the current capability contract. Focused regressions and quick premerge passed. Named-release qualification and publication remain on hold as recorded above.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent
loopx-agent requested a review from maxliux5 as a code owner November 7, 2026 10:42
@mergify

mergify Bot commented Nov 7, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
loopx-agent and others added 18 commits November 7, 2026 19:17
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…lease-2.3.0-integration-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…lease-2.3.0-integration-20261107

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…#8277)

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Co-authored-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit bfecc92)
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

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

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

[P2] 2.3.0 拟打包源码仍过不了调度验收。 产品源码 69413657f1216aeda663d2df5fef3ee9d6650286 和集成头 5f410602ca65e2a2d4bd38998e84cbdf58cb0f49 各复现五项失败。测试以 generic_cli 读取 quota should-run 时,默认 stdout 是上下文导航。测试把它当直接 scheduler JSON 访问 should_run。#8277 显式选用 worker 的直接读取格式,保持已有预算与回执断言。 仅应用 #8277 的测试 diff 后,拟打包源码和集成头各自五种模式均通过。对照仍由真实 worker 验证预算耗尽后单次唤醒、无 Host 调用和 quota 用量相等。 候选源码 已合入的最小修复

动机 / Motivation

发布维护者和通过现有安装 owner 升级的 Goal 用户会依赖同一版源码、程序和验证记录。 发布者用 2.3.0 候选核对调度恢复。测试本应证明预算耗尽只唤醒一次,但启动前就读错了返回形状。已有安装用户还需要能从具名版本读回报告原文。 隔离安装和重点产品入口已有正例。拟打包源码仍缺失一项已合入主干的发布验证修复。 区分待审集成、拟打包源码与具名版本资格。

改动思路 / Approach

源码 cut 定义打包输入,集成头额外承接主干变更。隔离 wheel 的 CLI 与 Chat 使用既有入口。风险在发布工件与资格回执混用,或误把渐进上下文当作 worker 的直接状态。 版本准备复用现有安装、CLI、摘要校验和状态 owner。具名版本需要把源码、产物、验证和标签绑定到同一候选。 本 PR 同时准备版本元数据并指定拟打包源码。独立检查 PR 集成头和产品源码,保留发布人对标签、stable 与分发的控制。

具体改动 / Changes

基线为 7108b92337949ddcd6c59f773cc2e0ef10c185c5。具名版本要求所有规定回执绑定同一 Git commit、tree、包版本和 tag。此处据此区分集成与发布。 基线规范

  • 版本与用法一致。 隔离构建 wheel 与 sdist,安装 wheel 后实际 CLI 显示 2.3.0。manpage、Developer Book 和 13 项可选入口文档检查通过。108 条引用 PR 均追溯到候选的发布范围,76 条社区贡献归属 17 位作者。
  • 报告和结算可读。 在拟打包源码的已安装 wheel 中,经真实 Chat HTTP 打开 SQLite Goal 的成果页。桌面和窄屏均能读到长标题、状态、首段正文和审阅动作,也能在文字版下读到第九条及展开的来源摘要。 集成头重点验证通过。
  • 候选源码资格。 拟打包源码和 PR 集成头的同一调度用例各 5/5 失败。原调度验收在五种模式均于 worker 启动前因 KeyError: 'should_run' 失败。 仅应用 #8277 的测试 diff 后,拟打包源码和集成头各自五种模式均通过。对照仍由真实 worker 验证预算耗尽后单次唤醒、无 Host 调用和 quota 用量相等。
  • 具名分发验证。 实际标签与分发资格待同一源码取证。

关键代码讲解

  • _settle_requested_refresh 先解析有效 runtime root,再让结算与展示读同一 authority。测试覆盖带自定义路径的真实收尾。 结算入口
  • read_report_review 先投影原 Todo,再读绑定的报告。报告索引和 Chat 暂存记录使用共用的裸 SHA-256 格式校验。 报告读取 Chat 暂存校验
  • 报告阅读 iframe 通过已有的边框与卡片变量着色。保留原阅读和来源详情入口。 报告样式

对主干的风险 / Risks

源版本的调度失败在本 PR 的基线也复现。此处是候选发布门禁缺口。#8277 的审查头为 be5e12f01d50a3069e9c5426611fe18b0beda27f,已合入为 bfecc925d027f3888e1b14c037834aeb40257c1a。它在当前 main 的历史中,但两份待审源码均未包含该改动。当前主干 f301bfc4ea1acaf14f122e24a1696bc5dbf07ef2 与本 PR 可干净组合。 #8277

集成头重点用例 402 项通过,refresh settlement 另有 22 项通过。两个版本的原调度用例各有 5 项失败。 Quick premerge 的 6 项直接检查和 4 项选中检查通过。 作者提供的 475 项 full-public 汇总有 15 项失败。两个另取样的宿主用量用例在本地 Python 3.13 上通过,仍需作者失败用例和 Python 3.11 的同源码复验。 远端 CI 未取样。

语义与 CI 对齐

测试以 generic_cli 读取 quota should-run 时,默认 stdout 是上下文导航。测试把它当直接 scheduler JSON 访问 should_run。#8277 显式选用 worker 的直接读取格式,保持已有预算与回执断言。 将 #8277 的已验证修复纳入拟打包源码,更新 PR 中拟打标签的 commit 与 tree。处理其余发布失败后,在新版本源码重新执行 full-public、安装与升级、原生宿主等规定验证并绑定同一候选。 复验命令为 python -m pytest -q benchmark/tests/test_task_entry.py::test_real_scheduler_stops_after_one_budget_exhausted_wake。发布回执用 loopx canary release-qualification --manifest-json release-qualification.json --repo-root . 核对。

我的整体评价 / Verdict

对 5f410602ca65e2a2d4bd38998e84cbdf58cb0f49 所提的具名发布方案请求修改。集成验证与隔离安装取得的正例可以保留。新候选需明确包含 #8277,并用该源码重跑发布必检。 当前分发保持发布门禁。作者记录的其他 full-public、宿主使用证据和 Windows 缺口尚待逐项修复或取得同一候选的有效读回。

在拟打包源码的已安装 wheel 中,经真实 Chat HTTP 打开 SQLite Goal 的成果页。桌面和窄屏均能读到长标题、状态、首段正文和审阅动作,也能在文字版下读到第九条及展开的来源摘要。 独立浏览覆盖报告阅读路径。发布仍需对更新后的同一候选验证完整打包 Workspace 套件。

English verdict: REQUEST_CHANGES. The named 2.3.0 cut fails the required scheduler validation before the worker starts. The merged #8277 test change passes on both controlled checkouts. Advance the candidate and qualify that exact source before release.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…back sequence

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit e867de4)
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
…ivery

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

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

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

[P2] 当前会话交接仍未通过可重复验证。 新冻结源码的未修改 coverage 两次记录 0 个普通 POST、0 个被 hold 的 Session GET;诊断显示 reload 后同一 Session 实际收到第 4 次 queue 提交并返回 429。隔离 wheel 首次未满足前一阶段单一 pending reply 断言,诊断重跑通过。 源码断言 · 安装包断言

动机 / Motivation

中断后回到工作区的用户需要确认消息送到原 Session 和 Turn;测试要能区分队列回执、恢复读回和调整。 在隔离 macOS 上重跑新冻结源码的 Chromium coverage 和同源码 wheel;受控对照只调整现有 GET 的释放顺序。 旧排队顺序已修复,真实 Vision 写回、显式读窗与 CLI 输出差分通过;原会话交接在两条未修改浏览器路径仍各出现失败。 完整核对 136 个 PR 路径。126 个 base/head 内容对与本轮前一提交相同;逐项复核 10 个变化路径,主干已有的功能另行归属。

改动思路 / Approach

分阶段 writeback 从已选 Stride 策略列出实际所需字段,off 保持不要求;context-project 可对 native capture 应用显式窗口,继续绑定旧 digest。fixture 将普通 POST 和排队分支分开。 新 Stride 字段使用已有写入校验的条件;原捕获分页继续读取原 digest,不重新准入。旧排队顺序修复成立,当前场景仍有独立的会话交接验证缺口。 冻结源码与集成 head 独立;用各自真实入口和证据,完整具名发布待单独验收。

具体改动 / Changes

基线为 e2371c476805f67903dd3c338a7e2712f577c9cc。具名版本要求精确候选的完整 packaged Workspace 验证。当前代码评审按实际观测保留通过、失败和未验证边界。 基线规范

  • 发行源码与包。 从冻结源码独立构建 wheel/sdist,strict Twine 和隔离 site-packages 读回通过。
  • Vision 与读窗。 旧源缺字段,新源明确 required_fields;14 项真 CLI shell、显式读窗、190 Python、113 TS 和 98 对预算通过。
  • 旧排队顺序。 新 fixture 把活动 Turn 的出现移到普通 POST 边界,早到的 GET 仍读到空闲;独立受控对照完成三次同 ID 排队、明确 non-delivery,随后原 Session/Turn 各有一次 steer 和 interrupt。
  • 交接验证。 新冻结源码的未修改 coverage 两次记录 0 个普通 POST、0 个被 hold 的 Session GET;诊断显示 reload 后同一 Session 实际收到第 4 次 queue 提交并返回 429。隔离 wheel 首次未满足前一阶段单一 pending reply 断言,诊断重跑通过。
  • 具名发布。 完整 packaged catalog/companion、当前真实模型重复与对照、签名平台和 tag/分发读回仍属具名发布 gate。

关键代码讲解

分阶段 Vision、显式 native 读窗复用原 validator 和 reader。 旧排队讨论 已解决,新的失败发生在交接断言。

对主干的风险 / Risks

集成 head 是 cec7b800e173c6d245d7d0c62b941734e5f2628d,冻结源码是 244fd4646f6629d40b91926e2d1870c153049b75。旧冻结在同样受控的早读下会误走 queue,后续 /steer 超时;当前受控对照通过。当前未修改运行的两项失败仍缺稳定接管的证据。没有证据认定生产后端回归。

源码 Vision 14 项,集成 reader 190 项、TypeScript 113 项通过;base/head 各 98 个输出预算场景通过。wheel 与 sdist 的 strict Twine 和安装版本读回通过。 Quick premerge 的 6 项直接检查和 4 项选中检查通过。 当前 main 合并树可构建;86 个 PR 提交签署齐全。 未修改源码的第二次运行再次观察到 0 POST、0 读回。 安装包附诊断的重跑通过。 远端 CI 未取样。

将排队恢复和后续 409 放在可独立建立的 Session 状态。reload 后确认原 Session 的历史与队列均已读回、旧 Turn 已结束、composer 处于普通发送模式;也可用独立的已绑定空闲 Session。放行读回后等待原 Turn 接管,再核对待回复数量。保留同 ID 重试、typed non-delivery、原 Turn 的 steer/interrupt 断言,并重复跑未修改源码 coverage 和同一 wheel。

我的整体评价 / Verdict

对当前 head 请求修改。保留已修复的排队验证、Vision、窗口和包证据;请补齐现有 409 fixture 的独立会话接管证明。 完整 packaged catalog/companion、当前真实模型重复与对照、签名平台和 tag/分发读回仍属具名发布 gate。

已实际查看当前隔离 wheel 的桌面与窄屏快捷导航截图,并核对 PR 对应的前端和截图来源。 合成工作区的前端截图和导航交互;不代表全部安装、宿主和真实模型场景。 中英、键盘/IME、焦点和只读导航通过。

English verdict: REQUEST_CHANGES. The original queue race is fixed; the exact frozen source and its isolated wheel still fail distinct Session handoff checks. Make the recovery fixture deterministic before qualifying this candidate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
(cherry picked from commit 700f1b1)
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

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

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

Request changes conclusion (author-owned PR; GitHub blocks formal self-review)

[P2] 安装包的 409 交接尚未稳定通过。 同一新冻结源码构建的隔离 2.3.0 wheel,首次运行 chat-recovery 在原 Session GET 放行后未满足待回复中断控件恰好一个的断言(第 538 行)。第二次原样运行和两次仅加诊断的运行通过。首次失败只记录了 count != 1,未记录实际数量;原因未定。 冻结源码断言

动机 / Motivation

中断后返回工作区的用户需要确认草稿和控制项仍绑定原 Session/Turn;发行候选要提供可重复的恢复证明。 从同一冻结树运行隔离的源码 coverage 和独立安装的 wheel,并把同一末次工具断言在上一个冻结源码上对照。 旧 reload/409 失误在当前源码的两次运行均未重现,工具末次调用对照通过;安装包原样运行有一次待回复断言失败。 完整核对 139 个路径:133 个 base/head 内容对和上一评审相同;逐项复核本轮 6 个变化路径,已进入主干的改动另归原 PR。

改动思路 / Approach

reload 后以原 Session 中的完成回复和旧控制项消失确定可普通发送;409 后仅 hold 匹配 Channel 的 GET,竞争 Turn 的 SSE 独立放行。作用域验证 actor 在执行末次工具后调用现有 final-content 路径。 两条旧讨论已解决:新 fixture 等待 reload 后原会话的旧回复完成,409 的 GET 按 Channel 隔离,竞争 Turn 的 SSE 在断言后放行。唯一当前阻塞是隔离 wheel 的会话接管断言未稳定通过。 集成 head、冻结树、隔离包和签名分发分别验证。旧讨论中的两个触发点与当前剩余现象分别记录。

具体改动 / Changes

基线为 e2371c476805f67903dd3c338a7e2712f577c9cc。具名版本要求对精确候选完成 packaged Workspace 验证。当前评审区分确定修复、间歇失败与未验收项。 基线规范

  • 发行源码与包。 独立构建 wheel/sdist,strict Twine 与隔离安装读回通过。
  • 旧 409 / 队列。 当前冻结源码两次原样 Chromium coverage 均通过,包含三次同 ID queue 尝试、明确拒收、reload 后原 Session 的普通 409、原 Turn 的 steer/interrupt。第六个工具调用完成后,当前测试 actor 在同一循环发出无工具的最终回复;同一断言在旧冻结源码失败。
  • 末次工具与原结算。 112 项本地测试通过;同一末次工具断言在上一个冻结源码失败。
  • Benchmark 归属。 冻结 cherry-pick 和主干的稳定 patch-id 一致;本 PR 无 benchmark 路径差异。原 #8277 独立同意评审,5 项相关本地测试通过。
  • 交接验证。 同一新冻结源码构建的隔离 2.3.0 wheel,首次运行 chat-recovery 在原 Session GET 放行后未满足待回复中断控件恰好一个的断言(第 538 行)。第二次原样运行和两次仅加诊断的运行通过。首次失败只记录了 count != 1,未记录实际数量;原因未定。
  • 具名发布。 完整打包场景目录与配套验证、真实模型重复和对照、平台签名及实际分发读回仍需具名发布验收。

关键代码讲解

409 交接 · 末次工具收尾 · Vision 写回引导 · 有界工具序列。

对主干的风险 / Risks

集成 head 为 2de605fbb48d43c883394f5dd8ad7e81b3284dd7,冻结源码为 a22516b48d9d542440f565892dc12b4640a7ad16,树为 76a35eac68fea0eaca7a04ceeb10413639310200。前一集成 head cec7b800e173c6d245d7d0c62b941734e5f2628d 的 两条 讨论 均已解决。当前安装包失败没有记录实际控件数量,不能据此认定存在第二条回复。

新 actor/portfolio 的 112 项本地测试通过;旧冻结树的末次工具断言失败、当前通过。wheel/sdist strict Twine、隔离导入及 2.3.0 版本读回通过。 Quick premerge 的 6 项直接检查和 4 项选中检查通过。 最新主干 e58ba30 新增 #8315,与本 PR 无重叠路径;原 PR merge base 不变,组合及 diff 检查通过,DCO 检查通过。 已解决的两个讨论经远端读回。安装包一次原样通过与两次仅加诊断的通过均保留;它们无法解释首次失败。前一提交已验证的 Vision 14、reader 190、TS 113 和 CLI 输出各 98 对没有在本提交重新运行。 远端 CI 未取样。

在放行受控 Session GET 后,等待读回的 Session 已把指定 409 Turn 接管为当前待回复,再对全会话断言正好一个中断控件,且旧回复和未送达草稿未残留。失败时记录安全的 Session/Turn 对照和实际数量。若确认接管后仍有第二条,修正接管复用;保留普通 409、原 ID 重试、明确拒收及原 Turn steer/interrupt 的负例,再重复跑精确源码与 wheel。

我的整体评价 / Verdict

对当前 head 请求修改;已验证的旧 409 和工具收尾修复保留。请先补齐安装包中指定 Session/Turn 的可重复交接证据。 完整打包场景目录与配套验证、真实模型重复和对照、平台签名及实际分发读回仍需具名发布验收。

已查看当前冻结 wheel 的桌面和窄屏快捷导航截图,并核对 PR 中的合成预览。 可视检查覆盖合成工作区导航;完整安装、宿主和真实模型场景仍待验收。 当前包的中英、键盘/IME、焦点和只读导航通过。

English verdict: REQUEST_CHANGES. The source 409 recovery and final-tool fixes passed. The exact frozen wheel intermittently fails the pending-reply check; verify adoption of the original Session and Turn before qualifying the candidate.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

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

Reviewer: model_agent, gpt-6.1-sol, OpenAI, runtime_reported, reasoning_effort=max

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

动机 / Motivation

中断后返回原会话的用户需要确认保留的草稿和待回复实际属于原 Session/Turn,之后仍可调整或中断。 同一冻结产品、旧失败与新测试作对照。最新 integration 的 fixture 分别运行于实际源码和同一 wheel,并注入一次错 Session 的反例。 最新测试先观察指定事件流并验证待回复身份,两条实际运行路径各两次通过;错误身份仍会失败并给出准确诊断。 139 条完整 PR 路径逐项比对。相较上轮,138 个 base/head 内容对相同;重新检查唯一变化的 Chat fixture。主干已包含 #8315 的独立变化。 具名发布保持 hold。PR 正文报告真实模型为 21/22、六个对照通过;终态第二轮写回前 workspace_authoring_failed,隔离八次调用成功不替代失败的整轮。本轮未重跑真实模型或作者报告的完整 86 个安装场景与 Team/Craft,也未验证签名和公开分发。

改动思路 / Approach

对既有 Session 409 路径先观察正确流,然后核对唯一待回复和控制项;不同 Session 或旧草稿保留为负例。分阶段写回和读窗复用原 owner。 旧失败时先看到本地 handoff reply,不能证明 Session 读回接管。当前先验证该 Session/Turn 的 SSE 请求,再对实际待回复与原 Turn 控件取样;最新增量给出四项诊断并检查重试后未接收的草稿。 集成和冻结 source 分开。最新 fixture 用实际源和同源 wheel 重跑;release hold 保留。

具体改动 / Changes

基线为 e58ba30bc949c29ec90c570a8362fb1e7ec9f3be。具名版本要求 exact frozen product 的打包、安装、模型及分发验证。此结论批准代码集成,发布验收保持独立。 基线规范

  • 冻结来源与包。 冻结树未变;复核已独立构建的 wheel/sdist SHA 和实际 2.3.0 安装 provenance。
  • 原会话接管。 当前 integration 以实际 Chromium 跑两次源码 coverage、以同一冻结 2.3.0 wheel 跑两次,全部通过。普通 409 和 Session 首读失败后重试都等原事件流请求,再检查恰好一个同 Session 待回复和原 Turn 控制;保留同 ID queue、明确拒收、steer/interrupt,以及未接收草稿不进 timeline。 在同一 wheel 的测试页面仅把待回复的 Session 标记改为另一 Session,仍有一个待回复、原 Turn 控制和两次精确事件流请求。当前断言拒绝通过,准确报告 replyCount=1、sameSession=false、sameTurn=true、streamReads=2。原样运行均通过,故障注入不计产品失败。
  • 原准入与结算。 138 个内容对可追溯;未变冻结源 112 actor/CLI 正反例及原 scoped reader 的前轮实测仍适用。
  • 已合入的 benchmark。 当前 PR diff 无 benchmark 路径;同稳定 patch-id 已在 #8277 独立通过。
  • 具名发布。 具名发布保持 hold。PR 正文报告真实模型为 21/22、六个对照通过;终态第二轮写回前 workspace_authoring_failed,隔离八次调用成功不替代失败的整轮。本轮未重跑真实模型或作者报告的完整 86 个安装场景与 Team/Craft,也未验证签名和公开分发。

关键代码讲解

接管及诊断、重试拒收检查、原捕获窗口 与 当前 Vision。

对主干的风险 / Risks

当前集成 96878d76b5d81e135035407bcb93bee9242bd55b,冻结产品 a22516b48d9d542440f565892dc12b4640a7ad16(树 76a35eac68fea0eaca7a04ceeb10413639310200);较早的 9d49cce 没有单独发评审。上一条接管讨论 已解决。此前首次失败仍保留,不能推断具体旧计数。

源码和 wheel 各两次通过,错绑反例拒绝,报告下载与两种视口通过;当前冻结 2.3.0 安装从 site-packages 读回。上轮同冻结源码 112 项本地 actor/CLI 测试通过。 Quick premerge 的 6 项直接检查和 4 项选中检查通过。 与当前 main 的组合可构建,93 个提交均有 DCO。 GitHub 现有三个相关讨论均回读为 resolved。保留旧包的首次失败和上轮通过;本结论只绑定最新精确提交。上轮被冻结的 CLI 读窗、预算、原回执和工具测试没有伪装为本轮重跑。 远端 CI 未取样。

测试现在需要原流、正确 Session 和原 Turn;浏览器回归通过支持本次代码集成判断。

我的整体评价 / Verdict

同意当前代码集成。浏览器接管的当前阻塞项已消除,具名发布仍等待原有证据。 具名发布保持 hold。PR 正文报告真实模型为 21/22、六个对照通过;终态第二轮写回前 workspace_authoring_failed,隔离八次调用成功不替代失败的整轮。本轮未重跑真实模型或作者报告的完整 86 个安装场景与 Team/Craft,也未验证签名和公开分发。

已查看同一冻结 wheel 的报告读取桌面与窄屏首屏,核对 PR 的合成证据。 报告和导航是隔离合成数据;不代表全套打包、真实模型或已发布行为。 同一包的报告下载检查通过。

English verdict: APPROVE. Approve the exact integration head: source and frozen-wheel handoff passed twice, and a wrong Session was rejected. Named-release model qualification remains on hold.

@mergify

mergify Bot commented Nov 7, 2026

Copy link
Copy Markdown

This pull request has merge conflicts with main and cannot be merged
until they are resolved. Please rebase or merge the base branch, @loopx-agent.

Choose the remote for the base repository, not an out-of-date fork.
For a fork clone, first inspect git remote -v; upstream must point
to https://github.com/loopx-project/loopx.git. If it is absent, add it
with git remote add upstream https://github.com/loopx-project/loopx.git.
Then run:

git fetch upstream
git rebase upstream/main
# Resolve each conflict, git add the resolved files, then git rebase --continue.
git push --force-with-lease origin HEAD

For a same-repository clone whose origin points to
https://github.com/loopx-project/loopx.git, use origin instead of
upstream for fetch/rebase. If you prefer merging the base, use
git merge <base-remote>/main and push normally.

Keep the DCO Signed-off-by trailer on every commit when you rebase.
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify Bot added the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 7, 2026
Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>

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

Self-review of exact integration head 93f345437d9b2486c717beef78bed1055bf5ba1a: PASS for code integration; named-release qualification remains on hold.

Latest-main conflict resolution:

  • Preserves the release branch’s native task preparation and fresh decision re-read.
  • Adopts main’s Explore turn_context_projector, recreating it for every fresh read.
  • Uses current-main Anti-Entropy monkeypatch and quota delta-delivery semantics.

The merged head is based on main c8dd6f7b488fc7f114b4117d283fc6e78998c1a4, retains package version 2.3.0, and has 136 release paths. Focused affected suites passed: 403 tests across Turn driver/executor, native Steward, quota, Explore context, and Anti-Entropy. Quick premerge passed all 4 direct checks, 3 catalog canaries, public boundary, and changed-Python compilation. The PR’s existing model, signed-platform, packaged-catalog and public-distribution release gates remain separate holds.

@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Nov 8, 2026

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

Independent approval of exact integration head 93f345437d9b2486c717beef78bed1055bf5ba1a.

The latest-main merge is limited to reconciling the release branch’s native preparation with main’s Explore projector contract and current test semantics. Focused affected suites and quick premerge passed. This approval covers the code integration only; the named 2.3.0 model, signed-platform, packaged-catalog and publication gates remain separate holds.

@loopx-agent
loopx-agent merged commit 9768535 into main Nov 8, 2026
16 of 18 checks passed
@loopx-agent
loopx-agent deleted the codex/release-2.3.0-20261107 branch November 8, 2026 06:15
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.

3 participants