完善借款、编号、付款与预算并发及验收(09-06-release-gate-integrity)

汇总已落盘的借款本金与还款、兼容历史编号的周期化编号、付款责任与回单核验、报销进度和排序、PWA/采购事务、错误原因与日期校验及ERP退役。
统一共享预算池锁序和锁后判断,恢复差旅原预算选择,补原因码固定夹具及反向完整性检查。
纳入配套迁移、测试、受管QA、分层验收合同、规约及任务记录;原始证据留在ignored artifacts。

关联任务:09-17-company-loan-principal-repayment、09-17-erp-exclusive-retirement、09-18-reimbursement-periodic-numbering、09-08-reimbursement-payment-closeout、09-18-local-concurrency-product-fixes、09-19-budget-pool-concurrency、09-05-error-explainability-payment-readiness。
预算补审由Claude定向验证2文件928项通过,原4446/28及r6结果仍仅对应各自历史输入;本轮未重跑测试。
完整新候选门禁、R1真实入口接入与12项公网义务仍开放。生产编号未启用、差旅仍冻结;不推送、不部署,不宣称发布资格。
这个提交包含在:
2026-09-19 13:11:04 +08:00
父节点 729d90576f
当前提交 1f8d5b658a
共修改 367 个文件,包含 21079 行新增和 12287 行删除
@@ -1,5 +1,602 @@
## 2026-09-19 用户已授权主会话执行两笔本地提交(最新)
用户明确要求“提交就你来提交吧,不用发给claude了”。主会话接管最终分组及本地提交,之前Claude打包请求不再等待执行;授权限本地提交,不含推送、R1启用、部署、生产编号或真实业务动作。
提交前核对当前392个路径与只读盘点清单一致、暂存区空;建立本地分支codex/20260919-reviewed-candidate保存原detached工作树候选。按两组提交:纯Trellis升级/知识精简及其任务记录;其余关联业务、测试/QA、业务规约及任务记录。两份有效JSONL与Python测试夹具纳入,22项原删除保留;artifacts及个人日志不纳入。完整路径/摘要、实际提交SHA和收尾状态记入artifacts/qa-governance/local-commits-20260919,不覆盖旧回执。
首笔治理提交已完成:729d9057(25文件);其余367个文件由本次集成提交保存。提交完整SHA和最终干净状态以本轮result.json为准。
本轮不重跑测试,只核对提交范围、内容摘要及差异格式。928项独立验证与历史4446/28等结果保持各自输入归属;提交不会把原FAIL/130变成PASS。B1完整新候选门禁、B2 R1接入及B3部署后公网义务仍开放,提交完成不代表发布资格或整个发布任务完成。
## 2026-09-19 发布准备盘点已接回:提交分组决策(已确定)
已核Claude的release-preparation-claude-20260919T050016Z报告与清单。392条为该盘点时点;B1当前候选完整门禁未通过、B2真实发布R1未接入、B3部署后12项公网未验,分别保留对应边界;预算补丁不再是阻塞。当前未授权提交/推送、R1启用或部署。
主会话决定:两份JSONL都有真实有效引用(implement2条/check1条),随所属任务纳入;deployment-command-client.py为现有生命周期测试直接依赖的Python3标准库夹具,跟测试纳入,不作为生产/BIFF8依赖;提交计划从10笔改为2笔(纯Trellis治理及记录;其余关联业务/测试/QA/规约及记录),混合文件整体归后者,不拆共享文件hunk。原删除分项应为7源码+14ERP测试+1旧e2e=22,原证据不改写。
Claude下一步只生成最终两组精确路径/SHA/中文说明与唯一覆盖核对,不执行提交或测试。交接:artifacts/qa-governance/release-commit-packaging-claude-request-20260919.md。待范围明确且相应授权到位后安排执行;R1源码变更先于最终候选完整验收,避免先全量再改候选。用户要求机械执行/测试交Claude,主会话负责取舍与接收。
## 2026-09-19 下一步分工:Claude整理发布准备包(交接记录)
用户要求机械执行交Claude,主会话负责范围/风险/验收决策。预算本地修复及独立复核已完成;先让Claude限定只读整理拟提交文件与任务归属、当前候选证据关联、R1接入及12公网/编号启用的既有前置项,不重新审已通过的预算补丁,不运行测试。
交接:artifacts/qa-governance/release-preparation-claude-request-20260919.md。此时为HANDOFF_READY,尚未收到执行结果。产出具体提交/发布准备清单后再处理决策和已有授权边界;不提前跑另一轮全量,不视本计划为提交/推送/部署/生产编号启用授权。只新增ignored报告与机器文件清单,Claude不改源码、任务或原证据。
## 2026-09-19 预算补丁独立复核与定向测试完成(已完成阶段)
Claude已执行两份限定测试:2文件928项通过、0跳过、exit0;主会话核对报告、原始日志及补丁before/after各10份SHA一致。差旅选择口径与原因码夹具两项必修均关闭,预算补丁状态LOCAL_VERIFIED_INDEPENDENT_REVIEWED,无需重复相同测试或补审。
预算任务B7完成,B6发布完整门禁延期不补勾;累计其他业务未读范围与外部义务不因此变成整体PASS。旧预算候选原始FAIL/exit130、旧4446/28及中止浏览器日志保持原输入归属;deploymentEligible=false,无提交推送部署。证据:artifacts/qa-governance/budget-pool-concurrency-20260919/review-fixes-20260919/claude-result-reception.json。本次仅回填任务记录。
## 2026-09-19 预算独立补审两项修正已落地,测试交 Claude(交接时点)
budget-pool-claude-review-20260919T043257Z.txt 已接回:锁/事务/完整性等分项PASS,两项必修。主会话已恢复差旅submit原预算上下文(移除新增departmentId),加强精确上下文及部门/全局并存测试;新增budget.pool_changed固定夹具,并补全部用户原因码的注册→夹具完整性断言。不是预算政策调整,不碰历史数据。
按用户明确分工,修复后仅两份定向测试交Claude执行;主会话不继续测试、不重跑全量/浏览器。修正前新增断言红例4失败/923通过,修正后尚未运行,独立通过待确认。证据与精确命令:artifacts/qa-governance/budget-pool-concurrency-20260919/review-fixes-20260919/claude-test-request.md。原4446及原30文件审查对应修正前输入,原包/回执不改写;当前整树无发布资格。
## 2026-09-19 预算修复本地验证完成;重复全量浏览器已中止(首批本地验证记录)
用户明确指出本轮后端预算修复后重复全量浏览器过于浪费,主会话据此停止 budget-full-r1 剩余浏览器并清理受管环境。已完成的后端225文件4446项通过/1原条件跳过、8个启用服务回归组、审批动作、Prisma及前端typecheck/build保留;针对性真实PG28项与单测526项结果保留,不再重复。实际接口/事务覆盖已足够支持本补丁本地结论,没有追加浏览器运行。
浏览器29通过/4中断/339未运行,零重试;原始整轮FAIL/exit130,localChecksPassed=false,不能称完整本地通过。环境PASS、source/repository不变、owner容器/scratch清理完成。发布前完整门禁、33页/7组及12公网义务仍保留,待准备发布时集中执行,不以旧r6抵扣。
修复状态LOCAL_VERIFIED_REVIEW_PENDING,实际补丁Claude只读复核待回。新增证据及交审请求:artifacts/qa-governance/budget-pool-concurrency-20260919。后续任务记录/证据变化不触发业务全量重跑。无提交推送部署或真实外部动作。
## 2026-09-19 预算并发补丁定向验证完成,待新完整候选(运行前记录)
用户明确批准 09-19-budget-pool-concurrency 方案。已统一报销/采购/冻结差旅的池锁与锁后预算判断,处理授权→预算锁序及 Decimal 额度边界;真实隔离 PG 28/28、受影响单测 33 文件 526 项通过。证据:artifacts/qa-governance/budget-pool-concurrency-20260919。独立发现仍保留原 FAIL,修复状态为 TARGETED_LOCAL_VERIFIED_FULL_GATE_PENDING,实际补丁的独立审查未通过前不关闭 finding。
现冻结新候选,从 static 完整重验;旧 g20-full-r6 的 4437/372 仅代表历史输入,不能抵扣当前代码。保留全部分层验收、33页/7组、并发、预算和零重试。浏览器用已有缓存的独占物理副本,无下载。旧 registry 保护例外与 CSV NOT_RUN 不改写;无提交推送部署或公网/生产/真实业务动作。
## 2026-09-19 业务定向补审已接回:预算并发缺陷待修(接收时点,历史)
已读取 `artifacts/qa-governance/business-followup-claude-review-20260919T023537Z.txt` 全文(9566字节)。b1rubx7qf 已完成,不再记为“审阅仍在跑”;本报告是只读源码/既有测试文件核对,没有新运行时测试。
- P9 feeControl 合并读取:PASS;报销已审写路径锁序及 submit 事务内重验:PASS;不据此宣称 workflow snapshot 内部及所有撤回/付款/关联分支均已逐行覆盖。
- 预算池并发:FAIL,主会话源码核对确认。报销提交、purchaseBudget 占用/释放及 travelPayments 增减共四处先无锁读、后写绝对 used_amount;这些计数片段与 HEAD 旧实现相同,不归因为 P9 新增。独立任务 `.trellis/tasks/09-19-budget-pool-concurrency/` 已落 PRD/design/implement,仅 planning,实施待批准;问题尚未修复。采购权威预检当前在事务外,是同一修复必须覆盖的陈旧判断路径。
- K0 加解密合成合同:独立静态 PASS。主会话另核冻结 manifest、6件文件以及当前3个代码/测试输入一致;不归为 reviewer 重算或真实恢复验证。脱敏不在合同内、通知密钥迁移脚本不在 K0/K1/K2 默认执行范围,澄清见 08-23 最新三份任务文档。
- 累计业务独立复核为 PARTIAL_WITH_BLOCKING_FINDING;不是整体 PASS。未读的 workflow snapshot、部分路由业务分支及其余 crypto 消费者仍按实际风险列项,不要求无目的重审整个仓库。
本轮只完成报告接收、原有任务回填、K0 范围澄清和新修复规划;不改产品/测试,不重跑旧4437/372或恢复,不改旧失败/冻结包。旧 r6 的历史通过记录保留,但当前已知预算缺陷单列为发布前待修;deploymentEligible=false,12项公网、生产编号、真实银行接受性和K1/K2仍保持原边界。新增证据:artifacts/qa-governance/business-followup-reception-20260919。
## 2026-09-19 Claude 累计业务审阅接收(部分覆盖,历史)
用户提供 Claude 独立只读报告,称借款核心资金路径、编号关键路径、付款责任/通知事实投影和 ERP 删除引用检查无阻断发现;PWA/采购仅部分覆盖。借款页面为抽读,费用控制与报销并发段未逐段审完,K0 合同未补读。因此累计业务独立复核记 PARTIAL,不把“有条件通过”当作完整 PASS;原 4437/372 验收不重复运行。
主会话核对意见后的处置:
1. 银行客户序号形态改变属生产编号启用前的外部接受性待验项,保留明确确认义务;本地长度/字符集通过不证明银行接受,不因此改旧编号或材料。
2. eligibleLoanReviewers 返回单人用于新申请通知接收人,不是唯一审批人绑定。paymentResponsibility 读取时按当前资格列全部可复核人;review 路由重验当前操作者,不要求其在旧通知名单中。故“离职后被指派而无法改由其他人复核”的缺陷未成立;人员变化后的主动补提醒未验证,不擅自增加全员通知或新转派机制。
3. PURCHASE_REQUEST_SUBMITTED 的事务外 audit 与当前 HEAD 原代码逐字一致;有 catch + fastify.log.error,不能称静默丢失。审计失败不回滚业务是既有风险,本轮不扩大为事务语义变更或旧代码修复。
4. 1076 个业务输入与 r6 相同表示该快照之后代码未漂移,不代表它们相对 HEAD 干净;整树 dirty 包括已存在于 r6 的未提交业务改动,不能归因于仅任务/文档/artifacts。
下一轮 Claude 定向补审:feeControl.js 预算/标准口径;reimbursements.js 并发、锁序、事务内判定/审计;08-23 K0 合同与本地检查覆盖。先补这三项明确缺口,再按实际覆盖确认是否还有未读消费者/页面/迁移。主会话核对不抵扣独立复核;发布 R1、12 项公网、编号启用和真实业务证据继续保持原授权边界。
Trellis 0.6.17 的独立 PASS 单列于 09-05 任务,不移用为业务 PASS。反馈核对证据见 artifacts/qa-governance/trellis-0617-review-followup-20260919;未改业务代码或原始交审包。
## 2026-09-19 独立核实反馈已确认(限数量与证据归属)
用户后续独立核实并确认:r6后端4437通过/1原条件跳过,旧4428来自P10之前;UTC/北京时间换算、阶段先后和累计diff基线争议已闭合。用户另报告当前purchase-request.errors.test.js复跑75 passed、EXIT=0、SHA为2b9ec41d…;此项按用户提供的复核结果登记,不冒称主会话新跑或已取得该次原始日志。
用户同时确认33页/7组、372/372浏览器零跳过/零重试,以及386=372本地+12公网+2冻结与证据一致。此次独立核实范围为测试数量、时序和证据归属;当前累计业务实现的完整独立只读review仍PENDING。
发布边界保持:dirty、运行后task记录变动,deploymentEligible=false、currentTreeCoveredByOldReceipt=false、productionNumberingActivated=false。旧WebKit派生registry baseline FAIL与历史CSV校验工具NOT_RUN两条例外保留,无新增漂移。原始回执及增量包不改写,详细SHA核对仍见review-provenance-20260919.json。本次仅更新任务记录。
## 2026-09-19 外部审查反馈:运行归属与差分基线核对
用户提供的审查正确指出历史backend-full-result.json记4428、r6记4437及当前整树无发布资格;但“同一候选、r6后又改产品测试”的推断不成立。以下统一北京时间(UTC+08:00),以原始阶段时间和内容SHA为依据,不以dirty/untracked或diff生成mtime推断改动时点。
1. 旧独立全量日志Start at为23:52:35,结束文件mtime为09-19 00:01:32,537.01秒,4428通过/1原跳过,采购错误测试66项。旧644输入摘要与r6相比恰好两处变化:purchaseRequests.js和purchase-request.errors.test.js,属于之后的P10修复,不能当作同一候选。
2. 采购测试最后修改为09-19 01:55:08;r6回执startedAt为09-18T18:25:05.724Z,即09-19 02:25:05。其server-unit阶段为09-19 02:32:17—02:40:55,晚于该修改,4437通过/1原跳过、采购错误测试75项。9项差值是P10新增边界用例。
3. 争议测试的旧SHA为c681dc09…;r6环境回执sourceBefore、sourceAfter、r6收口输入清单和当前均为2b9ec41d…(完整SHA见机器回执)。环境证据SHA与原release-result引用一致。当前1162条产品/测试/QA/spec快照(含22条原删除项)与r6前后摘要相同,新增/缺失/改变均0;1076个收口代码输入也无变化。untracked已被正式快照的--others覆盖。
4. final-incremental-review.diff在03:58生成,但其基线由build-final-review.py明确为本轮开始prior-files快照,未在其中的文件使用HEAD/新文件基线;不是r6结束后的差异。25文件中10个产品/测试文件及2个spec的最终SHA全部已包含于r6开始前。当前已跟踪的运行后差异仅5个task记录,原“task-only closeout records”与产品摘要不矛盾;新增task记录与完整工作树发布资格仍须分列。
对外准确口径:**r6冻结代码后端4437项通过、浏览器372/372;当前相关代码输入与该运行一致。当前整树含后续task记录且仍dirty,不具有发布资格。** 不用旧4428覆盖较新的4437,也不将dirty等同于受测代码漂移。此前摘要应更明确标注r6身份、时区与差分基线;本次补充说明,不重跑未变化的全套、不改产品/测试或任何原始证据。
独占核对回执:artifacts/qa-layout/submit-visual-closeout-20260918/review-provenance-20260919.json,保存UTC/北京时间、输入对照、12项非task增量与r6摘要、原证据SHA。原final-review-candidate、final-incremental-review.diff和两轮后端结果全部保留。已收到用户转述的局部独立审查,完整独立review仍PENDING;本次只更新本task核对记录,无提交推送部署或生产读取。
## 2026-09-19 本地完整验收通过(当前入口)
g20-full-r6从static开始完成同一冻结候选的普通完整运行:总5128.987秒,static226.728秒PASS、full-local4895.264秒PASS,内部12阶段全部PASS。后端224文件4437通过/1原条件跳过;8启用服务组通过,7原关闭组不计通过。发现386=372本地+12公网+2冻结,372浏览器全部通过,零失败/跳过/重试。环境/source/repository/owner容器与scratch清理PASS。
33页与33PNG完整,7组全过、覆盖问题/findings为空;管理员组177.291秒,接近原180秒上限,只证明本轮实测。采购主链125.161秒;付款helper业务步骤264.491秒,原始Playwright整例记录373.383秒(含前后开销;未独立拆分该差额),保留原300秒用例设置与全部断言,不将两种计时混写。R75四项、新旧BX/PB消费者、PWA更新、WebKit离线与冻结保护都纳入本轮372项。
回执PARTIAL/exit2,localChecksPassed=true、deploymentEligible=false,唯一资格问题dirty_candidate;不是公网或完整发布通过。同环境离线verify仍PARTIAL且372项/10个witness通过;首次误用CI=1的检查wrapper被正确拒绝(候选CI未设置、4 workers),原拒绝保留,未修改验证器或候选来掩盖。
旧材料仍有已披露的一处WebKit派生registry字节变化,原保护FAIL保留,原baseline未改;r6没有新增漂移,其余12137旧文件、HEAD/index和352旧差异快照保持。后续WebKit用本轮物理独占副本。原字节尚未找到,不伪造恢复或将保护写为全PASS。
本次完整回执绑定运行时冻结输入;结束后只补task的状态、验收与后续规划记录,不改已验产品/测试代码。后续文档摘要与运行时不同,旧回执不冒充更新后整树的发布证明。独立只读review受inline限制保持PENDING,无提交推送部署/归档、生产编号启用或真实操作。证据根:artifacts/qa-layout/submit-visual-closeout-20260918,入口g20-full-r6.summary.json、g20-full-r6-highlights.json及r6-offline-verification-matching-env.json。
G20a/b/c/d本地实现和验证完成;G20e的本地记录/交审包完成,独立复核、R1真实强制消费及外部授权仍开放。最终增量入口final-review-candidate.json、final-incremental-review.diff、final-checks.json。
### 已完成与剩余
- [x] 本地在用修复、7组视觉实现、定向31/31及新完整候选372/372;编号N5的本地兼容验收完成。
- [x] P6/P7/P9/P10产品边界与各原整链、P8完整负载验证完成;保护异常和独立复核单列,不将二者勾选为通过。
- [x] 本轮状态/增量只读交审包与治理收口;现行process/docs/Trellis/sensitive及task/diff检查通过,22个原未登记文档提示保留。历史CSV校验脚本缺失,替代路径检索无结果,本轮未改CSV,该项记NOT_RUN而非PASS;不扩大为旧工具修复、提交或归档。
- [ ] 独立只读复核:覆盖当前累计候选及本轮增量,主会话检查不得抵扣。
- [ ] R1真实发布入口强制消费、干净候选提交/完整重验及部署:按现有design另获明确授权;部署后同候选12项公网义务全部完成才可宣布公网可测。
- [ ] 编号生产只读摘要、启用日期及启用:另获批准,旧号/旧草稿/银行引用保持;线上策略仍未开启。
- [ ] 真实银行接受性、指定范围外的当前处理人/企微个人送达事实、K1保管/K2新绑定及自然业务证据:按各原task分别授权;旧恢复不重跑。
- [ ] 旧WebKit派生索引保护异常:只可用SHA匹配的原字节恢复,或保留明确例外;不扩读真实备份、不重签原冻结包。
下方均为历史阶段记录,未勾选的旧阶段条目不覆盖本段实测状态;任务整体保持in_progress。
## 2026-09-19 四文件定向通过,接完整候选r6(当前入口)
r5-fixed-r2四完整文件31/31通过,浏览器约5.5分钟、受管总571.747秒,零跳过/重试;采购整链、R75四项、付款提交至归档全链及视觉25项通过。付款约244.773秒,保持300秒;视觉7组各180秒、25PC+8手机/33PNG全部完成、覆盖问题与findings为空。环境/source/repository/owner清理PASS。原r5完整FAIL与r5-fixed-r1登录跳转失败均保留,不拼接为完整通过。
P10采购提交后读取边界167/167及QA专用类型已通过;登录仅在无query/hash的规范/login复用,保留原表单/portal/profile断言。下一g20-full-r6从static开始普通完整候选,全部源码/测试/task/spec/docs冻结,只写本轮ignored证据;N5/G20及产品完整负载验收仍待终态,独立PENDING、生产编号未启用。
旧WebKit派生registry保护异常保留,原baseline不改;后续运行使用本轮独立WebKit副本,不下载或安装。禁止将一处已知漂移描述为全部旧材料零变化;无提交推送部署或真实操作。
## 2026-09-19 r5-fixed-r1结果及最小边界修正
四完整文件31项30通过/1失败,585.544秒;采购主链、R75四项、视觉25项通过,零重试/跳过,环境/输入/owner清理PASS。付款新复用逻辑保留了/login?redirect的返回目标,与原portal断言冲突;按design仅复用无query/hash的规范登录页,带返回目标仍用原goto清除。边界修正后的专用类型检查及diff检查通过;下一r5-fixed-r2相同四文件复验,全部受管输入冻结;未开始新的完整候选,不拼接定向结果。
## 2026-09-19 当前入口:r5终态与三项续修
完整候选FAIL:5916.547秒,static247.910秒PASS,内部11前置阶段通过;后端4428通过/1原跳过,8启用服务回归通过。发现386=372本地+12公网+2冻结;浏览器367通过/1失败/2超时/2串行未执行,零重试。环境/source/repository/owner清理PASS。
- [x] 09-18产品P10采购PATCH响应读取最小修复与边界回归;五文件167/167通过,原实现4条红例保留。
- [x] 视觉独立检查/RPC冗余、付款同角色重复登录与独立只读检查优化已实施;专用tsc通过,原7组及所有预算/断言/worker保持,浏览器尚待验证。
- [ ] r5-fixed-r1执行采购、视觉、R75和付款四个原完整文件定向;通过后从static完整新候选,不拼接r5通过结果。运行期间全部受管输入冻结。
- [ ] 治理、保护异常、最新候选和独立PENDING交接;生产未启用。
R75四项、新旧BX/PB和合同只读实际页面正反例已在本轮完整负载通过。全页面仍INCOMPLETE:24/33、管理员14/15,手机后继未执行;付款执行及下游未在300秒内完成。保护检查只有旧WebKit派生registry自动改写,原FAIL与字节副本留存,原baseline不改;业务冻结材料与HEAD/index保持。详情及不变量见design顶部。
## 2026-09-19 当前执行入口:7组定向通过,进入完整候选
用户明确批准:33页拆为7组、各180秒,保留原断言/截图/并发/零重试,同一完整运行全部必过,增加缺页/重复/失败组拒绝。后续按本段执行,下面旧180秒累计约束为历史记录。
- [x] 实施7组原生测试、一次合成准备、完整审完记录及精确覆盖校验,保留5条到达正反例。
- [x] 专用类型检查、覆盖13/13及视觉整文件25/25通过,33页/33截图精确齐全。
- [ ] 冻结输入,从static开始执行普通完整候选;真实发现分母,不拼接定向结果。
- [ ] 协调P9/N5/G20、治理/旧材料保护与候选交接;独立PENDING,生产未启用。
本轮完整后端回归已通过:224文件4428项通过、1原条件跳过,537.01秒;server/src、server/tests、server/prisma及scripts/qa共644输入结束后校验零变化;P9原R75及报销付款整链已在p9-fixed-r3通过,原视觉超时仍保留。
grouped-visual-r1完整文件25/25通过(7真实组+13覆盖正反例+5原到达用例),浏览器91.788秒、受管总352.799秒;25PC+8移动全部审完,33PNG、findings为空、覆盖问题为空,环境/输入/owner清理PASS,零跳过/重试。旧34目录12138文件零增删改,HEAD/index未变。接下来g20-full-r5从static执行普通完整候选,源码/测试/task/spec/docs全冻结,只写本轮ignored证据;本地结果不抵扣独立或公网义务。
## 2026-09-18 编号消费者最终回执与G20余额
numbering-consumer-final已结束:报销新旧号PC/手机列表、搜索、详情1/1通过(17.756秒),受管总耗时268.462秒;source/repository/candidate不变、owner容器及scratch清理PASS,零重试。付款新旧号消费者最终版本保留browser-r3通过(18.517秒)。付款列表/详情自然排序完整单测129/129通过(15.66秒);五个相关浏览器文件专用类型检查通过。最终六个测试源码摘要在final-code-inputs.json,后续文档收口不变更测试输入。
本轮已解决DG7/R3重复登录前置、直连正例未等认证页面就绪、视觉文档缺Accept:text/html、旧员工差旅允许预期及新增编号测试定位/枚举问题。DG7七宽度、五角色权限整文件、编号消费者和真实合成付款链分别取得通过证据;这些结果属于各自输入和选择集合,不能相加成普通完整通过。此前AUTH_004及全部失败记录保留,browser-r2五角色观测无重放事件不等于排除全部认证风险。
剩余本地工作按以下顺序,方案已有部分沿用,新增部分先补design再改代码:
1. 全页面巡检:按已落盘阶段采样继续分离实际导航/装载/API/截图耗时;33路由、原180秒及原并发/零重试保持。当前13/33仅是到达进度,findings为空不代表矩阵通过。
2. P9报销提交:在09-18-local-concurrency-product-fixes核清P2028边界,先定稿最小方案与确定性回归,再优化;不将出现时点当作编号根因,不直接提高事务超时。之后重验R75原整文件及两个后继。
3. 两项定向通过后冻结完整输入,从static开始执行普通full-local,发现集合须纳入两条新增编号用例;不能沿用旧351分母或拼接本轮绿灯。
4. 完整结果和独立只读复核分列;生产摘要/启用、真实R1、提交推送部署及同候选12条公网义务按原授权边界办理。
本次增量审阅包保持normalReleaseEligible=false、独立PENDING;旧候选、失败和冻结证据不覆盖。不因编号专项通过关闭N5、G20或归档task。
## 2026-09-18 browser-r3 收口与编号最终小修
四文件51项49通过、1失败、1超时,673.807秒,零重试/零skip;环境、输入、owner清理PASS。R3五角色与员工可用页面/冻结差旅拒绝整文件通过;付款编号混合来源整例再次通过。新BX消费者已通过PC两种号码及移动旧号可见,最后错误为测试把移动标题div当heading;合成失败截图清楚保留原号,产品没有丢编号。按实际组件将移动号定位到既有header内精确文本,PC仍验证精确h1,再仅重验此变动用例。
全页面仍180秒超时,13/33到达,停在管理首页转主数据链接;逐截图时间保留(首PC登录页后到门户22.43秒、普通页面约6—11秒、角色首屏约16—24秒)。没有证据将其写成单个链接缺陷或提升预算。后续需逐阶段采样区分真实点击/装载/API/截图成本并保留全部33页;普通完整G20仍待该项及P9报销提交事务修复,不盲重跑。
编号服务端列表/详情原自然排序回归保留原3条旧号与同号ID次序,增加月号0002/0010/10000,验证混排精确ID/号码/金额对应及原数组零改写、读取零写入/审计。只扩测试,无产品源码变化;运行完整付款路由单测。此前编号完整后端/PG及browser-r2付款整链按原输入记录,不改写成此时的新完整候选。
## 2026-09-18 browser-r2 终态与分组续修
64项为58通过、3失败、1超时、2串行后继跳过,1004.412秒;环境/source/repository/owner清理PASS,零重试。报销审批→财务原地进度→付款复核/执行→回单→核销/AP整链通过(254.846秒);付款新旧编号/混合来源浏览器消费者通过(60.191秒)。整个观测窗口五合成角色tokenVersion均保持1,未记录REFRESH_REUSE_DETECTED;不声称已排除所有认证风险。
最小QA续修已规划:员工旧允许列表里的差旅与已批准冻结合同冲突,改明确拒绝该原路径,保留票据/合同可用正例;新BX详情断言接实际PC标题“报销单 <编号>”与移动标题原号;付款合成fixture nextStep改为真实first_review枚举。全页面已超越原9页但仍180秒超时;改用已有正式认证storage-state helper为每个角色/视口分别取得独立真实会话,直接到首个矩阵页面,保留匿名登录页UI与全部33路由、文档HTTP/到达/403/404/截图/视觉断言,不共享refresh cookie、不伪造登录或放宽预算。先类型检查,再四受影响整文件定向复验;付款整链源码未变可保留本轮结果,定向仍不冒充新完整候选。
另发现R75通知的报销提交500:真实server输出为P2028,原5000ms事务在5412ms后的workflowHistory.create失败(reimbursements提交事务),不是AUTH_004。只读提取安全code/时间/源码位置,不复制原payload。本轮编号客户端验收不扩大为调整审批事务/预算;按既有09-18-local-concurrency-product-fixes接独立最小方案:确认新取号是否参与此已编号提交、锁等待与事务内重复查询/CPU边界,保留失败,用确定性回归证明再优化,并保持原权限/审批/审计/预算。新完整G20必须等其修复及R75整文件通过后,从static重跑,不能盲重跑或用付款整链绿抵扣。
## 2026-09-18 本轮 browser-r1 结果及证据续修
八文件34项:29通过、1超时、2失败、2串行后继跳过,零重试,698.271秒。DG7七宽度、R3五角色原失败整例通过;全页面文档404已消失但仍超时,9/33已到达且最后在登录页。R75通知和付款主链均AUTH_004,旧失败保留。环境、输入不变、owner清理PASS。
已在本轮拥有的无网络合成库只读取证,经理出现REFRESH_REUSE_DETECTED且tokenVersion从1变2;对应直连允许路径仅not.toHaveURL(/403/)立即进入下一文档,未等待认证恢复和页面加载完成。修为目标路径、真实h1、非403/404/登录共同就绪后再走下一项;加强断言,不改产品认证。下一轮验证是否消除该干扰,不能先写已证明唯一根因。付款后置诊断未到达,失败提前到提交后读取;后续API错误继续保留。
编号N5补两条浏览器消费者检查:PC/手机旧新BX列表详情/完整搜索,以及付款候选原样query/组批entityId、新旧PB详情、混合明细原顺序与UUID链接。响应为明确合成fixture,不冒充真实PG分配或审批付款;真实链仍由原完整付款用例及隔离PG分别证明。新增用例进入普通完整发现,不替换原分母。运行前先补类型检查,之后原九文件整例定向复验。
## 2026-09-18 编号完成后的浏览器验收接续
官方current回到本task。已保全352项旧差异、31目录11427份历史证据(含编号本地审阅包),本轮独占根为numbering-browser-closeout-20260918。原g20-affected-r1四未过保留,编号N5未勾选;先最小修复后原整文件定向,随后从static重新完整候选。
- [ ] DG7七种宽度共用同一合成员工会话,仍逐宽度完整验证全部原页面、截图及断言;减少七次登录重复前置,不缩宽度或放宽预算。
- [ ] R3按五个独立角色各一次登录,同角色复用页面完成全部原403/404及经理付款入口断言,不减少角色和路径。
- [ ] 全页面目标文档请求明确Accept: text/html,保留真实文档状态及当前路由/页面/错误/视觉检查。
- [ ] 付款失败已提取安全错误码AUTH_004;先以阶段内401诊断和合成审计确认,不将猜测写成logout根因,不自动刷新API令牌掩盖失效。
- [ ] 编号混合格式浏览器验收;原G20完整重跑及独立复核另列。本轮不改权限/认证产品、生产规则、并发/重试/预算,不连接生产或发布。
## 2026-09-18 编号实施接续(本轮最新)
用户已明确授权复核编号矩阵适合后实施。官方current进入09-18-reimbursement-periodic-numbering;新计数/策略及创建入口本地已实现;完整后端4412通过/1原跳过,之后策略边界补验456/456及隔离PG复验通过;迁移默认不启用、旧编号/未编号草稿归属及银行引用保留。该任务证据单独存business-numbering-20260918,未覆盖本task的任何失败/冻结包。原G20四未过、后续完整门禁、独立PENDING与公网义务保持,不把编号单测/PG通过折算为G20通过。未提交推送部署、未读取生产编号分布或启用线上策略。
## G20 八文件定向结果与编号调研续项
g20-affected-r1结束FAIL,806.364秒;34项30通过、2超时、2失败,零重试。环境/source/repository/owner清理PASS。资产、R75原整文件、PA6角色矩阵、R92与onboarding通过;DG7首页整例和R3直连整例超时,全页面文档请求缺text/html Accept触发404,付款整链在财务通过后的API会话读取失败。阶段日志已证明发票popup完成,不再猜该处卡住。原失败保留;后续需逐项证据修复,再从static完整候选,当前不能全量结案。
用户已选报销按月,随后新增要求调研全部在用编号及国内财务/OA/ERP惯例,结合不足10人科技初创公司。归属09-18-reimbursement-periodic-numbering,当前只读调研/更新规划,尚未改编号代码;其他编号实施范围待定,不将调研视为生产改号授权。
## G20 QA前置修正完成,开始原整文件定向验证
DG7固定企微优先夹具的账号入口改为自动等待;R92/onboarding路由mock显式阻断SW绕过,R92会话仅在登录后refresh成功。PA6同角色PC/移动复用单次登录,四角色隔离、所有入口数组逐字保留、原管理员复核403保持。全页面优先真实可见链接/管理首页,SPA仍单独验证目标文档HTTP及原URL/标题/403/404/视觉合同;逐导航请求完成并稳定500ms才截图,不用旧document网络状态代表新页面就绪。核心付款整链仅增加固定阶段/耗时日志,断言与300秒预算未改,先确认实际停点。
浏览器六文件专用tsc通过,产品267项相关回归通过。下一g20-affected-r1八文件原配置定向验证:资产、R75、DG7、PA6、R92、onboarding、全页面、报销付款整链;默认4workers/零重试/原预算。运行期间所有输入冻结;只是定向,不抵扣新完整候选。
## G20 产品续修单测已通过
两个接口最小修复已完成,原实现红灯7项/112通过,修复后两文件119/119通过(17.54秒);资产操作/搜索/校验与账号导入/敏感权限五文件148/148通过(23.71秒),受影响源码Node语法通过。合计267项包含13项新增边界,真实cost12未改;原事务预算、角色、审计语义与批量导入位置保持。下一步由09-06修QA前置及定向整例,再从static全量;P6/P7整体及P8仍待真实整例/全量,独立PENDING。
## 2026-09-18 G20 第四轮终态与续修
g20-full-r4 FAIL,5768.636秒;static239.024秒PASS,内部11阶段PASS;后端4367通过/1原条件跳过,8组启用服务回归通过/7组原关闭不计通过;浏览器351项=342通过/5失败/3超时/1串行后继未执行,零重试。环境、source/repository未变和owner清理PASS。资产及账号创建两处P2028由09-18-local-concurrency-product-fixes接最小修复;当前不是全量通过。
QA续修保持原分母、预算、并发和断言:DG7确认停在登录输入框,改为自动等待既定账号入口;R92导航后回登录,user-onboarding提交改密后失去会话,核路由mock与SW/refresh会话边界;PA6确认第7次角色登录耗尽180秒,同角色PC/移动复用一次独立会话,保留全部角色/入口/管理菜单/API403;全页面180秒只到9/33页,利用真实应用导航减少重复装载,保留25PC+8移动/14系统页、目标文档HTTP、实际URL/标题及全部视觉/错误断言。报销付款整链300秒超时但无精确动作栈,先增加安全阶段诊断和查实际停点,不先猜产品根因或放宽预算。R75后继跳过随原整文件重验,不能当通过。
顺序:产品边界红/绿与相关回归→各在用QA夹具/冗余前置修复→原完整文件定向验证→冻结输入、从static开始新完整候选。定向通过不拼接旧完整结果,主会话检查不抵扣独立PENDING。原失败、322项旧差异及29目录9762旧文件保护不变。
用户另行明确批准仅查看线上指定PB-20260917-001审批人;北京时间12:14只读确认draft/3项pending、无复核/执行,真实业务提醒对象为负责人,个人应用消息已有发送成功记录(不证明已读),另两名称为测试的在职经理账号符合现有资格。仅查询,没有业务/配置/企微写入;核实其用途和待办引用后才可提出权限收回,不自动停用。此授权不扩展到ARM、备份、恢复、生产改动或部署。
## 2026-09-18 G20 接续执行(最新用户批准)
生命周期夹具续修已验证:原36命令链三组交错对照,旧2.271–2.481秒、新1.665–1.748秒,完整trace逐字相同;仅测试中复用CJS假命令服务,Python -IS传输,不改生产部署或测试预算/并发。最终52生命周期+22初始化+39部署安全=113/113通过(63.57秒),含新增参数/输入/传输失效保护;此前两项超时当前1746/1648ms,四种真实源码变异及真实timeout均保留。g20-full-r4接下来从static完整重跑,运行期间输入冻结;定向通过仍不抵扣整套验收。
g20-full-r3已结束FAIL:1208.815秒,static PASS 308.880秒;后端4362通过/2超时/1原条件跳过。超时为生命周期真实源码init/server变异,均超过原5000ms;浏览器等后续阶段未运行。输入/仓库不变、归属清理PASS,guest尚未运行故环境INVALID。原回执保留。
G20d最小续修计划:先在本轮ignored证据目录交错测量原假命令与仅假命令Node启动优化,复用真实remote脚本/Compose依赖/相同配置,比较完整argv和生命周期trace、退出状态及耗时。若证实可减少重复启动开销,只改测试夹具启动,不改部署脚本、Vitest/浏览器并发、原预算、重试或断言;保留完整到达init/server/worker、真实timeout及未知命令拒绝。修后运行原71项和39项安全回归,再从头普通完整候选,不靠盲目重跑求绿。
清理接线最小修正已验证:auth-postgres-concurrency 10/10,原runner成功/失败/清理与账号前置6/6,原预算/并发/零重试保持。原1项跳过为deploy-init.integration未注入专用独占数据库,未计通过。下一g20-full-r3从static重新执行;运行期间输入冻结。
g20-full-r2已结束FAIL:1157.785秒,static PASS 310.928秒;完整发现365/351/12+2正确,后端223文件共4365项:4363通过、1失败、1原有条件跳过。唯一失败是auth-postgres-concurrency检查原qa_cleanup退出结构(exit cleanup_status);本轮记录器改写了结构。最小修正为在既有original_status优先/cleanup_status退出前收集阶段终态,不改原合同或测试。环境因尚未到guest阶段记INVALID,原生双引擎探针通过、源码/仓库不变、归属清理通过;后续阶段及浏览器NOT_RUN。修后针对性验证再从头完整重跑,不拼接前轮。
生命周期原配置复核71/71通过,82.64秒;首轮五项本次2226/2240/1936/2397/2628ms,无代码/预算变化。仅证明耗时差异,未确定唯一根因;不以定向绿补首轮完整结果,下一g20-full-r2从static重新执行并冻结输入。
普通候选g20-full-r1在static失败:生命周期49项中5项超过既有5000ms,合计71项为66通过/5超时;full-local未运行,120.980秒、static109.595秒,回执FAIL/无发布资格。原件保留。先原配置复核当前生命周期夹具,不提高预算或削弱fake命令审计。最终回执62项纯验证通过,shell补充19/19通过(原组合测试假工具把visual误作full的夹具失败已保留并修正),旧168项QA结果按输入适用性保留。
G20机制已完成本地实现:新增verify-candidate(static/full-local复用)、固定12个内部阶段与实际筛选记录、来源/策略/工具链/双引擎原生环境/逐项覆盖共验、dirty PARTIAL和离线verify、精确skip及批准元数据。QA整组168/168通过;补充原生浏览器版本绑定与三个skip组合、真实profile/source/coverage源码变异,最终结果以本轮command回执为准。部署安全39/39通过,流程/文档/敏感/task/diff检查通过。普通全量接下来在冻结输入上执行,原失败不改写。
G20a已完成:官方WebKit v2105/26.0、第三轮报销离线1/1通过(325.915秒),环境/源码/仓库/归属清理PASS;前两轮原失败保留。旧差异322项快照及29目录/9762文件保护基线已建立。G20c共享回执与逐阶段/实际筛选记录已接本地verify-candidate;首轮13项实际shell/fake工具检查通过,完整QA回归进行中。未接真实R1入口,无部署调用。
G20a 第二轮登录已过,停于WebKit原生离线。独占namespace对照证明无默认路由false,只有内部veth对的链路默认路由true,主动离线false;修正设计已补,保持无外联并加强同namespace对端核验。阶段回执58项合成检查通过,runner接线检查进行中。
G20a 首轮 WebKit 原单例超时:合成 refresh 在未登录时无条件返回成功,页面已进入移动工作台,登录 helper 等待不存在的输入框。仅修测试会话为登录前401、登录后成功;不改认证产品或离线断言。原失败保留,环境/source/cleanup通过。WebKit复验后先接阶段记录器,再跑绑定最终runner的完整门禁,避免代码变化后重复全量。
用户在解释 WebKit 用途及五组余项后明确“按照这个规划开始执行,非必要不暂停,尽量做完”。本轮据此批准官方 Playwright WebKit 运行包下载到本轮独占缓存,及既定本地完整验收和共享候选回执机制实施;不再列下载授权待答复。仅运行包,不隐式安装系统包或修改共享缓存;业务测试继续无外联合成环境。
沿用 G19 分层合同。先补 WebKit 真实启动/报销离线敏感证据单例,再普通 full-local。受管运行期间源码/测试/task/spec/docs冻结,只写本轮 ignored artifacts。旧失败/旧候选不覆盖。
- [x] G20a:建立旧差异/冻结材料保护基线,官方包独占下载、运行时依赖/启动探针,WebKit原单例重验。
- [ ] G20b:普通完整 full-local(351本地用例+配套后端阶段),零重试/默认并发/原预算,保留所有失败及真实阶段耗时;只修在用缺陷/已批准合同漂移。
- [x] G20c:实现来源/策略/环境/阶段/实际覆盖共同绑定的共享候选回执与离线验证入口,复用现有G19/sourceSnapshot/environment,不新增发布平台。设计细节补在design后再编码。
- [ ] G20d:逐项反例、fake命令捕获、源码变异和既有部署生命周期回归;只验证机制,不连接真实发布入口强制消费。
- [ ] G20e:本地检查、规约/协调状态、独立复核交接与新候选冻结;外部事实/12公网义务/真实R1启用/提交推送部署保持分别授权。
新证据:artifacts/qa-layout/release-receipt-g20-20260918。主会话inline,独立PENDING;无生产ARM、真实配置密钥备份、真实企微付款/恢复或旧恢复重跑。WebKit与后续本地实施连续推进,不以范围内常规决定反复暂停。
## 2026-09-18 G19 分层验收已实施并完成本地针对性验证(最新状态)
用户已明确批准分层方案,已正式更新 R2 并落门禁:全部非 manual 仍发现;12 公网逐项保留为同候选发布后必跑;2 条冻结差旅原源码/历史结果保持,当前改验两条冻结保护。没有恢复权限或旧整链,没有公网/企微/真实付款操作。
- 最终发现 **65 文件/365 用例**:**351 本地用例(59 文件)、12 公网义务、2 冻结旧链**,0 遗漏/未知/重复。351 已包含两条新保护,分母不重复加数;发现不等于执行。
- 受控清单绑定用例身份/原源码摘要/原因/入口/责任角色。普通 runner 从完整发现派生执行集合,并校逐项结果;漏例、漂移、未知、重复、跳过、重试、expected-failure、伪通过和候选不一致拒绝。定向仍无发布资格。
- 门禁 **74/74** 与诊断结果 **7/7** 合成检查通过,含真实 runner 调用及删除覆盖消费的源码变异。首轮夹具独占文件问题、第二轮五项30秒超时均保留;最终单独运行使用原预算,没有增加超时或降低断言。
- `g19-freeze-r2` **2/2** 真实本地浏览器通过:合成员工创建403/无差旅导航,普通财务对账和三类导入403/无差旅导航,财务主管共享付款就绪检查包含差旅冻结 blocker。环境/输入/清理 PASS。首轮测试读取不存在的 me.permissions 失败已保留,改验正式 roleCodes 与接口行为。
- 当前财务主管仍有 integration.manage,受管合成 runner 仍为既有底层回归启用 travel sync;没有声称所有差旅接口关闭。旧整链未通过/未执行,不因保护通过改写历史。
- 本地回执明确公网 NOT_RUN_LOCAL、完整交付 INCOMPLETE、normalReleaseEligible=false。离线公网结果验证器要求 live profile、同源码/部署候选及原始逐项结果;未接真实部署入口,不能独立证明远端身份。实际公网责任人尚未指派,证据仍缺。
本地证据、新候选及余项:`artifacts/qa-layout/local-coverage-g18-20260918`。最终验证/保护/候选摘要分别为 final-check-summary.json、protection-result.json、candidate-integrity.json;旧完整 full-r2 保持失败,未重跑普通全量。主会话检查不是独立审阅,独立 PENDING。
### 接续顺序与余额
1. WebKit 官方独占缓存下载问题仍待答复;其真实离线用例未验。条件齐备后跑 **普通完整门禁**,不拼接定向绿;不得恢复旧差旅或放宽并发/预算求绿。
2. G20:基于 G19 最终归属合同继续共享候选回执/逐阶段验证/skip和变异反例;真实 R1 强制消费启用另行批准。先完整阶段与 source/environment 绑定,再 fake 工具验证零发布写入,最后独立复核;当前未启用真实入口。
3. 独立只读复核现有 K0/报销付款/借款/QA 与本次产品候选;inline 自检不抵扣。
4. 经另批范围补真实付款复核人及企微个人发送事实、银行接受性、K1 保管/K2 新绑定、事件/自然业务证据;旧恢复不重跑。
5. 经明确授权后提交推送、干净候选完整门禁/独立重跑、部署,再兑现 **同候选12条公网义务**。未部署前不能告知可公网测试。
借款 T1–T4、报销同页进度/付款排序/候选人通知事实展示、ERP 专属精简与 strict 遗留0保持此前本地成果;本轮无提交/推送/部署/归档,不把本阶段完成说成所有任务结束。
## 2026-09-18 G18 本地实施与针对性验证完成(最新入口)
本轮完成OCR能力接线、R108现行报销/离线队列覆盖、14系统页展开及真实路由到达验收;修复票据详情URL双写导致的人工修正失效。另由09-18-local-concurrency-product-fixes拥有PWA更新事件缺口及采购创建事务缩短:不改权限/审批/审计、事务或浏览器预算、并发/重试。
- 最终共享入口回归 g18-final-ux-ocr-r4:18/18通过,含完整认证/门户16项与OCR2项;新PWA生命周期13项连同采购回归共131项Vitest通过,QA接线39项按未变输入复用。
- 不带预载的 g18-concurrency-fixed-r3:原资产/采购/付款/PWA四文件4/4通过,583.240秒;4 workers/零重试/原预算,995服务响应、0未处理异常。PWA文档B/active controller/worker摘要、68新缓存和2实际加载资源、旧独有缓存0,零登录回退/静态404。
- R108已完整通过:8移动观测/0发现,员工审批403、经理正式通过,当前approve/return/no-reject及离线队列;路由验收25PC+8移动、14系统页、0发现,另5个正反对照通过。只证明矩阵内覆盖。
- G18时点完整发现64文件/363用例,缺失/未知/重复0;枚举与临时构建摘要采集成功,仅枚举不等于执行。所有完整受管轮均核环境/source/repository/owner清理,失败原件保留。
此前两次并发采购P2028和PWA未收敛均保留。诊断区分了事件循环拥堵/池排队与PG等待(729采样未见Lock);这不是全仓CPU根因证明。原full-r2 65/359、326 passed/12 failed/5 timedOut/16 skipped保持失败,最新候选未再跑普通整套,局部结果不能拼接全量通过。
证据/新复核包入口:artifacts/qa-layout/local-coverage-g18-20260918。最终治理、敏感/diff、保护与冻结以final-check-summary/protection-result/candidate-integrity为准;主会话检查不代替独立PENDING。保留304项原差异快照、27旧目录/9004文件以及HEAD/index,不覆盖旧冻结包。
### 尚需推进
1. 12条公网用例和2条冻结差旅的验收归属:入口/责任角色/证据缺口已列g18-gate-ownership.json;G19分层验收已获用户明确批准并完成本地实现/验证,12项公网仍须同候选发布后执行,未运行公网。
2. WebKit真实运行条件及现有离线用例未验;此前官方独占缓存下载问题仍待答复,不联网安装。
3. 条件齐备后完整普通门禁及R1共享回执/拒绝反例;独立只读复核与R1真实强制消费启用单列,不能用本轮定向绿抵扣。
4. 真实付款处理人/企微个人发送、银行/OCR样本、K1保管事实/K2新绑定、事件和自然业务证据仍未执行;旧恢复不重跑。
5. 提交/推送、干净候选完整验证、部署/公网验收仍需原明确授权。借款T1–T4、ERP退役、strict遗留0保持此前本地完成,未据此上线。
后续具体状态与最小步骤见remaining-work.json;当前task及协调task保持in_progress。
## G19 首轮验证发现与修正
- 全量发现 65/365;351 本地、12 公网义务、2 冻结旧链,0 归属问题。只是发现,不是全量执行。
- QA r1 71/73:两条源码变异测试被上次独占报告文件提前阻断;已将每次夹具调用的报告/命令日志隔离,不削弱保护。r2 69/74,五条诊断夹具在并行构建负载下30秒超时;下一单独重跑整组,不改预算。
- g19-freeze-r1 两条失败,环境/输入/清理 PASS。新测试误用旧 helper 类型中的 me.permissions,正式 /api/me 只返回 roleCodes;修正为实际角色确认+原接口403/付款冻结blocker/导航检查。原类型不据此声称产品权限故障,不扩修旧 helper。
- 六个原 live/frozen spec 字节不变;冻结义务的当前入口明确指向普通 full-local 内的新保护文件,旧业务域入口仅作 historicalEntry 保留。
## 2026-09-18 G19 分层验收(用户已明确批准,实施中)
用户批准:12 条公网用例作为同一候选发布后必跑项;2 条冻结差旅保留原源码与历史结果,改验冻结保护。本地通过不代表公网/完整交付通过,不授权部署、恢复差旅或真实操作。此增量替代 R2 的“排除集合为空”,不重写旧 full-r2 失败。
- [x] G19a:全体非 manual 用例继续真实发现,固定 12 live+2 frozen 的用例身份、原因、责任角色、必跑入口和原源码摘要;未指派实际负责人明确待定。
- [x] G19b:由完整发现与受控合同生成本地执行文件集合,登记用例级覆盖;拒绝遗漏、身份漂移、未知/重复、跳过、重试与 expected-failure。禁止调用者筛选普通本地集合。
- [x] G19c:新增两条冻结保护整例,验证现行合成角色入口/正式 API 拒绝、共享付款差旅 blocker 与入站导入权限拒绝;不改权限,不执行旧差旅链。
- [x] G19d:公网义务在本地保持 NOT_RUN_LOCAL,绑定候选提交与源码摘要;公网用例结果只能由同候选、live profile、完整逐项通过报告兑现。验收回执不自授部署或发布资格。
- [x] G19e:增加漏例/新增未知归属/漂移/伪通过/候选不匹配/真实 runner 选择等反例,运行本地冻结保护,更新 spec/协调 task 与新候选;独立仍 PENDING。
WebKit 下载问题仍待答复,完整普通门禁未通过;R1 机制后续与真实强制消费启用分开,不启用发布入口。所有旧差异、失败材料与冻结包保持。
## G18 诊断终态与产品修复归属(2026-09-18)
诊断r2 531.599秒,2通过/2失败;环境/source/repository/cleanup全部PASS。采购仍P2028(6839/5000ms),PWA现已实测B控制器active/activated、B首页缓存和68新资源、worker摘要匹配,却文档仍A。729次PG采样无Lock等待,存在应用事件循环延迟/池排队,不声称全局唯一根因。
按用户连续实施及先补规划授权,新增09-18-local-concurrency-product-fixes接最小PWA事件监听和采购创建事务修复,具体PRD/design已落;四文件不带观察器重验后再接回本task收口。R2 live/frozen归属变更仍仅提案,不影响既有边界。
## G18 并发失败与诊断细化(2026-09-18)
g18-concurrency-r1 505.214秒,资产/付款2通过,采购/PWA2失败;环境/源码/仓库/owner清理PASS,零重试。采购POST为P2028(5000ms预算、5952ms后使用过期事务),响应8086ms;同窗口多登录约15秒,仅据此不能区分事件循环、池等待与PG锁。PWA文档仍A、B独有缓存68、A独有缓存0;原catch中controllerIsActive=false、fetched摘要空值和bOnlyLoaded=0是默认占位,不是实测,禁止据此推因。
继续已批准本地可靠性诊断:四文件保持4 workers/零重试/原预算,先修PWA安全失败记录为真实快照或null,并采被动worker状态/控制器/导航时序与缓存index摘要;不额外导航/更新/清缓存。仅本轮ignored观察器通过NODE_OPTIONS预载采服务事件循环与池计数,限定受管retained-local合成server、已核namespace及独占输出;外部观察器只查询已验证本轮容器的pg_stat_activity等待类别/数量/时长,不读取SQL正文或业务表。时间统一epoch便于对照。观察器存在的运行单独标诊断,不替代无观察器最终验收。
依据证据再落产品最小修复;PWA若需运行时代码变更,先建独立产品task关联本task,遵守原spec。不增加事务/浏览器预算,不改审计、权限或并发,不把一次定向通过当完整可靠性通过。
## G18 已通过本地覆盖,接续并发观测(2026-09-18)
受管 g18-ocr-visual-r2 7/7 通过,332.441秒(浏览器约2.2分钟),环境/source/repository/cleanup均PASS。原页修正→缺字段阻断→补齐可用→返回再进入已经验证;25PC+8移动(其中14系统页)全部准确到达,0发现;另5个合成目标到达正反对照通过。R108在前轮完整通过,8移动观测/0发现,员工403、经理正式批准、离线上传队列保留。观察器试采该次归属服务655个响应、0未处理异常;不以此抵扣旧full-r2的P2028。
下一步 g18-concurrency-r1:资产/采购/保留付款整链/PWA,默认4 workers、原预算/零重试,受管本地合成。观察器通过本次runner后代及其唯一PID文件绑定孤儿server,再核cwd/入口/fd1/namespace;不依赖server一定仍为后代,也不读历史共享日志。输出仅请求类别/状态/耗时/P2028数字和CPU/RSS。PWA输入存在时完整枚举并提前缓存摘要,原发现采集告警不覆盖。
## G18 OCR 实测暴露的最小产品修复(2026-09-18)
g18-corrected-visual-r1:R108 整例通过(8 个移动观测、无发现),OCR 缺字段识别及横幅已通过,但人工修正按钮在180秒内反复被卸载;执行记录有56次 DOM detached,终态回到列表。源码两组 effect 分别 local state→URL、URL→local state,并同时依赖双方;上传选中票据时会交叉回写。此为在用票据详情状态同步缺陷,不是缺权限或OCR规则错误。
在已批准 G18 现行修正流程验收内,最小修复只涉及 InvoicePoolPage:从 URL 读取 detailInvoiceId,所有选择/返回动作只更新 URL 且保留其他查询参数,删除双向 effect 与重复返回写入。保留 replace 导航语义、全部查询/编辑/权限合同,不调整OCR、状态机或产品视觉。原 E2E 红例保留,修后必须不刷新/force-click 完成缺字段拒绝→补齐可用,增加URL选中与返回列表再进入验证;运行前端typecheck/build及受影响浏览器检查。相同模式只定位记录,不顺手改其他页面。
视觉首轮目标到达还需纠正:portal使用既有portal-work-summary锚点,动态报销使用各自workspace;其余已知页面标题不降级。4xx错误页模拟响应显式UTF-8,确保反例精确击中原到达断言;增加同源API403/404观测为失败发现,避免仅页头可见冒充有效页面。
## G18 首轮停点与最小修正(2026-09-18)
受管 g18-ocr-mobile-r1:338.629 秒,1 passed/2 failed,无 skip/重试,环境/输入/清理 PASS。首例报销上传提交通过;OCR 修正到达前停在员工无票据管理导航,R108 已完成 7 个移动观测和离线队列后停在旧通用审批详情标识。
当前票据管理要求 invoice.manage,修正用例改用财务合成角色;普通员工仍通过报销详情提交。当前报销审批规约只提供 approve/return(及有权 transfer),没有 reject;R108 接专用 reimbursement-mobile-workspace,验证退回修改可用、驳回不存在、通过确认和正式 completed/approved,保留员工审批403、离线队列与全部布局验收。原计划“批准/拒绝”是选用旧差旅夹具时的动作,不为本次测试恢复已替换的报销驳回。R108 报告新增完整执行状态,异常退出的无视觉发现不得打印整例 PASS。
并发诊断落具体方案:维持4个文件的默认4 workers、原预算和零重试,资产/采购/付款/PWA一组受管对照;观察器仅按本次进程后代链、cwd/entry/fd1核归属读取本次合成服务日志,输出请求类别/状态/耗时/P2028数字和CPU/RSS,不复制payload或凭据。无事件循环/锁证据不下唯一根因结论;定向通过仍不代替完整负载。
## 2026-09-18 G18 执行细化(用户已批准按余项连续推进)
官方 current 已回读本 task,inline 实施/检查;独立审阅 PENDING。新证据根 `artifacts/qa-layout/local-coverage-g18-20260918`,已保全 304 项旧差异、27 个旧目录/9004 个文件;新增本轮候选,不覆盖 G17 冻结包。受管运行期间不修改源码、测试或任务输入。
- [ ] G18a OCR:在受管 runner 启动真实本地 server 后,根据该次启动的 mock provider 与 jobs=true 派生测试能力标志,覆盖调用者置位;保留非 mock/停 job 的反例。修正用例实际验证缺字段→拒绝提前可用→补齐→可用,不仅置位求绿。先检查接线,再受管执行整个 OCR 文件,旧标题与原结果映射保留。
- [ ] G18b R108:用当前小额报销(上海当天、office_postal、有效合成 PDF、显式关联明细、正式提交)产生经理待办,替代冻结差旅。初始化异常直接失败;保留 390/414 布局、离线上传两项/移除/恢复、经理批准/拒绝操作及确认,补员工无审批权限和正式任务完成断言。输出改为运行独占目录,移除允许忽略发现的开关;原预算与零重试保持。仅对已证实的现行 UI 漂移纠正定位,不改产品样式。
- [ ] G18c 路由:在已有矩阵将 `/system/*` 显式展开为当前 router 的 14 个系统页;AP 选财务,管理页选管理员,审批选经理。每次验收须实际 URL 与预期一致、目标页标题/稳定锚点存在、无 403/404/登录回落;匿名登录页用匿名 context。未知路由或未解析参数直接失败。保留原视觉断言与 180 秒预算;不宣称矩阵外全产品覆盖。既有矩阵业务边界文字同时纠正企微考勤与 ERP 退役事实。
- [ ] G18d 必跑归属与可靠性:只读梳理 12 live、2 冻结差旅的实际入口/责任/证据缺口,保持 full-local 完整集合不增例外。并发诊断先规划可归属服务时序/资源/浏览器事件采集,不改事务超时、并发、重试、审批和审计;按精确停点决定是否需要修复,不盲跑整套。
- [ ] G18e 类型/接线/受管定向检查,精确结果与余项、主会话 review、治理/敏感/diff/保护校验和新增量冻结;09-08 协调状态同步。完整发现须使用运行仍有效的 PWA 输入并在清理前保存所需摘要。
WebKit 未获官方独占缓存下载答复,不联网安装;R1 启用、独立 review、真实批次/企微个人通知、银行样本、K1/K2/事件和自然业务证据、提交/推送/部署/归档继续分别保留边界。不重跑旧恢复。
## 2026-09-18 G16/G17 本地执行收口(最新入口)
普通 full-r2 的原始结果保持:65 文件/359 用例,326 passed、12 failed、5 timedOut、16 skipped,总计 4879.543 秒。72 迁移、Prisma、4347 服务端单测(另 1 原跳过)、前端 typecheck/build、8 角色正式改密、审批及 8 组默认启用服务端回归通过;完整门禁仍失败,无发布资格。
本轮将其 17 条失败/超时逐项处理:14 条在用观测已有本地定向通过证据,1 条缺 WebKit,2 条冻结差旅原样保留;另外补验原 R75 串行未执行的生命周期与开关备注恢复 2 条。是跨轮、不同测试修订下的身份映射,不是 14 个产品缺陷,也不是最新候选一次全量通过。证据总入口为 `artifacts/qa-layout/full-gates-followup-20260918`,逐项见 current-disposition.json,所有失败轮次保留。
| 工作 | 最终本地证据 | 边界 |
| --- | --- | --- |
| G16 账号/服务回归前置 | 普通 full-local 已接串行强制改密、guest probe、完整发现/forbid-only;聚合 r4 八组通过 | 七个默认关闭服务套件未执行,不启用 R1 |
| G17a 合同验收 | 同状态管理对照、只读原整例;r3 前后 2 次正常通过、4 类动作注入均精确非零 | 新增合同用列表链接;独立复核仍 PENDING |
| G17b/c 模拟页面 | mock-r1 15 passed/2 timedOut;修已定位按钮后 r2 2/2 通过 | 不加预算、不 force-click;模拟 API 局部阻止 SW,真实 PWA 保留 |
| G17d 在用业务 | business-r1 资产/付款/考勤通过;r2 采购/通知/考勤通过;r3 生命周期与备注恢复 2/2 通过 | 本地合成;r1/r2 失败和串行缺失仍保留 |
| G17c PWA | 单独 1/1,通过用时 18.116 秒;A 受控→B 收敛、旧独有缓存 0、新资源加载、无登录回退/静态 404 | 原 full-r2 的 45 秒未收敛事实不回写,不据单独通过认定并发稳定性已修 |
| G17c 视觉 | 原矩阵单独 1/1、60.890 秒,12 个 PC 路由项/8 个移动路由项,0 发现 | 含字面 `/system/*`,未展开全部系统页,不称全产品视觉覆盖 |
| G17e 精简 | 删除严格重复 main-flow 入口,保留被业务组/manifest 引用的付款整例,固定保留 PDF 和全部下游断言 | 冻结差旅不是废弃;旧报销/借款/ERP产品候选和旧冻结包均保留 |
| G17f 当前发现 | 64 文件/358 用例,缺失/未知均 0,覆盖校验与复核一致 | 只枚举;临时构建清理使末尾 SHA 再采集失败,原 wrapper exit 1/采集告警保留,不冒充完整回执 |
全部完整受管轮均 sourceUnchanged/repositoryUnchanged=true、环境 PASS、owner 清理 PASS。局部通过不证明 full-r2 中资产/采购/leave-balances 的 P2028 根因已解决;本轮未调事务超时、删审计、降低并发、加重试或更改产品权限/状态。主会话完整 diff 自检及最终治理/保护/候选以 final-check-summary.json、protection-result.json、candidate-integrity.json 为准;独立仍 PENDING。
### 剩余工作与下一批执行顺序
1. **G18 本地覆盖合同补齐(先按具体修改面细化实施,尚未执行)**:OCR 条件明确绑定受管 mock provider 和 job 的真实能力,再验当前修正流程;R108 把冻结差旅初始化替换为当前在用的移动审批夹具,保留离线队列/手机布局/权限断言并隔离旧截图;路由矩阵把通配项展开为经角色授权的真实路由,验证实际到达,404/403 不能充当该页面视觉验收。三项各自小批,不恢复日常 OA 考勤或差旅,不删除缺覆盖证据来求绿。
2. **运行可靠性与完整集合**:对 full-r2 的事务超时、长链及 PWA 并发收敛分别设计受管时序/资源对照,先取得精确阶段证据再决定修复;原并发、零重试和预算不暗改。12 条 live、2 条冻结差旅及上述条件项须明确必跑入口/例外归属/责任/证据;完整集合未闭合前不反复跑全套求绿。
3. **WebKit 1 条**:现行设计“不联网安装”;本轮已提仅官方 v2105 到独占缓存的申请,尚无答复,未下载。具备运行时后按原 WebKit 离线敏感证据整例重验,不用 Chromium 抵扣。
4. **R1 与独立审阅**:入口收敛/回执消费机制的未完成 AC 保持;完整普通门禁绿、实测成本、干净候选及单独启用批准仍必需。当前 QA、上批产品与 K0 的独立只读审查分别 PENDING,不由本地反例或主会话自检代替。
5. **外部事实**:指定真实付款批次候选处理人与企微个人发送事实、银行样本接受性、K1 保管事实/K2 新绑定、恢复/事件缺口和自然业务验收按既有清单分别补事实与授权。不得重跑已消费旧恢复。
6. **交付操作**:提交、推送、部署、归档仍未授权;没有公网更新结论。借款 T1–T4、报销进度/排序及付款姓名/通知事实展示保持此前本地完成,真实使用验收不由本轮门禁抵扣。
以上是当前余额,不把旧文档中的“场景8尚未处理”“普通门禁尚未接改密”“借款未实施”继续作为现状。整体 task 仍 in_progress;未连接生产/ARM、读取真实密钥配置备份、重跑旧恢复、发送真实通知或付款。
## 2026-09-18 G16 完整运行与 G17 本地后续(当前入口)
普通 `full-r2` 已完整结束:4879.543 秒;浏览器 3554.893 秒。65 文件/359 用例发现与最终身份一一对应,326 passed、12 failed、5 timedOut、16 skipped;零重试/重复/未知/缺失,框架总计 17 unexpected。72 迁移、Prisma、4347 服务端单测(另 1 原跳过)、前端 typecheck/build、8 角色正式改密、审批和 8 个启用服务端套件通过。环境 PASS,sourceUnchanged/repositoryUnchanged=true,owner 容器/scratch 清理通过。该失败运行与先前定向回执分别保留,无普通发布资格。
本轮新失败中,2 条冻结差旅原样保留,1 条 WebKit 缺运行时(下载问题仍待答复);14 条在用观测逐项处理,不能称 14 个产品缺陷。16 条跳过为 12 条 live 专属、1 条 OCR 条件、1 条旧初始化不兼容的 R108、2 条 R75 前序失败后的串行未运行;后两条 expectedStatus=passed,不能计为正常条件跳过或通过。
用户连续实施与精简授权下,G17 先按下列最小方案执行,仍不改产品权限/状态/超时或视觉方案,不增加浏览器重试与全局超时,不运行真实操作:
- [ ] G17a:合同原只读整例在已加载列表补共享禁止动作断言;创建反例使用列表链接,编辑/续约/归档用详情按钮。已有独立副本 4 个详情注入非零+前后 2 次正向结果只支持详情场景;补足列表链接缺口后重新核精确失败。主会话反例不抵扣独立 review。
- [ ] G17b:R102 删除动作文字接当前“删除报销单”;关闭已验证的更多菜单再点添加发票,按当前明确关联方式验证,不 force-click 穿透菜单。R125 保留解绑/归档后同文件重传合同,显式选择既有明细和当前上传反馈,不恢复旧自动绑整单。Wave3 按现有 spec 的 `lg:static` 与侧栏进度次序替代旧 sticky 断言,保留多视口/宽度/溢出和审批内容。R124 先核具体停点;已过时的角色/删除定位按当前合同改,保留移动全链。
- [ ] G17c:公告及 visual-shell 的模拟 API 与生产 SW 路由边界作限定对照;确认 mock-only 场景需阻止 SW 后局部设置,真实 PWA 仍启用。visual-shell 截图另根以保护历史材料,不改布局产品。全页视觉与 PWA 各保留原失败,定向运行带诊断观测,先核是否预算/环境或具体行为问题,不改超时求绿。
- [ ] G17d:R75 通知前置按实际提交拒绝核现行日期/金额/指定明细合同,合成发票使用有效 PDF;保持通知未读/已读/跳转以及后续生命周期、功能备注恢复验收。资产与采购先用原断言在独占库定向重验;本轮服务日志已由运行时间+活动子进程 PID 确认,POST assets/POST purchase-requests 为 P2028 事务超时,GET leave-balances 另列,不放宽事务或移除审计。
- [ ] G17e:按用户精简取舍核两条报销付款整例的重复:两入口目前均调用同一 helper,main-flow 的 preview=true 包含另一入口的全部业务动作及额外 PDF 验证。确认包含关系后收敛为一个完整主链,移除无调用的可选 preview 分支及重复入口;保留审批/付款/回单/审计/AP/票据归档全部断言和原 300 秒预算。原另一入口本轮超时保留,不以退役重复用例改写历史或取得完整门禁资格。
- [ ] G17f:相关定向验证、当前完整发现、逐失败及跳过处置、主会话检查、治理/敏感/diff、旧差异和冻结目录保护、新增量候选及 09-08 状态同步。若仍有性能/环境或未决合同,落具体下一步;不反复全量重跑至绿,R1 实现/启用、独立审查和外部事实继续分列。
证据入口 `full-gates-followup-20260918/full-r2.summary.json`、`full-r2.cases.json` 与原受管完整报告。后续测试源码有变化时,本次全量结果只绑定本次冻结输入,不借用为更新后完整候选全绿。
G17e 入口核对:保留被 business-flow 组与 AP/付款 route-manifest 引用的 `reimbursement-payment-batch-flow.spec.ts`,把已有完整 PDF 检查固定为必跑;退役未被执行入口引用的重复 `main-flow.spec.ts`。这样现有专用门禁及旧 P2 排除配置仍指向同一完整链,不产生悬空引用或顺便改变安全分组策略;历史文档引用保留追溯。
G17b 接续:mock-r1 为 15 passed/2 timedOut;trace 的动作记录已证 R124 走到末尾旧“删除草稿”确认,R125 PC 停在旧“移除”。分别接当前 dialog 内精确“删除报销单”和行内“移除对应关系”后,mock-r2 仅这两条 2/2 通过(45.3 秒),相关类型检查通过。旧失败保留,不扩预算。
G17c/d 验证顺序:资产/采购原整例、R75 全文件和合并后的付款主链先在同一独占库执行;PWA 与项目全页视觉随后各自单独受管执行,避免把并发压力混成已证明的产品根因。全页视觉仅加逐路由 test.step(脱敏路由标签)以保留超时具体停点,不改路由集合、角色、断言或 180 秒预算;PWA 已有 A/B 失败观测,不额外改动。受管运行期间源码与任务输入冻结,只在本轮 ignored 证据根整理。
## 2026-09-18 G16 执行中(原本轮计划,结果以上节为准)
G17d 第一轮受管结果:g17-business-r1 共 7 条,3 passed/1 timedOut/1 failed/2 串行未执行,496.44 秒;资产整链、含 PDF 的保留付款整链和企微考勤边界通过。采购已越过建卡,提交前当前页报服务错误;R75 仍在合成提交处 VALID_001,不能把旧 P2028 或日期/金额推断当已证根因。环境/源码/仓库不变/owner 清理均 PASS。
限定接续方案:R75 不再选择费用接口首行(seed 首行为差旅机票,会要求完整差旅摘要),显式选择既有 office_postal 快递费用,与合成通知业务及已过付款主链一致;提交失败仅记录状态/原因码/字段名,不输出 payload。采购原提交动作确实先 PATCH 保存、再 precheck、最后 submit;补三个正式阶段的状态断言并处理现行预检确认,不把保存失败等成最终 submit 超时,不放宽审批权限或预算阻断。下轮仅采购及 R75 全文件。
G17d 第二轮 g17-business-r2:365.142 秒,采购完整链/考勤边界/通知完整场景通过;生命周期页面入职及转正已通过,最终 API 断言却因默认 directory scope 不返回 employmentStatus 而失败,治理备注仍串行未运行。对齐 PeoplePage 已有管理查询,加 scope=management,保留 admin 正式权限与 active 断言;下一仅重验生命周期和备注恢复。环境/源码/仓库不变/owner 清理均 PASS。曾在本轮 artifact 调用者指定独占日志路径,但受管 env 白名单未转发,未产生该日志;不扩大白名单、不借此宣称取得服务日志或 P2028 根因,原日志不重写。
用户已批准按后续规划连续执行;官方 current 回读为本 task。新证据根 `artifacts/qa-layout/full-gates-followup-20260918`,基线保全 290 项既有差异、25 个保护目录及 7656 个历史文件,旧冻结包不覆盖。仅本地合成;inline 自检不抵扣独立复核,R1 启用、真实环境与发布边界保持。
- [x] 核 current、G16 与既有差异,创建增量基线。
- [x] G16a:核 WebKit 缓存和运行条件;缺失时保留 NOT_RUN,不下载或用 Chromium 替代。
- [ ] G16b:共享串行合成改密前置接入普通 full-local,在回归/浏览器前完成;完整发现、PWA、fail-fast、零重试和原并发保持。增加初始化失败阻断与顺序反例。
- [ ] G16c:同一个 active 合同增加管理身份正向对照;在真实加载后的列表/详情注入四类动作逐一证明负向断言失败;保留原只读整例。完整门禁及独立复核结论分别记录。
- [ ] G16d:场景 8 对齐现行强制经理解析的 409/no_manager_found 合同,证明草稿且无工作流;不修改人员关系规则/产品权限。后续原 9–23 按实际结果检查,不提前计通过。
- [ ] G16e:旧日常 OA 请假离线重放/冲突两个用例及专属辅助移除,替代合同引用现有企微只读边界测试;报销离线敏感证据用例保留 WebKit。冻结差旅原两条完整保留、继续归 full-local,记录其当前角色不可达与缺少重启验收,不以删/skip消除完整门禁阻塞。
- [ ] G16f:定向必要验证后执行普通 full-local;前置失败即停止,保留完整发现与真实未运行分母,不据局部通过取得资格。整理增量候选、保护校验、治理及余项。
WebKit 当前缓存只有 Chromium/ffmpeg,运行条件缺失,NOT_RUN 不抵扣验收。合同定向 7/7 通过(原只读/静态反例、管理正向、4 个真实页面注入反例),浏览器测试专用类型检查通过;完整反例门禁/独立复核仍未闭合。场景 8 当前源码仍期待缺经理跳过,但 workflow 单测和实现要求必需经理缺失时失败关闭;以现行合同修测试,不恢复旧规则。真实经理缺口、指定真实批次处理人/企微结果、银行样本、K1/K2、独立复核与发布继续分列。
### G16 聚合第四轮通过与普通完整门禁接续
`server-regressions-r4` 477.318 秒,exit 0;八个默认启用套件全部通过,七个默认关闭可选套件未执行、不计通过。通知 1–10 步完整通过,包括新 webhook 合成密钥的加密存储/脱敏读取/本机失败 provider、旧合成字段 encrypt/decrypt 迁移。环境 PASS,sourceUnchanged/repositoryUnchanged=true,归属核验及容器/scratch 清理通过;限定回执 normalReleaseEligible=false。
下一执行普通 `full-r2`:保持完整发现、全部非 manual 浏览器集合、零重试、原并发及内部 fail-fast;WebKit 官方运行包下载问题仍待答复,未下载,缺运行时按实际失败/未覆盖留痕。冻结差旅用例继续保留,不开旧业务权限求绿。运行中源码/测试/task/spec 输入冻结,只读检查与本轮 ignored 证据整理可继续。完整结果产生后按真实用例身份归类,不以本次八组成功或此前定向结果替代整道门禁。
### G16 聚合第三轮与通知密钥合成夹具
`server-regressions-r3` 457.215 秒,exit 1;环境、源码/仓库不变和 owner 清理 PASS。前七个启用套件通过,通知步骤 1–7 通过,第 8 步失败:旧夹具给 mock 渠道传 secret,却期待 secretConfigured=true。现行 normalizeConfigJson 只为 wecom_webhook 保存加密配置,mock 返回 false 是正确合同,不修改产品使 mock 保存密钥。
最小修复方案:第 8 步改为 wecom_webhook 与固定 loopback :9 地址,仍使用本轮合成 secret;保留脱敏和无明文返回断言,增加数据库 hasSecret=false/hasSecretEncrypted=true。渠道测试 API 保持 HTTP 200,provider 必须为 ok=false/wecom_network_error/retryable=true,证明读取加密配置后进入本机失败路径。1–7 的模拟投递和 9–10 的合成旧字段迁移保留,仅操作独占合成库,不读取真实密钥、不发送外部通知、不重跑恢复。语法检查后执行 server-regressions-r4,再按实际终态继续普通 full-local。
### G16 聚合第二轮与本地模拟通知前置
`server-regressions-r2` 439.002 秒:smoke、去重、审批、采购、资产、审计、OCR 七个启用套件通过,通知套件失败。已核原因是本轮 QA 统一设置 IM_NOTIFIER_ENABLED=false,导致原通知合同的模拟投递为空;不是企微真实发送失败。原脚本只创建 mock 及 loopback :9 失败渠道,空库seed不带真实通知配置,网络namespace零外部路由,WECOM_ENABLED/EMAIL_ENABLED仍false。
最小修复:普通 full-local 恢复 qa_export_app_env 原有的 IM_NOTIFIER_ENABLED=true 供聚合回归;retained-server-local 仅 server-regressions 使用 true,workflow-actions 和限定浏览器继续false。保持 mock_sent、本机失败重试、disabled 明确跳过、合成秘密加密迁移等原断言,不连接真实企微/不读真实密钥。fixture 接线测试捕获实际子进程布尔配置,随后重跑同一聚合套件。七个默认关闭可选套件不计通过。环境/源码/仓库/清理 PASS。
### G16 聚合回归首轮
`server-regressions-r1` 350.969 秒:smoke、去重、严格预设模式的 workflow-actions 和采购整组通过,资产组停在最终断言。根因已核为编号旧前缀 ZC 预期,当前资产规约和实现使用 FA;状态 in_use、责任人与位置符合当前流转。仅把编号断言改为 FA 年份序号合同,其余领用/归还/调拨/盘点/审计检查保留。后续审计/OCR/通知未运行,disabled 的可选组也不能计通过。环境/源码/仓库/清理 PASS。
付款模式源码反例 2/2 已验证:预设批次模式只接受精确 409,返回 200 不能切去 legacy 成功;恢复响应驱动分支的实际源码变异会被抓到。登记到稳定 QA 测试后再次执行。WebKit 官方 dry-run 已核 v2105,因原方案“不联网安装”约束已异步询问是否只准官方包到独占目录,尚未得到回答前不下载、不改系统依赖或旧缓存。
### G16 定向审批回归
`workflow-r1` 整脚本通过,386.224 秒;原场景 8、付款批次拒绝直接付款、不同状态拒绝、非财务拒绝、并发拒绝、票据解绑重绑及经理恢复均执行。环境 PASS、源码/仓库 unchanged、owner 清理 PASS。工具完整回归 45/45,另环境 13/13、先行接线 12/12,不累加成不同业务用例。随后自检把付款分支选择收紧为测试开始时 PAYMENT_BATCH_ENABLED 的预设模式,禁止根据响应状态选择宽松分支;下一次聚合回归会再次覆盖该更严格版本。
聚合回归前将 smoke SAMPLE_FILE 固定到本轮 scratch 的不存在路径,使原脚本只生成自己的合成 fallback,不读取共享临时样本。旧成功/失败回执保留。未完成普通 full-local、WebKit、冻结差旅与独立复核。
### G16 首次普通运行与补充实施边界
`full-r1` 999.419 秒,65 spec/359 用例完整发现;72 迁移、Prisma、服务端 4347 passed/1 原有 deploy-init integration skipped、前端 typecheck/build、8 角色正式改密通过。workflow-actions 越过场景 8,于场景 19 旧直接付款 200 预期失败,实际 409/payment_batch_v1_required。后续 server-regressions 和全部浏览器未运行。环境终态 ENVIRONMENT_INVALID 是 guest probe 尚未到达、bootstrapObservation=null;原生 online/namespace、源码/仓库不变和 owner 清理证据均保留,不改写终态。
继续在同一本地范围实施:
- 普通 full-local 在启动 server 后、业务回归前执行 guest probe(浏览器重启后仍再测);让环境前置失败先阻断回归,保留普通 fail-fast。完整发现和浏览器显式 forbid-only。
- 给原受管执行器增 `retained-server-local`,仅允许枚举的 workflow-actions/server-regressions,复用一次性库、构建、合成改密、guest probe及清理,单独选择回执且 normalReleaseEligible=false。不是完整门禁的替代,不新增真实写入或跳过开关。
- 场景 19–22 按正式响应区分现行 batch-required 边界与仍保留的 legacy-disabled 合同。batch-required 分支检查批准/草稿/审批中/驳回/取消状态直接付款均拒绝、非财务 403、重复及并发请求拒绝、支付字段和发票均未变;不关闭付款批次开关求旧成功。原 legacy 分支保留,未执行就不宣称其成功路径通过。修正已改名负金额夹具引用,删除已无调用的旧经理任务/skip 辅助。
- 定向真实回归先跑,按实际后续停点修当前在用断言;本轮不能把新定向通过拼接为普通 full-local 全绿。独立、WebKit、冻结差旅、R1 与外部批准仍开放。
## 2026-09-18 G12–G15 本地收口回执(当前入口)
官方current为本task,会话来源有效,状态仍in_progress。证据入口`artifacts/qa-layout/retained-gates-closeout-20260917`,受管运行入口`artifacts/qa-flow/retained-gates-closeout-20260917`;沿开始日期保留目录,不覆盖旧候选。用户连续执行批准限定本地合成/在用验收,未扩到真实操作或发布。
### 本轮结果
原58身份及54失败/4超时历史不回写。现53条已有当前合同重验证据(52浏览器、1静态函数),4条明确旧/冻结流程排除,1条WebKit报销离线证据因本机运行时缺失仍NOT_RUN,当前定向重验失败余额0。这里是跨轮逐项覆盖,不是一次53项全量运行,更不是53个已修产品bug;原排除项未批量skip或删除。
- G12:新增受管`retained-local`显式选择模式及一次性8角色合成改密前置,保留真实must-change约束。先验证管理员初始浏览器进入改密页,再由正式API串行验证8角色改密、旧密码401及新密码登录;业务并发阶段不改密码。普通full-local尚未接入该前置,`normalReleaseEligible=false`。
- G13:页面定位、角色入口、明确绑定明细、企微只读边界与上海日历日合成输入已对齐。两条主链复用辅助流程;正式小额manager→finance审批、财务审批当前页completed、制单人403、无回单409、合成有效回单的worker失败留痕→人工更正→独立复核→付款登记、付款后只读/回单不可作废、审计/AP/票据归档/登出均在r6整例通过。预览只验UI签名/弹窗/正式PDF字节,不冒充headless原生阅读器渲染。
- G14:r3的真实PWA A受控→同profile切B自动收敛通过,旧独有缓存0、新资源实际加载、worker摘要对应、无登录回退/静态404;根因是构建继承NODE_ENV=test,已仅固定Vite构建子进程production,服务仍test。WebKit保持未验。
- G15:原58逐项结果映射、断言替代合同、当前QA和上批产品独立复核问题、4类外部事实清单已整理。独立review仍PENDING;最终治理/保护与候选摘要以同目录final-check-summary.json和candidate-integrity.json为准。
### 执行与失败过程
| 运行 | 完整结果 | 边界 |
| --- | --- | --- |
| auth-r2 | 1/1管理整例与8角色前置通过 | 非全量认证套件 |
| mock-green-r1 | 11/11通过 | 10条历史映射+1合同DOM反例;DG7、leave另在先前轮有通过 |
| real-cases-r1 | 11通过/13失败 | 初轮24条,不改旧报告 |
| real-cases-r2 | 中断,无最终JSON | 环境/输入/清理有回执,过程日志不补造PASS |
| real-cases-r3 | 8通过/5失败 | 包含真实PWA通过,零重试/跳过 |
| real-cases-r4 | 浏览器前主动中断 | 内层dropdb因代理退出失败;外层owner校验删除容器/临时目录,ENVIRONMENT_INVALID,不计业务通过 |
| real-cases-r5 | 1通过/4失败 | 手机报销整例通过 |
| real-cases-r6 | 3通过/1失败 | 两条付款主链、进度通过;管理员旧入口预期失败 |
| real-cases-r7 | 1/1通过 | 完整PC/移动角色矩阵及admin批次复核403 |
所有完整受管轮均核sourceUnchanged/repositoryUnchanged与归属清理。类型检查r3/r4/r6/r7通过;较早browser-types-r2因Node类型入口选择不对退出2,后续使用既有server类型目录,无安装。QA账号9、环境回归46、PWA工具26各自通过且分列,不累加为业务覆盖。r6/r7的72迁移与前端typecheck/production构建通过。未改产品逻辑/UI/schema;旧文档登记与Browserslist告警保留。
治理/process、四task validate、CURRENT敏感扫描、shell语法和diff检查通过;docs为0错误/既有22未登记文件告警。23个旧目录6946文件的精确集合/SHA、旧差异快照、HEAD/index均保持;本轮只在8个原脏文档/spec路径上追加计划与回执,其余旧差异内容不变。新增复核包另根冻结,独立仍PENDING。
### 后续余额与顺序
1. G14剩1条WebKit:补具备该运行时的受管本地环境后重验,不用Chromium冒充。
2. 普通发布门禁另行接入串行合成账号初始化;明确4项旧/冻结观测在完整发现集合中的归属,旧日常OA流程与冻结差旅分别处置,不暗中skip/删冻结测试。现有服务端场景8/经理缺口仍按原记录核验,未被本轮浏览器结果抵扣。
3. 原AC7的同状态管理权限正向对照和完整独立反例门禁尚未闭合;本轮合同只读+DOM泄露反例只支持其部分条件。R1仍需普通full-local全绿、完整耗时/覆盖和单独启用批准。
4. 当前QA、上批报销/借款/ERP及K0等候选接独立只读复核;真实批次处理人/企微个人发送、银行样本、K1保管事实及K2新绑定按清单分别取得事实与授权。K0合成、历史恢复及新借款本地通过互不替代。
不连接生产/ARM,不读取真实配置密钥备份,不重跑旧恢复;未提交、推送、部署、归档、发送真实通知或付款。公网未据此更新,task原R1/完整验收未补勾。
## 2026-09-17 G12–G15接续执行(当前入口)
用户批准继续推进,官方current已切回本task。只做本地合成环境及在用验收;基线与独立输出为`artifacts/qa-layout/retained-gates-closeout-20260917`,包含上一批借款/ERP候选的保护。原58观测及此前15重验/4排除不回写。
- [x] G12:真实隔离DB的首次登录→强制改密→新凭据重登录,预置仅由运行所有者串行完成;测试并发阶段不改密码。运行随机初始密码经正式改密成为既有公开合成fixture值;不改共享helper或产品强制改密。
- [x] G13:逐例重验10个页面/fixture观测与合同详情/AP权限;先复现,沿当前合同修测试,不降低权限或恢复旧布局。
- [ ] G14:PWA双生产构建/同profile/真实SW已通过;本机WebKit缺失,1条仍NOT_RUN,不下载、不以Chromium或mock抵扣。
- [x] G15:完成在用观测结果映射、独立复核问题清单、真实批次/银行样本/恢复事实核查清单及最终保护/治理回执。
复用现有测试入口和隔离机制,不启用R1或宣称全量发布门禁通过。inline独立复核PENDING;不连接生产/ARM、不读真实配置密钥备份、不重跑旧恢复、不提交推送部署或发送真实通知。
# 执行计划与阶段 0 基线记录
## 2026-09-17 G9–G11 本地执行回执(当前入口)
本轮最终交接合并到 `import-parser-fix-20260917/review-candidate-r2`,门禁分类/运行日志与浏览器材料的相对路径SHA另列;原报告和旧包不覆盖。重跑移动10项时显式选择 `r101-mobile-wip-closeout.spec.ts r6-mobile-unified-design-rollout.spec.ts` 并使用新运行名:当前临时config已加入G11文件,不能把无筛选重跑范围当作原10项范围。候选检查和主会话结论分别有记录,独立复核仍PENDING。
58条原观测身份/原报告SHA已逐一核对并分类:26登录前置、24页面/fixture、2已替代断言、3缺浏览器、1后续AP修复待整例、1PWA待定、1冻结差旅权限。按当前范围为40保留合同、14企微摘要/只读边界、4旧或冻结流程排除;企微主办不等于删除摘要/审计验收。原199/54/4/18和58分母不改。
本轮15条历史观测对应的当前用例已取得本地重验,4条明确排除,另39条保留项未整例重验;不是39个产品bug。历史原状态仍保留,新结果单独列于release-gate-triage-20260917/historical-failure-triage.json/md。无新增全量skip、无删用例、无产品UI/权限变化。
- R12:旧断言要求未知VALID_001原message回显,与09-05安全合同冲突。先红后修,固定安全兜底、合法/非法requestId、注册导入原因断言通过;同文件7项纯源码/函数回归通过,无浏览器/DB。
- G10:R101三项+R6七视口10/10通过,修复旧首页标题、模糊报销heading和企微文案重复匹配。原导航、卡片、横向溢出、触控、无OA日常表单及截图检查保留。首轮mobile-red因本轮代理误拒loopback而3失败/1中断,未到业务,保留为环境失败;修正仅转发本轮静态源后mobile-red-r2四项分别到达目标红例,再修测试定位。未修改业务页面。
- G11:R100首页、AP台账切tab、公告截止时钟漂移三项先红后修;公告固定浏览器与合成API共同场景时钟,并增加逾期补签分支。高敏附件删除旧例当前已通过,只补重验、不重复修改。最终retained-green 5/5通过;它与G10 10项覆盖不同用例,7项静态回归另列。
- 本地仅client/dist只读静态源、合成API和Chromium。新runner前置证明静态200、API404、写405、外部代理403、仅当前loopback转发200;无后端/DB或外部上游,结束后两本地监听关闭。早期network摘要的upstreamConnections=0指外部上游,后续明确分为externalUpstreamConnections与loopbackProxyForwards。WebKit当前缺失,无下载;此环境block SW,不冒充PWA或完整受管诊断。
精确命令见同目录command.json;主要命令为`node artifacts/qa-layout/release-gate-triage-20260917/run-mock-browser.cjs mobile-green`(当时限定R101/R6)与`... retained-green --grep '手机首页和我的页可生成视觉诊断|BIZ8 AP|制度签收公告|高敏附件删除要求'`。纯函数回归为`cd client && node node_modules/@playwright/test/cli.js test tests/e2e/interaction-pattern-unification.spec.ts --workers=1 --retries=0 --reporter=line --output=../artifacts/qa-layout/release-gate-triage-20260917/static-contract-output`。直接筛选重验不是普通发布门禁。
后续39条细化设计已写design顶部:25登录前置、10页面/fixture、合同只读1、AP整例1、WebKit报销离线1、PWA1。保护初始密码必须修改的合同,先规划一次性合成账号生命周期;不改seed为免改密、不并发回写同一账号、不恢复旧日常OA请假/差旅。独立仍PENDING,R1/完整发布门禁未完成,未提交/推送/部署或真实业务/恢复操作。
## 2026-09-17 58条历史观测分类与在用测试修复
### G10 在用移动页定位修复(分类后的限定批次)
后续 G11 限定四个现行合成用例:R100移动首页同类旧标题、BIZ8财务台账需显式切当前tab、公告签收固定截止日期过期引起的时间漂移,以及高敏附件删除原例的当前重验。前三项只修已复现的测试入口/时钟,不更改产品标题、默认tab、签收规则或付款/附件权限;高敏附件例先重跑,若当前已通过则只登记后续修复证据,不重复开发。截图仍新目录、外部网络拒绝、零重试。未知产品行为差异继续保留,不以宽匹配/去断言替代修复。
R101三例及R6七视口仍验证移动首页、报销和企微只读请假说明,不是恢复OA日常考勤。历史停点为“今天”旧标题、模糊“报销”标题和两处企微文案的strict匹配。先在当前构建+原合成API下重现,只更新已证实漂移的定位,采用唯一一级标题/完整固定说明;保留无OA表单、布局/横向溢出/导航/截图等原行为断言,不加first/skip、不改产品样式。
使用现有Playwright测试及本轮只读静态服务器:绑定随机loopback端口,仅服务client/dist,拒绝API和写方法,无上游代理;浏览器其他网络走本地拒绝代理。每轮新输出根,R6截图显式指向本轮新目录,原output/归档截图不覆盖。已有构建可复用,若缺浏览器不下载、不把未运行记PASS。26条登录前置中20条明确落/change-password、2条/login、4条原waitForURL未提供最终URL;当前seed-dev强制改初始密码是安全合同,不修改为false或在共享helper里绕过。其修复需先设计独立合成账号改密生命周期,避免并发套件互改密码。
按用户最新批准接续,官方current已切本task并回读;09-05 B34产品定向回归922/922与前端构建已通过,本task接管门禁分类及限定测试修复。旧“58条不修”是原阶段授权时点,当前允许按在用性先规划后修;不解禁R1,不实施新权限规则、真实数据/外联/提交发布或借款。
- [x] G9-1:核原58条身份、失败层次、当前源码/合同与是否旧或待精简,形成逐项分类及后续最小验证,不把登录/环境错误混算产品缺陷。
- [x] G9-2:先修R12当前安全提示断言漂移;保留红例和核心保护断言,补固定兜底/注册原因/排障编号的函数行为,纯本地测试。
- [x] G9-3:分类后为仍在用组写限定实施顺序、环境前提和验收,不以已过定向测试扣减原58或称全量门禁已绿。
- [x] G9-4:完成受影响检查、来源SHA和旧差异/冻结材料保护,更新09-08协调入口及独立复核交接。
本轮证据 release-gate-triage-20260917;产品输入与B34增量分开记录。历史原报告来自限定主checkout本地合成诊断,只读,不访问其真实环境配置或运行服务。
## 2026-09-17 历史发布回执接回(仅本地文档对账)
09-08本轮W8逐条件对账从主checkout同名task implement的“已按本候选例外完成部署(2026-09-09)”接回原文档引用,并核现有脱敏postcheck-result.json;不复制整份旧文档覆盖本副本,也不读取原始发布日志/环境或连接远端。准确来源/行号/摘要与布尔事实见acceptance-boundaries-20260917的historical-acceptance-review.json及historical-report-facts.json。
四处迁移状态谓词修复已随b87cc55发布;该事实仅闭合追加预检阶段,不代表R1普通完整门禁、阶段B合同用例或58条诊断观测已通过。R1/阶段B继续原冻结,先按保留在用场景分类再另定限定批次,不盲修待精简旧测试。
本次未执行新的发布、真实查询或业务写入;旧“未部署”段落是当时记录,不再代表追加阶段当前余额。原PRD未满足项不补勾,status/completedAt/历史commit不改,不归档。当前G8未提交产品增量仍待独立复核和新的交付授权。
## 2026-09-08 独立复核与提交授权
- 用户已独立复核通过归档恢复、输出隔离、全仓回执与摘要校验的 33 文件包;本轮只补记复核结论,不更改获批实现。
@@ -469,3 +1066,14 @@ seed 交审前补正 Compose init 参数数组并新增执行测试后,再次
- 预检缺陷定性是“该拦时可能拦不住”,未证明生产曾误放行。独立审查在其环境较大输出触发 141,但约 64KB 不是通用安全阈值;此前已有短输出捕获 producer=141/consumer=0 的记录,调度和管道实现都会影响触发,不采纳“日常绝不会触发”的推断。
两笔提交准备顺序:先 preflight(门禁 task 三文档、预检脚本、测试及 spec 对应增量),再 seed(原 17 文件范围,包含 F1/F2 手册补充和 seed task 最新状态;spec 只取 seed 增量)。共享 spec 第二笔以第一笔结果为基线。提交、推送、完整候选门禁与部署均未因此授权;当前只做隔离集成和定向验证。
## 2026-09-18 用户批准后续六组工作的本地接续
新证据根submit-visual-closeout-20260918已保全352项旧差异、34目录12138份旧材料。先给全页面巡检补精确阶段计时,再由09-18-local-concurrency-product-fixes承接P9原提交事务诊断、定稿和修复;两项原整文件通过后,回本task从static执行新完整候选。保持原预算/并发/零重试,不复用旧完整绿灯;受管运行期间源码/测试/task/spec/docs冻结。
## 2026-09-18 P9/全页面最小修复后验证
P9由09-18-local-concurrency-product-fixes完成单次预检实体读取与条件查询,原aggregate/事务/校验保持,相关unit已过;本task接续。全页面诊断9过/1超时,已按design去除500ms安静窗口之后的300ms重复等待,改精确poll间隔而非缩短500ms门槛。先专用类型与语法,再无预载R75原四项、完整报销付款链、视觉原六项,共三个完整文件重验;之后才从static跑新完整候选。预算/并发/零重试、独立及生产边界不变。
## p9-fixed-r3终态及下一验收决策
三个完整文件11项10通过/1视觉超时,607.746秒,零skip/重试。R75四项与付款主链281.132秒通过;环境/输入/owner清理PASS、1347服务响应/0未处理异常。预检最小修复的原合成链验证已完成;全量可靠性仍未证明。视觉在同轮负载下只完成15页,未据局部通过关闭P9/P8/G20。
design已给出按既有角色+终端拆7组、保留33页面及强制完整覆盖的具体方案,改变累计预算边界,待用户批准;未实施拆分。其余已授权的本地静态/治理检查继续;没有直接盲重跑已知失败的完整浏览器候选,也不新增生产操作。