Skip to content

fix(benchmark): preserve trajectory evidence across locales - #6691

Merged
huangruiteng merged 3 commits into
mainfrom
codex/trajectory-digest-owner-20261017
Oct 17, 2026
Merged

huangruiteng merged 3 commits into
mainfrom
codex/trajectory-digest-owner-20261017

Conversation

@loopx-agent

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

Copy link
Copy Markdown
Collaborator

Goal And Delivered Outcome

Trajectory evidence uses UTF-8, but its two local adapters read and write with the host's default codec. A real Unicode pack fails to prepare under an ASCII locale; the unchanged repository gates identify 12 unpinned text-I/O sites and one text-mode subprocess. The same consumers also duplicate the canonical bare SHA-256 rule.

Pin UTF-8 throughout pack registration, prompt/worker files, receipts, result inspection and reuse, and delegate digest validation to the existing shared owner. Unicode objectives, windows, explanations and citations now survive the complete local provider journey. Invalid UTF-8 still fails strictly; explicit retry preserves the failed bytes.

Basis: the main qualification cohort and natural PR qualification, reproduced on source matching the affected adapters. Intended base: main.

Author Declaration

Written by: model_agent — OpenAI GPT-6 family.

Implemented against revision 04b929ac609881d1104308e184c980e7af853b45: the trajectory provider contract, UTF-8 file gate, subprocess gate, and canonical digest shapes.

Criterion Disposition Owning boundary Evidence
UTF-8 structured files and local worker transport implemented Existing Python process/file adapters Controlled ASCII parent, actual UTF-8 files and disposable child; Unicode pack/result/citation roundtrip and native CLI readback. The original whole-tree gates pass without edits.
Shared digest validation with unchanged rejection behavior implemented TypeScript canonical owner and generated Python binding Both pinned consumer lists record adoption; exact-width lowercase positives and malformed type, envelope, case, whitespace and newline negatives pass. No scanner exemption.
Preserve execution ownership and failed evidence implemented Existing exclusive job owner and scoped pack store Busy/cancel, explicit retry, invalid-output rejection, cache requalification, source-change/history and original-byte preservation pass. Preparation creates no job.

Self-check: reviewed the complete combined diff, instruction/ownership references, provider contract and public boundary; exercised real files, the typed runtime bridge, synthetic local children and native CLI. Author qualification does not replace independent review or grant merge authority.

Scope And Continuation

Complete within this source defect repair. Eight existing files change: the two Python adapters, their TypeScript semantic consumer, and five validation modules. The future-facing pass removes duplicate digest knowledge and retains the store's existing _write owner; no extra serializer, wrapper, module, configuration or semantic vocabulary is added. Python remains the local I/O adapter; eligibility, rubric, identity and qualification stay with the existing TypeScript owner.

Behavior change: non-UTF-8 hosts now consume and persist the same UTF-8 artifacts as UTF-8 hosts. Malformed bytes are rejected without lossy replacement or a legacy-codec fallback. Model configuration, scoring, default execution, retry/cancellation and permission boundaries are unchanged. No live model call, benchmark experiment or extra hosted run was launched.

Full hosted qualification, independent exact-head review, merge and adoption remain open. The source repair does not close the other failures in those CI runs. CLI and owner-scoped read models were verified; the research-workbench frontend journey described in the reference remains separate. No packaged or installed UI qualification is claimed.

Validation

  • Tested revision: 560fc66b99460aebd25fb2a24b484d9be6d94410; committed runtime blobs match the tested source.
  • Run state: finished. Input classes: synthetic, public_fixture.
  • Environment: Python 3.11.17, SQLite 3.53.1, Node 24.21.0 on macOS arm64; ASCII child verified with UTF-8 mode and locale coercion disabled.
Check kind Result Evidence / limitation
regression_parity passed Before the repair, the new real ASCII-locale journey fails with UnicodeDecodeError; the unchanged file/subprocess gates fail at the affected consumers. Afterward, the Unicode journey and both complete gates pass. Previous duplicate-digest failures are also resolved without weakening either ownership gate.
integration passed 287 unique Python cases across both complete digest-owner modules, both trajectory consumer modules and the original UTF-8 gates; zero failures/errors/skips. The complete 13-case provider suite additionally passes with an ASCII default locale, covering failure, cancellation, retry and history. Two complete TypeScript modules: 23 passed, zero skips.
real_entrypoint passed ASCII-mode benchmark trajectory-assess preview → pack registration/discovery → status/completed cancellation on an isolated synthetic registry/runtime. Unicode survives JSON readback; invalid-UTF-8 registration fails while every runtime byte remains unchanged. No preparation command starts analysis.
real_backend passed Actual source files/hash checks, registration files, typed bridge and owned synthetic executable: Unicode prompt/output/events/diagnostics/receipt/citations, successful reuse, changed-source historical result and strict malformed-byte failure/retry. A fixture child supplies status evidence; no model quality claim.
static passed Full control-plane TypeScript check; Ruff on all five changed Python paths; diff advisory before the canonical full semantic validator; fresh maintainability ratchet; all eight public paths and diff checks clean.
integration passed Exact committed scope has a valid change-quality receipt. Native risk-based premerge results are recorded below.
manual blocked Benchmark-sensitive maintainer review and explicit merge authorization remain required. No bypass or merge.
integration not_run Windows host, installed/frontend journey, live model, six-shard hosted cohort/combined coverage and sustained-operation qualification. No authority-store or PostgreSQL refactor is included.

Native canary premerge --from-git-diff: all six direct and 14 selected checks passed, with zero failures, skips, timeouts or advisories. The overall command exits 1 with manual_review_required, retaining the benchmark-sensitive maintainer hold; this is not a green merge gate. The earlier review at 6435cb4 covers the previous scope only; the combined 560fc66 head requires a fresh review.

Frontend / Visual Evidence

UI impact: none. Screenshots, viewport review and visual source data: N/A. The existing CLI/provider contract is repaired; no UI, presentation or primary CTA changes.

Type of Change

  • Bug fix
  • Test update

LoopX Area

  • Control plane
  • Benchmark boundary
  • Capability or extension

Technical Direction

S2/S10/S12: preserve the typed semantic owner and restore the existing provider's evidence/qualification boundary. Shared-authority RFC fixture impact: N/A; no store migration, promotion, routing or compatibility-projection change.

Boundary Checklist

  • No private state, credentials, raw traces, internal links or local paths in the diff/body.
  • No maintainer-owned benchmark experiment or live model call launched.
  • Scope follows the reproduced defect; no ceremonial successor.
  • No paired RFC or UI changed.
  • Every commit is DCO signed.

中文:修复轨迹证据在非 UTF-8 默认环境中的读取、写入、工作进程文件和结果回读,并接回复用既有 SHA-256 规则。真实 ASCII 默认环境下,中文输入、回执、解释与引用完整保留;非法 UTF-8 严格报错,显式重试保留原失败字节。完整托管 CI、独立评审、合并和安装资格继续分别验收。

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

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)

Exact head: 6435cb4

动机

维护轨迹评估的开发者,在提交或重新验证既有数据包时,会遇到两种语言的摘要规则归属检查失败。
旧代码在两个消费者中重复声明完整 SHA-256 格式;基线实际因此失败。改用既有规则后,归属检查通过,数据包与评估输入的合法值、错误及身份计算保持一致。
修复让轨迹评估继续使用统一的摘要定义,避免以后修改格式时漏改其中一个消费者。
本次只合并既有校验规则,不执行模型、启动评估任务、改变评分,也不认证研究质量或安装后的应用。

改动思路

摘要格式继续由既有 content_digest.ts 负责,Python 使用已有生成契约。提案把两个消费者中的重复正则改成直接调用该契约,保留各自的解析错误、文件 IO 和执行边界。Python 仍对原始字符串做 fullmatch,TypeScript 仍使用无状态、首尾锚定的模式;没有增加裁剪、大小写转换、前缀兼容或远程校验。

最小有效修复就是这两处替换。只把文件加入白名单无法消除重复规则;新建抽象或 RPC 又会增加成本。现有归属扫描器没有被豁免或削弱,独立基线确实在这两个字面量处失败。当前范围只包含既有轨迹消费者的规则复用和对应回归覆盖,不构成新的评估能力。

具体改动

关键代码讲解

  • _opaque:删除局部正则和无用的 re 导入,使用规范模式的 fullmatch。包标识、分析键仍先验证,再定位文件或执行命令;错误不会被转成成功或自动重试。
  • parseTrajectoryInput:来源摘要改用同一个 BARE_SHA256_PATTERN。原有输入解析、方法选择、分析身份、提示和输出结构没有改写。

其余四个文件在原有两种语言的归属检查中登记真实消费者,并增加合法值及非法值覆盖。完整提案六文件 +62/-3;没有新增扫描豁免、协议版本、配置开关或迁移层。

评审依据为既有 docs/reference/trajectory-assessment.md,固定修订 dededb6:

  • Producer and consumer boundary:已实现;固定合成来源通过实际 CLI 和 typed bridge 注册、预览,未伪造模型或科学评估证据。
  • Register a fixed case for the research workbench:已实现;真实隔离文件 provider 注册后能重新发现相同数据包,非法来源摘要拒绝后状态不变。
  • Explicit execution and readback:已实现;预览不执行,非法分析键在启动命令前被拒绝。独立 guard 和运行时文件摘要确认零派发、零拒绝副作用。

对主干的风险

未发现阻断项。最需要反驳的是规范正则可能只匹配一部分输入,或登记消费者就把归属问题藏起来。本次保留扫描器原实现,分别在不可变基线和当前 head 运行,并额外通过实际来源 CLI、typed bridge、文件 provider 配对 22 种原始值,覆盖长度、大小写、前缀、空白、LF/CRLF、NUL 和非字符串。两端接受值、错误、包发现、分析键、提示摘要和输出结构完全一致;拒绝后的运行时文件及命令派发也一致。

独立验证:四个相关 Python 模块 279 项、两个 TypeScript 模块 23 项全部通过且无跳过;Ruff、控制面类型检查和完整语义漂移检查通过。首次命令误写了一个不存在的测试路径,未收集测试;定位真实文件后重跑上述完整模块,没有删除断言或缩小实际覆盖。

原生 premerge 的 6 个直接检查、14 个选定检查全部通过,无测试失败、跳过或超时;命令实际返回 manual_review_required,退出码 1,保留 benchmark_sensitive 维护者确认项,不能称整个合并门禁全绿。依本次策略未查询 CI。没有执行真实模型、启动 benchmark、认证安装后的桌面应用或长期运行。

语义与 CI 对齐

复用已有裸 SHA-256 词汇及 owner,未新增状态分类或改变预算。先运行改动范围 advisory,再执行完整语义漂移及原有归属检查;advisory 无候选只是语法扫描结果,正确性结论来自上述实际消费者对照。当前主干相对基线只有无关的 Lark 来源校验改动,不改变这两个消费者。

我的整体评价

APPROVE。该有界维护结果解决了可复现的归属失败,并保留实际调用者行为。长期工作的判断为维护一致性改善,用户体验保持既有注册、预览、拒绝和读回旅程,无新增填写、确认或导航步骤。前端和 Lark 无入口或设置变化;这里是已有能力内部校验规则的归并。

面向下一次变更的简化检查已落实:删除重复规则,沿用既有 TypeScript owner 和生成 Python 契约;进一步抽象没有当前收益。已采用历史经验中“验证真实有用结果”的建议,但其 recovery RFC 分期要求不适用于本修复,也不声称记忆效用已被证明。评审通过不解除维护者确认项、不授予合并或升级权限。

English verdict: APPROVE - 6435cb4 reuses the canonical bare SHA-256 owner without changing trajectory consumer semantics. Independent base failures, 279 Python and 23 TS passing tests, and paired actual CLI/provider counterfactuals support the result. All selected local canary checks passed; its separate benchmark maintainer hold remains, and CI was not consulted.

Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com>
@loopx-agent loopx-agent changed the title fix(benchmark): reuse canonical digest owner for trajectory evidence fix(benchmark): preserve trajectory evidence across locales Oct 16, 2026

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

Exact head: 560fc66

动机

使用轨迹证据的开发者,在非 UTF-8 默认环境读取包含中文的目标、窗口或测量记录时,原有 CLI 会在准备或登记阶段直接报解码错误。
同一份 UTF-8 数据在正常环境可用,在实际关闭 UTF-8 模式和 locale coercion 的 ASCII 父进程中,基线预览、登记均失败;当前 head 能预览、登记、运行自有合成 worker 并完整回读中文解释、诊断和引用。
修复把这两个既有文件与进程适配器接回统一 UTF-8 约定,同时保留已有摘要唯一 owner;无效 UTF-8 继续严格拒绝,失败原文可供显式重试核查。
本次只修复源码中的 I/O 与摘要规则,不启动真实模型或 benchmark 实验,不认证 Windows、安装后的界面、研究质量或持续运行。

这是扩大范围后的完整评审:先前 6435cb4 的六文件评审只覆盖旧摘要修复,不为本次新增 UTF-8 行为背书。本次重新固定实际基线 04b929a,审阅全部八个提案文件并重跑当前消费者。

改动思路

显式编码属于既有 Python 文件/进程 adapter;评分、身份与资格仍由现有 TypeScript owner 决定,沿用原子写入函数和现有重试锁,无需新序列化层或兼容回退。
当前范围是同一轨迹能力的 UTF-8 文件与 worker 旅程修复,加上既有摘要规则复用;完整组合 head 一起判断。

只修输入读取仍会在提示写入、worker 结果、回执、事件或历史复用阶段再次失败。这里将每个实际文本 I/O 都明确为严格 UTF-8,继续用原有 _write 写临时文件后原子替换;不是通过修改机器默认 locale 或宽容解码来掩盖问题。摘要格式继续复用既有 TypeScript 规则和生成 Python 契约,Python 不重建评分或资格判断。

独立实际对照:

同一受控 ASCII 环境 不可变基线 当前 head
Unicode 输入的原生预览、登记 均退出 1,ASCII 解码错误 均成功,预览不执行
原有整树编码检查 12 个文件位点、1 个 Popen 违规 原检查不变,全部通过
本机自有合成 worker 与后续读回 在输入阶段已阻断 中文提示、结果、事件、诊断和引用完整,复用及历史读回通过

合成 worker 只提供传输用响应,不提供科学正确性的证明。普通 UTF-8 环境下,既有 22 类合法/非法摘要输入和实际 CLI/provider 输出仍完全一致。

具体改动

关键代码讲解

  • _write、prepare、read_job:JSON、输入、回执继续使用既有格式,所有文本读写明确 encoding="utf-8";没有新增序列化模块、编码猜测或容错替换。
  • execute:提示文件、输出、事件和诊断文本及 Popen 明确 UTF-8。原有重派生身份、互斥锁、所属子进程取消、失败记录、显式重试和旧尝试归档保留;非法输出不会生成通过结果。
  • register_pack / inspect_pack:索引、注册记录、输入和模型结果按同一 UTF-8 合同读取;来源哈希、限定路径、资格复核、历史结果与引用边界继续由原 owner 执行。
  • parseTrajectoryInput 与 _opaque:仍复用规范裸 SHA-256 模式;合法值、非法大小写/长度/前缀/换行/类型及错误无漂移,没有扫描豁免。

整个提案八文件 +251/-51,包括三个生产文件和五个现有测试模块。与旧 head 做两点 diff 会包含主干合入的四个 Lark 文件;按真实 merge-base 04b929a 判断,它们不是本提案,未被错误计入范围。

规范依据为既有 docs/reference/trajectory-assessment.md,以及同修订的 文件 UTF-8 合同 和 子进程合同:

  • Producer and consumer boundary:已实现;现有来源 provider 与显式本机执行保持独立,不写 solver 或评分权威。
  • Explicit execution and readback:已实现;预览不运行,来源变化后保留原已验证历史结果,拒绝状态不能当成功,重试仍须明确要求。
  • test_shipped_runtime_pins_utf8_for_every_text_file_read_and_write:已实现;整树原检查不变,12 处缺失修复,实际 ASCII 文件旅程独立验证。
  • test_shipped_runtime_pins_utf8_for_every_text_mode_subprocess_call:已实现;原检查不变,唯一 Popen 位点修复,真实自有 worker 的 Unicode 输入、事件与诊断读回通过。

对主干的风险

未发现阻断项。最大的风险是只让静态检查变绿,仍在下游读写丢字符,或者宽容解码使损坏输出变成可接受证据。独立父进程确认 utf8_mode=0、locale 为 US-ASCII 且禁用 locale coercion;真实来源 CLI 和本机合成 worker 完整运行,中文窗口、解释、事件、诊断、引用及后来复用/历史结果逐项读回。非法 0xff 注册失败且运行时文件逐字节不变;完整消费者测试还证明非法模型输出为 failed、锁被释放,显式重试将原 0xff 字节原样归档后再成功,不自动覆盖失败证据。

当前独立验证:六个完整 Python 模块 287 项通过、两个 TypeScript 模块 23 项通过,均无跳过;在真实 ASCII 默认环境另跑两个完整消费者模块 13 项通过。Ruff、控制面类型检查、DCO/diff、advisory 后的完整语义漂移检查通过。私有探针曾遗漏预览必需的 --output-dir,随后又误传 inspect_pack 参数;这两次是测试调用错误,修正后两端完整重跑,原失败保留,没有修改产品或放宽断言。

语义与 CI 对齐

复用既有 UTF-8 约束和摘要词汇,没有新状态、权限或预算例外。原生 premerge 的 6 个直接检查、14 个选定检查全部通过;总体仍退出 1、manual_review_required,保留 benchmark_sensitive 维护者确认项,不称合并门禁全绿。依策略未查询 CI。非 UTF-8 host 的 Unicode 数据由失败变为可读属于明确披露的预期修复;非法 UTF-8 仍严格拒绝。未验证 Windows、安装后界面、真实模型、完整托管 cohort 或持续收益。

我的整体评价

APPROVE 当前组合 head。修复恢复了一条有用的既有消费者旅程:正确的 UTF-8 来源可准备、执行、读回并继续复用,错误来源和损坏结果仍有明确的拒绝与恢复。长期工作的判断为后续证据/历史读取可靠性改善;用户体验改善但命令、授权和交互步骤不增加。此处是已有能力内部 I/O 缺陷修复,前端、Lark 和产品首屏没有改动,安装后的 workbench 资格不由源码修复推定。

面向后续变更的简化检查认为既有原子 writer、TypeScript 语义 owner 和当前进程生命周期已足够;不增加另一套配置、serializer 或 locale 兼容分支。扩大范围后重新判断机制与价值,而非沿用旧批准。原 6435cb4 评审仅作历史;当前评审、维护者确认项、合并权限及安装采纳继续分别判断。

English verdict: APPROVE - 560fc66 repairs the complete existing UTF-8 trajectory I/O journey and retains canonical digest ownership. Independent ASCII base failures, real native CLI/owned-worker readback, 287 Python and 23 TS tests, and 13 ASCII consumer cases support this combined-head verdict. Strict malformed-byte failure/retry and historical evidence remain intact; CI was not consulted and the benchmark maintainer hold remains.

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

Reviewer: model_agent; GPT-6 family; OpenAI; self_reported; reasoning_effort=effort_unavailable

动机

在默认 ASCII 等非 UTF-8 主机上整理和分析轨迹证据的用户。 原先中文输入在真实 ASCII 默认编码的子进程中触发 UnicodeDecodeError;现在注册、工作进程文件、结果和引用均明确采用 UTF-8,并继续严格拒绝非法字节。 受控 ASCII 环境的 Unicode 文件和真实本地工作子进程往返通过,非法 UTF-8 与失败后重试保留原证据。 本次不改评分、配额、默认模型、取消或授权边界,不以本地静态子进程证明模型质量。 完整安装、研究工作台前端及托管资格仍由既有交付边界验证。

评审固定在 560fc66b99460aebd25fb2a24b484d9be6d94410。规范/任务来源:https://github.com/loopx-project/loopx/pull/6691,版本 560fc66b99460aebd25fb2a24b484d9be6d94410;对应原有条目 UTF-8 structured files and local worker transport。

改动思路

编码由原有 Python 文件和进程适配器明确承担,摘要合法性复用 canonical TypeScript owner 及其生成 Python binding。 本 PR 完成轨迹证据本地 I/O 的源码缺陷修复,不增加解码 fallback 或新配置。 所有文本文件和文本子进程都固定 UTF-8,非法字节严格失败,不采用替换字符或旧编码 fallback。Python fullmatch 与 TypeScript 规范化消费者共同保留裸摘要的精确宽度、大小写、类型和换行拒绝。 已检查相邻 owner 和实际调用者;未来维护的决策仍集中在原有边界,未引入第二个权威。源码切片可以独立验证和回退,不把它扩张为完整父 RFC 的验收,也不要求增加与本缺陷无关的用户操作。

具体改动

关键代码讲解

  • execute:所有提示、事件、错误、回执与结果的文件和文本子进程固定 UTF-8,保持独占作业及显式重试流程。 先验证来源和原有状态,失败由原 owner 拒绝;成功只返回当前调用者所需结果,不产生新的执行授权。

  • _opaque:移除局部摘要正则,复用 BARE_SHA256_PATTERN 的 fullmatch。 先验证来源和原有状态,失败由原 owner 拒绝;成功只返回当前调用者所需结果,不产生新的执行授权。

  • prepareTrajectoryAssessment:采用同一个共享裸 SHA-256 检查,既有严格输入语义保持。 先验证来源和原有状态,失败由原 owner 拒绝;成功只返回当前调用者所需结果,不产生新的执行授权。

所有文本文件和文本子进程都固定 UTF-8,非法字节严格失败,不采用替换字符或旧编码 fallback。Python fullmatch 与 TypeScript 规范化消费者共同保留裸摘要的精确宽度、大小写、类型和换行拒绝。 全部变更路径均按运行逻辑、公共说明和耐久回归分类检查;实际生产调用链是 prepare / register → typed qualification → owned local process → UTF-8 receipts/output → inspect / citation / retry。测试没有修改评分器、现有协议门限或标准 oracle。独立复现基线 04b929ac609881d1104308e184c980e7af853b45:相同真实 ASCII 默认环境在修复前触发 UnicodeDecodeError。 同一目标测试复制到隔离旧源码运行,旧产品代码未修改;当前提交上的真实入口通过。

本次独立执行:19 个 Python provider/UTF-8 检查、226 个 Python digest-owner 检查及 23 个 TypeScript 检查通过。 这些是本次实际执行结果,未把作者其他环境中的完整 CI 数量当作自己的验证。通过和未执行范围分别保留;本地文件/typed runtime 是真实后端,测试数据与工作子进程是合成内容,不证明模型推理质量。

对主干的风险

最重要的回归方向是来源被截断或错误放宽后,成功回执掩盖错误的资格与历史。所有文本文件和文本子进程都固定 UTF-8,非法字节严格失败,不采用替换字符或旧编码 fallback。Python fullmatch 与 TypeScript 规范化消费者共同保留裸摘要的精确宽度、大小写、类型和换行拒绝。 当前负向检查覆盖了相关的错身份、缺失或损坏来源及重放/历史分支,真实入口检验避免仅 helper 通过。本次不改评分、配额、默认模型、取消或授权边界,不以本地静态子进程证明模型质量。 完整安装、研究工作台前端及托管资格仍由既有交付边界验证。 未执行本次完整托管 CI、完整已安装应用或长期模型实验;未发布新的 UI 第一屏。对已有前端消费者仅复核其沿用同一个后端读模型,作者提供的截图与打包结果不冒充本次独立浏览器验收。合并前仍须维持原有维护者授权和实际 merge-readiness。

我的整体评价

未发现当前提交上需要阻塞此源码切片的缺陷。编码由原有 Python 文件和进程适配器明确承担,摘要合法性复用 canonical TypeScript owner 及其生成 Python binding。 本 PR 完成轨迹证据本地 I/O 的源码缺陷修复,不增加解码 fallback 或新配置。 受控 ASCII 环境的 Unicode 文件和真实本地工作子进程往返通过,非法 UTF-8 与失败后重试保留原证据。 相关未来重构复核选择保留最近的既有 owner,避免新框架;剩余安装/前端/长期资格仍明确未完成,不以此审批替代。仅对本次精确提交给出源码评审通过,不授予合并或运行新实验的权限。

English verdict: APPROVE - 560fc66; independently reproduced the old real-caller failure and passed the affected head regressions. Existing installation, frontend and broader qualification boundaries remain separate.

@huangruiteng
huangruiteng merged commit 700f236 into main Oct 17, 2026
30 of 38 checks passed
@huangruiteng
huangruiteng deleted the codex/trajectory-digest-owner-20261017 branch October 17, 2026 05:02
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