QA验收 #35 » issue-106-staging-20261031.md
#106 首页各角色统计与图表 — 阶段补验(2026-11-01)
本轮计划21 Case:13 Pass / 1 Fail / 1 Blocked / 6 Skipped(实际执行14项=13 Pass/1 Fail)。全角色目标尚未完成。 原10个staging Case保持原10 Pass,不重算本轮执行;也不把两轮相加宣称全量首页通过。最新用户决定“先验现有三个角色,其余标明未测”:只收口admin/finance/PM,其他身份及TL依赖场景按决定未测;不创建账号/团队/样本,不等待授权。
候选仍为FE2.16.9-beta.3/4a303c3d、BE1.20.15b2/473cc345,只有测试tcrm/tcrm-api。本轮QA在唯一新Space5/p1真实正常登录admin20、finance19、PM16,分别profile确认active/实际role,不恢复旧cookie、不让admin冒充finance。凭据通过BW仅内存;未建/改账号。
本轮结果与真实边界
| CaseID | 用例 | 状态 | 实际结果/证据 |
|---|---|---|---|
| QA106-HOME-AUTH-ADMIN | admin真实密码UI登录并核身份 | Pass | 正常BW登录/profile200/code200、active、id20/roleadmin;非admin冒充,未改账号。 证据:admin-login.json;对应首页PNG/DOM
|
| QA106-HOME-AUTH-FINANCE | finance真实密码UI登录并核身份 | Pass | 正常BW登录/profile200/code200、active、id19/rolefinance;非admin冒充,未改账号。 证据:finance-login.json;对应首页PNG/DOM
|
| QA106-HOME-AUTH-PM | pm真实密码UI登录并核身份 | Pass | 正常BW登录/profile200/code200、active、id16/rolepm;非admin冒充,未改账号。 证据:pm-login.json;对应首页PNG/DOM
|
| QA106-HOME-ADMIN-HOME | 管理员首页统计和7/30天专家排名 | Pass | 本月新增专家0与dashboard一致;11月Call排名API空且UI有明确空态;7/30天切换请求200,合成专家574245访谈2次。未把11月空图说成非空验收。 证据:admin-home-baseline.json;admin-home-30day.json;admin-home.png
|
| QA106-HOME-PM-HOME | PM首页参与/管理范围与专家排名 | Pass | PM16首页提醒4条含本Task149实际1000/0,虽排除仍保留;项目involve→take和任务user_id16+take请求200;7→30天真实切换,页面/响应排名一致。PM非TL不显示客户Call榜。 证据:pm-home-loaded.json;pm-home-switches.json;pm-reminders.png;pm-rank-30day.png
|
| QA106-HOME-FINANCE-HOME | finance财务提示与出账项目空态 | Pass | finance19页面显示逾期0、出账0,两个实际API total_counts0;本月新增专家0。项目/任务工作台、提醒/专家榜和客户Call榜不显示。仅验证实际空态,未验证非空出账。 证据:finance-home-loaded.json;finance-home-loaded.png
|
| QA106-HOME-ACCESS | PM/finance管理首页tab可见边界 | Pass | 两种真实身份直达/admin均显示暂无可访问的数据中台内容;管理员可见7tab。此证据只证明UI权限边界,未执行越权写或全接口拒绝测试。 证据:finance-admin-direct.json;pm-admin-direct.json;pm-admin-denied.png
|
| QA106-HOME-FINANCE-CHART | 财务年度/月度表图70↔40及全排除 | Pass | 公司15年度实际2000/600,月度图10月2000/600/2小时、其余月0;B计入70%,排除40%,A/B全排除基数0/0页面不适用。7条ECharts运行series与真实响应逐项相等;原实际金额不变。 证据:admin-finance-{70,restored40,all-excluded}.json及-runtime/charts;finance三图
|
| QA106-HOME-PM-METRIC | PM真实收入/成本与独立毛利基数 | Pass | 相同2026-05-01至11-01查询,PM16原收入2106/成本600保持,基数2106→1106,利润率独立算得71.51%→45.75%;其中106来自其他现有Task,不套项目70/40。另10月筛选也返回2106/600/45.75,截图标明该期间。 证据:admin-pm-70.json;admin-pm-final-exact-october.json;admin-pm-70.png;admin-pm-exact-october-40.png
|
| QA106-HOME-SALES-CHART | 管理员销售overview/company/monthly图表金额与毛利 | Pass | 三个实际接口与ECharts收入/成本/毛利全部series数值对齐;公司15实际2000/600、70→40,10月聚合实际4106/600保持、85.39→80.68,分别按响应basis4106/600和3106/600算。管理员查看不替代sales身份权限;排除条数错误单列Fail。回款状态只观察表,未将其全量正确性计入此Pass。 证据:admin-sales-{70,restored40}.json及-runtime.json;admin-sales-70.png;independent-review.json
|
| QA106-HOME-SALES-COUNT | 全部销售聚合排除Task数应唯一计数 | Fail | 公司15双销售归属、仅Task149=true,销售company basis excluded_task_count=2,财务=1。金额/40%正确但排除数错误;源码每销售行赋1再累加。primary确认Backend唯一修复owner,尚未放行修复/部署。 证据:defect-sales-count.json;Redmine38;admin-sales-restored40.json
|
| QA106-HOME-RECRUIT | 专家招募表真实月份数量 | Pass | 补齐原响应与截图:10月新增39/首次访谈4,11月0/0;表逐行与7月度响应核对。仅验证已显示统计,不点击专家明细或造专家数据。 证据:admin-recruitment-complete.json;admin-recruitment-complete.png
|
| QA106-HOME-CUSTOMER | 客户Call图10月数据与客户筛选 | Pass | 11月空→10月实际总6小时,响应计数2+2+1+1+0=6,与图series逐点一致;本公司15为2小时。客户名称筛选请求含QA106,返回仅company15一行,10月client/billable均2,原A/B各1小时独立对照。未点导出。 证据:admin-customer-complete.json及-runtime;admin-customer-complete.png
|
| QA106-HOME-FLAG-INVARIANTS | 仅原A/B标记往返及现场恢复 | Pass | 四次单字段TaskPUT200/code200、无成本写;同admin权限上下文完整其他Task字段与成本DTO相同,结束148false/149true并由PM只读确认。PM allowed_payment_transitions=[]与admin不同属角色能力,不是成本落库变化。未改金额/日期/归属/状态。 证据:phase*-intent/response/after.json;fixture-baseline.json;final-fixture-readback.json;independent-review.json
|
| QA106-HOME-ROLE-PA | PA真实身份首页可见统计范围 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-ROLE-SALES | SALES真实身份首页可见统计范围 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-ROLE-SU | SU真实身份首页可见统计范围 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-ROLE-GUEST | GUEST真实身份首页可见统计范围 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-ROLE-TL | TL真实身份首页可见统计范围 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-TEAM-LOW-LOSS | 非空TL团队低毛利/亏损分类 | Skipped(用户决定未测) | 最新用户明确“先验现有三个角色,其余标明未测”:该身份及依赖团队场景本轮不执行;不建账号/团队/样本,不等待授权,不用admin代替。原前置缺口作为事实保留。 |
| QA106-HOME-UTIL-NONEMPTY | 平均资费/Seat/专家新增完整数据图 | Blocked | 管理员已实际观察11月平均资费[]、Seat[]和相应空态,专家新增图本月0/上月PM16为2,运行series已保存;未闭合完整非空资费/Seat样本及逐图截图,不能以空图通过整个用例。PA数据表仅观察,不冒称真实PA身份已测。 证据:admin-utilities-november.json;admin-utilities-nov-runtime.json;原页面观察记录
|
完整操作/预期/层级/影响编号/实际证据见outputs/issue-106-implementation-20261030/qa/home-roles-20261101/actual-results.json;独立逐值/算式/ECharts实际series对账见同目录independent-review.json。图表运行值来自当前真实页面组件的getOption,不是源码推算或mock;API金额、毛利计算与身份权限分别判断。财务统计POST是只读查询,不是业务提交。
新发现:销售排除Task数重复计数
DEF106-HOME-COUNT-01/Redmine #38:Fail。公司15有两个销售归属,仅B149被排除,财务excluded_task_count=1,销售公司/月度聚合却为2。实际income2000/cost600及40%仍正确,不能据此把数量错误判通过。api/sales/services.py:185按每销售分摊行赋excluded_count=1,再在公司聚合约280行累加导致重复;primary已确认Backend唯一修复owner,当前没有释放源码修改或部署。本轮只建缺陷并记录,待明确修复包。
真实图文(本轮均为2026-11-01,QA执行并查看,原像素复制)

图8:admin20,公司15/2026/RMB,B计入时(2000−600)/2000=70%;图表10月收入2000、成本600、2小时。

图9:同公司B排除,参与基数1000/600→40%,原年度与月度实际收入/成本仍2000/600。

图10:A/B均排除,基数0/0、排除2、UI不适用;图表实际金额保持。之后已恢复Afalse/Btrue,不保留全排除状态。

图11:admin查看PM统计,本图期间明确10月。PM16收入2106、成本600、参与基数1106/600→45.75%,不是项目40%。原106额外收入不能忽略。同期间差分另以完全相同May01–Nov01查询响应核71.51→45.75,不把不同UI期间的截图冒称同一次筛选。

图12:实际PM16身份,不是admin;7→30天请求和当前排名对齐。只读查看,不操作专家资料。

图13:admin实际10月Call图6小时=2+2+1+1+0,公司15为2;下方单独客户名称筛选请求返回仅company15,10月client/billable各2小时;它不反向改变上方全客户排名筛选,两个面板作用域分开。11月原为空态,不当作非空覆盖。

图14:admin招募表7个月度行,实际响应10月39/4、11月0/0,与表一致。图片为实际UI取景,未重画数据;完整响应补存在admin-recruitment-complete.json,不再沿用首轮缺响应的观察。

图15:实际PM16可见4条,第一条为本Task149,收入1000/成本0;右侧毛利标签列在横向滚动区之外,本图不声称该列可见,flag=true由确切Task读回/原响应证明。没有修改其他三条或把它们算本轮新增fixture。
finance首页及PM直达中台拒绝的真实截图保存在本轮outputs(finance-home-loaded.png、pm-admin-denied.png);仅展示测试身份,无秘密。财务首页本轮只覆盖逾期0/出账0空态,不能宣传非空账单流程通过。身份、路由UI边界不提升为所有服务端权限已验。
阶段收口与待授权前置
四次获准Task flag PUT均单字段,完整同admin上下文其他字段/成本不变,最终148=false/149=true;PM最后GET的allowed_payment_transitions为空是角色能力不同,不把不同角色DTO直接全等比较而误报成本变化。没有Cost写、日期/金额/状态/归属/角色修改、新fixture或生产操作。采集纠正只涉及QA定位器/异步加载等待,不重放不确定业务写、不计产品Fail。
Space5已正常退出登录;本轮三身份收口后按最新释放finish一次,确切结果见本轮writeback-receipt.json。账号/团队/两条分类Task旧提案见同目录fixture-and-account-proposal.md,最新用户已选择本轮不建、不测,不再请求该批授权。平均资费/Seat非空、PA/sales/SU/guest/TL真实身份及TL分类尚未闭环,其他中台“操作监控/项目信息”的所有动态表、销售回款全部状态、导出及全筛选组合不在本轮已通过断言内。
本增量图文待primary安排UI/Backend定向复核,旧图和旧业务review继续复用,不冒称新图已独立审阅。QA无产品源码/config/环境/Git/部署/生产操作。Redmine35本轮批量journal和读回见本轮writeback-receipt.json;#38不自动关闭。以下为先前10Case及beta2历史,不覆盖本轮新增Fail/Blocked。
#106 测试站图文验收结果 — beta.3定向修复验证
最新10个既有Case:10 Pass / 0 Fail / 0 Blocked / 0 Skipped。此轮实际1 Case Pass,另9项beta.2有效证据复用;四次保存为该Case的四组断言,不新增四个Case。 原beta.2的9 Pass / 1 Fail、#35 journals351/352及#37失败图保留,原台账另存actual-results-beta2-r1.json,普通编辑用例保留previous链。开发24项及本地49项不计入本轮staging执行数。
2026-11-01 beta.3增量结果
- 仅测试tcrm/tcrm-api,FE 2.16.9-beta.3 / 4a303c3d8a70805c31caaa629e94d7242733caf9;BE 1.20.15b2 / 473cc345有效收据复用。Ops
ops/staging-20261031/def106-02/{qa-ready,runtime-receipt}.jsonready/passed=true;公网独有资源、版本与测试API链确认,本轮没有查询容器逐字节或digest,不冒称做过。 - primary实际执行/visible QA独立离线复核。Space3/p1、管理员20 active;原Space1不存在的准备记录保留,未恢复旧cookie。实际四次保存时间为2026-11-01 00:06:02–00:06:17 Asia/Shanghai(原始UTC为2026-10-31 16:06)。RUN路径20261031保持稳定,不把新图写作10月31日采集。
- primary加载的普通编辑chunk为
projectTaskEdit-BHhRinM2.js,独立按钮仅保存统计标记;QA对before/after完整原始DTO、请求证据与PNG独立复核,没有再点击或请求业务接口,不以执行方result的Pass标签代替比较。
| 既有Case / 影响 | 前提、操作、预期 | 独立复核实际结果 | 状态 |
|---|---|---|---|
| QA106-STG-ORDINARY-EDIT / IMP106-01/11 / #37 | finished/unpaid的B149无成本、A148有成本42;普通页切flag双向保存,预期每次仅单flag TaskPUT、零Cost写、其他字段/成本不变、刷新保持 | B true→false→true,A false→true→false;四次各1 PUT、HTTP200/code200;每个请求keys仅exclude_from_gross_margin;每次80个其他Task字段逐值一致、完整cost DTO相等,reload checkbox值等于目标布尔值。最终Afalse/Btrue,项目96毛利0.4、原收入2000/成本600 | Pass |
原始证据:outputs/issue-106-implementation-20261030/qa/staging-20261031/primary-beta3-support/retry-locator-01/,每步intent/profile/before/after/costs/ui-requests/result及最终Task/项目;独立字段比较与逐文件SHA256:def106-02-beta3/independent-review.json。请求证据记录method/path/keys/flag,不含token或秘密。
首次外层尝试因Ego role checkbox缺name在操作前被拒,count0/sent[]、guard已恢复,GET149仍true;locator-correction.json说明改用观察到的唯一CSS checkbox后在新子目录执行四次,不是不确定写重试,不计产品Fail。refreshPersisted=false在原执行result中表示刷新后复选框值false,并非刷新失败;已按对应目标值逐组核对。
beta.3普通保存后的真实截图

图7:上海2026-11-01 00:06,测试站Web 2.16.9-beta.3(4a303c3d),管理员admin20;primary实际执行并采集,visible QA独立复核。页头**#96是项目号**,行业/主题显示本轮task b;Task149由intent的/project_tasks/149/edit?project_id=96、PUT149和GET149共同绑定。独立“保存毛利率标记”按钮及锁提示可读,勾选保持true。推荐背景等原空字段的红提示仍显示,flag-only保存不要求补齐或回写这些字段;80字段及成本不变由原始DTO证明,本图是在成功后刷新拍摄,没有可见成功toast;保存成功及刷新持久化引用同次请求、前后DTO和刷新记录证明,截图本身不单独证明保存成功或零写。
原PNG原样copy,SHA256:dfc597c01c15d097cc8715a392cac3c79284bafbd6076e696e6a8901c5725f10。其他六张beta.2旧图保留像素、日期及原业务阶段,不冒称beta.3重拍。
证据复用、评审和终点
beta.3仅普通标记独立handler/button、相关测试及版本元数据变化,Backend与其他业务路径未变;其余9项保持原候选beta.2/578fdc8d、管理员20、测试环境和执行日期,来源#35 journals351/352及下方原表。对应ENV/CREATE/QUICK-CREATE/QUICK-EDIT/PAIR/NEUTRAL/KM/REFRESH/COST-SNAPSHOT的旧Pass不计为本轮新执行;beta.3身份链另由Ops收据和本次intent/chunk绑定补足。原本地49不升级证据层级。
原六图/报告结构UI Pass与Backend事实Pass按未变范围复用;新图7 UI增量视觉复核Pass(outputs/issue-106-implementation-20261030/ui-beta3-delta-review.md,PNG原样/hash不变);其他增量文案由primary按当前包收口,不重复送审旧六图。DEF106-02修复验证Pass不等于Redmine status已Closed;两issue仅追加结果,不自动关闭。未测其他角色、会议专用入口及复杂业务边界继续按原矩阵保留。
QA本轮仅离线证据审查、报告/矩阵/Redmine写;不操作浏览器/业务HTTP/DB,不运行support,不修改产品源/config/环境。无新增对象,保留RUN与启用账号。noFurtherHTTPUI=true;Space3最后finish由primary负责,本线程不finish或新建空间。
beta.2 R1 历史完整结果(以下保留原候选、日期和失败;不是当前阻断结论)
原报告:#106 测试站图文验收结果 — beta.2
本轮实际执行10项:9 Pass / 1 Fail / 0 Blocked / 0 Skipped。普通编辑finished/unpaid缺少保存入口,DEF106-02/Redmine #37,未全通过。 列表快编、40%、全排除系数1及KM链已通过,不能覆盖该普通编辑Fail。
日期:2026-10-31 Asia/Shanghai;环境仅https://tcrm.mindsetech.com + https://tcrm-api.mindsetech.com/v1。截图均为本轮部署后的真实测试站页面,非本地旧图。本文是图文测试报告,不冒称正式员工手册。
实际候选与角色
- Backend 1.20.15b2,
473cc345af4898a624966c88eb63016c9e0a5d1a;Web 2.16.9-beta.2,578fdc8d9389b8287ffadeee8fd1b483d65fcda1。 - Ops实际镜像/源文件/公网bundle/测试API base、0028正向迁移及105三表保留、实际server/worker专用staging DB/broker/result/queue收据已消费。两CI production阶段均跳过。QA未重复探DB/worker/资源健康。
- p1刷新后加载
index-BN4j6c55.js及login-CXdZLjZK.js,实际版本beta.2,profile200/code200、管理员20 active。财务19/PM16在准备阶段正常认证及权限核对,未把他们写作本轮全部角色UI已验收。账号来自BW“NDB 专用测试账号”,不改角色/姓名/密码。 - 原49项是本地独立证据,沿用#35 journal349、DEF36 j347/348及原影响比较;不计成49项新版staging Pass。Ops合并交叠BE2/FE7聚焦证据单独复用,非QA新增执行数。
唯一合成对象与状态
RUN:QA106-STAGING-20261031-R1。客户15、合同23、联系人11、项目96、自动首条需求31、本轮ProjectCandidates 27;A Task148、B Task149、C Task150;A唯一成本 42。总计10个显式新对象、3Task/1Cost,未复制第四条Task。
只读引用既有纯合成专家574245;账户25虽同属该专家但实际缺银行、ready=false,未引用或补改。新成本用无旧主档ID的完整合成快照,105严格字段就绪检查ready=true,无豁免/审批。
最终保留:A148 finished/计入/收入1000;B149 finished/不计入/收入1000;C150 ongoing/不计入/收入null;成本42 600RMB/unpaid。PM16/PA20、项目96/需求31;公司销售归属20/16由新Task完成快照捕获,年度API本客户owner各1000、无缺归属Task。未登记实际奖金、付款或审批。
实际用例表
| 编号 | 影响 | 用例/实际结果 | 状态 | 证据 |
|---|---|---|---|---|
| QA106-STG-ENV | IMP106-12 | 消费Ops收据并p1实际加载beta.2/测试API、profile20 active;0028/worker隔离不重复现场探测 | Pass | actual-browser-candidate.json; runtime-gate.json |
| QA106-STG-CREATE | IMP106-01/09 | A148/B149直接finished、各1000/flagfalse,项目96/需求31/PC27;年度客户15实际owner16/20各1000,ownMissingOwnerTaskIds为空 | Pass | task-a-after-create-read.json; task-b-after-create-read.json; final-task-incentive-owners-read.json |
| QA106-STG-QUICK-CREATE | IMP106-01 | UI唯一POST创建C150,project96/requirement31未新建;ongoing、flagtrue、收入null,精确GET证明归属 | Pass | ui-quick-c-result.json; c-exact-detail-read.json |
| QA106-STG-QUICK-EDIT | IMP106-01/11 | 真实UI B149 true→false→true,各1TaskPUT/0CostPUT;项目70%→40%,原金融字段不变;保存后重新打开仍true | Pass | ui-quick-b-include-result.json; ui-quick-b-exclude-result.json; ui-pair-assertions.json |
| QA106-STG-PAIR | IMP106-02 | 原2000/600毛利70%;排除B后basis1000/600、40%,原收入2000与成本600不变;API+项目实际列表图 | Pass | baseline-project-list-read.json; pair-assertions.json; ui-quick-project-40-read.json |
| QA106-STG-NEUTRAL | IMP106-08/09 | A/B均排除时excluded2/applicablefalse,项目legacy数值0但UI不适用;激励年度factor1、fallback;原2000/600与归属资格保留 | Pass | neutral-assertions.json; neutral-ui-incentive-read.json; neutral-ui-basis.json |
| QA106-STG-KM | IMP106-10 | Task149 actual_income1000、cost0、flagtrue,KM真实行可见,不因毛利标签隐藏 | Pass | km-excluded-b-read.json; km-ui-refresh-and-link.json |
| QA106-STG-REFRESH | IMP106-10 | 真实刷新完成一次GET200/code200仍返回B149,UI行不计入;点击到/project_tasks/149;列表/项目刷新读回保持结果 | Pass | km-ui-refresh-and-link.json; final-task-b-read.json |
| QA106-STG-COST-SNAPSHOT | IMP106-11 | 成本42完整独立合成snapshot readytrue、600RMB unpaid;无payment_info_id/旧id;最终DTO与创建后相等;账户25仍缺银行,不改主档/豁免 | Pass | cost-a-after-create-read.json; final-a-costs-read.json; final-reference-account25-read.json |
| QA106-STG-ORDINARY-EDIT | IMP106-01/11 | 管理员20,B149 finished/unpaid,checkbox未禁用可勾但无保存/更新按钮,0编辑请求;primary确认DEF106-02,Redmine37;不被快编Pass覆盖 | Fail | finished-unpaid-edit-ui-gap.json; final-task-b-read.json |
原始脱敏证据与唯一当轮台账:outputs/issue-106-implementation-20261030/qa/staging-20261031/actual-results.json;本轮后端影响按环境追加到同一backend-impact-regression.md,不复制第二套业务矩阵。
真实图文
快速创建C及列表快编

图1:管理员20在测试站选择已有客户15、项目96、需求31、PM16/PA20及合成专家574245,勾“不计入毛利率”。唯一POST返回Task150,随后明确ongoing列表及精确detail独立GET核归属;收入null不进入A/B统计样本。

图2:从本轮Task列表的149行进入“编辑毛利率统计标记”,保存后只读重新打开,标记true;取景不显示Task号,具体映射由ui-quick-b-exclude-result.json的一次PUT /v1/tasks/149及精确GET绑定,不把图单独当ID证明。两次快编true→false→true各1TaskPUT、0CostPUT,金额/credit/成本保持。
70%变40%,真实金额保留

图3:#000096是项目号,其中A148收入1000/成本600、B149收入1000/成本0。基线70%,排除B后参与基数1000/600,页面40%;原实际收入2000、成本600保持。C150无收入且ongoing,不参与这组毛利计算。图为最终A=false/B=true重新加载后的真实状态,接口金额见pair/ui-pair原始证据。
全部排除,无有效基数时系数1

图4:#15是客户号,2026年度参与收入/成本0/0、排除Task数2、适用性“不适用(无有效基数)”、系数1,说明“排除后没有计算基数,系数按1”。这是A/B同时排除阶段截图;最终已把A恢复计入以保留40%复现场景。项目接口旧数值仍0,由独立applicable=false驱动页面“不适用”,不是假称真正0%毛利。
排除毛利统计不隐藏KM提醒

图5:仅取本轮Task149/项目96及表头,收入1000RMB、成本0、不计入毛利率。实际点刷新后一次GET200/code200仍返回该行,点击#149跳到确切详情;无其他业务记录写入。
普通编辑失败边界

图6:正确URL为/project_tasks/149/edit?project_id=96,图中**#96是项目号,行业主题task b对应Task149**。已结束/未付款任务的统计框未禁用,但标题仅返回/Card等,无保存/更新。没有发出普通编辑PUT,截图中其他必填背景空值不是无按钮的原因;primary/Web已确认header的非关键编辑模式判断漏finished/unpaid。已附#37附件122。不得以快编成功改成普通编辑Pass,也不改付款状态/转ongoing绕过。
六张图均由QA查看;具体采集时间、SHA256、版本和角色见screenshots.json。图1采集约19:00,图4约19:10;图3/图6为最终取景,时间和标记阶段不同已在图注解释,没有混写成同一次快照。
失败、复用与安全边界
DEF106-02在本轮beta.2仍Fail;Web本地最小修复不等于新版本部署或QA重测。本轮未修改产品源码、版本、Git或环境,未直写数据库或编辑旧105实体。后续若获准部署修复,只复测受影响普通编辑及必要相邻保护,保留这些未受影响的beta.2证据与来源。
每个实际业务写均先存intent,未知结果禁止自动重放。快速创建最初读列表因未指定状态看不到ongoing C,后以显式ongoing和精确ID GET闭合,无第二POST;项目无基数旧数值0预期曾错写null,按当前契约修正断言;cost detail无GET改用Task成本列表。上述runner/导航/横向定位纠正均留原响应,不计产品Fail、不重发创建。
未调用支付状态、实发确认、开票、审批、通知、反馈、会议创建、ES或DB写。普通API内部入已核staging队列属本包允许;源码对finished/data/recordfalse在日程/MQTT前早退,最终三Task recording_schedule=null;未读取Celery结果,不把源码skipped冒称实际队列回执。新项目关联显式PC27,空link_code,不编辑旧专家/账户/旧项目关联。新成本快照全合成,不展示收款明文。
原本地未测角色/会议专用路径、复杂预付/补结、团队3%阈值、压力及共享服务边界仍按矩阵保留。此次不制造这些额外数据,不把9Pass当全角色/全功能通过。专用账号active与本轮RUN数据保留;Space1/p1暂留同目标可能的定向回归,Ops p2已收尾;无本轮guard残留。正式员工手册仍作为后续工作,本文只交付测试图文。
复核与回写
2026-10-31,UI图文结构/截图可读性复核Pass、Backend业务事实校对Pass,无必须修改项。来源:UI复核、Backend业务复核。两项仅指报告复核,实际beta.2仍为9 Pass / 1 Fail,DEF106-02/#37仍未修复;本地Web修复24项测试/build与实际部署、QA重测分开。推荐展示已验图3(04-project-exclude-b-40.png),未改图片或结果。
#35 journal351已完整读回,10项结果/全部用例ID与8个附件存在;#37及失败图附件122读回成功,原本地journal349保留,不自动关闭。journal351“未修改数据库”等表述准确澄清为:未执行直接DB写;通过授权正常API创建10个合成对象及标记更新,生产未动。 本轮不是零业务数据写入。
本次以一条简短final logical note合并记录上述澄清和两项报告复核,不复制用例/截图,不新增Pass、不重传附件。该note读回编号及报告/复核证据摘要见outputs/issue-106-implementation-20261030/qa/staging-20261031/review-closeout-receipt.json。beta.3尚无本轮发布/回归结论,Space1/p1按同目标后续决定暂留,本次未操作浏览器或业务数据。