Skip to content

fix(context): deliver saved files for autonomous progressive reading - #7627

Merged
huangruiteng merged 3 commits into
mainfrom
codex/context-file-first-delivery
Oct 29, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/context-file-first-delivery

Conversation

@loopx-agent

@loopx-agent loopx-agent commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Enabled native context delivery currently ties useful deltas to a complete model read, and eagerly emits page zero of a potentially large control packet. Truncation and ordinary resume can turn recovery into repeated full-input work.

This change saves the complete current capture and returns a bounded file manifest. The model can discover fields with quota context-read --list and batch exact --select pointers. Exact file deltas can reuse an unread saved baseline within the same compaction epoch; actual compaction starts a fresh complete baseline on the next work Turn. Recovery preserves the original Turn and reads missing necessary facts without re-admission.

Author Declaration

  • Written by: model_agent, OpenAI Codex (GPT-6 family).
  • Implemented against: docs/architecture/rfcs/controller-executor-unified-contract-v0.md and docs/development/README.md, base revision above, with the maintainer-requested file-first reading correction documented in this diff.
Criterion Disposition Boundary Evidence
Differential context implemented for native saved-file transport context_delivery.ts, codex_context.py exact reconstruction, lost/unsafe base and compaction tests
Review freshness and recovery implemented for this slice lifecycle and saved capture original identity, selective reads, ordinary resume and actual compaction cases
Complete long-horizon cost and outcome benefit deferred existing benchmark research program no token or accepted-outcome claim from file sizes

Scope And Continuation

Complete native transport slice: full/current/delta references, bounded discovery, autonomous selection, fresh compaction baselines and failure recovery. Explicit confirmed-input consumers retain their separate full-retention contract. Disabled and unsupported paths retain existing isolation. The existing machine setting is reused; no new settings screen or model provider is added. The branch includes merged #7628: the complete current recovery reference is committed before optional planning; planner interruption recovers the current capture. Rebase integration preserves the numeric fallback after that publication. Installed session adoption and long-run benefits remain separate qualification. Merged #7560 outcome navigation is included in the base and uses the same generic reader. Numeric source-type/sign changes safely fall back to the current exact file; unchanged numeric leaves remain inherited in place so ordinary integral-valued quotas do not disable deltas. The codec avoids normalizing numeric parent replacements and cross-location numeric subtree copies.

Validation

  • Tested revision: 826833e598c0edbb3d2657828101617e74c0cabb.
  • Run state: finished.
  • Input classes: synthetic, authorized_private_read_only (local size replay only; no raw artifacts published).
Check kind Result Evidence / limitation
unit / real_entrypoint passed Seven affected Python suites: 363 passed, 6 skipped. Includes lifecycle, resume, quota CLI and saved capture, File/SQLite and side-effect counts.
unit passed 52 TypeScript codec/selection/lifecycle/navigation tests passed; one optional PostgreSQL navigation case skipped; exact field indexing, tampered patches, scope isolation and compaction.
real_entrypoint passed Actual native Codex with isolated loopback inference: App server, App machine default, Code Mode, progressive selection without a full read, and benchmark two-wake preflight, plus native plugin-discovery isolation (6 passed). No paid inference or live experiment used.
static passed Full control-plane typecheck, changed Python Ruff checks, bilingual RFC check, diff hygiene and public-boundary scan.
integration passed Standard loopx canary premerge --from-git-diff --git-diff-base origin/main on the committed head.
regression_parity passed The same 17 default/off/unsupported fixtures pass on both base 5d7f0a61 and head; selected test bodies and parameters are AST-identical; same-capture fallback preserves unsupported integer values and changed integral-float source distinctions. Unchanged integral floats retain warm deltas across sibling edits, array updates and relocation hazards.

Unrelated native cases without explicit binary configuration remain skipped in the general suite; all six native cases were run separately with the binary. Review found five numeric-loss cases on the previous head. Independent source-value assertions now cover their exact public readback. An initial broad fallback caused four native warm-delta failures on an unchanged integral-valued quota; the final codec preserves those leaves without replacing their parents, and all six native cases now pass. A separate earlier combination run hit a benchmark process-cleanup PermissionError; it passed a diagnostic replay without changing cleanup code, so that cause remains unqualified. No authority-store persistence or PostgreSQL protocol is changed; File/SQLite real CLI tests cover the affected adapters. Full model-cost and task-benefit qualification is not claimed.

Frontend / Visual Evidence

UI impact: none. Existing machine switch and native CLI/capture journey only; no rendered component, layout or documentation chrome change. Source data: synthetic. Visual capture not applicable.

Type of Change

  • Bug fix
  • Breaking change: enabled native output is a file manifest rather than page zero; it no longer requires a full model read for file deltas.
  • Documentation update
  • Test update

LoopX Area

  • Control plane
  • Host or runtime integration

Shared-authority RFC fixture impact

N/A: no authority migration, provider routing or persistence contract change. New captured_file is a transport continuity basis, not retention evidence or execution authority. context_capture_index_v1 is a read-only projection on the existing exact selector.

Boundary Checklist

  • No credentials, private state, raw trajectories, internal links or local machine paths in public artifacts.
  • Existing reader and lifecycle owners reused; no duplicate benchmark program.
  • Paired RFC files updated and bilingual check passed.
  • UI impact is none.
  • Every commit has a DCO sign-off.

@mergify

mergify Bot commented Oct 29, 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 Oct 29, 2026
@loopx-agent
loopx-agent force-pushed the codex/context-file-first-delivery branch from 5985a6e to 4f55e80 Compare October 29, 2026 06:16
@mergify mergify Bot removed the needs-rebase Mergify: the pull request has merge conflicts with its base branch label Oct 29, 2026
@loopx-agent

Copy link
Copy Markdown
Collaborator Author

Additional integration validation: an isolated, uncommitted merge of #7627 at 4f55e8033091515a78dafa5a6778da98bd2f0de5 and #7560 at 152b2e1f3d341b8ffe68496858dd3d10c7f3e005 applied without conflicts. Neither reviewed PR head changed. The combined tree is 3b6b71892360dd9485608ded363fded4abdd7f00.

  • Python navigation, capture, lifecycle, resume and saved-delivery suites: 353 passed, 6 explicit native opt-in skips.
  • Combined TypeScript context/navigation suites: 51 passed, 1 optional PostgreSQL skip. This run does not replace the separately recorded real PostgreSQL qualification.
  • Real Codex with isolated loopback inference: 5 passed, 1 failed initially. The benchmark case failed during process-group cleanup with PermissionError after the leader exited with code 0. A focused replay with observation-only cleanup instrumentation passed both worker wakes and found only same-user Git descendants in the owned group. The original failure remains an unresolved intermittent cleanup observation; the replay does not erase it.

These checks cover the source combination and real host transport, including advisory navigation, generic selection and resume. They do not establish installed adoption, paid model behavior, billed savings or long-horizon task gains. No paid inference or benchmark campaign was started.

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] 文件差分会漏掉浮点类型与负零变化。 在已保存但未完整读入模型的 baseline 上,下一份原文把 future.counter 从 1 改成 1.0,或在 -0.0 和整数 0 之间切换,当前 head 返回成功 delta,却只带 Turn 变化、不带 counter。新 guard 只排除了大整数,浮点仍穿过 JavaScript 比较;完整恢复文件正确,并不能补上未投递的差分。最小修复应保守 full fallback,或按原始 JSON 值比较/应用变化。定位:数值 guard。

动机 / Motivation

使用已开启原生上下文投递的 Agent,在已有完整本地 capture、只需逐步读取当前任务材料时继续下一轮工作。旧入口先把整份分页正文送入模型再允许复用;本方案先给文件清单,让 Agent 按任务读取当前保存的原文,并以已验证文件计算版本差分,减少重复投递。清单、选择读取、原生恢复路径可运行,但当前 head 会把 1→1.0、负零→整数零等真实 JSON 变化从文件差分中漏掉;保存的完整恢复文件仍正确。本次评审不把文件存在当成模型已读或已保留,不批准 C1 writer 切换、安装推广、付费模型实验、长期成本收益或合并。尚存缺口:至少修复浮点类型和负零的差分保真,并补足完整的 base/head 默认关闭态比较;C1/C2 的总体推广与模型收益仍另行验收。

改动思路 / Approach

复用现有 typed codec、选择器和 session IO 是合适边界;文件存储、差分计算和模型阅读事实必须分开,当前最小修复是在既有无损数值 guard 中保守回退或保留原值比较。本 PR 同时交付已启用 native 的文件清单、逐步选择读取、文件基线与恢复文案;signed/confirmed-input 模式及 canonical authority 不应改变。检查了既有 saved capture、typed selector、codec、native lifecycle 和未改动的普通 quota 调用链:本地文件由 Python 读写,选择/版本语义仍归 TypeScript;文件校验是派生运输事实,不产生 Goal/Todo 决策权或模型已读事实。先发布当前完整恢复再规划的次序保留,避免规划中断退回旧 Turn。

这里需要明确三件事:原文可读、版本可比较、模型实际读取并保留,并非同一证明。本方案有意把已启用 native 的“先完整读正文”换成“先拿清单、按任务读取”,因此不能把新旧行为称为等价压缩;默认关闭态、signed 和 confirmed-input 的合同仍需分别保留。

具体改动 / Changes

完整审查 head 4f55e8033091515a78dafa5a6778da98bd2f0de5,实际 merge base 75034bfa99d39aa949d7bb0fed33913034ce7eca,19 个文件共 +678/-346:7 个生产文件、4 个文档、8 个测试。没有生成物、依赖或 canonical store 变更。

关键代码讲解

native_context_capture_view 在既有 native 入口生成受限清单、完整恢复引用和 list/select 命令;可选 overview 超预算会省略,原文入口仍可达。capturedContextSelection 枚举直接子字段并正确转义 JSON Pointer,Python 再从原始值抽取正文;索引和局部读取不构成完整已读证明。

_native_context_request 验证旧完整文件的私有归属、digest、scope 后创建 captured_file basis;prepareContextDelivery 扩展现有 codec 分支,没有新增权威库。native lifecycle 在真实 compaction 后更新 epoch,普通 resume 可保留同一文件基线;完整当前恢复仍先于可选 planner 发布。缺陷位于前述数值 guard:float 全部被当成可安全桥接,后续 JS 等价比较抹掉类型和负零区别。

规格按改动前 docs/reference/required-work-context.md 的固定 revision 75034bfa99d39aa949d7bb0fed33913034ce7eca 判断。判据 without round-tripping the original JSON values through JavaScript.:not_met,三条真实 CLI 反例丢失原值变化;Recovery reads the same immutable capture without re-admission or spend.:implemented,完整恢复和原身份保留;Context delivery off remains unchanged.:当前 head 关闭态用例通过,但整套独立 base/head 共享表面比较仍 deferred,不能据此批准。四个文档已明确披露 native 读取语义变化,不能用这次改写的文档反证自身正确。

对主干的风险 / Risks

相同冻结 fixture 在 base 上四组全部 PASS;当前 head 三组 FAIL、一组 PASS。FAIL 为 1→1.0、-0.0→0、0→-0.0;超安全范围大整数正确 full fallback。两侧源文件和完整当前恢复保持原值,且没有创建 registry/runtime authority。受影响的是启用 native 的文件差分,成功状态不会提示缺失,需要修复后检查两个方向和未知嵌套字段。

PASS:六个 Python 模块 345 passed;其中 6 项显式 opt-in native skip 已单独执行,真实 codex-cli 0.163.0-alpha.11.1 对隔离 deterministic loopback 得到 6 passed。TypeScript codec/selector 37 passed;standard premerge 的 direct checks、10 项 catalog canary、8 项 risk smoke 和 public boundary 全过。以上都没有查询或等待 GitHub CI,也不覆盖付费模型理解或长期净收益。另一个组合树的进程清理 PermissionError 尚无根因,不能声称被本 head 的绿色结果修复。

语义与 CI 对齐

captured_file 扩展现有 typed vocabulary,名字对应文件版本而非模型或 peer 权限;--list 是读取投影。未见把 benchmark 术语变成通用强制义务或新增调度/扣额权。但 accepted exact-original-value 合同确被当前 guard 违反,绿色通用检查不足以消除这条反例。完整 paired 关闭态和指令逐条反事实仍 UNVERIFIED,后续批准须补齐,不能只修最后一条断言。

最小公开复现:在 exact checkout 根目录以 uv run --extra test python 执行下段。它只使用临时私有文件与真实 CLI,不调用 guard、模型或实际 authority。将 [1,1.0] 换成 [-0.0,0]、[0,-0.0] 同样失败;baseline 返回 full 并通过。

import hashlib,json,os,subprocess,sys,tempfile
from pathlib import Path
repo=Path.cwd()
with tempfile.TemporaryDirectory() as tmp:
 root=Path(tmp).resolve(); native=root/'native'; native.mkdir(mode=0o700)
 env={**os.environ,'PYTHONPATH':str(repo),'CODEX_THREAD_ID':'numeric-repro'}
 for k in ['CODEX_ROLLOUT_TRACE_ROOT','LOOPX_CONTEXT_DELIVERY','LOOPX_CONTEXT_PAGE_OUTPUT_BYTES']:env.pop(k,None)
 cli=[sys.executable,'-m','loopx.entrypoint','--format','json','--registry',str(root/'absent.json'),'--runtime-root',str(root/'absent-runtime')]
 def run(args,event=None):
  p=subprocess.run(cli+args,cwd=root,env=env,input=None if event is None else json.dumps(event),capture_output=True,text=True,check=True)
  return json.loads(p.stdout)
 run(['quota','context-hook','--context-delivery','on','--codex-app','--codex-context-dir',str(native)],{'hook_event_name':'SessionStart','source':'startup','session_id':'numeric-repro','cwd':str(root)})
 for i,value in enumerate([1,1.0]):
  payload={'ok':True,'goal_id':'fixture','agent_identity':{'agent_id':'agent'},'heartbeat_receipt':{'turn_instance_id':f'turn-{i}'},'body':'Original requirement and final stop. '*1800,'future':{'counter':value}}
  raw=json.dumps(payload).encode(); source=root/f'source-{i}.json';source.write_bytes(raw)
  view=run(['quota','context-project','--capture-file',str(source),'--capture-sha256',hashlib.sha256(raw).hexdigest(),'--goal-id','fixture','--agent-id','agent','--turn-instance-id',f'turn-{i}','--context-delivery','on','--codex-app','--codex-context-dir',str(native)])
 document=json.loads(Path(view['path']).read_text())
 print(view['mode'],document.get('changes'))
 assert view['mode']=='full' or 'counter' in json.dumps(document.get('changes'))

修复后至少重跑此真实入口反例、saved project/resume/lifecycle 测试,并以原始 JSON 为独立 oracle;不要把浮点先归一化再断言成功。

我的整体评价 / Verdict

REQUEST_CHANGES。当前 bounded native 交付目标尚未成立:long_horizon 和 user_experience 均有已复现 regression,后续工作可能继续使用未更新的原值;完整恢复可用使修复和回退有界,但不把 silent delta loss 变成可接受取舍。可视审查 not_applicable:已查看 native CLI 和既有 App 设置调用路径,此 diff 没改 rendered presentation;未验证范围为模型理解、安装推广和长期收益。

现有 typed owner 与专用 Python IO 的分工应保留,最小修复落在既有 guard/原值比较;没有证据支持另建存储或 authority 框架。仍需对整个 exact head 判断关闭态、历史兼容和指令语义,不能只凭六项 native 通过或单个修复宣告 C1/C2 完成。此次发布保留完整失败与未验范围,不授予合并或安装权限。

English verdict: REQUEST_CHANGES — 4f55e8033091515a78dafa5a6778da98bd2f0de5 drops three exact-number changes in real captured-file deltas despite passing general and native suites.

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

Copy link
Copy Markdown
Collaborator Author

Additional integration validation for #7627 at 826833e598c0edbb3d2657828101617e74c0cabb with merged main bcb1a8710844bda6b84c2a00cf5d86ba78e126d9 (including #7643):

  • The temporary merge was conflict-free. The tested source tree was 2a91b19af5f92089d0588e66b106064df7fadfe5; neither PR head was rewritten.
  • Related Python context lifecycle, recovery, selection, public CLI, saved-preflight and reference-preservation suites: 395 passed, 6 opt-in skips. All six opt-in cases were then run explicitly with the native Codex binary and an isolated deterministic loopback provider: 6 passed.
  • Shared TypeScript context delivery/selection: 38 passed. Full control-plane typecheck and staged diff hygiene passed.
  • The native cases cover App/server, machine entry, code mode, progressive selection, benchmark saved preflight and discovery isolation. They verify integration through the actual host transport, not paid model reasoning, installed campaign adoption or end-to-end cost savings.

The temporary merge was removed after validation, retaining both source pins and results. Exact-head independent review remains in progress; this evidence does not replace that review or merge readiness.

@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

开启原生上下文投递、在压缩或普通恢复后继续工作的 Agent,需要访问当前必要事实。旧入口会先输出大页,并把差分与模型通读绑定;新入口保存当前完整文件,只返回有界导航,允许选读必要事实和文件差分。相同12组真实 CLI 输入在 base 均返回约64KB首屏且不建立未读文件差分;head 约3.5–4.3KB引用、精确数值回退或差分,完整原始 JSON 独立重建全部相等。不证明模型采纳、长期有效性、实际总费用或已安装资格;不完成 C1/C2 的父级迁移与收益验收,也不授权合并、安装或重跑真实任务。尚存缺口:C1 unified cutover, C2 staged composition and comparable accepted outcomes/full cost remain separately unqualified.

改动思路 / Approach

复用现有不可变捕获、索引选择器、差分 codec 与 session 锁,才能同时去除强制通读和保留原值;不需要第二个上下文或权限 owner。本 PR 仅交付已有 opt-in 原生入口的文件导航、文件差分与同 Turn 恢复;原始权威、准入和结算 owner 保留。

文件存在与模型已读是两个事实。当前完整文件始终可直接选读;文件差分同时给出精确基线,因此不需要重放差分链。普通 resume 保留文件 epoch;实际压缩后,下个新工作 Turn 先保存新的全量基线。原工作 Turn 继续使用原捕获和效果身份,缺失必要事实时恢复,不重新准入或重复结算。显式 confirmed-input 客户端保留原有独立契约。

具体改动 / Changes

本次重审覆盖完整19文件,head 826833e,实际 merge base 5d7f0a6。没有沿用旧 head 的批准。

关键代码讲解

  1. _native_context_request 与 project_codex_context 校验物理原始文件,沿当前锁先发布恢复引用,再做可选规划。原始整数超出安全范围、整值浮点类型或负零变化时,返回当前完整文件,避免 JavaScript 抹平变化。
  2. changeTree / prepareContextDelivery 在同一 codec 增加明确的文件基线语义。未变数字必须原位继承,不能因较短的父对象替换或跨位置子树复用而改写;显式保留输入分支仍按原规则重复当前控制。
  3. native_context_capture_view 取消 eager page zero,返回有界文件引用、当前索引/选读入口及完整恢复。它保存和呈现已作出的决定,不收集第二次决定。
  4. read_context_capture 复用 typed pointer 解析,列表仅给目录、类型和大小;Python 从原 JSON 取值。目录和正文选择使用不同派生摘要,不能互用 continuation,也不产生全量模型保留证明。

规格依据是 docs/reference/required-work-context.md 在 5d7f0a6 的原文,而非本 PR 改写后的说明:

  • “without round-tripping the original JSON values through JavaScript.”:implemented;完整原 JSON 的数值类型、精度和符号通过独立重建核验。
  • “Context delivery off remains unchanged.”:implemented;7条真实 CLI 路径完整 JSON、退出码和 stderr 对照一致,仅规范化来源 checkout 的可执行文件前缀。
  • “Unknown outcome fields”:implemented;未知字段、控制、特殊键及原始文件保留,失败仍回当前完整捕获。
  • “Do not repeat completed work or settle the original Turn twice.”:implemented;真实 native loopback 检查原 receipt、恢复路径及无额外准入/扣额。
  • “Existing full-context” 原来的通读条款:在新的 native-on 交付边界有意替换,依据已独立核对的维护者渐进读取要求;off、签名/显式保留输入及旧捕获自身的读取契约不据此改写。

对主干的风险 / Risks

最强反例是差分看似成功,却漏掉 1 → 1.0、-0.0 → 0 或 0 → -0.0,又或者更新兄弟字段时顺带把未变浮点改成整数。旧评审里的三个反例在本 head 已解决。冻结12组真实 context-hook/context-project 输入,在 base 与 head 都独立重建完整原始 JSON;head 的数值回退、父对象/数组更新、数值子树搬移、未知当前控制和转义键全部保真,源文件未改写、未创建 authority state。

本轮另有355个 Python 用例通过;广泛运行中的6个原生 opt-in skip 已单独用真实 native Codex、隔离 loopback 全部执行并通过。38个 TS 用例、全 control-plane typecheck、变更 Python Ruff 和标准 premerge 通过;63个原有关闭态/不受支持用例的 AST及参数化未变,base/head 两侧均通过,原有34个 TS用例也两侧通过。没有查询或等待 CI。一个猜测的 navigation 测试文件名返回“文件不存在、无测试”,未将它计入验证。此前未提交组合树的 PermissionError 保留为历史未资格证据,不冒称已定位或修复;作者关于当前 main 组合的补充也没有代替这里的独立结论。

语义与 CI 对齐

这会扩展既有 context delivery 词汇,加入 captured_file 与目录视图;属于明确的语义变化。必要 Goal、验收、约束和停止条件仍须在依赖性工作前理解,当前操作/结算契约须在效果前理解;新指引不授予权限。没有提高硬传输上限或冻结实验标准。C1统一切换、C2材料组合及长期效果/完整成本仍由原验收边界继续资格验证。

我的整体评价 / Verdict

APPROVE 这个有界增量。长程继续工作的原值、原身份与停止边界已保留,读取体验得到改善;实际模型采纳、缓存/输出/总费用和可比成果仍未知。当前19文件范围有用且合比例,必要兼容分支各有真实消费者;没有理由再增加 reader、配置屏或第二个状态 owner。当前 PR 边界与上面的复用理由一致。没有 rendered UI改动,检查原生 CLI及既有配置入口即可;模型理解、长期费用/成果、安装后行为未验证。批准不等于合并、部署或父级验收完成。

English verdict: APPROVE at 826833e598c0edbb3d2657828101617e74c0cabb. The prior numeric loss is resolved; original-value reconstruction, disabled-path parity and real native selective-read/recovery checks pass. This qualifies the bounded source-checkout change, not installed adoption or matched long-horizon benefit.

@huangruiteng
huangruiteng merged commit 385eb85 into main Oct 29, 2026
18 of 41 checks passed
@huangruiteng
huangruiteng deleted the codex/context-file-first-delivery branch October 29, 2026 09:03
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