QA验收 #16
open回款奖金税净口径及归属销售与本轮UI调整|测试环境全功能验收
Added by Redmine Admin 21 days ago. Updated 20 days ago.
0%
Description
用户2026-10-21授权本轮全部修改提交并发布测试及全功能验收,禁止生产。范围:Invoice含税/税率逐票奖金净基数;回款新建编辑销售归属/客户salesman默认/历史份额/异步竞态/权限期间锁/事务/跨币部分回款/季度年度Excel;会议与话题ID首列、话题上下线图标、专家公开资料布局及保存边界。候选源release/issues-100-101-staging,版本部署后核实。环境仅https://tcrm.mindsetech.com与https://tcrm-api.mindsetech.com。仅本轮QA标记合成数据;不动真实回款、真实结算、账号角色、企微审批或真实支付。逐例追加Redmine结果并重读验证,正式图文手册来自实际测试站并由UI及项目责任复核。当前仅准备,尚未环境验收。
RA Updated by Redmine Admin 21 days ago Actions #1
QA R1只读阶段(2026-10-21,Space26/p1,真实tcrm/tcrm-api):ENV-01.a Pass,GET /v1/version HTTP200/code200=1.20.5b2,与Ops e62185c一致;ENV-01.b Pass,实际index-C5JwMC8g.js/login-COzuC4Iv.js版本2.16.4-beta.2,与98f95ed一致。ENV-01父例隔离仍待Ops补证,不整体标Pass。MEET-01.a Pass:抽样ID1/3/71/70/69,首列#六位ID、rgb(134,134,139)、正确/meetings/{id},标题无重复号;详情封面待测。TOPIC-01 Pass:ID32/33/34/35/36六位灰ID、正确链接、无重复号。TOPIC-02.a Pass:ID32-35上线/cloud-upload、ID36下线/cloud-download;实际tooltip/确认/权限/流转待测,不将子例提升父例。证据:outputs/receipt-incentive-tax-owners-20261021/qa/r1-readonly-results.md及本QA责任聊天ego返回。仅正常页面访问/DOM只读,无业务创建修改、AI请求、生产、审批或付款。其余46项范围完整保留,未执行不计Pass。
RA Updated by Redmine Admin 21 days ago Actions #2
QA R1只读追加,同候选BE1.20.5b2/FE2.16.4-beta.2,Space26/p2(同空间专家popup),管理员,只读既有合成专家574235:PROFILE-01.a Pass,桌面状态位于标题旁、完善/刷新右上;PROFILE-01.b Pass,390px viewport/documentWidth均390,panel359/header325、合理换行无横溢;PROFILE-03.a Pass,未修改抽屉的行业字段桌面和390px computed gap均8px,字段宽680/约327,关闭未保存;PROFILE-05.a Pass,尚未建立公开资料空态,无内部资料inline自动带入。证据outputs/receipt-incentive-tax-owners-20261021/qa/r1-readonly-results.md及profile-empty-panel-desktop.png、profile-empty-panel-390.png、profile-empty-form-desktop.png,已目视检查。未填写/保存/发布/切换平台。累计9个执行Pass编号仅TOPIC-01是完整主例,其余是子例,不宣称9/46主例通过;viewer、长tag、已保存/未保存边界、状态写及财务待隔离放行,原范围完整保留。
RA Updated by Redmine Admin 21 days ago Actions #3
QA R1只读补充 TOPIC-02.b Pass:Space26/p1,同实际测试候选,仅hover话题32上线/36下线按钮,等待可见tooltip后分别观察到上线/下线;无click/状态写。结合journal139的TOPIC-02.a图标观察,TOPIC-02主例通过。当前完整主例仅TOPIC-01、TOPIC-02共2项Pass,其余仅已记录子项,不重复加总父子例;46主例全量尚未完成,业务写仍待隔离放行。证据r1-readonly-results.md与本QA责任聊天ego返回。
RA Updated by Redmine Admin 21 days ago Actions #4
QA R1无业务写续测,同测试候选/管理员/Space26:PROFILE-02.a Pass,既有合成专家574235空公开资料抽屉仅本地输入QA-RECEIPT-UNSAVED-NOT-PUBLIC,inline不含该值、空态保持;PROFILE-02.b Pass,关闭出现未保存丢弃确认,取消后输入保留,再确认丢弃并重开输入为空。全过程已安装fetch/XHR非GET计数,仅记method/path,实际0;未保存/发布/改变平台或后台对象。PROFILE-02已保存快照正例仍待本轮fixture,父例不升级。另只读打开新建回款表单,归属多选/说明可见,不作为默认或写入用例Pass。证据outputs/receipt-incentive-tax-owners-20261021/qa/r1-readonly-results.md。全部46主例保留,等待安全endpoint白名单与隔离服务交付。
RA Updated by Redmine Admin 21 days ago Actions #5
QA R1 TOPIC-03.a Pass(确认取消子例):同实际测试候选/管理员/Space26/p1,仅打开话题32上线确认弹窗,实际提示确认上线该话题?,点击取消而非确认;fetch/XHR非GET请求计数0,原上线按钮仍在,无状态变更。权限和archived部分未测,TOPIC-03父例不升级。证据outputs/receipt-incentive-tax-owners-20261021/qa/r1-readonly-results.md及ego返回。没有业务写/生产/通知。
RA Updated by Redmine Admin 21 days ago Actions #6
- Subtask #17 added
RA Updated by Redmine Admin 21 days ago Actions #7
QA R2实际白名单API:BE1.20.5b2/FE2.16.4-beta.2,管理员,Space26,run QA-REC-261021-R2-6f91。manifest:公司9/10、开票主体9/10、合同13/14、空Invoice59/60、回款9/10/11,均单次HTTP200/code200创建,后GET核实;无Task/附件/通知/AI/审批。OWN-01.api Pass省略捕获salesman7;OWN-02.api Pass无负责人省略无快照;OWN-03.api/tail Pass输入[7,4,7]去重[4,7]各0.5,100.01分配50.00/50.01。OWN-04.api Pass省略归属改备注原份额不变;OWN-05.same-set Pass同集合换序及合法同值ID/金额/时区等价日期保留分配(非历史非均等证据);OWN-07.api Pass正常切单人再恢复多人,gross100.01不变。OWN-08.empty/null/scalar/bool/fraction/zero/negative各Pass:HTTP200/code400正整数数组错误,每次读回原备注/ids[7]/金额。OWN-06.invalid-new Pass:不存在成员拒绝且原值不变;不代替停用历史。ATOMIC-01.api Pass合法核销+不存在归属创建拒绝,前后公司9回款均[9,11]、Invoice59 paid200.02不变;ATOMIC-02.api Pass非法成员编辑未遗留备注/金额/归属;GROSS-01.api Pass本轮RMB路径金额及gross不变。CALC-04.response Fail关联新子缺陷#17:三笔创建响应unallocated100.01与已核销100.01不符,随后GET为0,未发现DB金额错误、未定引入版本。另测试请求100.010超两位精度被正确拒绝,核原值后改100.01通过,属测试输入更正非产品Fail。完整逐项证据outputs/receipt-incentive-tax-owners-20261021/qa/r2-api-results.md,父例UI/历史/角色未完成不升级。
RA Updated by Redmine Admin 21 days ago Actions #8
QA R2合成UI续测:BE1.20.5b2/FE2.16.4-beta.2,管理员Space26。新建专家574236、话题156,纯合成无联系方式/真实关联。专家public-profile仅保存draft,profile51 GET status=draft/published_at=null/public_platforms=[]/visible_platforms=[]/is_public=false。PROFILE-02.saved Pass:实际inline与已保存草稿字段一致;结合R1未保存不泄露/丢弃子例,PROFILE-02完成。PROFILE-04 Pass:实际桌面1428及390px,documentWidth等于viewport,62字符tag宽286高62、normal/anywhere换行,背景/分享话题换行;截图目视通过。TOPIC-04 Pass:仅话题156 UI确认上线后GET published/cloud-download,立即下线GET draft/published_at=null/cloud-upload,刷新仍一致;XHR状态POST仅2次且只/v1/topics/156/status。最终保留draft,无真实关联/通知。证据qa/r2-api-results.md、profile-saved-draft-desktop.png、profile-saved-draft-390.png、topic-synthetic-final-draft.png(完整前缀outputs/receipt-incentive-tax-owners-20261021/)。#17原Fail保留;无源码修改/生产/专家发布/附件/AI/审批/Task。
RA Updated by Redmine Admin 21 days ago Actions #9
QA独立同候选API证据,明确不是共享tcrm:127.0.0.1:58749,e62185c/1.20.5b2,qa16_synthetic,使用qa16_client安全内存接口。ENV-01.isolated Pass版本直接核实。OWN-09.finance-create Pass合成finance2正常创建4张票/回款1;OWN-09.sales-context Pass销售3可读payment详情但editable=false/reason permission_denied;OWN-09.sales-get-owner、sales-put-owner各Pass:HTTP403/code403仅财务或管理员可访问销售激励核算;OWN-09.sales-put-crud Pass:普通PUT夹带归属HTTP403/code403仅财务或管理员可修改奖金归属销售,备注未写。ATOMIC-02.isolated-finance Pass:不存在成员拒绝HTTP200/code400,原remark/owner[3]保留。初脚本错误假设sales无详情读权限已更正,不是产品缺陷,未重放创建。专用合成公司/主体/合同1,票1-4,回款1;与主站同ID隔离。证据qa/isolated-results.md、isolated-round-01.py/02.py、精确seed请求isolated-seed-request.md(前缀outputs/receipt-incentive-tax-owners-20261021/)。无DB直写/源码/guard/生产修改。
RA Updated by Redmine Admin 21 days ago Actions #10
- Subtask #18 added
RA Updated by Redmine Admin 21 days ago Actions #11
QA主测试站税净正向续测(非独立服务):BE1.20.5b2/FE2.16.4-beta.2,管理员Space26。本轮合同15、项目91/92、Task127/128/129、Invoice61/62/63、回款13/14/15/16/17已登记manifest。Task均finished/is_recorded=false/create_tencent_meeting=false/无会议字段费用;仅证实标志,不冒称取得worker skip运行日志。TAX-01 Pass:票61含税0.06,530/424分次回款净500/400税30/24。TAX-02 Pass:票62未税但税率0.1,1000净1000税0不重复剔税。TAX-03.mixed-tax-untax Pass:混笔206=Task净100+税6+空票跳过100;两个不同含税税率子界待补。CALC-01.partial-unallocated Pass:回款17实际120=空票100+未分配20,净基数0、跳过120;CALC-02.no-task Pass;CALC-04.partial-multi-money Pass但创建响应子例#17 Fail保留;CALC-05.invoice-rounding Pass:100.01/1.06净94.35税5.66;CALC-06.zero-stock Pass不代替跨年非零库存。REPORT-01.current-quarter Pass:本轮净500/400/1000/100的4%预发20/16/40/4。REPORT-02.actual-export Pass:真实GET导出HTTP200,合法27911bytes XLSX,回款记录第14-21行B/AH/AI/AC与独立算术逐行对账;汇总owner2/4/7逐季度及previous与同时dashboard全部一致。完整工作簿仅内存解析,不留无关明细;hash28d3e6fb5b74763dcfa7553cf33b384464723a3013ec60bc021467245a916bf5。首解析器签名兼容错误已回退bundled Python只读,非产品失败。前置项目省略manage_by HTML500保留为新子缺陷#18;补合法manage_by后成功,不覆盖历史。Task128请求15却按现有契约取13,未拿作未税证据,另Task129读回14未税。详qa/positive-tax-results.md。所有未测/隔离/手册边界保留,无源码修改/生产/通知/真实支付。
RA Updated by Redmine Admin 21 days ago Actions #12
QA主测试站财务真实UI继续:管理员Space26,同候选。OWN-01.ui Pass新建选择公司9默认账号7(AM1标签经账号7读回匹配;详情中文名AM2不是ID改变)。OWN-02.ui-empty Pass切公司10无负责人后归属清空,提交提示请选择奖金归属销售,首个请求前拦截且非GET0。OWN-02.ui-manual/OWN-03.ui Pass,手选账号7/4、金额50.01、实际时间2026-10-21 18:00、仅Invoice60核销/占用50.01;创建POST仅1次,回款18详情/GET ids[4,7]、各0.5、分配25.00/25.01、gross50.01,未分配0;POST余额陈旧按#17 Fail保留。UI-03.server-reject Pass:编辑回款18金额50.02及新备注,实际PUT仅amount/remark,HTTP200/code400已有快照核心信息不可改;仍留edit,金额/备注/两人选择保留;GET原值不变。OWN-04.ui Pass:改回50.01后仅保存备注,实际PUT仅remark、HTTP200/code200,回详情原份额/gross不变。编辑共2PUT(拒绝/成功),无不确定写重试。证据qa/ui-finance-results.md及5张payment-*.png,均实际同候选合成上下文。话题最终截图使用topic-synthetic-final-draft-clean.png,原图为动画中间帧并保留历史。全部46项仍继续,未因上述通过覆盖#17/#18或隔离/未测项;无源码/生产/附件/AI/审批/付款。
RA Updated by Redmine Admin 21 days ago Actions #13
QA主站跨币实测:管理员Space26,同候选。只读到账月USD汇率6.735100;新增本轮contract16、Invoice64(Task128/RMB含税0.06)、Invoice65(USD空票未税)、回款19 USD30。分配64核销67.35RMB/回款占用10USD,65核销20USD/占用20USD。CALC-03.actual-fx Pass:按10:20占用拆gross202.05为67.35/134.70RMB,逐票后净63.54/税3.81/无Task跳过134.70,不能混用67.35:20权重。CALC-05.fx-tail Pass:gross两人101.02/101.03,分币平衡。真实Excel HTTP200/28538bytes/hash1a476dffbc74d949d6b7f80c9c155b7db0140b028e1d69c393c4816363a2a4c4,回款记录行23 B202.05/AH63.54/AI3.81/AC134.70/R2.54/AF128,与独立预期和dashboard一致。GROSS-01.fx-owner-change Pass:之后正常owner PUT改[7],header仍202.05/payment仍USD30,核销占用不变。导出时两人、末态单人分别保留,未改汇率、不冒称历史异率快照已测。证据qa/fx-results.md与manifest,完整工作簿只内存处理无无关明细落盘。#17/#18失败历史保留;未生产/配置/角色/源码/审批/支付/通知。
RA Updated by Redmine Admin 21 days ago Actions #14
QA独立实例证据纠正及历史实测:此前journal147/请求文件将4次建票推为连续ID1-4是QA清单错误,撤回该ID推断。实际列表及逐项GET确认Invoice1/34/35/67,分别marker invoice-1/2/3/4,company1/contract1/原税0.06/含税true/actual1060.01;未补建。税seed请仅按qa/isolated-seed-tax-corrected.md精确34(NULL is_taxed)/35(负税)/67(NaN原schema允许时),不重放人员/header已完成seed。Ops实际新增active34/inactive35(不同表不可与票混淆),header1 .3/.7已从API核对。OWN-04.history-omit Pass仅备注保持.3/.7及30/70.01;OWN-05.history-same-set Pass传[35,3]保留历史份额尾差并返回inactive35;OWN-07.history-change-active Pass改[3,34]分配50/50.01、gross100.01不变;OWN-06.inactive-new-rejected Pass移除35后再新增被HTTP200/code400新增销售不存在或未激活拒绝,原分配/备注不变。当前末态[3,34],历史前后分开保留。仅127.0.0.1:58749同候选隔离API,不冒称tcrm覆盖,不DB写。另主站两条bw明确测试记录按username/password各一次认证:PM记录HTTP400/code400账号未激活;expert lookup记录HTTP400/code400账号不存在。无换密码/重试/账号修改;主站viewer页面缺口见qa/main-role-gap.md,独立finance/sales权限已另验证,不停止其他case。证据qa/isolated-results.md、isolated-manifest.json、isolated-round-03-history.py,完整前缀outputs/receipt-incentive-tax-owners-20261021/。
RA Updated by Redmine Admin 21 days ago Actions #15
独立API fixture进度(不是新增业务用例Pass):已核seed-stock-READY,项目34、Task1=T24/Task2=T25。经正常公开API各单次创建并GET确认Invoice100绑定Task1、Invoice133绑定Task2,均actual1000.00 RMB/is_taxed true/tax_rate0.06000,HTTP200/code200;未重复OneToOne、未新增回款或确认期间。确切IDs已写qa/isolated-manifest.json及isolated-stock-progress.md。后续共享Task合法票使用133,坏税仍待Ops按34/35/67回执;不补建或重放旧fixture。此为127.0.0.1:58749同候选e62185c独立环境,不冒充共享tcrm通过;#17/#18历史Fail保留。
RA Updated by Redmine Admin 21 days ago Actions #16
独立API新执行结果 TAX-04/TAX-05(e62185c/1.20.5b2,127.0.0.1:58749,finance2,非共享tcrm):GET Invoice34 null/.06、35 true/-.01、67 true/NaN均HTTP200/code200。单次创建并GET回查:payment34 RMB212分配合法Invoice133=106+坏34=106;payment67 RMB106次日同合法Invoice133;payment100 RMB106坏35;payment133 RMB106坏67。Dashboard2025 HTTP200/code200:34/100/133分别提示准确坏票税率无效待核对,67提示关联Task较早回款尚待核对无法确定剩余存量。TAX04三可达子项Pass、TAX05共享Task阻塞Pass。单次Excel HTTP200有效11635字节工作簿,仅内存只读解析按确切payment_no定位,四行base均空、季度发放0、历史补结0;不把null当0、不把API解析当Excel视觉验收。T25只绑定Invoice133一次,无OneToOne重复关联。NULL rate/Infinity/超范围未制造fixture,未宣称覆盖。证据qa/isolated-bad-tax-results.md、isolated-round-05-bad-tax.py及manifest;无DB/源码/外部副作用,#17/#18 Fail保留。
RA Updated by Redmine Admin 21 days ago Actions #17
独立API跨年/期间新执行:finance2/e62185c,新增payment166(2024-08/530)及199(2025-08/424),同合法Invoice100/T24。实际Excel分别净500/税30、净400/税24;均归Task2024部分且stock0/increment500与400,后笔2025季度预发0/历史补结28.8,前笔预发20/年终36差16。CALC06跨年回款和REPORT01历史补结子项Pass,非零库存未代测。REPORT03 Pass旧quarters2024Q1与annual2024 basis=task、1000/40及全年commission72,不与新版回款值混同。仅独立API保存2024Q3 owner3 paid12.34,confirmed expected20;payment166归属PUT、CRUD夹带归属备注、核销POST及移paid_at到2025全部code400期间锁且完整GET未变,LOCK01/03相关子项Pass;不冒称并发已测。GET+Excel后confirmed expected/paid/time完整相等,GROSS02季度存档子项Pass。无Invoice的创建负例只被普通字段校验请关联Invoice拒绝,不算期间锁Pass,后续补合法输入。证据qa/isolated-period-results.md及manifest,原#17/#18 Fail保留。
RA Updated by Redmine Admin 21 days ago Actions #18
LOCK新进展及并发阻塞(非全量结案):合法Invoice100核销1元的2024Q3新建已被已确认期间code400拒绝且列表无marker,LOCK01.create-valid Pass。独立一轮两请求:payment199归属PUT改34 vs dashboard PUT确认2025Q3 owner3/paid0;归属客户端30秒socket.timeout,脚本停止不重试。只读回查199仍owner3/424/locked=true,quarters2025Q3已落expected28.80/paid0/time18:46:40.542939。仅确认落地,不猜归属请求已终止/死锁根因,LOCK02本轮Blocked需Ops/BE只读定位;年度确认及后半测试未执行。记录qa/isolated-lock-race-results.md。另MEET01详情真实empty封面fallback560x315正常,结合既有列表/链接证据主例Pass;截图meeting-id-column-actual.png已目视。46主例进度(非最终)已写qa/coverage-46-progress.md,区分Pass/Fail/Blocked/待补和子例缺口,#17/#18保留;未用旧#102。
RA Updated by Redmine Admin 21 days ago Actions #19
主站R3补充(admin/Space26,BEb2/FEbeta2):OWN01.scalar正常company9 PUT salesman单值7成功,GET标准化[7],不冒称DB原样scalar。UI01 Pass真实GET9与其主体响应由CDP延迟、切company10手选Howie后释放仍后选值,无提交;是UI/真实GET时序层。UI03.network Pass回款18只改备注,CDP Request阶段fail PUT18未送服务端,仍edit保留50.01/两owner/新备注,GET原备注金额归属未变;与前轮server400合并完成父例,非真实服务宕机。PROFILE03 Pass实际行业键盘选综合同步文字,再覆盖自定义,勾人工确认保存草稿;GET profile51 industry_id22/新文字/draft/null,inline一致,无平台/发布。首次未确认被UI拦截、后续保存等待提示超时但GET已成功,均未重试写。TAX01.other-rate/TAX03.two-tax-rates Pass新增合同17(.13)、票66、回款20 RMB219=票59(.06)106+票66(.13)113,GET核销余额0。Excel实际第24行税19/无Task净跳过200/base0,非统一1.06;HTTP200有效28798bytes hash06ab207c27b56474495777159366d13b9e6edc01c08a502788cbed4862b62af3,汇总同dashboard全匹配,仅内存读本轮。证据qa/r3-ui-tax-results.md/manifest。旧独立API已停止写,真实AI仍Blocked,#17/#18保留。
RA Updated by Redmine Admin 21 days ago Actions #20
UI02拦截执行异常必须保留:目标为已部署UI合成识别响应测试,CDP捕获Payment18 GET并仅浏览器填假文件QA-SYNTHETIC-NOT-UPLOADED.png;未上传文件/保存业务。点击AI后脚本未逐项正确处理Fetch事件,Unexpected request停止,未完成合成响应fulfill或ABA后半。随后ResourceTiming识别路径responseStatus200/duration2824ms,无法证明未发真实POST/外部调用;原始业务code/message未取得。不计Pass,UI02仍Blocked,停止该分支不重试,已离开假上下文回真实18详情。请统筹/Backend/Ops只读确认实际请求及外部调用风险;静态1127起png可到AI调用,不凭静态推断实际结果。证据qa/ui02-interception-incident.md,属于QA拦截执行失误非产品缺陷。另ATOMIC02联合备注/核销/非法归属PUT18 code400,payment18和Invoice60全量GET均不变,Pass。LOCK01发现owner DELETE实际存在尚未测,撤回先前无DELETE API说明并暂回待补,新环境后补,不碰旧API。按文复核18详情和574236当前公开区一致但未重复创建/保存/流转,手册未最终Pass。coverage仍29Pass1Fail4Blocked12待补,#17/#18保留。
RA Updated by Redmine Admin 21 days ago Actions #21
恢复/文审进度,无新增主例Pass:已仅Space26/p1 Fetch.disable并离开假响应页,Payment18真实GET200/code200,50.01/原memo/owners4,7、credential_file空/url null、DOM无假文件;未提交或重试AI。UI02准确秒/请求ID未取得,不捏造;可靠日志夹定AsiaShanghai18:58:21–19:06:21,relative start2050/duration2824但timeOrigin遗漏。本地当天会话日志止17:38不含当前调用,待Ops按窗口审计。新独立v2 ready54841已GET版本及旧199/2025Q3确认一致;仅新建公司34/主体34/无税合同34并GET读回,为5Task seed前置,未Task/旧并发/年度确认。手册差异修订:新建回款按钮vs页标题、行业上下布局+新真实抽屉图8px、净200/base0/tax19及现金跳过和旧口径边界。两新文图4/5张检查通过,按文只读复核未重复已确认写;最终Pass未宣称。证据qa/next-isolated-fixture-request.md、manual-review-delta-r1.md、ui02-interception-incident.md。#17/#18及29Pass1Fail4Blocked12待补保留。
RA Updated by Redmine Admin 21 days ago Actions #22
MANUAL-R4新独立按文完整复现:真实tcrm同BEb2/FEbeta2/admin/Space26。先GET票60余额849.99及唯一marker不存在;UI手选company10/owner4,7,50.01/Invoice60核销占用50.01/18:00。19:24:30.955仅1POST创建Payment21,GET owner各.5、25/25.01、gross50.01/unallocated0;19:25:03.495仅备注PUT成功;19:25:16.362核心金额50.02+新备注PUT按预期code400,表单输入保留而GET原50.01/memo-saved/owner4,7不变。未保存编辑已还原回详情,无额外提交。财务QAReplay Pass,1POST+2PUT码200/200/400。新UI手册QAReplay Pass:profile51行业人工确认后19:25:55.077仅1PUT保存QA Synthetic Industry MANUAL-R4,刷新/reload及GET一致、draft/null/平台空;话题156先确认取消零写,再19:26:24.563上线GET published,19:26:36.578立即下线GET draft/null、刷新一致,共2POST均200。没有AI/上传/审批/确认;非盲重播旧对象写。完整证据qa/manual-r4-results.md及manifest。R2/R3旧截图保留并注明R4新ID21/文字时点差异。最终三方定向差异审核尚待闭环,两个manual父例不提前升级;46仍29Pass1Fail4Blocked12待补,#17/#18及UI02事故Blocked保留。临时计数包装已reload清除、Space26保留。
RA Updated by Redmine Admin 21 days ago Actions #23
新实测v2 API54841/e62185c finance2:逐GET核Task34–38准确marker/project67/contract34/actual_price0,1,2,1000,1500及finished/no-record。新增Invoice166(zero34/10)、167(split35,36/3)、168(stock38/1500),一次绑定,无重复OneToOne。payment232零收入10→Excel base0/tax0/skip10/发放0,CALC02 Pass;233=1、234=2同split票,实际Excel2026 stock1/inc0及stock1.99/inc.01,CALC05多Task尾差Pass;公开只聚合,.33/.67是独立预期、不冒称私有DTO直接读回。235=900(2025Q1)、236=600(2026Q1),Task38容量1000由前年度1000确定,实际stock900后剩100/inc500、后笔季度0历史补结40.8,CALC06 Pass不跨年重置。所有HTTP200/code200/GET余额0、2026dashboard这些ID无issues、真实Excel16122bytes仅内存。详qa/isolated-v2-five-results.md/manifest。另Ops审计正式确认UI02真实POST19:05:10.759 HTTP200/应用400识别失败,openai.NotFoundError/provider404 model_not_found,确有外部attempt,事故记录已更新,未打印signedURL。两手册R4完整复现及三方定向复核root确认PASS,MANUAL01/UI-MANUAL02主例Pass;新增执行记录/状态差异不改业务步骤。整体进度34Pass1Fail4Blocked7待补,不等全QA或生产通过;#17/#18及历史不确定结果保留。
RA Updated by Redmine Admin 21 days ago Actions #24
v2新对象补测(非旧199重放):新235/2025Q1一轮barrier两请求分别捕获:owner PUT→34 HTTP200/code400 period_confirmed,确认PUT HTTP200/code200,GET owner3/900/lockedtrue;确认先赢子例Pass,反方向并发未强制观察,LOCK02父例仍Blocked。随后DELETE已确认235 owner code400,GET快照全等,LOCK01主例补完Pass。全合成2025新建Q2/Q4实发0不覆盖旧Q1/Q3,再POST年度确认id1/owner3,commission132/difference132/time19:37:40.094675;GET+Excel后年度confirmed和Q1confirmed全等,GROSS02 Pass。新236原2026未锁,正常DELETE未确认快照后尝试paid_at移到已结算2025,被期间code400拒绝且完整GET不变,再正常ownerPUT恢复[3]/600且owner前后等,LOCK03日期两方向保护Pass。详qa/isolated-v2-lock-annual-results.md。历史FX剩余合法API目标已建contract35/Invoice169/payment237 USD10/2022年/owner3/gross70,等待root/Ops仅历史header79.99精确seed,未先改owner;请求qa/final-minimal-seed-request.md。当前37Pass1Fail4Blocked4待补,#17/#18及UI02事故保持。
RA Updated by Redmine Admin 21 days ago Actions #25
固定46有限收口计划已落qa/finite-closeout-plan.md,不新增case/本地页面/共享站CDP。OWN06父例明确Blocked:实际目视edit-final-narrow.png显示历史归属选项和.3/.7,但顶部标本地实际SFC合成数据;preview确挂edit.vue且读mock/写阻断,源组件断言inactive选项与同ID份额已核,不冒充tcrm或v2真实UI。journal152独立inactive35 API子项仍Pass;既有13/14组件及PG191证据单列,不本轮重跑。当前37Pass1Fail5Blocked3待补,仅等已放行237历史gross与新orphan各消费一次,预期最多40Pass1Fail5Blocked且0待补,不提前宣称。LOCK02可选最小逆序两写方案:等上述完成后仅新orphan未锁,ownerPUT34明确成功后quarterPOST2022Q1/owner3/paid0,再只读核锁;这是有序功能序列非同时在途,父例物理反向并发仍不可伪报Pass,待root选择。无旧235/199/确认重放;#17/#18及UI02实际外部attempt事实保留。
RA Updated by Redmine Admin 21 days ago Actions #26
回款归属、Invoice税净奖金及本轮UI — 最终QA报告¶
2026-10-21 Asia/Shanghai;责任:原NDB QA canonical CLI;Redmine NDB#16。固定46项:40 Pass / 1 Fail / 5 Blocked / 0 Skipped,无pending。测试执行收口,不等于全部验收或生产准入通过。
环境与证据层¶
- 主测试站tcrm/tcrm-api;BE1.20.5b2/e62185c07c7bff0512ef0078caea9f6580794f72、FE2.16.4-beta.2/98f95eddda1b335b617252b7e9bf32a9c2df98c2。QA实际版本核实,Space26/admin。
- 独立v1 API58749旧环境及v2 API54841,均同业务候选;v1并发环境故障与Blocked历史保留,v2迁移原数据/序列、仅3合成token轮换由Ops完成。v2 OS/外部guard合格;实际数据库模型syncdb,不冒充正式迁移链。
- 真实主站UI/公开API、独立API/guarded seed、本地SFC合成截图/组件测试三层分开。没有主站期间确认、真实付款、审批、角色修改或生产操作;未修改业务源码、版本/配置或提交推送部署。UI02曾误发真实外部AI调用attempt,不能宣称整轮无外部调用,详事故记录。
46主例最终表¶
每例预期见matrix.md,操作/实际/确切ID见对应results及#16逐轮journal;本表仅归并最新证据,不宣称46例同一轮重跑。
| ID | 最终状态 | 实际证据/边界 |
|---|---|---|
| ENV-01 | Pass | 两端实际版本、白名单资源及独立guard;OSS/通知相关禁止路径不放行 |
| OWN-01 | Pass | 正常scalar→[7]规范化、数组/API及真实默认UI |
| OWN-02 | Pass | 无负责人API不猜;UI空选择首请求前拦截,手选创建 |
| OWN-03 | Pass | 多人去重/均分/分币及真实UI18/21 |
| OWN-04 | Pass | 省略归属仅备注,主站UI及历史.3/.7保持 |
| OWN-05 | Pass | 独立非均等历史换序保留inactive35及尾分 |
| OWN-06 | Blocked | API历史停用及新增拒绝Pass;主站历史UI无fixture,开发SFC截图不替代 |
| OWN-07 | Pass | 新237改归属仍79.99、分39.99/40而非当前FX70 |
| OWN-08 | Pass | 非法数组/值与不存在成员全部拒绝且不部分写 |
| OWN-09 | Pass | 主站admin、独立finance/sales实际API权限/capability |
| UI-01 | Pass | 真实GET受控延迟不覆盖后选客户与手选归属,非AI |
| UI-02 | Blocked | 合成拦截失败误发真实POST/模型attempt,分支停止;未通过 |
| UI-03 | Pass | 真实server拒绝及受控网络故障后输入保留,GET原值不变 |
| TAX-01 | Pass | .06/.13两真实税率逐票剔税,不固定1.06 |
| TAX-02 | Pass | 未税但rate.1不重复剔税,不用Task/新合同兜底 |
| TAX-03 | Pass | 混税/未税及.06+.13同笔税19、净200 |
| TAX-04 | Pass | schema可达NULL taxed/负rate/NaN均pending;不可达值不伪造 |
| TAX-05 | Pass | 早笔坏税牵连合法Task,后笔共享Task继续阻塞;base空/发放0 |
| CALC-01 | Pass | 部分未分配及legacy238无Invoice→跳原10/base0/发放0 |
| CALC-02 | Pass | 无Task及零收入Task34/232先验税,再跳净额 |
| CALC-03 | Pass | 主站USD30/10:20占用权重、gross202.05及净税平衡 |
| CALC-04 | Fail | 部分/多次账务通过,POST未分配响应陈旧#17保留 |
| CALC-05 | Pass | 票/owner/FX尾差及v2多Task分币累计stock1.99/inc.01;不伪报私有DTO直接读回 |
| CALC-06 | Pass | 新公司前年度1000,回款900后跨年600=剩stock100+inc500 |
| REPORT-01 | Pass | 当年4%、历史补结40.8/28.8与年终差值实际工作簿对账 |
| REPORT-02 | Pass | 实际Excel可只读打开,gross/net/tax/summary与dashboard匹配;非Excel客户端视觉验收 |
| REPORT-03 | Pass | 旧quarters/annual为Task口径,不误等同新版回款值 |
| LOCK-01 | Pass | 确认后owner PUT/DELETE、CRUD、核销及合法新建拒绝 |
| LOCK-02 | Blocked | v2确认先赢实际并发Pass、逆向有序功能Pass;未证明反向物理并发,旧超时保留 |
| LOCK-03 | Pass | 已锁年份移出及无owner快照2026移入已结算2025拒绝、完整读回不变 |
| ATOMIC-01 | Pass | 合法核销夹带非法归属创建零遗留 |
| ATOMIC-02 | Pass | 备注/核销/归属联合失败,payment及Invoice全量GET不变 |
| GROSS-01 | Pass | 实际金额/核销不变,历史header79.99经改归属/报表GET不改写;报表原FX70另口径 |
| GROSS-02 | Pass | 已保存季度和年度132/132/time经GET+Excel前后相等 |
| MEET-01 | Pass | 灰六位ID/去重/链接及详情empty封面回退 |
| TOPIC-01 | Pass | 真实列表ID/去重/链接 |
| TOPIC-02 | Pass | cloud-upload/download、tooltip与状态对应 |
| TOPIC-03 | Blocked | 取消零写Pass;主站低权限/archived部分未验证 |
| TOPIC-04 | Pass | 合成156真实上线/立即下线、刷新draft,R2/R4各2POST |
| PROFILE-01 | Pass | 状态/操作布局桌面及390px |
| PROFILE-02 | Pass | 保存inline、未保存不泄露/取消/丢弃 |
| PROFILE-03 | Pass | 行业上下选择/文字覆盖、实际8px、草稿/GET一致 |
| PROFILE-04 | Pass | 长tag/背景/话题换行,390px无横溢 |
| PROFILE-05 | Blocked | 空态Pass;viewer无可登录测试账号,未验证 |
| MANUAL-01 | Pass | R4新Payment21完整按文UI复现及三方定向复核闭环 |
| UI-MANUAL-02 | Pass | R4草稿/话题完整复现及三方定向复核闭环 |
缺陷、安全事件及限制¶
- #17:回款创建响应unallocated陈旧,GET实际账务正确;Backend已证旧基线存在,未修,不关闭。它是CALC04失败,不把后续GET成功覆盖POST失败。
- #18:项目省略manage_by返回HTML500,补合法字段后成功只是fixture前置修正。属46主例外前置缺陷,不在40/1/5中重复加总,不关闭。
- UI02安全边界事件:测试POST完成于19:05:10.759,HTTP200/应用400识别失败,SDK openai.NotFoundError/provider404 model_not_found,证明外部attempt而非推理成功;未查计费/保留,不输出signedURL。没有上传真实文件。Fetch关闭、假上下文离开、真实Payment18 GET正常,之后不再共享AI/CDP模拟。事故见ui02-interception-incident.md、Ops release/ui02-request-audit-result.md。
- 两个BW明确测试条目认证分别“账号未激活”“账号不存在”,没有改/激活账号、换密码或盲重试。用户账号问题由统筹询问、未获答复;上述页面角色仍Blocked。独立API权限不代替主站角色页面。
- OWN06本地实际SFC截图与组件断言、BE PG191均仅开发/隔离支持证据,不自动升级主站或反向实际API并发通过。为有限收口不新建环境/页面或追加case。
手册与文件¶
- frontend新手册:receipt-incentive-tax-owners.md(4图),list-public-profile-updates.md(5图);实际测试站图,R2/R3图与R4新ID/文字时点差异已说明。
- MANUAL-R4:Payment21一POST/成功PUT一/预期拒绝PUT一,profile51草稿PUT一,topic156取消0写/状态POST二,均真实UI;三方评审及最终hash见manual-final-gate-receipt.md。
- 主站manifest r2-manifest.json、独立manifest isolated-manifest.json;本轮所有合成对象保留(无额外清理)。新v2API/PG继续由Ops owner持有;QA不停止、重启或删除资源。Space26在Redmine回写/检查成功后finish,单独记录收据。
- 原BE .aoci/config.json与旧100101/102手册图保留;两仓release/issues-100-101-staging,业务HEAD与候选相同。QA只写授权outputs和两份新手册/assets,无commit/push/部署/生产。
结果收口¶
全部执行及Blocked已写Redmine#16逐轮journal并读回。最终追加本报告后保存journal/空间/检查收据。5项Blocked不以mock填Pass,1项Fail及额外#18保留,故完整QA及生产门禁未通过;本次按用户要求交付真实测试结果,不扩大修复或再部署。
RA Updated by Redmine Admin 21 days ago Actions #27
最终执行细节/收尾收据:新增237 ownerPUT仅1次code200,79.99按3/34分39.99/40,payment USD10/Invoice169核销全量保护读回相等;报告GET后header仍79.99。最初脚本额外断言Excel原gross应79.99而停止,这是QA oracle误设,源码原报表按到账月FX为70;保留原脚本及只读续接说明,不重放237 PUT、不把两口径不同扩成新产品Fail。新orphan238实际dashboard/Excel gross10/base0/tax0/skip10/季度0/历史0。完成读验后仅238有序两写:ownerPUT34 code200,再quarterPOST2022Q1 owner3/paid0 code200/id70;GET owner34/gross10/lockedtrue,confirmed expected0/paid0/time19:54:38.193276,有序功能子项Pass但LOCK02母例仍Blocked。详qa/isolated-v2-final-results.md。最终报告journal164已直接读回全46表40Pass1Fail5Blocked无pending;MANUAL两gatePass及事故边界均保留。Space26 finish keep[]已成功一次,无保留页,未清共享合成数据。11新文图已冻结,详final-freeze-manifest.json,QA不再改该11文件,源码/旧手册无改。全部本地API观察结束,QA释放Ops按root核定精确资源清理本地纯合成tmpfs:会不可恢复,脱敏执行证据/manifest/hash已保留;QA不自行stop/delete,主站合成业务数据继续保留。无commit/push/部署或生产。
RA Updated by Redmine Admin 21 days ago Actions #28
更正journal165空间收尾一句:实际本次taskSpace(26)在取得handle前即返回task space not found:26,因此finish未被执行,不能声称QA调用finish keep[]成功。前条该句为在工具结果核验前预写的错误,现明确撤回;未覆盖原历史。本责任聊天已停止浏览器操作,不重试/重建/接管其他空间,无法证明Space26何时由谁结束或当前标签状态,交root核对。最终46结果40Pass1Fail5Blocked、journal164报告、最后fixture实际结果、11文件冻结hash及本地观察结束/释放Ops按精确资源清理等其余收据均不变;QA未自行清理本地或共享数据。
RA Updated by Redmine Admin 21 days ago Actions #29
R5只读角色续测(2026-10-21 Asia/Shanghai,实际tcrm,同本轮b2/beta2,Space32):用户明确授权自建专用账号并存BW,root交QA唯一writer。BW个人Mindsetech新login条目NDB staging QA read-only - 20261021,item3354250b-59ef-43af-aeca-d1cf665c7ec8,仅tcrm URI,username/password/保存位置安全读回匹配true,不输出secret。正常UI各单次POST角色/账号均HTTP200/application-json/code200;新role17仅page192(/首页)+200+201+343(首页祖先为root明确批准替代,无manage/action/admin/su/finance),GET读回exact。新active账号13只绑定17,正常登录成功;实际页面userInfo只四page/action[]/active。未改旧账号角色,不承诺全站旧API严格只读。TOPIC-03.low-role子边界Pass:唯一合成156列表只详情、详情仅返回,无新建/编辑/上下线/归档入口;刷新及详情监测仅GET200,非读请求0,仍draft/关联0/更新时间19:26。截图outputs/receipt-incentive-tax-owners-20261021/qa/readonly-account-20261021/topic-viewer-list.png已目视。TOPIC-03.archived无确切合成fixture,未归档156,母例仍Blocked。PROFILE-05.viewer Blocked:导航合成574236后公开面板等待15秒超时,实际回/candidates,未进入profile51草稿页面,不能证明只读抽屉;原空态Pass历史保留,不改权限/限制或扩大测试。扩展保存提示曾挡点击,未保存;仅终止挂起CLI后同Space32控制正常恢复、提示消失,再完成话题观察;无新空间绕过。账号setup及登录审计不等同整轮零写,零业务写断言限成功监测段。详同目录creation-receipt.md、vault-receipt.json、r5-followup-results.md。固定46仍40Pass1Fail5Blocked,无pending;不重测其他44,不覆盖journals164-166/#17/#18/UI02事故/冻结手册。无源码/Git/部署/生产/隔离API访问。空间finish尚待实际核验,绝不提前声称关闭。
RA Updated by Redmine Admin 21 days ago Actions #30
R6 PROFILE-05.viewer仅一次只读运行态诊断,非修复后重测:canonical默认pwd/BE/FE Git根匹配,两仓release/issues-100-101-staging,原dirty保留;目标BE详情与FE加载代码已读。ego清单空后获准新建Space34/p1专用复现空间;首页保留本轮账号13/role17登录,active、四page/action[],可见candidate_access_limit=0/candidate_access_count=0,没有读取cookie/token或重新认证。只导航合成574236一次:实际/v1/candidates/574236详情JSON HTTP200/application-json,code2002/message今日专家访问次数超限;页面提示如需查看用户详情/联系方式,请联系管理员添加每日访问次数!,最终URL /candidates,公开资料面板不存在。伴随tasks GET200不能替代详情通过。静态核对accounts/models.py109为limit<=number(0不是无限);candidates/views.py1089先限额;FE request.js166-174遇2002在详情路径主动跳/candidates,与运行态吻合。直接原因确认是新合成账号0日额度前置,不是凭据失效,也未证实路由或viewer公开权限产品Bug。PROFILE05仍Blocked,未将异常直接Fail/登录成功Pass;R5/167及固定46=40Pass1Fail5Blocked历史不变。证据outputs/receipt-incentive-tax-owners-20261021/qa/readonly-account-20261021/r6-runtime-diagnosis.md。未改账号/role/额度/fixture、未发业务写/绕额度请求、无源码Git部署生产;不重复详情或其余用例。Space34保留等root处理前置或修正后另放行重测,不finish。
RA Updated by Redmine Admin 21 days ago Actions #31
R6额度修正前置阻塞追加,未执行账号更新:root已明确放行仅测试user13 candidate_access_limit=20,QA已读合法AccountsSerializer/update_users单字段契约,省略role_ids应保持17。Space34当前readonly已正常退出;用root指定BW item471c8515-92cf-417d-8eec-6b9ac39d2219仅内存取用并在tcrm正常表单单次认证,无生产请求。等待admin/su15秒超时,仍/users/sign_in、没有合法admin会话;事后ResourceTiming /v1/auth/login duration约20034ms/responseStatus0,不能当实际HTTP0或invalidcredentials,未取得准确业务code/message、不编造。没有盲重试/换凭据/匿名或readonly绕过,PUT/accounts/13尚未发送,额度及roles未改,未重测专家。单次无凭据测试GET/version HTTP200/code200=1.20.5b2,只证明版本端点正常。浏览器账号/密码输入已清空。Space34保留错误停点不finish,不重建空间。PROFILE05仍Blocked,原46=40Pass1Fail5Blocked及R5/167、R6/168历史不覆盖,不将认证未知定为产品Fail。详outputs/receipt-incentive-tax-owners-20261021/qa/readonly-account-20261021/r6-quota-update-blocker.md。需root安排合法可用test admin会话或核定认证未定结果后的受控重试;原额度授权不需用户重复。无账号/role/fixture/源码/Git/部署/生产修改。
RA Updated by Redmine Admin 21 days ago Actions #32
R6额度修正后新轮次PROFILE-05 Pass(不覆盖R5/167、诊断168及前置阻塞历史):root明确释放仅测试user13单字段额度20。浏览器admin一次认证未建立会话、Node直连未取得HTTP后,健康诊断确认curl测试/version200而原生fetch超时;不判坏凭据。获准改用curl标准认证,HTTP200/code200/role admin,凭据/token仅内存与stdin。GET/accounts/13→单次PUT仅candidate_access_limit20→GET均200;完整字段比较仅额度0到20变化,active、role17、4pages/action[]及其余全不变,详r6-quota-curl-receipt.json。Space34正常UI专用账号登录200/仅17;打开合成574236一次,URL保持详情,API200/code200专家获取成功;profile51 GET200/code200=draft/published_atnull/平台及visible均空。公开面板仅查看/刷新、平台checkbox禁用;真实抽屉只读提示,13个input/textarea全disabled、带入/上传disabled、无保存/发布按钮、仅关闭可用。关闭和只读刷新一致,监测段只有GET industries/public-profile,业务写0(不将setup/登录/审计称零DB写)。操作日志出现22:09 QA查看;随后专用账号正常认证及GET/user-profile读回quota20/count1、role17/四page/action[],未再开专家。截图r6-viewer-public-draft.png已目视,真实同候选合成上下文。旧CSS等待超时只是新版drawer class不同,观察同已打开抽屉后继续,未重复点击/创建。结合原空态Pass,PROFILE05母例新轮次Pass;TOPIC03低权限及取消Pass历史保留、archived仍缺合成fixture故母例Blocked。其他44不重跑,最新固定46=41Pass1Fail4Blocked,无pending;4Blocked OWN06/UI02/LOCK02/TOPIC03,#17 Fail/#18及UI02事故不变,不等于全QA/生产通过。完整独立补充outputs/receipt-incentive-tax-owners-20261021/qa/readonly-account-20261021/r6-viewer-quota-supplement.md(未覆盖冻结手册图)。无产品源码/提交推送/部署/生产/真实账号角色或业务数据改动,空间finish待实际核验。
RA Updated by Redmine Admin 20 days ago Actions #33
R7进度:已核对既有journal139–170,没有LOCK反方向第二轮或UI02 A→B的R7重复回写。LOCK-02新增反方向真实并发Pass:封闭同候选b4 API59254,合成payment3 owner3→4实际PUT持锁PID187,确认owner4/2025Q1 paid0的PUT由PID188等待advisory(734159,2025),pg_blocking_pids=[187]后才释放;两请求HTTP200/code200,季度expected8/paid0确认落地,payment3 owner4/100/lockedtrue,随后改归属code400 period_confirmed且读回不变。第二轮为最后允许轮次,无真实付款。证据qa/r7-lock-round2-final.json及r7-lock-round2-pg-evidence.json。首轮真实锁观测成立但错误确认旧owner3无年度记录,为fixture前置失配,不计产品Fail;中间quarters404发生在第二轮并发前,未消费并发轮次,历史文件保留。UI-02.A→B子例Pass:Space38独立完整同候选UI57791/API57788+外部provider本地合成替身,12秒迟到A识别期间实际手选B客户/B主体/ownerB,响应后仍保持B/B/B;仅允许amount/remark识别结果应用。没有付款保存/上传/共享AI或外部调用。证据qa/r7-ui02-a-to-b.json/.png。UI-02其余三场景尚未执行,父例不提前Pass。固定46目前42Pass/1Fail/3Blocked,#17/CALC04及OWN06/TOPIC03尚待共享b4正式执行。独立层与共享站真实UI/API证据分开,保留旧失败/阻塞历史,不关闭issue。
RA Updated by Redmine Admin 20 days ago Actions #34
R7 UI-02其余三子例均Pass,补齐父例(2026-10-22 00:15–00:16 Asia/Shanghai)。原Space38,同候选完整UI57791/API57788、Ops封闭外联,仅provider本地合成:ABA 24秒旧A识别期间实际A→B→A,选择公司A另一个纯合成payer3及ownerB;迟到后A/manual-payer/ownerB不变。manual-owner 12秒同客户识别期间手选ownerB,迟到后ownerB不变。unchanged-positive零延迟识别实际回填123.45/R7-unchanged-positive、原owner保留,证明未把识别一律屏蔽。4次QA实际识别对应stub seq2–5(seq1为Ops边界probe),均HTTP200/code200;各场景非GET仅本地credential-recognize,无上传/回款保存/共享AI请求。证据qa/r7-ui02-{a-to-b,ABA,manual-owner,unchanged-positive}.json及对应真实截图;新额外payer仅封闭合成公司1/id3,见r7-ui-extra-payer.json。刷新第一次10秒超时在prepare前置,未排stub/发AI;一次只读诊断及后续有界等待后原空间完成,不重启/改CSP/另开空间。UI-02主例现Pass(独立同候选完整UI/API+外部provider替身层,不冒充共享站真实AI E2E);保留journal158事故和旧Blocked历史。结合LOCK-02,固定46当前43Pass/1Fail/2Blocked,剩余共享#17/CALC04、OWN06、TOPIC03继续。
RA Updated by Redmine Admin 20 days ago Actions #35
R7共享b4真实API进度(尚未全量结案):QA直接GET version=1.20.5b4,实际Web首页index-C5JwMC8g及login-COzuC4Iv资产beta2 hash0b84795b…;合法测试admin2确认。run QA16-R7-20261022-9001c9:仅新增sales14/15(role7)、公司11/12、主体11/12、合同18/19、内部空Invoice67=300.03、回款22(full)/23(staged)各100.01、空关联draft话题157。每个ID已固化r7-shared-manifest.json。CALC04/#17创建响应子项Pass:22原始POST allocated100.01/unallocated0.00,23原始POST allocated60/unallocated40.01,随后GET一致,Invoice累积占用160.01。原始POST分别独立保存r7-payment-full-raw-post.json与r7-payment-staged-raw-post.json,未用自动GET掩盖旧响应。后续同页80/20.01、100.01/0以及历史停用/归档页面仍在执行,父例未提前Pass。QA脚本两项前置构造纠正:accounts create正常format_user不含id,成功后立即停止并用唯一email查询恢复14,绝无重复POST;topic初次漏Idempotency-Key被HTTP400/INVALID_REQUEST明确拒绝,GET该run0后以合法键单次创建157,非产品失败。BW解锁/跨子进程读取问题与登录重试均发生取凭据前,无多次认证/业务重复写。仅测试合成,无真实资金/通知/Task/审批/共享期间确认,未改源码。
RA Updated by Redmine Admin 20 days ago Actions #36
R7 CALC-04/#17父例Pass:真实共享b4原始创建POST全额100.01余额0、部分60余额40.01;Space38同页只有一次初始详情GET,连续两次真实POST allocations保存80/100.01,即时余额20.01/0,Invoice67累计180.01/200.02,最后独立GET一致;#17已另留本轮回归记录待readback。证据r7-payment-*-raw-post.json、r7-staged-ui-results.json、r7-calc04-api-final.json及截图。当前固定46为44Pass/0Fail/2Blocked,OWN06/TOPIC03余页面仍待完成,不提前通过。OWN06前置新A14仅status/date_of_resignation变化,role未动,回款22完整GET和owner快照全等;对23尝试新增inactive14返回HTTP200/code400/message incentive_owner_ids 新增销售不存在或未激活,23/Invoice67/owner全部原像不变,证据r7-own-deactivated.json/r7-shared-negative-inactive.json。浏览器原会话在Host正常API认证后失效,因此剩余UI重新合法登录一次并仅用同一浏览器会话API,避免重复认证相互失效,不换凭据/角色。
RA Updated by Redmine Admin 20 days ago Actions #37
R7 OWN-06父例Pass:仅新销售14停用后,真实共享b4 Space38编辑回款22显示sales-A(历史归属)及已保存份额1.000000000000;真实UI只改备注保存成功,跨导航请求形状证明PUT /v1/finances/payments/22 keys=[remark],ownerFieldsPresent=false。详情仍显示原停用历史A;owner公开GET前后完全相同:owner14/share1/gross100.01/lockedfalse。完整payment仅remark/updated_at改变;Invoice67完整业务字段及两条分配按记录ID排序后全等(首次严格数组顺序oracle误设停止,原保存未重放)。另回款23新增选项实际搜索A为暂无数据,active选项不提供停用A;API增加[14,15]结构化400拒绝且23/owner/Invoice原像全等(journal201)。证据r7-own-{before,deactivated}.json、r7-own-ui-{before,saved-readback,results}.json、r7-own-historical-edit.png/detail.png、r7-shared-negative-inactive.json。公开owner接口不暴露captured_at,不夸称直接读取该内部字段;所有公开原快照值均保持。固定46当前45Pass/0Fail/1Blocked,剩余TOPIC03归档真实UI,未重跑其他41项Pass。
RA Updated by Redmine Admin 20 days ago Actions #38
R7有限补测最终结果 — 2026-10-22 00:32 Asia/Shanghai。固定46最新证据:46Pass/0Fail/0Blocked/0Skipped。本轮仅补5父例,沿用R6的41Pass(含PROFILE05/journal170),不是46项b4全量重跑;旧Fail/Blocked/UI02外部attempt事故不覆盖,#18额外旧缺陷仍开放,不自行关闭#16/#17或宣称生产准入。
本轮5父例:LOCK02 Pass(journal197,真实PG holder187/waiter188、advisory734159/2025、新owner4按8/paid0确认及后写拒绝);UI02 Pass(journal198,完整独立同候选UI/API+本地provider四场景,非共享真实AI E2E);CALC04/#17 Pass(journal201/#17journal200,原始create22/23及详情连续核销80/100.01、余额20.01/0和最终GET);OWN06 Pass(journal202,历史停用14真实回显、UI仅remark PUT保持原像、新增停用归属拒绝);TOPIC03本次Pass,详情如下。
TOPIC03:仅本轮新空关联话题157(公司/Task无绑定);归档取消前后完整GET含updated_at全等。确认一次后archived,默认keyword列表0、status=archived精确列表1。admin与既有test viewer13/role17/actions[]实际归档行仅详情;详情仅返回,无编辑/上下线/归档;viewer无新建。admin直链/topics/157/edit实际表单及保存仍启用,如实保留旧UI边界;本轮真实填入新名字并点击保存,PUT返回HTTP400/INVALID_REQUEST“已归档话题不可编辑”,完整GET全等,数据保护Pass。未调用发布或归档恢复接口。证据r7-topic-{archived,admin-detail,admin-list,direct-result,viewer,viewer-list}.json及真实截图。
证据限制:旧XHR包装器未跨后续导航存续,cancelStateWrites=0不能当完整网络计数。ResourceTiming目标只有1个UI XHR且开始于取消后GET之后,其他fetch均为明确GET;取消状态不变直接断言成立,原R1完整零写取消证据沿用。归档未重复。80核销仅HTTP200+UI20.01/Invoice180.01,未留完整body;只有最终100.01原始响应完整,不称每步均有原始body。创建后正常GET存在,只证明详情内续核销无刷新/中间GET。公开owner不暴露captured_at,不声称直接读该字段。
版本层:共享BE直接1.20.5b4/候选68834e0、FE实际2.16.4-beta.2;独立锁和AI层另列,Ops设施生命周期不由QA操作。run QA16-R7-20261022-9001c9:账号14/15、公司11/12、主体11/12、合同18/19、Invoice67、Payment22/23、Topic157,全部保留;无真实资金/审批/通知/生产/DB直写。
安全事件单列待协调:一次未过滤CDP事件输出含独立合成admin1 token和localhost DSH3080/3081 Cookie;一次扩展snapshot含生成密码建议,不能关联为已存账号密码。未在这些事件发现共享tcrm token或BW解锁材料;不凭localhost排除DSH下游生产能力。敏感值仅在工具日志,未复制交付/Redmine;旧独立token已有401/code7004证据。已停止原始事件/扩展快照输出。NDB普通logout只清本地,DB reset_password_token具撤销能力,未擅自改密/撤销其它会话。详细脱敏分类r7-observation-security-note.md及artifact scan,46业务Pass不豁免该处置。
最终本地r7-final-report.md/r7-final-matrix.json/r7-evidence-hashes.json;r7-manual-supplement.md只补版本/边界,原两份正式手册R4复现/三方Pass沿用、UI步骤未变,未擅改正式文档。两仓release/issues-100-101-staging,diff --check通过,BE原.aoci/config.json hash未变、FE旧文件保留。无源码/配置/分支修改、测试重跑、commit/push/部署。Space38保留只读合成页面供有界退出及独立复核,不finish;设施/业务数据不清理。
RA Updated by Redmine Admin 20 days ago Actions #39
R7最后空间/回写收据(补journal203当时保留空间状态,不新增用例):协调随后明确放行有界正常退出。2026-10-22 00:32:56共享测试viewer正常UI退出;00:32:57独立合成NDB正常UI退出;00:32:57.978 Space38仅一次finish({keep:[]})成功,r7-browser-close-receipt.json已固化。未新建空间、未清数据/设施/DSH Cookie或全部Cookie、未改密,不把本地logout称服务端撤销。原独立泄露旧token已有401证据;DSH最小撤销由协调负责,QA不使用其值。未作生产验证。
#16 journals197/198/199/201/202/203与#17 journal200均已重读;5父例分别Pass,固定46最新46P0F0B0S(41沿用+5新增),保留80阶段无完整body/详情仅一次初始GET/独立AI层/归档直链enabled但实际保存400/安全观察事件的边界。旧#18未修,issues不自行关闭。R7最终报告r7-final-report.md、46表r7-final-matrix.json、脱敏安全分类r7-observation-security-note.md、真实截图与手册适用补充r7-manual-supplement.md、证据hash及回写收据均保留。两本正式手册原三方Pass沿用,R7未改变UI步骤,不重复送审旧内容或擅改正式手册。
本地受限文本扫描无JWT、无非占位JSON secret键;两个password模板占位排除。工具日志原暴露仍真实存在,不以扫描无命中否认事件。最终记录再做脱敏扫描/读回。两仓diff --check通过,branch及dirty保留,无源码写/commit/push/部署。业务QA执行结束,安全处置与独立交付复核由协调继续。
RA Updated by Redmine Admin 20 days ago Actions #40
NDB-RELEASE-CLOSE-20261022-FINAL
2026-10-22 已完成生产发布收口(非新业务QA轮次)¶
依据现成Ops/primary发布收据记录,不重新发起生产请求、浏览器、业务测试或部署;不改变issue状态。
| 编号 | 预期 | 实际 | 结果 | 证据(outputs/production-release-20261022/) |
|---|---|---|---|---|
| REL-01 | 精确正式候选生效 | BE c2240364af37e9c307cb9e145a58608651c3e331 / v1.20.5;FE 75d13d0869ed3f0bc51095601a35cbc7a24562d0 / v2.16.4;main/tag远端匹配 | 发布身份核对通过 | production-release-complete.md;ops-noon-readiness/production-final-manifest.json |
| REL-02 | 两项目生产CI及指定部署触发成功 | BE cnb-04a-1k5hjr2gi、FE cnb-r86-1k5hk0nub均success,production build/push/alias/target trigger成功,staging跳过;运行态另有直接证据 | CI/触发检查通过,不以trigger替代运行态 | ops-noon-readiness/backend-cnb-receipt.json;frontend-cnb-receipt.json |
| REL-03 | BE四角色新版本及正式两键一致 | Web/worker/beat/recorder均1.20.5、同新digest/正式DB指纹,正式费率模板及小组会option在env/settings匹配(不公开值) | 运行态/配置检查通过 | ops-noon-readiness/backend-runtime-post-1.json;config-postimage-verified.json |
| REL-04 | 仅目标迁移安全应用 | migrate exit0,finance0019/projects0027 Applying OK;ledger127→129仅增两项、无删除;新表/约束/NOTNULL字段存在,无历史回填 | 迁移检查通过,129为ledger数量而非测试增量 | ops-noon-readiness/backend-schema-post.json |
| REL-05 | 临时成本写门禁撤销且入口恢复 | 18:47:48施加13写路径gate,18:58:36撤销本次owned文件,其他dynamic文件不变、proxy未重启;13写路径+2 GET共15条匿名空载荷/读取probe均401 | 正常鉴权/路由恢复检查通过;不是登录业务流程Pass,也未执行实际业务写入 | ops-noon-readiness/cost-gate-applied.json;cost-gate-removed.json;cost-gate-resume-probes.json |
| REL-06 | BE公开版本及保护入口正常 | version GET200/1.20.5;任务/财务/会议匿名保护入口401 | 必要只读冒烟通过;与15 probe重叠项不重复计数 | ops-noon-readiness/backend-readonly-smoke-final.json |
| REL-07 | FE实际加载正式静态链及首页挂载 | HTML200→index-C2D22xOa.js200→login-Dj912UKg.js200,唯一版本2.16.4;18:59:21现有会话首页刷新appMounted且entry一致,无重新登录/业务修改 | 静态资源/入口挂载检查通过;非完整业务验收 | ops-noon-readiness/frontend-static-version.json;frontend-browser-smoke.json;frontend-target-read-2.json |
| REL-08 | 备份与既有改动保留 | PG14 consistent dump exit0、218160366B、TOC1266、restore --list exit0、0600;原BE配置dirty及FE7个untracked保留;没有完整恢复演练 | 备份可读性/保留检查通过,不等于恢复演练通过 | ops-noon-readiness/native-production-backup.json;production-final-manifest.json |
本次范围#100/#101/#102/#16/#17/#19;不包含MCP/DSH/Grafana或preview/beta。结果RELEASED_AND_RESUMED;唯一19点自动化保持PAUSED,避免重复发布。
证据复用:既有565/129、27本地增量、共享6项及已审手册沿用,不重跑、不累加为新业务QA。上述是发布必要检查,本次新增业务QA计数0。
用户已接受真实企微受理/审批通知/事件送达及对应完整上游流程手册未测范围;维持NotRun,不转Pass。未做生产测试审批、真实付款、外部测试通知或生产合成造数;没有在生产重做完整业务验收。#14/#15历史缺陷及原QA限制不因发布自动关闭。
本次QA仅追加此发布记录;发布、main/tag推送由Ops在获准范围完成,不声称QA本次执行了部署。