从孤儿 worktree(artifacts/isolated-worktrees/20260910-reimbursement-payment-integration)
合并回填与前一笔 09-04 相同的 2026-09-11 执行记录(候选 5d8cdf12 部署、公网
部分验收、测试账号隔离盘点、提交推送回执),补齐本任务自己的 implement.md——
该事件同时归属两个任务,此前只有 09-04 一侧记录,本任务侧完全空白。
无产品代码改动。
Co-Authored-By: Claude Sonnet 5 <[email protected]>
28 KiB
执行清单
2026-09-11 专用账号只读盘点与隔离决策(最新,待选择)
本轮只读核清专用账号后,确认不是单纯登录问题:财务smoke已经归档(status及archived_at均确认),CEO凭据精确匹配0条;另有一个经理smoke但其上级是非smoke,不能盲目借用。角色通知会覆盖活动真人CEO/财务,付款复核按现有优先CEO规则投影指向非smoke;通知总开关、相关真人推送开关及企微绑定存在。所有smoke缺主体和收款配置。没有登录尝试、改密/解归档/改角色、解密或业务写入。
最小修复清单与A/B验收路径已写入本任务design的最新节,脱敏回执保存于既有release目录synthetic-isolation-readonly.json。推荐生产账号保持不变,复用同候选隔离环境完成全链,将公网已测范围与隔离结果分开;这属于验收口径选择,待用户确认,不擅自降级。若坚持生产公网全链,必须先设计测试任务/通知/复核/付款数据隔离,而不是先启用账号。既有09-07本地认证夹具任务不承接未经批准的生产账号操作。
当前5d8cdf12已部署、员工公网部分验收通过、合成草稿已清理的事实不变;完整公网付款链仍未验收,任务不归档。下一步等待验收路径选择,不继续反复尝试同一组不适用账号,不让员工代测。
2026-09-11 新候选已部署与公网部分验收(已完成阶段)
用户已明确批准5d8cdf12发布例外、部署及有限合成验收/清理,不含真实单据、实际付款或删除回滚制品。使用独立干净main克隆,候选树精确匹配dd2e96e0,无来源override。首次因预检超过15分钟在本地停止、尚未部署;重新只读刷新后通过正式13项聚合门及迁移预检,再以existing模式完成构建/init/应用切换、部署后迁移核验、公网版本/资源检查和备份合同刷新。初始化seed未运行。部署于北京时间09-11 20:58完成,生产与公网短版本5d8cdf12b456一致,68条迁移无pending;数据库未重启。最终磁盘33.6%/39.10GiB可用,原fe025e65独立镜像制品仍在且摘要匹配,未清理镜像/备份。
公网部分验收实际通过:唯一安全普通员工smoke账号真实浏览器登录一次,PC与手机均实际请求门户且不展示财务卡;创建一张本次标识的空合成草稿,双端在零明细时可打开“我的发票”。未上传发票、未调用腾讯OCR、未提交/审批/组批/付款;合成草稿已删除,HTTP404及另一次数据库只读回读确认记录为0且删除审计保留。编号消费和审计不回滚。浏览器与上下文均关闭,无待清理业务对象。
完整付款链未验收:配置中的管理员不是smoke,未使用;经理smoke必须改密,财务smoke非活动,CEO测试凭据未匹配唯一账号,员工smoke缺主体。这是测试身份前置缺口,不推断真实员工账号故障。未尝试这些账号登录,未绕过密码或角色校验、未启用账号/重置密码/修改主体,未使用真人兜底。下一步沿既有认证前置任务只读明确专用测试身份修复清单,生产账号变更另批后再跑完整链;当前不宣布全员验收完成,不让员工代测。
回执见artifacts/qa-flow/20260911-release-5d8cdf12:deployment-receipt.json、postcheck.json、employee-acceptance.json、synthetic-role-preconditions.json、cleanup-readback.json。此前预检和交审快照保留,不把新部署状态写回冻结manifest。完整门禁、正式附件/应用恢复等例外继续保留;本轮没有触发新备份,合同已更新不等于已有新版本恢复点。状态补记留在候选之外,未新增提交/推送。
2026-09-11 新候选生产只读预检(发布前历史)
已按用户确认执行下一步,只读连接生产,未部署/清理/写业务数据。2026-09-11 20:36 北京时间回读:生产 fe025e65,检查期间运行身份和环境摘要一致;候选与生产 68 条迁移全部一致,无 pending/未知/异常/checksum 差异,查询使用 READ ONLY 事务。数据库、附件、回滚目录所在文件系统使用率 32.1%,可用 40.03GiB。
最新同源本地备份于北京时间 09-11 02:30:49 完成,观测时18.09小时;manifest及DB/附件包尺寸摘要匹配。当前生产独立镜像制品1,119,357,440字节、尺寸摘要匹配,仍同机;没有执行恢复或docker load。独立worker profile未创建,主server配置JOBS_ENABLED=true/OCR_PROVIDER=tencent,不据此宣称腾讯调用成功。
证据与审批材料:artifacts/qa-flow/20260911-preflight-5d8cdf12/readonly-receipt.json、release-request.md。复用已审只读探针,迁移输入来自候选Git对象,不运行旧候选入口、不覆盖旧证据。未重跑本地测试,未修改冻结候选或追加提交。
下一步必须单独批准绑定5d8cdf12的发布例外、部署及有限合成验收写入范围。完整候选门禁、正式附件/应用恢复、真实OCR/公网角色链与构建峰值未因此通过;部署时还须新鲜核验并执行正式门禁,不直接从脏工作副本部署。只操作获准合成对象、保留审计,不实际付款、不发送外部通知、不删回滚制品、不让员工代测。
2026-09-11 独立复核接收与预检准备(历史时点,未部署)
用户回传新候选 5d8cdf12/树 dd2e96e0 的独立只读复核:放行、无阻断。覆盖输入/拆分、双端身份 key/enabled、signal 到 fetch 及 401 重放;未审按钮/窄屏/附件定位具体内容与测试断言,未运行测试、未复现浏览器、未验证生产或服务端。接收外部结论,不扩写为全量独立验收或已证实生产泄露。
F1 已更正交接 README 的未提交/未推送过期描述,并区分当前状态与 commit-plan/manifest 历史快照;F2 复用输入未变测试、不新增计数的措辞保留。独立结论存入 postpush-cancellation-commit-preparation/independent-review.json,原冻结包及历史 NO_GO 不变。两任务元数据同步最新 commit/状态,本节及元数据是候选外未提交补记,不新增代码提交。
下一步准备绑定 5d8cdf12 的只读预检,按下方既有发布验收清单核生产版本/镜像、迁移 checksum、磁盘峰值余量、最新同源备份完整性与独立回滚制品。旧 run-precheck.mjs 固定先前 push-receipt/输出目录且要求整个工作副本干净,不能直接重跑、覆盖旧证据或清理脏文件;执行时从冻结候选提取输入,另存新回执,复用已审只读探针。权限不足停在边界,不绕权限。
本轮仅更正文档和准备预检,未连接生产;所有历史磁盘数字均不能作当前容量。此次有限范围复核不解除完整门禁、附件/应用级恢复及公网验收缺口;部署例外必须重新绑定新候选获批。原已批准的提交推送已经完成,不再重复索取;部署、真实数据及公网合成写入仍不在该授权中。
2026-09-11 补充修订提交推送回执(历史时点,候选外补记)
用户明确批准两笔提交并推送,仅供独立复核,暂不部署。详情修正 9e41f107(9 文件)与门户修正 5d8cdf12(10 文件,共享规约按内容拆分)已按顺序提交;最终候选 5d8cdf12b45685b2bd5d8a36a0cea376cac366f3,树 dd2e96e0506885640eb462499e230926800cd832,与 postpush-cancellation 冻结树完全一致。远端 main 和本地 origin/main 回读一致,待推送 0;7 个恢复/付款准备脏文件未纳入、未改动。
本轮只做输入摘要核对、提交和推送,未重跑未变测试,复用联合 66/66 页面、构建与真实隔离链结果及按输入核对的 135 单测。原 manifest、NO_GO 与历史证据不改写。提交准备目录 postpush-cancellation-commit-preparation 保存计划、两笔补丁、commit-receipt.json 和 push-receipt.json;本节是候选之外的未提交状态补记,不另建任务或追加第三笔提交。
独立复核仍 PENDING_INLINE,不能把本轮提交或主会话验证当作独立通过。下一步将新候选交独立只读复核;通过后刷新执行时生产预检,再按候选专属批准部署并由执行端完成公网合成验收。本轮未连接生产、未部署、未让员工代测;不沿用历史生产观测冒充当前现状。
R1复核F5与R2验收补充
新增断言已随R2新构建重跑visual-portal.spec.ts,22/22、零重试,日志/tmp/followup-r2-browser.log。PC与手机财务两段href、BX/PB处理后均消失本次实际断言通过;仅合成API/认证,不宣称公网或自然交接验收。
R1财务两段当时只断言文本/计数及PB消失,未覆盖href及BX消失;下表R1记录中相应“入口/处理后消失”覆盖声明过宽,按此更正,不改变原22项日志。R2已补PC/手机的BX/PB正确href及两项均消失断言,新的执行结果另记。employee/ceo的旧href及消失断言已存在,不虚报本次新增。
2026-09-15 四段交接双端重新验证(本地PASS)
使用本轮新构建与仅回环地址的vite preview,执行E2E_MODE=local E2E_BASE_URL=http://127.0.0.1:4177 ./node_modules/.bin/playwright test tests/e2e/visual-portal.spec.ts --workers=2 --retries=0 --reporter=list --output=../artifacts/qa-layout/followup-stage3-browser,22/22通过、零重试,日志/tmp/followup-stage3-browser.log。测试文件自身串行执行,输出实际1worker;不按命令参数声称并行。临时preview已停止。
| 业务交接 | 对象与双端验收 | 本轮结论 |
|---|---|---|
| 退回后改重提 | employee冷进入、正确报销入口、处理后消失、错误可重试 | PC/手机PASS |
| 已批未付组批 | finance事项、计数与入口、不显示旧泛化计数、处理后消失 | PC/手机PASS |
| 付款独立复核 | ceo冷进入、正确付款入口、非财务不出现组批事项、处理后消失 | PC/手机PASS |
| 付款与回单处理 | finance制单后待付款/回单事项、刷新后消失 | PC/手机PASS |
同时覆盖甲乙甲同文档切换的慢响应、失败、晚返回、迟到401取消及同身份401刷新正例,超过8条事项不截断。本次浏览器确实运行真实前端,但auth/API/事项是合成fixtures,未操作真实付款,也不是生产JWT+数据库同链新证据。测试未发现需重写门户的缺口,旧已发布身份隔离不重复开发。真实通知送达及自然新回单仍另列外部验收,不靠页面绿测替代。
2026-09-15 统一收口接续
本task承接统一计划B的待办投影部分,退回通知仍归09-04-approval-return-notification-gap;总顺序见09-08-reimbursement-payment-closeout/implement.md六项计划。Git已存在fedcaed1及后续门户身份隔离提交,历史“未提交/未部署”只代表当时,不能据此重做。本轮先逐验收点关联当前b7d2285d发布与先前证据,再决定真实缺口,不直接勾完独立复核/业务验收。
检查矩阵保持退回修改/财务待组批/独立付款复核/财务登记四阶段,核PC与手机计数列表、权限/责任人、入口动作、处理后消失、通知失败不遮蔽待办;重点复用迟到401取消和甲乙甲隔离回归。真实消息投递和真人退回另批,不把合成测试算自然业务完成;范围内最小修复与针对性验证连续执行。
2026-09-11 只读复核后取消旧请求(原范围接续,未提交/部署)
冻结树 dcde0d44 的双端合成浏览器复核发现:甲旧请求在乙登录后返回 401,会用乙 token 重放,并把乙结果写到甲 queryKey;甲再次登录等待新响应时显示乙待办。原 6/62/真实隔离通过记录不改写,它们未覆盖该分支。只读回执见 postpush-identity/readonly-review.md。本次沿原批准的门户隔离范围返回实施,不改变全局认证或业务权限,不新建任务。
- 补双端迟到 401、真实传输取消、甲→乙→甲回归,先在现有未取消构建上跑红;补同身份刷新正例。
- 两页 queryFn 消费 signal,经现有门户 API 传给 HTTP 请求;不改全局认证、业务写入或其他查询。
- 新构建、专项、联合页面与真实隔离验证;保留失败证据,不重复累加数量。
- 主会话检查、更新稳定合同与两任务状态;新修订树及补丁重放以 postpush-cancellation/manifest.json 为准,独立复核、提交推送和部署继续分列。
实际结果:未取消构建双端红测均失败;取消修正后专项 10/10,三个既有文件同轮 66/66、退出 0、零重试(包含这 10 项)。新 typecheck/build/PWA 与真实隔离数据库/认证/HTTP/双端完整业务链通过,临时库和合成附件已清理。14 个验证源输入、115 个构建文件在冻结前核对未变;135 单测仅按未变输入复用。迟到 401 专项为合成 auth/API,不冒充真实过期会话实测;真实业务链的普通登录与切账号另有证据。
本轮复核/修复只触及旧门户请求未取消这一根因,主会话自检不抵扣独立 review。原 dcde0d44 包与 NO_GO 回执保留;不将同会话修补写为独立通过,不改全局认证或其他模块缓存。下一步将 postpush-cancellation 新输入交审,再按明确授权提交推送、冻结新 SHA、执行时预检及部署/公网自动验收。未提交、推送、连接生产或部署。
2026-09-11 身份隔离修复接续(用户已确认,本地实施与验证)
官方 current 在实际 integration 副本切至本 task,联合协调仍由 09-04 记录;复用原任务,不新建修复 task。批准范围是 PC/手机门户身份缓存隔离与自动验证,不含提交、推送、部署、生产资料或全局认证改造。原 readonly-review/P1 及冻结输入保持原样;新证据另存 postpush-identity。
- 在现有 visual-portal spec 补同文档账号切换矩阵,先用未修正构建复现 PC/手机慢响应串显,再修两个门户 queryKey/无身份禁用门。
- 同一 BrowserContext/文档验证双端慢响应、失败重试、旧请求晚返回;不清缓存、不强刷、不用新上下文替代切账号。保留已有前缀刷新及角色权限。
- 新构建、定向页面、联合三文件及受影响真实隔离链路验证;本地通过与生产/独立 review 分列,未变服务端单测按输入核对复用。
- 主会话检查本轮差异、补稳定 spec 和两项原任务状态;另存修订包,不覆盖旧复现或把阶段结束当上线。
本地结果:未修构建 PC/手机 slow 两项均复现串显;修后身份隔离专项 6/6,联合三文件同轮 62/62、零重试,包含该 6 项,不重复累加。新 typecheck/build/PWA 通过;真实隔离 PostgreSQL/密码登录/JWT/HTTP/双端业务链 PASS_REAL_DB_HTTP,新增同文档员工→CEO 登录、身份回读、真实门户响应暂缓和零旧待办断言通过,临时库/合成附件已清理。135/135 单测按服务端、共享前端 helper 和依赖清单未变核对复用,不称重跑。证据见联合目录 postpush-identity;具体冻结树、摘要和检查结果以该目录 manifest.json 为准。
复盘:固定 queryKey 隐含“浏览器只使用一个账号”,原独立上下文和冷进入测试漏掉会话生命周期。原始红测有效保留;修后首次专项 4/6 的两项失败是测试事件未冒泡到 window,首次真实链失败是 /me 夹具从精简 request.employee 读取了不存在的工号字段,均在身份/刷新前置阶段失败。修正事件和按认证 ID 查隔离库资料后重跑通过,没有放宽断言或更改认证实现。原失败日志仍在,不把夹具失败说成新增生产缺陷。
本轮 P1 在已测门户范围本地闭合,独立只读复核仍 PENDING_INLINE。未提交、推送、连接生产或部署;其他查询缓存、同账号权限变更、完整发布门禁、公网角色验收和正式备份应用级恢复不由本轮 PASS 推导。下一步交审新修订包,经明确提交推送授权冻结新 SHA,再更新执行时预检并另批部署/公网自动验收;员工不代测。
2026-09-11 只读复核 P1:同浏览器切账号待办串显(历史:当时方案待确认)
主会话检查冻结树 68f44e1531719c4d83308cc80494181f0d390803,使用本地合成 API/真实浏览器复现:甲通过界面退出、乙登录,同一文档且账号控件已显示乙,乙的门户请求尚未返回时仍显示甲的待办。正确空响应返回后消失;没有访问生产或验证服务端越权。PC 已实测,手机仅发现同类固定 queryKey,尚未复现。不重写此前 56/56、135/135 及真实隔离链路通过记录。
本轮只读检查与诊断未改运行时,旧冻结输入保留,当前候选不放行。首次诊断 /me fixture 漏 requestId,登录未通过;修正 fixture 后两次观察一致,后一次额外断言账号控件已切乙。细节见联合目录 postpush-recheck/readonly-review.md;不是独立 reviewer 结论。
- 确认后将 PC/手机门户缓存键按当前员工身份区分;无已确认身份不查询,不沿用上一身份数据或用强刷掩盖问题。保持现有前缀失效刷新、冷进入和财务卡权限。
- 在同一 BrowserContext、同一页面文档通过真实页面退出/登录路径覆盖双端,不调用清缓存/新建上下文/强刷;分别验证慢响应、失败和旧身份请求晚到均不出现他人待办。
- 保留已有角色正反例和状态消失回归;改后构建并对受影响真实隔离链路回归,再冻结新输入。认证 API、角色、生产数据和付款写入不在此修复范围;其他模块全局认证缓存另行归因,不宣称两页修复解决全站缓存。
2026-09-11 联合附件回归接续(最新本地验证,未提交/部署)
复用 09-04 原任务核实剩余高敏附件失败:旧材料 CSS/按钮名定位未随共享组件同步,附件在失败快照中实际存在。仅适配该测试并补单字理由/取消关闭断言,不改运行时、角色或删除规则。专项 1/1;原三份页面文件同轮 56/56、退出 0,包含本任务普通员工/CEO 双端待办冷进入、处理后消失和手机错误重试。下文“55 项通过/1 项未过”保留为上次冻结记录,不再是当前缺口。
运行时和 QA 输入与上一冻结树一致,复用 135/135 单测、构建/PWA 和真实隔离 HTTP/双端业务结果,不称本轮重跑。新复核材料见联合目录 postpush-recheck,旧 postpush 输入/失败日志不覆盖;附件专项为 mock 请求验证,不冒充生产或持久化删除。独立复核、完整门禁、明确提交推送修正授权、新候选执行时预检及部署/公网合成验收仍未完成,员工不代测。
2026-09-11 提交后复核与首批上线准备(本轮已批准,未部署)
用户批准按综合建议规划并实施。复用本任务修待办缺陷,09-04 维护联合交审与发布验收清单;不新增细碎 task,不继承提交/推送/部署/生产写入授权。执行副本为既有 integration,官方 current 已切换并回读为本 task。主会话 inline 实施/检查,不派 implement/check 子代理,独立 review 继续单列。
已推送 fedcaed1 的只读复核发现手机门户整体查询仍受 canUseFinance 限制:API 能返回普通员工退回事项,不代表该角色手机真正发起了查询;旧浏览器覆盖只有 finance 手机、employee PC。此前 135/39 通过记录保留,但不能证明这两个角色端组合通过,也不继续把 fedcaed1 标成无已知阻断的发布候选。
- 先追加手机普通员工与单独 CEO 的冷进入回归,在旧代码上复现;保留失败证据。
- 移除手机整个门户查询的财务展示门,财务卡片/服务器权限不变;补处理后消失和失败重试。
- 运行定向浏览器、typecheck/build、有关真实隔离链路和治理检查;失败逐项归因,不让真实员工代测。
- 核对旧候选 32 文件、两笔提交树与冻结证据;另存提交后交审封面、此次修正补丁及摘要,不改写旧 manifest/review。
- 在 09-04 原计划写清首批角色剩余就绪项、发布前重查、受控公网验收与停止条件;旧附件保留标记不再追查。
- 新修正经明确提交推送授权后冻结新 SHA;独立复核、发布审批与公网验收仍待完成,不把本地修复当上线。
并行技术债继续沿既有 09-06 门禁、09-05 错误解释及 08-23 恢复任务排期。10-05 的 673 条到期记录不统一续期,主线不顺手改 F1 付款读取或其他模块。
复盘:根因是新增业务 DTO 后仍沿用旧财务卡片的查询开关,属于变更传递遗漏与角色×端覆盖缺口。原 API 回归和财务手机测试没有验证普通员工/CEO 的手机查询是否发出。针对旧代码的两个手机冷进入用例均失败(待办链接为 0),修正后 employee/ceo × PC/手机冷进入/处理后消失,加手机错误重试共 6 项通过。服务端权限、角色和持久化模型未改;后续真实隔离测试额外断言手机真正发起 portal 请求,而不是仅验证接口返回。经验已补既有前端规约,不新增经验文档。
最终本地回执:证据集中于联合目录的 postpush/。当前全部运行时修正仅 3 个前端页面(本任务手机待办、09-04 报销按钮/付款窄屏),服务端未改。unit-complete.log 135/135、build-integrated.log typecheck/build/PWA、real-db-browser-final.log PASS_REAL_DB_HTTP 且两类手机待办各自真实认证冷进入 1→0 通过;临时库/合成附件已清理。三文件扩展 ui-final.log 原始 54/56,手机断言按响应式合同纠正后 responsive-final.log 3/3,去重为 55 项已通过、1 条未改动的历史附件选择器用例仍失败;没有把扩展检查写成全绿。独立 review、提交推送修正、部署/公网验收均待完成。原 39 项与本轮回归不重复累加,腾讯实时 OCR 仍未测试。
最新前置补记:用户另批后,当前生产 fe025e65 镜像已独立保存并完成配置/14 层/归档摘要及新 SSH 回读;财务/yj 的所属主体仅两行条件修正并独立连接回读通过,未改角色/经理/银行。共用 09-04/09-08 最新回执和联合副本 artifacts/qa-flow/20260911-authorized-preparation/;下文制品/两人主体缺失是此前阶段状态。候选 fedcaed1 未变,未部署;独立复核、ARM 管理员渠道和配对恢复仍未完成。
2026-09-11 提交推送回执(最新,未部署)
用户已批准执行推荐下一步。本任务提交 fedcaed1a13cc3b32ee47e1d72c2b5ffa5512c57(15 文件),前一笔详情修复 f9aee4c93272204d18408217358d95334cedcd5e(19 文件);两笔最终树 476364c76c 与原冻结包一致,origin/main 回读 fedcaed1,待推送 0。共享 QA 按补丁拆分,没有覆盖独立副本或混入根 checkout 改动。
135/135 单测、39/39 页面和真实隔离流程的输入未变,复用原结果,不声称本轮重跑。独立 reviewer 受 inline 限制仍待完成,没有继承旧候选审查或批准部署。生产只读预检确认仍 fe025e65、68 条迁移无 pending、41.09 GiB 余量、今日同版本备份完整性通过;当前镜像独立制品未找到,ARM 归档管理员凭据待补,配对恢复未做。
四名确认账号的门户/付款部门 gate 均开启;财务/yj 经理关系正确、本人所属主体仍缺,生产字段未回填。就绪与恢复详情复用 09-04/09-08/08-23 最新回执,不把资料存在性当银行解密或真实流程通过。联合副本 artifacts/qa-flow/20260911-combined/ 保存 commit-plan、commit-receipt、push-receipt;artifacts/qa-flow/20260911-readonly/ 保存新预检。历史 manifest/补丁未重写。
本节覆盖下文“未提交/未推送”的历史状态;回执为候选之外的未提交文档补记,任务不归档。下一步独立复核及另批当前镜像保存/配对恢复和就绪缺项;部署及公网合成验收仍另批,不让真人代测。
已获 2026-09-11 综合规划实施批准;独立工作树基线 fe025e65。复用已读 backend/frontend/权限规约;未授权生产操作、提交、推送或归档。
- 只读事实加载与四类投影,最小 DTO 和正反例。
- 接入 PC/手机既有门户,避免新旧聚合重复,聚焦/重入刷新。
- Vitest 服务/路由、客户端 typecheck/build、合成 Playwright、真实隔离业务状态演进验证。
- 主会话只读检查和规约更新;与详情修复按补丁形成联合工作树,不整文件覆盖。
- 独立只读 review,inline 主会话自检不抵扣。
- 明确授权后分别提交推送,候选
fedcaed1已冻结并远端回读。 - 最新生产/备份只读预检、就绪/恢复、获批发布及公网受控验收,分别登记,不由本地 PASS 推导。
2026-09-11 实施与联合验收回执
代码完成但未提交。原独立副本为 artifacts/isolated-worktrees/20260911-payment-handoffs;联合副本为 artifacts/isolated-worktrees/20260910-reimbursement-payment-integration,基线同为 fe025e65。联合副本包含 09-04 详情修复与本任务,两个共享 QA 文件按补丁合并;根 checkout 既有改动、旧已审包与干净发布 clone 未动。正式 current 分别与各自任务一致;没有将旧 HEAD 冒充包含本轮改动的候选 SHA。
- 服务端只读事务派生四类事项,不存 todo、不发通知、不解密账户;来源/部门 gate、角色/权限、非本人制单及删除/撤回排除均有正反例。缺银行资料仍是待组批事项,不声称能成功创建批次。
- PC/手机使用同一 DTO,total 与全部明细一致;收到新投影不重复叠加旧财务聚合。移除 PC 行动前八项截断,增加超过八条回归。加载失败与空态分开,局部重入/聚焦重新查询。
- 联合单测:6 文件 135/135,unit.log;联合页面:39/39、退出 0,ui.log;build.log 包含 typecheck/build/PWA。这些是联合数量,不与分项 16/16、3/3 重复相加。
- real-db-browser.log:PASS_REAL_DB_HTTP、退出 0。真实一次性 PostgreSQL、密码登录/JWT、HTTP、桌面/手机,按退回→重提→审批→组批→独立复核→导出→合成回单→登记推进;门户事项随状态出现/消失,重复读取稳定且不写审计。并行保留原退回留痕删除、授权、历史材料与发票重用回归。
- 最终证据在联合副本 artifacts/qa-flow/20260911-combined/;独立分项记录保留在原副本 artifacts/qa-flow/20260911-handoffs/。已查看联合 PC/手机门户合成截图,复用既有组件,不宣称新视觉体系已审。
- 测试修正仅为真实 CJS require/feature flag fixture、has_session cookie 及合成回单字段对齐;没有放宽认证、资料门禁或产品付款约束。初次失败日志留存,以最终联合退出 0 为准。
- 主会话已只读复核投影最小字段、只读事务、来源排除、目标入口、maker-checker、无新增写入及新旧聚合去重。独立 reviewer 未执行,旧候选审查不自动覆盖本轮。
测试不用真实员工或银行数据;OCR 为真实 worker + mock provider,长审批历史为合成 fixture。回单登记只发生在隔离合成库,没有银行连接。数据库和合成文件已清理;未调用真实腾讯 OCR、未恢复正式备份、未查询/修改生产、未发送消息。正式就绪与配对恢复准备仍归原付款/备份任务,不假报首批员工启用完成。
下一步与提交边界
先以联合 changes.diff/manifest 固定未提交输入供只读复核。建议与 09-04 拆为两笔,各引用 task;共享 QA 的先后补丁必须保留,不能整文件覆盖。无 schema/migration/seed/角色修改,本任务代码回退不修改业务记录;整站既有留痕删除回退语义仍有效。获批提交推送后冻结真实候选,再刷新生产和恢复前置、另批部署与公网合成验收,不让真人代测。