Files
ai-contract-platform/project-docs/上线收口-执行约束-2026-09-10.md
T

48 KiB
Raw Blame History

核心产品上线收口:停止扩面,先交付可验收版本

日期:2026-09-10。依据用户本轮要求:检查近百小时任务是否跑偏,尽快完成、投入使用。本文件是后续执行的范围约束,不是上线批准;不新增 TP 子阶段。

2026-09-21 当前执行优先级: 本文保留为历史范围和证据记录;当前高效率工作方式以《生产上线加速与开发效率整改方案》为准。后续只按 FREEZE → BUILD → RC05-RUN → RC06-UAT → RC07-RECOVERY → RC08-PRODUCTION 收口,不再自动增加阶段;先完成修改再冻结,冻结后 P0 可直接阻断,P1 须由发布负责人裁定,完整认证只对同一不可变候选执行一次。本文中已被多场景方案撤销的采购/服务双场景历史安排不得恢复为当前交付标准;任何新发现的实证阻断仍须保持 NO_GO,效率目标不构成带缺陷放行授权。

用户最新决定:不同意“采购单场景受控试点”。单场景建议已撤销,本文此前“只按采购/服务两场景收口”等范围冻结属于历史安排,不再作为产品完成标准。新的计划见多场景完整交付与开发收口方案:保留当前可加载的 60 个资产(30 基础+A12+B18)、8 个精品深度及 14 个 Prompt 模块;C30 继续按原方案需求排序。本轮只制定方案,未自动重启目标执行、部署、发布或调用模型。下列状态与证据按原时点保留。

目标状态(16:55):已标记 blocked(受阻、未完成),停止自动目标续跑。部署操作受限、发布条件及普通会员现场验收信息缺失的同一阻塞连续三个目标轮次未解除;最新只读核对仍为 AI PID 4216、13:38 启动,未加载最终修复。没有可确认存活的验收任务需要继续等待,也没有新的模型诊断依据。不重试被拒绝的操作,不用扩展开发代替交付。原“模板与 Prompt 完整闭环”目标保留,不标记完成;采购单场景首发仅是待用户决策的建议。以下执行记录保留各时点事实,历史 active 状态不代表当前状态。

最新判定(16:52):本轮范围审计与有界验收已经结束,不再自动增加开发阶段或模型调用。采购已在同一次隔离真实模型运行中完成起草→复核→明确采纳→DOCX 下载→撤回,正文一致性及版本恢复检查通过;服务起草成功,复核仍在 300 秒超时,未采纳/下载。固定主链计划整体未通过,累计十四次应用适配器真实调用,所有历史失败保留。最新 AI 源码的单服务重载命令被执行策略拒绝,命令未运行,旧进程未停止;未绕过、重试、发布在线资产或开放注册。普通会员现场验收仍缺证据。当前只能确认采购隔离技术链通过,不能认定内部完整交付或对外上线就绪。

本次检查到此收尾,不自动追加任务

  • 只读 PostgreSQL 检查确认 AI queued/running 数量为 0;默认配置数据表非空。该检查没有构造会执行初始化的 Repository,也没有发起模型调用。启动源码存在无条件调用 seed_defaults() 的路径,因此不能仅凭 database_auto_create=false 承诺重启绝无数据库写入。
  • 16:52 再查监听进程未变:前端 3000/PID 15700,业务 8100/PID 11796,AI 8101/PID 4216。部署操作被策略拒绝后停止,没有把“计划重载”记作“已经部署”。旧 AI 进程启动于 13:38,尚未加载最新 Provider 解析、语义 Prompt 和安全错误码修复。
  • 重载源码不等于发布数据库资产,也不会改写旧任务的 Prompt 快照。发布需要确定目标环境、版本和授权;普通会员验收仍需要浏览器连接恢复或用户提供现场信息。当前管理员登录成功不能替代普通会员验收。
  • 后续仅在获得必要部署/发布条件、普通会员现场信息,或确有新的超时诊断依据后继续对应事项;没有这些变化时不再反复跑模型、健康检查、扩写报告或另建测试工具。服务场景保持未验收;是否缩小到采购单场景试点,交由项目负责人明确决策,不静默变更产品范围。

给项目负责人的简明结论

本轮最新读取的目标工具记录累计执行 331724 秒,约 92.1 小时,仍为 active,未设置 token 上限。它不是某个模型请求持续运行了近百小时;当前诊断模型子进程均已退出。拖长任务的主要问题是交付管理:原目标“模板与 Prompt 完整闭环”没有清晰首发终点,后续不断增加专项能力和评测,而当前发布版本及真实用户主流程没有优先验收。这需要纠正执行范围,不能仅靠增加代理或继续堆测试解决。

  • 立即后置:更多行业与模板扩充、双云/KMS、新运营增强、大规模质量样本。它们不再是此次首发完成条件。
  • 工程收口只剩三类阻塞:服务语义复核超时尚未解决;最新修复部署及授权资产发布尚未闭环;普通会员主流程和失败恢复现场验收未执行。本轮有界模型复验已经结束,无新诊断依据或已验证环境变化时不再请求模型,不自动追加批次。
  • 对外发布另有必要条件:正式生产模型、有效公开政策与运行保护、发布授权。不能把本地开发可用包装为对外发布批准,也不能为了赶进度绕过合同事实和版本保护。

本轮交付是范围审计、已验证修复及明确未完成项,不是原完整目标全部完成。此前“一个工作日”的时间盒是检查与交付阻塞清单的上限,不代表承诺当天生产上线,更不能自动顺延出新开发阶段。

审计结论

存在明显范围失控和交付顺序偏移,不是没有产出。任务工具在本轮开始记录累计执行约 88.6 小时;仓库已有 49 份“模板与 Prompt 开发进展”报告。当前 Git 有 457 个变化条目,包含既有用户改动,不能全部归因于本轮,也不能直接整体发布。

原方案要求分批交付,并将后续行业扩充按真实需求排序。实际持续增加反例、冻结评测、身份校验、自动修复和后续子阶段,却没有优先将当前版本部署并完成普通会员现场主流程验收。多个安全修复有必要,但不能据此让首发持续等待所有增强项。

初次范围审计时已停止两个扩展开发代理,当时尚未重启服务。3000/login、8100/health、8101/health 均返回 200;登录恢复由用户确认。后续实际重启及保护配置见本文执行记录。健康检查不代表主流程验收通过。

已有基础与未交付部分

  • 最新 TP06.24.2 证据:SDK 163 通过、AI 728 通过、业务兼容 158 通过/3 跳过、修复及后台续接联合回归 47 通过、Web 定向测试 177 通过。这些范围不能重复累加,也不等于真实浏览器或上线验收。
  • 原稿保留、候选差异、一次修复、明确采纳和撤回已有源码与合成跨服务测试。
  • 收口前后端进程早于最新修改启动;13:45 已完成当时版本重载,详见执行记录。此后本轮 Prompt 与错误码补丁尚未重载或发布;不可将历史重载记录理解为最新所有修改已在线生效。后台续接部署以文末最新记录为准。
  • TP06.24.3 劳动/承揽的六个未完成资产现已备份到 .runtime/launch-closeout-20260910/tp06-24-3-unfinished/,并仅逆向本阶段改动,六个源文件均精确恢复到 asset-baseline.json 的原 SHA。未使用 Git HEAD 覆盖此前成果;劳动/承揽新条款组合仍未完成、后置。隔离冒烟脚本已落盘;具体执行结果见后续记录,不能仅凭脚本存在认定验收完成。
  • 当前 published 资产、普通会员权限、真实模型与保存/下载的同一次端到端验收仍需核对;不拿历史管理员或合成测试代替。

历史冻结范围(已由多场景方案替代)

工程收口默认按采购、通用服务两个高频场景准备内部可用版:登录、选模板、填写/修改资料、确定性初稿、异步 AI 候选、查看差异、明确保存为版本、下载。仅发布实际通过验收并获授权的资产;某场景未通过就保留内部试用,不能冒充可发布。

不继续扩充行业/模板数量,不追求“覆盖所有合同”或“八精品全部完成”。劳动/承揽新装配、更多独立样本、自动修复增强、运营看板深化、双云/KMS 均后置。现有安全保护保留,不为赶进度跳过权限隔离、事实保留、版本保护或伪造审批。

三分钟是后续优化目标;现有数据不支持该承诺。首发必须真实显示后台状态、失败与实际耗时,不以无限优化耗时阻塞内部可用版。

剩余工作仅四项

项目 完成条件 停止条件
1. 固定发布候选 识别可交付文件和未完成改动,固定版本清单;具备回退方式 有无法安全隔离的改动,报告准确文件及原因,不继续扩面
2. 部署与最小主流程 在受控环境加载同一版本;普通成员与管理员分别验证权限;完成两场景起草→差异→版本→下载,并验证失败/取消、重复提交及撤回 只修阻断该流程的缺陷;不顺带重构或建设新平台能力
3. 有界真实模型冒烟 两场景各一条当前主链,按已有功能至多四次模型调用/链;记录成功、失败和耗时;不另造大型 runner/评测平台 单链失败立即诊断,不自动无限重试,不通过换样本抹去失败;小样本不宣称 99% 准确率
4. 一次性交付判定 输出内部可用/不可用、剩余阻塞、部署与回退步骤;必要回归只针对同一固定版本 第一轮收口以一个工作日为检查时间盒;即使未过线也交付阻塞清单,不自动续出新阶段。该时间盒不是生产上线日期承诺

验收通过即结束此次开发收口。后续增强进入待办,不自动变成此次完成条件。对外发布、真实租户资产发布、购买模型、开放注册及 Git 提交推送,仍按具体授权执行。

内部使用与对外上线分开

内部测试沿用用户指定的现有模型开发链。此前用户已决定生产时替换正式模型接入,因此这项材料不能阻塞内部可用版交付。

对外真实用户服务另核对正式模型配置、当前公开政策/披露、运行保护、备份恢复和发布负责人放行。现有注册门禁代码会聚合这些条件;本轮没有获取当前管理员 readiness 的完整运行结果,不能把历史报告的缺口直接认定为今日全部现状,也不会自动解除门禁。双云不列为核心上线前提。

证据

此次改变的是执行优先级和有限验收范围,不声称原来“全部模板与 Prompt 完整闭环”的无限扩充目标已经实现。目标工具仍显示 active,本轮未伪报 complete 或 blocked。

执行记录:2026-09-10 13:45

本次已完成可核验的代码重载与收尾,不新增产品功能或评测平台:

  1. 六个劳动/承揽资产恢复到修改前 SHA;未完成版保留,仍可恢复。代理执行现有 test_contract_scene_assets.py -k 'labor or works',33 通过(pytest cache 有非阻断警告)。
  2. 当前 SDK/AI/业务/Web 的既有 22 文件清单复验为 0 漂移。该清单是选定运行源码,不是完整仓库发布包。
  3. 一组普通成员发布态起草、跨服务运行绑定、交付质量与租户隔离回归:17 通过,0 失败/错误/跳过,94.166 秒,见 JUnit。这些测试使用隔离数据及合成 Provider,不是现场浏览器验收或真实模型质量验收。
  4. 重启前显式 PostgreSQL READ ONLY 全租户聚合:queued=0、running=0;AI 后端无 Codex CLI 子进程。随后重启两个 API,前端保持 PID 15700,数据库服务未重启。
  5. 最终业务后端 PID 11796,AI 后端 PID 4216;两个 health 均为 local/ok,前端 /login 为 200。运行 OpenAPI 已出现 DraftingCandidateRequest.auto_repair(默认 false)与 /api/v1/legal/contract-draft-semantic-review/jobs,重启前两者均不存在,证明新接口已被运行进程加载。
  6. 检查发现原启动配置的 database_auto_create、seed_demo_data 均为 true。第一次原样重启沿用了这些开关,会执行初始化/幂等 seed 路径,因此不能声称该次启动数据库零写入;未运行 Alembic 迁移命令、未主动覆盖合同。随后给既有重启脚本加上进程级 false 覆盖,仅再重载业务后端,运行配置已确认两项均为 false;用户 .env 未修改。脚本修改前备份在 .runtime/launch-closeout-20260910/restart-backends.before-init-guard.ps1。

现有受控本地重启入口仍为仓库根目录下 .runtime/tp06-10-dev-20260909/restart-backends.ps1。它只处理两个后端;每次使用前仍需确认没有活动模型任务。不要使用引用损坏虚拟环境且会额外迁移/启动窗口的根 start-dev.ps1。

现场只读检查确认:AI 披露仍为 codex-cli-development / gpt-5.6-sol / blocked;正式政策集返回 404 No effective public policy set is active;反滥用未启用、邮件为开发模式、身份限流仍用开发密钥。双云禁用是可选增强警告,不作核心阻断。这些是今日运行结果,不是仅引用历史报告。

尚未完成:普通会员浏览器主流程、两场景当前链路的有界真实模型冒烟、真实资产发布授权与发布操作,以及后台续接 worker 的实际启用/持久化恢复验收。浏览器控制工具因无法可靠识别当前 URL 而停止;本轮没有绕过检查,也没有把管理员登录成功或 API 回归当作普通会员现场验收。当前没有新模型调用、资产发布或注册放行。下一步只处理上述收口事项,不扩充行业或另起新阶段。

机器可读核验摘要:runtime-verification-v1.json。此时状态为“当前代码已加载、内部主流程待验”,不是完整目标完成或生产可发布。

执行记录:2026-09-10 14:10,采购正文修复及模型检查准备

两场景使用新建的虚构交易资料,不接触真实合同、个人信息或可转账账户。固定输入见 smoke-inputs-v1.json,原始 SHA-256 为 e8e228463490f50c7d54adabdfca0b2c7d49a652a8e7ae09f4b771767ac3353e。两场景的类型化输入校验均通过;这不是独立留出集或模型质量通过证据。

准备时发现一个实际模板缺陷:未填写采购的可选“分批交付安排”时,编译后残留“如涉及分批交付。”孤句。已将该条件调整为完整的独立可选句,保留风险转移、交付等必填事实,不使用补填虚构值掩盖问题。先复现再修复:新增三项回归修复前 1 失败、2 通过;修复后可选正文和条款装配相关回归共 39 通过、0 失败/错误/跳过,56.809 秒。

该模板改动尚未向真实租户发布,也未核验在线进程的模板缓存是否已重载。隔离模型检查固定使用 gpt-5.6-sol / medium / 300 秒 / full-v1,每场景至多四次 Provider 调用,关闭 fallback 和自动重试,保留失败及实际调用计数;仍只复用现有跨服务夹具,不建设新的评测平台。

本轮交付判定:2026-09-10 14:33

已结束的真实模型检查

最终计划为 model-smoke-plan-v2.json,SHA-256 5a971ff2e713b5659e498734aef263632d91c63b6db1b5a355f694063fb6a352。早期 v1 计划未真实执行,下载尾部核验修正后另存 v2,没有覆盖历史文件。执行前后验证通过:冻结输入、两个 Prompt、模板/输入 schema、已有 22 项源码清单及四项执行辅助文件均符合所选指纹;这不是完整仓库及所有依赖的可复现发布归档。

真实执行于 14:17 开始、14:32 结束,进程已退出,退出码 1;总计四次真实 Provider 调用,每场景两次,未触发修复、重试或 fallback。两场景均使用隔离 SQLite 业务数据、内存 AI 库、临时普通成员和隔离发布态资产,不调用在线业务/AI 服务,不写在线数据库。真实 Provider 使用现有 Codex CLI 开发接入;其成功生成回答不等于业务校验通过。

场景 起草任务 复核任务 主链结果
采购 succeeded;214.532 秒;正文与初稿逐字一致 模型自报 passed;业务校验 invalid,227.075 秒 未通过,停在复核;全链尝试 447.382 秒
通用服务 succeeded;227.314 秒;正文与初稿逐字一致 模型自报 passed;业务校验 invalid,227.902 秒 未通过,停在复核;全链尝试 461.691 秒

两个起草结果均保留输入的主体、金额、日期等,额外输出风险提示;它们没有改进正文,不能据此声称模型正文优化能力或法律质量已经验证。仅两条技术冒烟也不能推导市场准确率。本次单步起草均超过三分钟,完整流程未成功,不能声称“三分钟生成”指标达标。

原始证据保存在 model-smoke-real-v1:各阶段的 request、job、audit、output、assessment、执行身份及失败调用计数均保留。汇总 SHA-256 db25162d4a40f6fb70f62f6e04d7ad436225a6973c5021e25e227ca4df962eb8。没有用合成输出替换失败,也没有强改 passed。

只处理三个工程收口项

  1. 修复语义复核 Prompt/接口契约不一致(最高优先级,待实施)。 两场景各有一个完整正文 target,采购 1484 字、服务 2007 字;模型只返回开头摘录。SDK 正确要求 coverage check 的 excerpt 与相应 target 全文和区间相等,因此拒绝。服务另有空数组却引用 [0]、metadata ID 重复且引用悬空、对象提示仅摘 message 未返回规范 JSON、存在 inaccurate/ambiguous 结果却自报 passed 等问题。最小修改是明确上述字段不变量,并把这两份真实失败输出用作定向负例,不放宽校验、不另造评测平台。现有合成夹具直接复制完整 target,未暴露真实模型的截断/索引行为;合成通过与真实失败必须分别报告。
  2. 部署业务续接进程,并验收关页后续接(待部署)。 当前 AI background_tasks 只处理已经提交的单个模型任务,不负责业务工作区后续语义复核/修复;8100 未启用独立 drafting continuation worker。关闭页面后仍需重新打开并刷新才能推进。隔离检查已实际运行 one-shot 续接,起草完成后的两次均为 claimed=1 / synchronized=1 / deferred=0,但这不证明常驻进程已部署或重启恢复通过。部署时从与 8100 相同的服务目录、Python/PYTHONPATH、数据库及 AI 服务认证配置启动 python -m yuqei_contract_api.drafting_continuation_worker,设置唯一 worker 名及 CONTRACT_API_DRAFTING_WORKER_ENABLED=true,保持自动建表和 seed 为 false。先确认目标环境及待处理工作区,再有界运行;不要直接扫描真实历史任务并自动产生模型调用。现有重启脚本不包含此 worker。
  3. 同一版本的普通会员主流程及发布候选确认(待验收)。 仅采购/服务:选模板→填写→候选→差异→明确采纳→下载→撤回;同时确认失败提示与可恢复路径、权限隔离、页面关闭/进程恢复。当前浏览器工具无法可靠识别 URL,未执行现场会员验收;不得以管理员登录或隔离 API 测试替代。采购模板修复仍需受控重载及真实资产发布授权,未静默发布。暂不扩大合同种类,也不启动新的样本批次。

以上是本轮结束时的明确待办,不表示已实施修复,也不自动转入新的 TP 子阶段。修复完成后,只复验受影响的相同两场景,保留本轮失败基线并显式限制调用次数;出现新的阻断先报告原因,不无限增加样本直到通过。

已验证范围与上线边界

  • 下载证据检查已由“候选为文件正文前缀”改为全文一致或仅允许导出器的固定签署页尾部,拒绝其他附加正文。最终合成测试 7 通过,17.642 秒,零失败/错误/跳过;包含尾随内容拒绝、调用上限和两条合成主链。pytest cache 存在非阻断 Windows 警告。
  • 两条真实链均在采纳前停止。因此本次没有真实模型候选的采纳、下载、撤回成功证据,也没有自动修复成功证据;不能用合成测试填补这个结论。
  • 14:33 再核验:3000/login、8100/health、8101/health 均 200,进程仍分别为 15700、11796、4216。本次真实检查期间未重启这些服务。
  • 内部首发仍待上面三个工程项;对外上线另核对正式 Provider、有效公开政策、发布负责人及运行保护。13:45 检查的开发模式/政策缺口仍见前文。双云、KMS 扩展和覆盖全部行业不是当前前置条件。未开放注册、未提交或推送 Git、未冒充法务审批。

本轮使用 OpenAI Docs 技能核对指定模型和有界评测方法,未自行换模型;任务特定测试和自动评分不应被包装成法律真值或全面质量证明,参见 模型文档 与 评测最佳实践。

收口修复与失败复验:2026-09-10 15:12

实际修复,未自动发布

语义复核 Prompt 已明确全文 target 对齐、真实数组索引、对象规范 JSON、逐条唯一 metadata ID 与引用一致性,以及 passed 不得与未解决问题矛盾。新增 advisory 绑定仅由输入机械生成,提供索引和完整原文,不注入语义结论。原 SDK 校验继续严格执行,旧 published Prompt 仍按自身快照运行,没有自动替换真实租户资产。

保存的两份原始失败输出已加入四项负例回归:原错误必须继续被拒绝,而不是通过改断言或放宽校验变成成功。Prompt 修复后的跨服务合成回归 32 项通过,覆盖普通成员、持久化、续接、取消和篡改拒绝;耗时 111.204 秒,不是现场浏览器或真实模型验收。

真实复验结束后另补充安全错误码白名单:可保留 provider_timeout 等明确机器码,不复制可能含合同或凭据的错误消息,也不根据时长猜测原因。最新 56 项定向回归 全部通过,6.070 秒;包含前述四项负例,不能重复累加。最终语义执行模块 SHA-256 为 d33b27512001c7c76003cbf0b230dc02608e20447bb9fbd8690aa0b36e7bf8de。32 项跨服务测试和真实复验发生在该错误码补丁之前;错误码补丁已通过定向测试,但未再次调用真实模型或重载在线 AI 进程。

OpenAI Docs 技能促使本轮针对已观察到的输出契约缺口补充明确说明,同时保留服务端验证;结构化输出并不保证内容正确,参见 Structured Outputs。仍使用指定的 gpt-5.6-sol / medium / 300 秒 / full-v1,未换模型、接付费 API 或延长时限。

两次真实复验已失败结束,不再追加

复验仅重放第一次检查中保存的采购、服务语义请求,不重新生成草稿、不换样本;每场景一次 Provider 调用,总上限两次,无 fallback、自动重试、修复或采纳。隔离数据未写入在线数据库。

场景 复核 audit 耗时 保存结果
采购 300.114 秒 Provider 失败,output / assessment 均为空
服务 300.091 秒 Provider 失败,output / assessment 均为空

两例保存的 job code 都是 provider_run_failed,audit error 都是 draft_semantic_review_provider_failed。虽然接近配置的 300 秒,但旧执行模块抹平了底层错误码,因此不能确认是超时;新错误码补丁不追溯改变旧证据。完整记录见 semantic-recheck-real-v1,汇总原始 SHA-256 ea747fe7f69a0019ccd3c67d4f518082ce0d0a650a9eb718b6670fc62d83ab4f。执行器已退出,选定源码运行期间无漂移;本次语义模块指纹为 08d9160f640bd3394cd2dadc408e5599b0f863749c2a46fcf09e751801c49139,与后补错误码的最终源码区分记录。

结论:代码与合成验证通过,真实模型修复效果未证实;不发布新版 Prompt,不再追加真实调用。本次连同首批共六次真实调用,不是三十条质量基线,更不是全面质量合格。

仍然只交付首发两场景

启动器 .runtime/launch-closeout-20260910/start-drafting-worker.ps1 已完成语法检查及无参只读预检:Ready=true / Started=false。配置仅允许在 local/test、明确 loopback 且在线 AI 确认不要求鉴权时无密钥启动;远程、鉴权要求或未知状态会拒绝。初版因缺 key 就断言必然 401 是误判,已按在线 service_auth_required=false 纠正,未改鉴权设置。最终脚本 SHA-256 fda1add340b4a4f84966ad8655c5967a6ecbdeda69fbf933c861f36ae56caac2。

余下工作不新增子阶段:工程侧解决明确的模型调用失败并完成同一版本会员流程;真实租户发布和对外上线仍需明确发布授权与正式政策/生产模型配置。双云、更多行业与大批样本不加入此次完成条件。浏览器工具故障尚未解除,不绕过其检查,也不把服务健康、进程存在或合成回归说成现场用户验收。

后台续接实际部署:15:14–15:15

15:13:59 的新只读快照确认:业务库 5 个工作区、10 个候选、无无效 payload,符合续接条件的候选为 0;AI 库 queued/running 任务为 0。两个查询均为 PostgreSQL READ ONLY 事务,不实例化会初始化数据的 repository。

随后仅运行 & '.\.runtime\launch-closeout-20260910\start-drafting-worker.ps1' -Start,隐藏启动 Python 模块 yuqei_contract_api.drafting_continuation_worker,PID 2728,独立 worker 名 drafting-continuation-worker-launch-closeout-20260910。沿用业务服务目录和数据库配置,自动建表与 seed 均为 false;未重启前后端、未改 .env、未发布 Prompt 或模板。

15:15:07 再查,进程仍存活,准确命令行与指定解释器一致;.runtime/launch-closeout-20260910/drafting-worker-20260910-151431.out.log 和 .err.log 均为空,未观察到启动错误。3000/login、8100/health、8101/health 均为 200。此项只证明常驻进程已启动并短时存活;没有人为新增线上候选或触发真实模型来演示,不声称关页后完整链路和故障恢复已验收。

这是当前开发主机的独立进程,不是已经具备开机自启与进程守护的生产服务。需要回退时,只停止经命令行和解释器复核仍属此 worker 的 PID 2728;若 PID 已变化则重新识别,不能连带停止 3000/8100/8101。启动器拒绝重复实例。模型失败诊断、普通会员验收及发布候选确认仍未完成,本轮停止扩面并交付明确状态,不自动宣称原完整目标达成。

单请求失败定位:2026-09-10 15:32

上一轮属于实际进展(源码修复、定向回归和续接部署),不是单纯等待。本轮继续检查首发真实调用失败,不扩充场景。

执行器修复与测试

发现 parse_codex_jsonl 原来只凭 item.completed 中的消息就返回回答,未确认 turn.completed。合成反例证明:只有中间回答、随后 turn.failed 或只有错误事件时,进程退出码 0 仍可能被当成成功。现已要求当前 turn 成功结束才提交回答,新 turn 或失败会使旧消息失效;可恢复 error 后同 turn 正常完成仍可成功。此修复保留原合同和 SDK 校验,不证明已解决长耗时。OpenAI Docs 技能用于核对 JSONL 终态含义,参见 Codex 非交互模式。

  • Provider、审查与语义执行器联合回归:101 通过,0 失败/错误/跳过,9.748 秒。已同步修正一个缺少成功终态的旧 fake-runner fixture。
  • 现有冒烟执行器及安全诊断回归:11 通过,0 失败/错误/跳过,21.950 秒。首次全文件执行有 2 项被历史源码指纹正确拦截,保留 v1 失败记录;新版测试使用临时新快照和相同文件清单,未改写历史 manifest、plan 或取消漂移检查。真实执行仍严格使用运行前后指纹。
  • 当前 Provider 模块 SHA-256:abe7f943fa2eba317ed3aa4deac196b5c82fcff5e0e33cddf56a9e4a9485ab1b。上述补丁尚未重载在线 AI 进程。

已确认与仍未知的原因

现有 recheck-semantic.py 增加单场景选择和只记录进程状态/已知事件名计数的诊断。未记录原始 stdout、stderr、消息、工具内容或凭据。本次只重放采购原请求一次;仍是相同冻结输入、gpt-5.6-sol / medium / 300 秒 / full-v1,未改 Prompt、换样本、放宽校验或追加重试。

15:25:42 开始模型调用,15:30:42 结束:诊断明确捕获 TimeoutExpired,进程等待 300.072 秒,整次隔离尝试 307.271 秒。收到 thread.started=1 / turn.started=1 / error=4 / item.completed=1,未收到 turn.completed 或 turn.failed。job 失败,安全错误信息、audit 与 evidence 均保留 provider_timeout;output / assessment 为空。不能将一条 item 事件视为完整回答,也不能仅凭四条 error 断言是网络、鉴权或限流问题。

证据:进程诊断、执行汇总。汇总原始 SHA-256:f58056618bb46d6d6a4c75844161cbf3003e629858704387974c0cc797762192。选定源码运行前后完全一致,根执行器与其 Codex 子进程均已退出;本轮只调用一次,累计七次,不再追加。本次证明的是本次超时,不能追溯改写前两次保存为通用失败的事实。

账号限额只读查询显示当前 Codex 周窗口已用 61%,未报告额度耗尽或 spend control 阻断;未使用额度重置、未购买任何资源。此结果不能排除瞬时服务限流。当前先核对已有诊断日志中的错误类别,不在原因未知时反复调 Prompt 或加大超时。

用户恢复路径的核对边界

源码已具备“复核失败”提示、允许时按原候选明确重试、保留候选正文、进入人工编辑并另存候选;未发现需要再建一套恢复机制的阻断。语义失败不自动采纳或覆盖原稿。页面尚未单独消费 evidence.provider_error_code,属于提示精度不足;现有流程的代码检查不是普通会员现场操作验收。本次未操作真实租户数据、未发布资产、未解除注册门禁,也未重启在线前后端。

15:34:26 再核验:3000/login、8100/health、8101/health 均为 200,后台续接 PID 2728 存活;当前仓库默认换行设置下 git diff --check 返回 0。这些健康结果不替代真实模型或浏览器主流程验收。

后续只读日志核对已结束:本次进程与 15:25:42–15:30:43 时间窗没有可定位的诊断日志;唯一相关临时目录只是空锁和 CLI 辅助脚本,不含事件内容。未读取认证或其他会话正文。故四条 error 的具体原因仍不可追溯,本轮停止检查,不继续盲试。

调用计数的准确口径:上述“一次调用/不自动重试”均指应用适配器调用与应用任务层;当前证据未统计 Codex CLI 内部网络请求或重连次数,不能把一次适配器调用等同一次网络请求,也不能据四条 error 猜测实际重试次数。下一步应先解决这一调用链诊断缺口,再进行有依据的连接或执行修复;不靠取消语义检查、延长等待或反复换样本取得表面通过。

最终检查交付:2026-09-10 16:00

正常返回后暴露的具体问题

本轮只重放原采购语义请求一次,仍使用 gpt-5.6-sol / medium / 300 秒 / full-v1;应用层无自动重试、fallback、修复、采纳或线上数据写入。进程在 259.461 秒正常退出(退出码 0),收到 turn.completed=1,整次隔离尝试 264.837 秒。此前超时证据仍保留,不能说本次同样超时。

模型输出完整的原稿与候选覆盖摘录、正确的提示索引和规范内容,但把 coverage.target_checks[0].candidate_excerpt、candidate_occurrence 填为 null,且没有 finding 解释;实际两份正文完全相同。SDK 因而正确报出 target_check_finding_unrelated、target_check_unaccounted 两项错误,job 仍为 semantic_review_validation_failed。候选侧的完整检查不能替代原稿到候选的对应记录;模型自报 passed 不等于业务验收通过。

原始结果:执行汇总、进程诊断。汇总 SHA-256 为 b05e3d7094481044edefc8321ab383ac2d388f14a99d8219324dffd898413137。执行前后所选源码指纹一致,本次使用的语义模块为 d33b27512001c7c76003cbf0b230dc02608e20447bb9fbd8690aa0b36e7bf8de,不是下述执行结束后才修改的版本。

最小修复与验证边界

  1. Prompt 版本更新为 core-closeout-20260910-3:明确“正文未修改”不能以 null 表示对应关系;原段仍存在时须给出可定位的候选摘录与 occurrence,删除或无法对应时须引用实际解释该原段的 finding。未放宽 SDK 校验、未代替模型填写事实或结论。
  2. 新增真实失败负例,确保保存的 null 对应输出仍被拒绝。另在深拷贝中只补对应字段验证既有接口契约,属于合成传输示例,不修改原始失败,不算真实成功。原采购/服务其他失败负例全部保留。
  3. 页面已有恢复路径继续保留;新增安全错误码的中文说明,显示超时、未完整返回等可定位原因。失败不覆盖原正文,不改采纳权限或重试上限。未进行浏览器现场渲染/会员 UAT。

最终 后端联合回归:152 通过,0 失败/错误/跳过,31.824 秒;前端状态测试:12 通过,0 失败/错误/跳过;npm run typecheck 退出码 0。后端测试中的 Pydantic serializer 警告来自故意构造字典类型的 SDK 负例,不影响断言通过。较早 117 项回归与最终 152 项范围重叠,不累加宣传。最终语义模块 SHA-256:f249ae4c2469f08f37b5bf1583af293185f98c9a856bbd9942abe510ce300f65。

OpenAI Docs 技能用于核对指定模型及精简、针对已观察缺口的 Prompt 修改方式,未迁移模型、延长超时或引入付费接入;参见 GPT-5.6 Prompt 指南。该最终 Prompt 补丁尚未再次调用真实模型验证,未重载在线 AI 或发布租户 Prompt,不能把上述回归称为模型质量达标。

诊断与运行状态

现有诊断脚本增加纯 JSONL 分类函数,只输出固定事件计数、允许的状态码与错误类别,不保存原始 stdout、stderr、消息、URL 或凭据,也不改变生产调用逻辑。本次四条 error 仅能归为 unknown,而后同 turn 成功结束;不能据此断言限流、鉴权、网络故障或实际重试次数。

只读核对实际 CLI 为 codex-cli 0.153.4。模型进程曾与本机 7897 代理端口建立连接;未修改网络设置,也没有证据认定代理是原因。当前已定位具体输出契约错误,停止扩展网络排障。应用适配器累计调用为八次,CLI 内部网络重试仍未测量,不等同八次网络请求。

15:59:28 再核验:3000/login、8100/health、8101/health 均为 200,后台续接 PID 2728 存活,最后一次诊断的 Python/Codex 进程已退出。git diff --check 返回 0。本轮没有重启前后端、操作真实合同、发布资产、开放注册、提交推送 Git 或冒充法务批准。

**本轮到此交付,不再追加真实调用或开发阶段。**尚缺的真实修复复验、同版本两场景端到端及普通会员现场验收按文首清单管理;基础服务正常不等于主流程验收,内部开发待验不等于可以对外上线。

原样本最终复验:2026-09-10 16:12

上一轮实际修改与测试属于进展,不是无进展等待。本轮按既定上限并行执行采购、服务各一条冻结语义请求,不重新生成草稿、不重试、不触发修复、不连接在线业务数据库。继续使用 gpt-5.6-sol / medium / 300 秒 / full-v1 和最终 Prompt core-closeout-20260910-3。两个任务均已终态,对应 Python/Codex 进程已退出。

原样本 Provider 进程 业务结果 整次隔离尝试
采购 273.105 秒正常退出,收到 turn.completed succeeded;模型 passed;SDK valid,0 错误 279.765 秒
服务 300.057 秒 TimeoutExpired,无 turn.completed failed / provider_timeout;output、assessment 为空 307.166 秒

采购此次完整填入原稿与候选对应的 1484 字正文和 occurrence=1,五条 advisory check 合法。用当前 SDK 离线重新计算得到与保存 assessment 完全一致的 valid;semantic_correctness_verified、legal_correctness_verified、authorizes_adoption 仍为 false。它证明该原样本本次输出满足技术证据契约,不是法律正确性或自动采纳授权,也不是同次采纳→下载→撤回完整验收。

服务有五条 error,其中安全分类器观察到 network/stream_disconnect(依据 message-signature)和 unknown。可以确认超时并出现断流特征,不能定位到代理、提供方或具体网络节点,不能判断最终 Prompt 在该样本上的效果,也不能由事件数推导网络重试次数。采购本身也有四条 unknown error,随后正常完成;保留两种结果,不一概归因网络失败。

  • 采购执行汇总,SHA-256 ebf917c18ffb418b5b540ec8dd6f093f48002e9a48ccd2d4ccf3d134b28c85ee。
  • 服务执行汇总,SHA-256 4cfc1a3d9a7332326ef8d09fbebc59403a1183183d7599fb0f054fc7cace947c。

两次使用相同语义模块 SHA f249ae4c2469f08f37b5bf1583af293185f98c9a856bbd9942abe510ce300f65,执行前后所选源码一致。两条均为既有开发样本,不能称为独立留出集或统计质量基线。累计十次适配器调用包括所有历史失败,不能以本次采购成功删除失败分母。本轮到此停止模型调用,不继续调 Prompt、延长超时或追加样本。

OpenAI Docs 技能本轮用于再次核对指定模型及 JSONL 成功终态约定,未调整接入和权限;参见 指定模型 与 非交互模式。原完整目标保持未完成;当前先交付两场景核心路径,行业扩充继续后置。

同版本完整验收准备:16:15

现有 run-core-drafting-smoke.py 的准备入口硬编码历史源码清单,当前修改会被历史指纹拦截。两个真实请求终态之后才修改该脚本,增加仅供 --prepare 使用的 --source-manifest;默认历史路径保留,执行/验证时不能另传清单覆盖已冻结的 plan。清单必须包含原 22 个选定源码文件,拒绝空、重复、缺项、绝对或越界路径、缺文件、无效哈希及源码漂移。既有 Prompt、输入、模板和运行辅助文件的检查保留,未改任何历史 manifest 或 plan。

专项回归:20 通过,0 失败/错误/跳过,JUnit 耗时 24.036 秒;包含已有合成两场景采纳、下载、撤回主链,不能算真实模型端到端通过。当前 runner SHA-256 为 ba0d28d6368f3650a9e3032942e3dd000c4f0f048d2ca1e364ce19c48385edef。

新建 当前 22 文件清单(SHA 5b31664b52bc8d0ef4ca8193abcee0a20667c763ffacce09a5876438c8a40535)及 完整主链待执行计划(SHA 28c3c5f43b9b263a48dc7976fdf6e18271f3d4f93bbe712fc9badb5beb7e9f72)。现有 CLI 实际完成 prepare 与按上述 plan SHA 的 validate,均为 0 次模型调用。计划仍使用原输入及每场景最多四次适配器调用的既有主链预算,但本轮没有执行该计划,也没有因此追加调用。该清单是选定源码快照,不是完整仓库/依赖发布归档。

16:15:25,前端及两个后端健康检查均 200,续接 worker 仍存活;git diff --check 为 0。没有重启服务、发布真实租户模板/Prompt、开放注册或提交推送。下一步只针对已冻结主链的明确阻断继续收口,不新增重放平台、行业资产或评测阶段。

固定版本完整主链验收:2026-09-10 16:38

本轮执行已准备的 core-final-plan-v1.json(SHA 28c3c5f43b9b263a48dc7976fdf6e18271f3d4f93bbe712fc9badb5beb7e9f72),没有换输入、改 Prompt、变更超时或追加批次。16:18:57 启动执行器;最终退出码 1,汇总 passed=false,实际四次真实适配器调用,两个场景各两次;没有触发自动修复、应用层重试或 fallback。CLI 内部网络调用次数仍未知。

场景 起草模型耗时 复核模型耗时 本次业务链结果
采购 succeeded,219.044 秒 succeeded / passed / valid,296.511 秒 采纳 200、DOCX 下载 200、撤回 200;完整隔离链通过
服务 succeeded,218.008 秒 failed / provider_timeout,300.111 秒 无复核输出和 assessment,在采纳前停止;未通过

这次不是将另一次保存输出拼进合成流程:采购起草和复核均由真实 gpt-5.6-sol 调用产生,后续在同一个临时 SQLite 业务夹具、内存 AI 库及普通 business 身份中完成。发布动作属于隔离夹具;业务调用使用实际创建的普通用户,可信代理测试头不是浏览器登录会话。在线数据库和在线 API 均未参与。

采购原稿、已复核正文、采纳正文、撤回后的原稿 SHA 均为 c491175906e601f45c2c6731d34586269d0a40fcd1455701a47c3d3a2795e4a3。因此本例 AI 保留了确定性初稿,没有改进或重写正文;不能由通过推导出“正文优化效果”。下载 DOCX 38286 字节,提取正文与候选一致;采纳后版本数为 2,撤回后为 3,原版本未删除。两次后台 one-shot 续接均 claimed=1 / synchronized=1 / deferred=0;这证明本次隔离后端续接,不等于在线常驻 worker 的关页及故障恢复验收。

证据:完整执行汇总(SHA 8fdb021f5a52b38ab1c0de91a35a8a62d266badfe9f91809da9059757d7517ec);采购完整结果(SHA 6a77021d05d140834afb45695295cc487b38dc004ce3d9682c8656b8882206c6);服务复核失败。汇总保留完整工作区快照,体积较大;本轮终端显示曾截断且中文出现编码失真,结论均来自 UTF-8 本地原始 JSON,不依据截断终端正文。

执行前和结束后再次运行同一个 plan SHA 的 validate,均通过、模型调用为 0;运行窗口内没有修改固定源码,runner 仍为 ba0d28d6368f3650a9e3032942e3dd000c4f0f048d2ca1e364ce19c48385edef。这仍是选定源码及辅助文件的验证,不是完整仓库/依赖的发布归档。本轮没有为得到通过而删除或更改之前的失败记录。

现场验收与剩余阻断

Computer Use 技能要求在可确认页面和身份时操作,本轮使用推荐的浏览器专用接口,只读枚举两次均报 nodeRepl.fetch request failed,未返回任何浏览器或标签页。已停止 UI 操作,没有改用原始会话/凭据、替代登录或绕过识别检查。通过非阻塞问题请求用户以普通会员打开 http://localhost:3000/drafting 并提供网址、截图,不索取密码。/drafting 是起草记录页;新建入口为 /legal-documents,之后进入 /drafting/{id}。

现场需核验实际模板状态与内容版本:页面既可能展示 published,也可能展示获授权的 internal_trial,后者只能算开发试用,不能称真实发布态。管理员不能替代普通会员的 owner/tenant 隔离、禁止发布、明确采纳、下载与撤回权限验证。当前在线模板/Prompt 未更新,隔离模型结果也不能自动代表在线版本。

只读连接配置审查没有证明一个可以立即更改的错误:当前适配器未显式配置传输和内部重试,官方 custom-provider 重试默认值不能反推本次实际行为。服务此前出现断流特征,本次确认超时;采购正常复核已接近 300 秒,说明时限余量小,但不能据此保证延长时限就会成功。因此本轮未改代理、传输、模型或超时,也不再调用模型盲试。OpenAI Docs 用于核对成功终态与配置证据边界,参见 Codex 非交互模式。

16:38:20 健康检查:3000/login、8100/health、8101/health 均 200,续接 worker 存活,验收执行器已退出;git diff --check 为 0。剩余仅按收口顺序处理服务复核稳定性、经授权的在线候选版本部署/资产发布、普通会员现场验收及必要运行恢复验证。更多行业、双云和新增评测平台继续后置;原完整目标未完成,不伪报 complete 或 blocked。

后续调用停止线:没有新增诊断证据、可核验的连接修复或用户确认的运行条件变化前,不再原样重复当前服务的真实调用,也不再整批重跑两场景。不得仅因为自动目标续跑就重置这一限制;先交付并处理明确阻断。