Project

General

Profile

Actions

QA验收 #31

open
RA

收款完整性统一、批量预检及未支付快照补全

QA验收 #31: 收款完整性统一、批量预检及未支付快照补全

Added by Redmine Admin 14 days ago. Updated 13 days ago.

Status:
新建
Priority:
普通
Assignee:
-
Start date:
10/28/2026
Due date:
% Done:

0%

Estimated time:

Description

PAYMENT-READINESS,主任务01a181d7-ab0d-7940-a9ea-729f930f790b。用户批准统一后端readiness规则并显示待补资料、批量只读预检/明确选择完整子集、未支付快照补全预览确认。手机号保持可选,其他现有规则保留;最终支付锁内重校验与整批原子性,补全严格匹配同专家/账户/户名/方式,只补缺项或可验证脱敏字段并保留金额/状态。处理中和已付禁止修改。共享证据outputs/payment-readiness-20261028/index.md。当前为预检准备,未宣称实现或验收通过;本包不授权提交推送、部署或生产数据写。

RA Updated by Redmine Admin 14 days ago Actions #1

#31 PAYMENT-READINESS:Backend独立QA首轮结果

2026-10-28 Asia/Shanghai;主任务01a181d7-ab0d-7940-a9ea-729f930f790b,专属Redmine NDB #31。本轮Backend独立5 Pass / 0 Fail;真实Web三组验收3 Blocked,0 Skipped。整体包未验收完成、不可据此宣称可发布。 本包不继承#30上线/数据写许可,不重做原100成本、19行资料修复或旧测试。

候选、隔离与实际执行

  • Backend projects/ndb/backend,feature/payment-readiness,基线/HEAD816afdc04c2b3f418c0798f0e195cd00c0207d8b、未提交候选;candidate.json的15代码/测试hash在QA执行前后均实际复算匹配,未发生业务漂移。候选文件SHA 44da65323accb7c5516453a6ea20bce6cfc59b03815690724e9883f2d3852aac。Web部分候选9文件hash亦只读核对匹配,不宣称UI已实现。
  • 主Agent已释放测试独占。先检查runner禁read_env、固定SQLite内存DB、locmem缓存/邮件、MQTT关闭、socket/HTTP/SMTP/Celery外发拒绝,并AST解析runner及QA模块。命令使用crm_backend,PYTHONDONTWRITEBYTECODE=1与QA目录PYTHONPATH,明确--engine sqlite;没有读取.env、bw或真实账号。
  • 执行:conda run --no-capture-output -n crm_backend python <本outputs>/run-isolated.py --engine sqlite qa_backend_readiness.IndependentReadinessQa。真实Django路由/ORM与合成finance/admin/PM fixture,force_authenticate仅认证测试身份,不宣称真实登录通过。exit0,Ran5tests/OK;日志时间0.118s为测试执行摘要,不作性能承诺。
  • 原始日志qa-backend-sqlite-r1.log SHA 7d22b77ffc496da606f5678f52ba96cbb0a3d8767f15ac5cda5c6b77b25dfb6f,QA模块qa_backend_readiness.py SHA 5f73dcc9fe26be63466997fc42d88ca80019b584ae5882e78daaf287d1718eb3,runner SHA 92555dce81379daf04e8841aea1eb2487419932f3f4bc551875861190e05830b。结构化结果唯一源qa-results.json;下表为同表渲染,子断言不另加Pass。

实际结果与阻塞

编号 影响/矩阵 实际操作与断言或缺口 状态
QA-BE-01 IMP02/03; R03/R06/R09/R19 真实POST保存unionpay待补主档ready=false,PUT补齐后GET ready=true;同引用历史成本缺身份证仍独立ready=false。actual_price/company_payment=0仅缺身份证;预检无状态/审计写。 Pass
QA-BE-02 IMP01/04/07; R10/R12 三成本全集:完整且phone缺键、身份证/国家缺失且账号mask、已付;requested=3/ready=1/blocked=2,缺项/invalid/blockers完整,原成本/Task/审计逐字段相同,响应无合成敏感值。 Pass
QA-BE-03 IMP05/07/08; R14/R22/R23 同专家/引用/账号/户名/方式来源;preview零业务写,confirm仅补身份证/银行/国家,金额/币种/税费/company_payment/phone/状态等模型字段及Task/来源原样,审计仅一次且无原值/token;同token重放拒绝且无追加写。 Pass
QA-BE-04 IMP05; R20/R21 另一admin actor重放token拒绝;来源QuerySet改身份证而updated_at不变仍CAS拒绝;重新preview后成本金额漂移亦拒绝;每次拒绝成本/Task/审计零变化。 Pass
QA-BE-05 IMP07; R20-LOG1/LOG2; QA-CR01 显式启用真实middleware/APIClient,preview成功且可取token;confirm路径注入合成未处理异常后generic500,捕获django父/子logger无token/PII或exc_info,业务state不变。异常注入为日志故障场景,未替换ORM/路由。 Pass
QA-WEB-01 IMP02/03; R06/R09; PR-02/04 主档/成本待补标签与保存/刷新真实页面未验收;Ardot未登录/无活动文件,组件例外未批准,Web仅非UI部分实现。 Blocked
QA-WEB-02 IMP04; R13; PR-07/19 完整异常清单/明确选择有效子集/主体变化与旧响应失效/错误保留选择的真实Web流程未测;同UI前置,纯状态VM通过不替代页面。 Blocked
QA-WEB-03 IMP05/07; R14/R20/R22; PR-10/11/19 快照preview/confirm可视入口、取消/双击/冲突重预览及DOM脱敏真实页面未测;同UI前置,不由QA代登录Ardot。 Blocked

五个Pass是QA新执行方法数;三个Blocked是计划内真实Web分组,未实际运行,不是假Fail或因缺UI否定Backend已通过证据。QA-BE-03/04涉及fixture来源/成本变更均仅本地合成ORM,未触及真实业务记录。

适用证据复用与覆盖处置

  • IMP01–03:本轮QA-BE-01/02补主档待补/成本自有快照/全集只读;开发r3的五方式/phone任意值、金额0/finite、基础三身份、保存标准化/归属、DTO与真实读route/N+1,及r4权限/1000边界依相同候选复用。新增helper已改变原路径,未直接搬#30的Pass关闭新规则。
  • IMP04:本轮预检多坏行/状态/零写通过;开发R04/R05/R11/R12真实路由覆盖坏行整批不写、权限/非法ID/超限/付款主体;最终锁内重新校验的真实PG预检后竞态由pg-r1.log对应测试复用。R13明确留QA-WEB-02 Blocked。
  • IMP05:本轮同源三字段成功、全其他模型/结算/Task/来源保全、一次审计、actor及即使未改updated_at的source/cost CAS拒绝通过;开发源覆盖确定mask、错来源/删除/账号/户名/类型冲突、无变化、600/601秒、坏token/rawpatch/状态拒绝和失败回滚。
  • PG10是开发在127.0.0.1:55431独立syntheticDB实际双连接/真实请求的源证据,日志10tests/OK无skip;覆盖processing与补全先后、源更新/删除、同token并发一次patch/审计、预检后漂移整批拒绝及继承4项成本编辑/删除锁。主Agent已核放行复用,本QA未连接或重跑PG;不把本轮SQLite断言冒充PG锁验证。
  • IMP06/08:开发同候选旧支付25、引用16及国家保存/导出影响链沿原日志复用,保留原锁/角色/完成撤回/直付取消/推荐人翻译会议/Excel冻结兼容;最终源码未新增账单/回款/激励写,未为无关功能重跑全套。银行导入/真实到账/生产页面未测。
  • IMP07:QA-CR01在本轮前只读复核r5真实Django异常链(3route×DEBUG两态、通用500、django多logger无哨兵或exc_info、正常权限及旧路径保留)后关闭,本轮QA-BE-05再补独立实际链断言。两轮开发早期缺口历史保留,不说第一次修复已完整覆盖。
  • WEB-CR01只删除request.js raw response console单行,当前source SHA efea2e6a9f13bfa57e26e83608b8682b7978b276dec52654909f473bb451fd62,request.test.mjs SHA361bde3343b81f0aaa07edd45669f03b297bb4aadcf5da62b485c8386098bba6。QA已审真实Axios执行实际拦截器、仅adapter内存替身的30/30原日志:403/500隐藏通知两态、Authorization/token/PII哨兵无console输出,401只登出一次、原business resolve/reject及confirm仅一次PUT保留。可关闭该窄日志缺口,不能提升为真实Web/浏览器验收。
  • 开发计数分开:SQLite r3=71,r4focused=3(部分重复),r5=5(部分重复),PG=10;Web原56与后续30(10新增+20重叠)。不相加成不重复总数、不记QA新Pass,本QA只新执行表中5方法。

已知门禁与安全收尾

  • Ardot服务可通但更新后未登录/无活动file,原用户现有组件例外尚未答复;没有设计完成、组件UI或截图证据。Web真实主档待补、用户明确子集选择零自动支付、错误/异步/双击/重新预览/DOM脱敏等3组仍Blocked。由主任务处理设计/组件前置,不由QA登录Ardot或用mock冒称页面。
  • 独立本地API首轮已收口,不表示整个#31通过或获commit/push/部署/生产修复许可。签名/权限/token均仅合成身份;没有凭据/真实PII、生产服务/业务DB、浏览器或真实付款通知。
  • SQLitefixture库随runner销毁,合成账号亦随库销毁;没有停用或删除持久专用测试账号。主任务移交的唯一PG容器b89fb7541f70f3d5c8264becd5ee3922eec600129a5603df4081e6a8d6b72192经ID及ndb.task=payment-readiness-20261028标签校验后按授权删除,本轮未重跑PG;只清理本owned临时资源,不动其他容器/image/库。下一真实Web环境需由新放行包重建相应隔离资源,不能误用此已删除容器当仍可连接。
  • QA仅写本outputs测试脚本/日志/结果和review/收据,未改产品源码/索引/分支/版本,无commit/push/部署。Backend候选及Web已有修改均保留。
  • 本轮结果在#31一次逻辑批次追加并全文读回,收据qa-writeback-receipt.json记录journal/hash。qa-contract-review.md已记录两项安全问题Closed、此前Open历史及准确层级;不另发同样评审journal、不编辑共享impact矩阵造成并发写。

RA Updated by Redmine Admin 14 days ago Actions #2

#31 有效付款主体规则:独立增量QA

2026-10-28 Asia/Shanghai;主任务01a181d7-ab0d-7940-a9ea-729f930f790b,Redmine NDB #31。用户明确改为仅要求付款主体有效存在且未删除;税号/银行名/银行账号缺失不再阻断。本轮3 Pass / 0 Fail,不新增Web通过结果,不覆盖journal309的5项Backend通过及当时Web阻塞历史。

候选与环境

  • Backend projects/ndb/backend / canonical /Users/gexiaowei/Documents/work/mindsetech/ndb/projects/ndb/backend,feature/payment-readiness,基线816afdc04c2b3f418c0798f0e195cd00c0207d8b的未提交候选。测试前后对candidate.json全部16代码/测试文件逐SHA复算一致;候选SHA 27e123f55a1b6dfac287faf06b9a86922a4e635c7badb69fbd8f9c37bf2158fb。
  • 本次精确delta四文件及前后hash沿payer-delta.json(SHA d3af853d35e6901d820681d0277cdb5290c79a8d3e3ff93487be01d13a89dab4):payment_workflow.py、payment_snapshots.py及两个测试文件。当前只移除付款主体字段齐全条件,统一valid_payment_company处理有效ID/未删除;开始仍冻结实际主档值,后续使用冻结主体;锁/CAS/日志/readiness接收人规则不变。
  • 使用已审run-isolated.py,crm_backend、明确--engine sqlite、真实Django APIClient/ORM、内存合成DB;禁read_env、socket/HTTP/SMTP/Celery外发,MQTT关闭。QA模块及runner先做AST检查。没有启动HTTP服务/PG/持久DB/浏览器,未读凭据或访问生产。
  • 实际命令:conda run --no-capture-output -n crm_backend python <本outputs>/run-isolated.py --engine sqlite qa_payer_delta.IndependentPayerDeltaQa,配QA目录PYTHONPATH与PYTHONDONTWRITEBYTECODE=1。exit0,Ran 3 tests in 0.168s / OK,数据库已销毁;耗时只是测试日志摘要。
  • 日志qa-payer-delta-r1.log SHA 67c2a88728db88b9dcb779e24710ed18ae3664929a6cb6759e280febc0236498;QA模块qa_payer_delta.py SHA 8f121cd92bbe871edc167a3ed405f6c0d71275472951f82e057692bde294e4a8;runner SHA 92555dce81379daf04e8841aea1eb2487419932f3f4bc551875861190e05830b。

实际用例(按方法计数,子场景不重复加Pass)

编号/影响 操作与预期 实际 状态
QA-PAYER-01 / IMP01、04、08;R12与付款主体delta 有效未删除主体tax_id=null、bank_name空串、bank_account空白串;两笔完整且phone=null成本先只读preflight,再分别走单笔及财务batch的processing preflight HTTP200/code200、batch_issues为空、两条ready/can_process,成本/Task/审计不变;两路processing HTTP200/code200,精确冻结原主体全部7字段,包括null/空/空白,不补造;收款快照原样、paid_at空,Task仍unpaid,审计各+1 Pass
QA-PAYER-02 / IMP01、04;R11/R12 主体缺键、null、不存在、已删除4类;每类预检、单笔及两笔batch最终开始 专家资料始终ready=true,can_process=false、ready_ids空,batch_issues仅payment_company_id;两最终入口均PAYMENT_SNAPSHOT_INCOMPLETE,整批成本/Task/审计前后完全相同,未将主体问题记成专家缺项 Pass
QA-PAYER-03 / IMP01、08;R16/R23 稀疏主体开始并冻结后,将主档改值且软删;先尝试用另一个有效主体完成,再用原冻结主体ID/实际时间完成 换主体PAYMENT_LOCKED、成本/Task/审计零变化;原ID完成HTTP200/code200且paid、paid_at/paid_by正确、冻结快照完整不变(原空值保留);CaptureQueriesContext实际SQL中无FROM/JOIN payment_company主档查询,证明该完成链未回查主档 Pass

付款状态变化仅本轮合成SQLite记录;无资金、支付渠道、生产成本或通知。APIClient使用合成finance身份force_authenticate,此为路由/ORM测试,不是页面登录证据。

原证据适用性与未测

  • journal309的Backend独立5项保留:主档/成本readiness分离、全集预检无业务写、同源三键补全与费用保全、actor及source/cost CAS、真实middleware日志。新delta不改这些核心实现;原完整payer fixture依旧有效,原通过仍适用;本轮额外验证新的稀疏payer语义,不重跑5项或整套。
  • Backend开发sqlite-r6-valid-payer.log10项/OK为开发自测来源,未混入本QA3项计数。旧71、focused3/5及PG10相关证据按变化链复用,轮次有重复,不相加成独立总数。Task→Cost锁序、source CAS、同token并发、日志源码与对应PG测试未改,未因handoff或本字段放松重跑PG10。
  • SQLite不证明PG行锁或并发,本轮SQL捕获只证明实际本地完成链未读主档;不升级为生产验证。未进行真实付款/银行导入/通知/生产页面或API写,也未重做#30原100成本与19行修复。
  • 真实Web QA-WEB01–03仍未执行。本次用户已取消独立设计/Ardot前置,当前等待Web两项契约兼容缺陷修复、自测和页面候选冻结;不得继续说必须登录Ardot,也不得因API3Pass称整体#31通过或可发布。Web完整环境序列尚未放行,离线plan/runner保持准备状态。
  • 旧契约中“主体税号/银行/账号缺失则阻断”的期待作废;仅缺选/无效/删除主体仍阻断,收款人资料、金额、权限、冻结、批量原子要求均保持。两处Web兼容缺陷由Web唯一owner处理,本QA不直接派业务修复或改源码。

收尾与回写

本轮仅写当前outputs的QA脚本/日志/本结果及回写收据;未改业务/托管文件、分支/配置或凭据,无commit/push/deploy。测试内存库与合成账号随runner销毁,未建持久环境,不触碰旧已删PG、其他资源或专用账号。

此增量一次批量写回#31并全文读回,journal及report/log hash见qa-payer-writeback-receipt.json;journal309保持原样。这里只交付Backend付款主体delta结果,真实Web与整包验收等待后续候选,不要求用户重复批准本次QA。

RA Updated by Redmine Admin 14 days ago Actions #3

#31 v2 独立API增量QA(SQLite真实API/ORM,非Web/PG/生产)
候选Backend SHA256 53fcb3a1bb34be75e73e1205b2ac0ab1a93fa160efb2fa8d5545f1147ca78771;Web 9a915acc2dcbe7fbc36e71e0ee323c4325bf8086408cd54738a7c3ef625db4ff,17/21文件独立核hash无漂移。
V2-01 Pass:单/批缺收款资料无payer纯status进入processing;成本其余全字段、Task全字段保全,审计条数正确。
V2-03 Pass:inspection仅cost_ids或可选空/不存在payer,资料缺项仍can_process=true,成本/Task/审计零写。
V2-04/05 Pass:新无主体processing完成缺payer拒绝零写;使用另一有效主体与旧固定ID冲突整批拒绝;匹配主体混批完成,旧快照原样保留、新null收款资料不补写且冻结、实际时间保留。
3 Pass / 0产品Fail。首轮第三项误用不存在payer,先命中PAYMENT_SNAPSHOT_INCOMPLETE;原失败保留,修正为另一有效合成主体后仅定向复测该项通过,不作为产品缺陷或额外Pass。
证据:outputs/payment-readiness-20261028/qa-v2-api-results.json、qa_v2_status.py、qa-v2-sqlite-r1.log、qa-v2-sqlite-r2-focused.log。内存SQLite已由runner销毁,无共享库/生产/外发/真实付款。journals309/310保留历史;旧payer/完整性阻断processing断言不沿用当前Pass。
真实Web尚待Ops运行收据后继续;V2-02锁证据按已定路线复用Backend v2实际API/ORM,不以QA护栏拒绝冒称产品锁通过。本条不代表整包验收完成。

RA Updated by Redmine Admin 14 days ago Actions #4

#31 v2真实Web登录前环境阻塞:Space8访问本地18831页面,跨端口18731 API Failed to fetch;同一/version服务端HTTP200但缺Access-Control-Allow-Origin。实际django-cors-headers3.2.1读取CORS_ORIGIN_WHITELIST,隔离runner仅设置CORS_ALLOWED_ORIGINS,已只读确认设置不兼容。证据outputs/payment-readiness-20261028/qa-v2-web-cors-blocker.json。尚未读取/提交登录凭据,业务写0;不是产品缺陷或业务Fail,不新增Pass。请求Ops仅对隔离settings设置确切本地Origin whitelist并重启own API,保留PG/8笔fixture及Space8,不重新seed。接口3Pass见journal311;真实Web暂Blocked,未结束验收。

RA Updated by Redmine Admin 14 days ago Actions #5

#31 v2 本地真实Web验收收口(非生产/非真实付款)
Backend最终candidate e64717625a706a799b11c12a7d487f07f8674442c13c44f6e05a2ca772f7ba9e,Web 9a915acc2dcbe7fbc36e71e0ee323c4325bf8086408cd54738a7c3ef625db4ff。Ops原PG/8fixture、原Space8续测,无reseed。
QA-WEB01 Pass:admin正常登录;主档1银行国家留空正常保存并显示待补,随后正常编辑恢复完整,phone为空。finance正常登录有开始/完成入口;PM正常登录两入口不可见(页面能力边界)。
QA-WEB03 Pass:成本3预览取消零成本写;再预览确认一次,GET仅bank/bank_country/identify_code三键补入、unpaid及其余成本字段保全。成本5不匹配预览说明明确且确认禁用。
QA-WEB02 Pass:成本2缺收款资料开始成功,动作网络增量仅PUT /tasks/1/costs/2/payment-status(keys仅status)+GET /finances,无开始动作payer加载/inspection;frozen=false,收款/主体仍null,锁提示及删除受限。新路径完成选择有效稀疏主体2和实际时间2026-10-28T22:30:00,paid/frozen=true且资料仍null。旧成本7 DTO frozen=true,完成只显示固定主体,完成保留原主体快照、paid_at=2026-10-28T22:30:49。
Task证据分层:原DTO整体相等false保持历史;当时独立比较changedTaskDtoFields仅task_costs,返回顶层自身字段未变,明确核updated_at/payment_status不变,paid_at/by在该DTO字段集中无顶层变化但未单独保留值。数据库全Task字段不变沿journal311独立API/ORM ProjectTasks.values()断言,不从DTO升级为DB证明。
本轮新增真实Web3组Pass,加journal311独立API3Pass=6项/组,通过范围分别记,不叠加开发58/PG10/4/DTO2或旧历史。V2-02复用Backend真实API/ORM锁证据及未变锁源码,Web只验入口/反馈;未将QA_SCOPE_DENIED当产品Pass。
证据索引outputs/payment-readiness-20261028/qa-v2-final.md;结果qa-web03-result.json、qa-web02-start-result.json、qa-web02-new-paid-result.json、qa-web02-old-paid-result.json、qa-web-finance-role.json、qa-web-pm-role.json、qa-web-final-fixture-state.json。截图master-draft、conflict-modal、start-confirm-modal、old-fixed-dialog、final-paid均已实际查看,前缀qa-web01/02/03见索引。旧preview图未含modal不作弹窗证据,已用成本5只读补图,无重复confirm/重置。
CORS312由Ops白名单修复,/version浏览器200可读;V2-DTO-01只读flag修复已真实验证新旧分支。无新增产品Fail,CORS/原runner构造失败历史保留。未跑历史全站/会议/生产/外部付款通知,正式手册另作跟进不作门禁。不改产品源码、不commit/push/deploy。
业务动作已结束,环境可由Ops按其精确资源身份清理;本线程不销毁Ops资源。

RA Updated by Redmine Admin 13 days ago Actions #6

#31 测试部署收据复核及操作文档元数据完成(无新增测试Pass)
QA只读消费Ops execution-result.md、ops-test-release-receipt.json、runtime-version-handoff.json及BE/FE runtime收据;各收据hash交叉匹配。实际测试BE1.20.12b0,FE2.16.8-beta.0;https://tcrm.mindsetech.com / https://tcrm-api.mindsetech.com。BE公开版本/19部署文件hash/镜像一致,FE编译版本/公网资源字节与运行容器一致且编译测试API。两条CNB success,production stages skipped;未重复运行请求或浏览器。
preview适配已核:状态workflow及DTO/补全契约适用;保留旧日志递归脱敏、字段顺序和测试迁移前驱差异,Backend17项聚焦验证已通过。复用journals311/313独立API3及真实Web3组,不新增Pass,不冒称测试站完整业务回归或真实付款。AOCI原24Observe/174targets债务保持Stale/preimage,未ack或假绑定,不扩大处理。
操作文档完成:docs/user-manual/frontend/payment-readiness.md(专家款支付操作),测试版;SHA256 336e7b7006e851a7fa30d7459da08a9e2d30936972d4e1df0d3c810c1cde3349。入口/版本改为实际已部署测试值,生产未更新声明保留。7张配图原字节/来源/日期不变:图1–4、6–7为10月28日本地真实合成应用,图5为10月21日旧测试撤回图,均未冒称部署后截图。旧#102适用提示及docs/README.md本主题索引同步。
复核链接(协调根文档):操作文档、UI审阅、Backend审阅。两项review Pass按机械来源编号/元数据差异复用,无重送/重拍/新增业务操作。机器最终收据 outputs/payment-readiness-20261028/manual-final-receipt.json,包含7配图来源hash及部署证据hash。
本次QA只写文档/输出及本条Redmine;无浏览器、凭据、新fixture、业务状态写、产品源码/Git/生产操作。测试发布由Ops执行,QA复用其收据,不重复验版本/健康检查。

RA Updated by Redmine Admin 13 days ago Actions #7

#31 生产发布部分结果收据复核(2026-10-29 Asia/Shanghai,无新增业务测试Pass)
依据production-release/ops-production-release-receipt.json、runtime-version-handoff.json、backend-runtime-receipt.json,只读消费Ops现有证据;QA未重复runtime请求/浏览器/fixture。
Backend:v1.20.12,commit2945c87a0248ad045345e0b40bd87337a1d24cc0,CNB cnb-mua-1k61jq9o6 success;Ops实际运行核验passed,19文件hash和镜像匹配,crm-api/v1/version HTTP200版本1.20.12。该项是发布运行核验,不新增功能测试Pass。
Frontend:v2.16.8 main/tag及CNB cnb-vhe-1k61jtbco已成功,生产alias/触发成功且queued响应已核;实际仍为旧镜像。目标digest0e01f13b…b5e1c,观测旧digest7412b51e…d7b31;因此生产整体未完成,不能称FE2.16.8已生效。恢复请求queued也不能当作部署完成。
当前待排查边界:原CI请求及一次直接CLI恢复请求未得到新版runtime,主机/worker现有日志不足定位。直接CLI偏离ndb-release-tag pipeline-only要求已由Ops记录并停止,不追认其为标准执行;root已向用户请求只读这两条请求部署日志/状态的skill例外,尚待答复。本线程不查询状态/日志、不发新部署请求、不自行扩大权限。
验收继续复用API3/Web3及适用开发/PG证据,journals311/313/314历史不变;未进行生产状态变更、实际付款/通知或测试站新业务回归。手册docs/user-manual/frontend/payment-readiness.md保持BE1.20.12b0/FE2.16.8-beta.0已部署测试适用,原7图来源日期不变,未写生产完整上线声明。
源收据路径:outputs/payment-readiness-20261028/production-release/。最终生产runtime到位后只记录必要增量,不重复本条。

RA Updated by Redmine Admin 13 days ago Actions #8

#31 生产最终运行收据及操作文档完成(journal315后续增量,无新增测试Pass)
journal315保留当时BE已生效/FE旧镜像的部分状态。现QA只读复核Ops原始backend-runtime-receipt.json及更新后的frontend-runtime-receipt.json:BE1.20.12 passed继续复用,19文件hash及CNB镜像一致;FE2.16.8 passed,镜像digest0e01f13b…b5e1c匹配原CNB产物,productionAPI已编译、公网HTML/JS与实际运行容器字节一致。因此两端生产运行已核完整,不再沿用先前FE旧镜像状态。
Ops最终汇总收据在收尾,本条完成依据两份已通过的原始runtime收据及root最终运行信号,未将先前仍旧的汇总文件冒称最终passed。恢复请求于2026-10-29 00:39:02(Asia/Shanghai)自然完成;按root转交结果,SSH master复位guard阻止,未执行master复位/新CI重跑。一次直接CLI部署触发偏离及一次用户授权SSH子进程TERM历史保留,不因运行成功抹除。
操作文档docs/user-manual/frontend/payment-readiness.md已更新适用生产BEv1.20.12/FEv2.16.8及 https://crm.mindsetech.com 、 https://crm-api.mindsetech.com 。SHA256 1c29be980887403abd38221f57431480f9563af87c5ccb96cbf8b555f6e07250。旧测试BE1.20.12b0/FE2.16.8-beta.0及入口保留;原7图字节/日期/来源不变,图1–4、6–7仍是10月28日本地真实合成应用,图5仍是10月21日历史测试撤回图,均非生产截图。旧#102适用提示及docs/README.md本主题元数据同步。
沿用UI审阅与Backend审阅的Pass,仅版本/入口/适用元数据变化,不重送同样内容。操作文档:专家款支付操作;最终收据outputs/payment-readiness-20261028/manual-final-receipt.json绑定当前文稿hash、7图来源及生产runtime证据。
原API3/真实Web3组及适用开发/PG验收继续复用,无新增测试Pass;未重复浏览器、runtime请求、fixture、生产业务状态验收、真实付款或通知。QA本次无产品源码/Git/生产环境操作。

Actions

Also available in: PDF Atom