Skip to content

Keep SQLite authority across the checkpoint controller smoke - #8410

Open
loopx-agent wants to merge 1 commit into
mainfrom
codex/checkpoint-controller-authority-fixture
Open

loopx-agent wants to merge 1 commit into
mainfrom
codex/checkpoint-controller-authority-fixture

Conversation

@loopx-agent

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

The mid-wake checkpoint controller test starts with File authority, then tries to select SQLite after the first wake has installed the writer fence. The provider rejects that change before the test reaches checkpoint capture. Initialize the controller fixture with SQLite and use the existing fixture helper to advance the same store when the test introduces a later review.

  • Intended base: main.

Author Declaration

  • Written by: model_agent, OpenAI Codex.
  • Implemented against the controller capture and continuation behavior in the benchmark qualification guide at the base revision.
  • Criterion implemented: the controller smoke reaches native capture and continues after a duplicate guard using a single canonical store. The real controller regression below exercises both.

Scope And Continuation

Complete within the test fixture. The other test variants keep File authority and use the same existing helper for the later fixture update. Runtime code, checkpoint policy, and provider selection are outside this change.

Validation

  • Tested revision: ebbc461cadf813bc122a19e9719c711a5b841f98.
  • Run state: finished.
  • Input classes: synthetic.
Check kind Result Public-safe evidence / limitation
real_entrypoint passed test_actual_worker_handles_midwake_replan_and_duplicate_without_guard_replay[True-controller] on Linux amd64 with Codex CLI 0.162.1, the Docker writer barrier and the native context delivery path. The test checks one capture and continuation after a duplicate guard.
real_backend passed Canonical SQLite on the same isolated Linux fixture. Model inference and evaluator values were synthetic.
regression_parity passed The unfixed controller fixture on the integration checkout stopped at provider selection after the writer fence. At the tested main-targeted revision, the same smoke reaches capture and checks native continuation.
static passed git diff --check and DCO trailer.
  • Coverage and gaps: The targeted controller variant covers the SQLite initialization change. The full native fixture matrix was not run for this PR.

Frontend / Visual Evidence

  • UI impact: none.

Type of Change

  • Test update

LoopX Area

  • Benchmark boundary (adapters, runners, verifiers, scoring, evidence)

Shared-authority RFC fixture impact

N/A. The change uses the existing fixture API and leaves the authority contract unchanged.

Boundary Checklist

  • Public-safe test fixture and validation summary only.
  • Scoped to the reproduced regression.
  • No paired RFC or UI change.
  • DCO sign-off on the commit.

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 · max

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

没有阻塞性发现。 最大剩余验证是独立复跑完整的 Linux external controller 与 Docker writer barrier。

动机 / Motivation

维护者在运行 checkpoint controller smoke 时,需要确认 worker 能在 replan 后捕获一次,并继续原会话。

基线先在 File 建立防止旧写者修改的 writer fence,后来才尝试切换到 SQLite,因而卡在真正的 checkpoint 流程之前。候选从一开始就使用同一 SQLite。

独立复现看到 SQLite 文件和存储身份保持,版本推进后两次 replan guard 仍只有一份回执。原 File 捕获和关闭捕获两个变体继续通过。 本轮只评审测试夹具。完整 Linux controller 测试由作者提供;研究点资格、真实推理和完整 benchmark 验收各有自己的边界。

改动思路 / Approach

原 guard 完成后,fixture 模拟同一 wake 中出现一个新的 replan。候选在创建第一个 fence 前选择 SQLite,后来沿用原 store 的版本执行 CAS。File 变体按原设置选 provider。只把初始 provider 换成 SQLite 仍会走旧的中途重新初始化。两个位置一起改,才会保留首个 fence 和回执。

provider 选择和 writer fence 是 fixture 的前置条件。后来改写测试场景时应走已经选定的 canonical store。 把修改限制在一个 native checkpoint fixture,沿用现有 provider、CAS helper、controller 验证和 writer barrier。

具体改动 / Changes

评审提交为 ebbc461cadf813bc122a19e9719c711a5b841f98。以 main 的 71190b6b4ef4e146f3bf4a10d31ce61ac42fd021 固定比较基线,本地与远端 1 个路径的改动一致。采用基线的 benchmark/README.md。 基线规范

  • controller-existing-store 已验证首个 fence 和后续 CAS 使用同一真实 SQLite。
  • original-guard-once 已验证原 preflight 结算保留,两个后续 guard 只留下一个 replan 回执。
  • capture-off-parity 已验证原 native File 及关闭捕获变体。
  • qualified-research-point 属于独立验收,当前 fixture 仍以合成场景验证。

关键代码讲解

  • 初始化只为显式 controller 变体在首个 writer fence 前选 SQLite。源码
  • mid-wake response 把后续场景写入当前 provider。旧 File 变体继续用 soft_claim,controller 的合成 replan 用 hard_lease。源码
  • advance_canonical_fixture_authority 打开已有 store,读出版本并执行 CAS。现有 callback 同时保留原 preflight 的 index 行。源码

对主干的风险 / Risks

基线在实际 File writer fence 后选择 SQLite,provider 拒绝并保留原 File store 与 preflight 回执。 同一 SQLite store identity 和文件 inode,原生 CAS 更新版本并读回 hard_lease,原 preflight 1 份回执与 1 条 spend,后续重复 guard 1 份 replan 回执。 对照运行了精确 checkout 的初始化和 mid-wake callback 语句,后端与 quota CLI 为真实实现。真实 macOS Codex CLI 0.167.0-alpha.3.2,True-files / True-off 基线与候选各两例通过;合成模型响应。

作者在同一 head 报告 Linux amd64 Codex CLI 0.162.1 的完整 True-controller,包括 Docker writer barrier 和一次捕获后继续。我本地的独立覆盖为上述 SQLite 与 native File 两条路径。快速预合并 5 项直接检查、3 项所选检查零失败,手工评审门保留。CI 未查询。

语义与 CI 对齐

hard_lease、soft_claim 与 fixture CAS 都复用既有 vocabulary。对照检查的是 authority 身份、原结算和重复请求结果,测试可持续保留。

我的整体评价 / Verdict

复现恢复了 checkpoint smoke 原本要观察的连续性。这个测试变化消除了 fixture 自己制造的换库故障,便于后续观察真实 controller 的行为。 对维护者而言,仍用原命令即可抵达原 checkpoint 验证条件,无需手动迁移 fixture。完整 Linux amd64 True-controller、Docker barrier 和受控 native interruption 为作者测试;我未独立执行整条 Linux 组合路径。未执行全矩阵或真实模型。

English verdict: APPROVE at ebbc461. The controller fixture advances its existing SQLite authority and preserves duplicate-guard behavior.

This branch has not been deployed

No deployments
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