{
  "task": 106,
  "package": "margin-confirm-ui",
  "parentIssue": 35,
  "atShanghai": "2026-11-02T15:15:56.599228+08:00",
  "candidateSHA256": "0e6e0358ba7fb044e8557919145125a5fd1e20ec5b76d3078bd555f32fec3d06",
  "counts": {
    "Pass": 11,
    "Fail": 0,
    "Blocked": 1,
    "Skipped": 0
  },
  "functionalObservationsPassed": 10,
  "cleanupChecksPassed": 1,
  "cases": [
    {
      "id": "QA106-MARGINCONFIRM-CANCEL",
      "name": "普通编辑取消",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "取消0写、旧flag及草稿保持",
      "actual": "Task2取消后counter0、checkbox false、未提交memo保持",
      "status": "Pass",
      "evidence": [
        "cancel-result.json",
        "03-cancel-keeps-unchecked.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-FINISHED-COST",
      "name": "finished有成本确认与刷新",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "1次确认仅flag PUT、0成本写，草稿不夹带，刷新持久",
      "actual": "Task2 false→true→false；两个HTTP200单flag PUT；首次成功草稿保持，刷新memo恢复服务端原值；完整成本16不变",
      "status": "Pass",
      "evidence": [
        "task2-confirm-result.json",
        "task2-refresh-result.json",
        "task2-restore-result.json",
        "dto-comparisons.json",
        "04-ordinary-confirmed-checked.png",
        "05-task2-refresh-persists.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-FINISHED-NOCOST",
      "name": "finished无成本双向确认",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "无成本也可窄保存，不提交完整表单",
      "actual": "Task3 false→true→false，每次HTTP200单flag，memo草稿保留",
      "status": "Pass",
      "evidence": [
        "task3-true-result.json",
        "task3-false-result.json",
        "dto-comparisons.json"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-PAID",
      "name": "已付Task相邻边界",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "仅flag变化、不修改已付成本及任务状态",
      "actual": "Task21/cost23 paid；false→true→false，完整成本与状态一致，未提交备注未落库",
      "status": "Pass",
      "evidence": [
        "task21-true-result.json",
        "task21-false-result.json",
        "08-paid-task-flag-only.png",
        "dto-comparisons.json"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-ONGOING",
      "name": "既有进行中样本",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "只能改flag，仍ongoing并恢复原值",
      "actual": "fresh Task4 LOCAL-R1:c、project3/company b，false→true→false，DTO除flag/毛利投影不变，最终整DTO恢复",
      "status": "Pass",
      "evidence": [
        "ongoing-readonly-candidates.json",
        "task4-true-result.json",
        "task4-false-result.json",
        "flag-restoration-verification.json"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-QUICK",
      "name": "快捷编辑单次确认与取消",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "取消0写；原弹窗确认1次窄保存，无二次弹窗",
      "actual": "Task3快捷取消0写；确认后1次HTTP200单flag PUT，弹窗关闭、GET true，无第二弹窗；普通页合法恢复false",
      "status": "Pass",
      "evidence": [
        "quick-cancel-result.json",
        "quick-confirm-result.json",
        "quick-restore-result.json",
        "09-quick-confirm-viewport.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-FAULT",
      "name": "明确一次浏览器请求阻断",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "发网前阻断后不冒成功、无自动重试，读回旧值",
      "actual": "Task3一次标记PUT在XHR.send前抛NetworkError，blockedBeforeNetwork=true；正常GET false，显示已核对当前标记警告、草稿保持；非真实服务端错误",
      "status": "Pass",
      "evidence": [
        "task3-fault-result.json",
        "06-injected-failure-honest-warning.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-CREATE",
      "name": "普通创建只观察",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "勾选保持本地草稿，不即时POST或确认弹窗",
      "actual": "既有project3创建页false→true→false，无弹窗、counter不增加、未按提交",
      "status": "Pass",
      "evidence": [
        "ordinary-create-observation.json",
        "12-create-draft-no-immediate-confirm.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-QUICKCREATE",
      "name": "快速创建只观察",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "原创建弹窗切flag零写，不创建Task",
      "actual": "快速任务弹窗勾选后仅本地true，0写、仍1原弹窗，取消退出未按创建",
      "status": "Pass",
      "evidence": [
        "quick-create-observation.json",
        "13-quick-create-draft-only.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-COPY",
      "name": "复制只观察",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "现有Task复制目标页切flag零写，不创建Task",
      "actual": "Task3真实复制按钮进入project2创建页，默认false，勾选true未弹确认/无write，再取消草稿；未提交，不声称true源flag复制重置已测",
      "status": "Pass",
      "evidence": [
        "copy-observation.json",
        "14-copy-draft-flag-only.png"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-ROLE-BOUNDARY",
      "name": "其他角色与只读关系",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机真实浏览器/API",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "不改角色/RolePermission，以实际合法权限验证",
      "actual": "本轮仅admin1实测；finance/PM没有本轮页面实测及适用只读关系证据，不为补证扩大权限或换账号；其他角色尚未验证",
      "status": "Blocked",
      "evidence": [
        "catalog-baseline.json",
        "admin-permission-summary.json",
        "plan.md"
      ],
      "defect": null
    },
    {
      "id": "QA106-MARGINCONFIRM-CLEANUP",
      "name": "精确恢复与退出",
      "impact": "margin-confirm-ui普通/快捷标记单字段确认；父#35",
      "layer": "本机恢复/清理读回",
      "precondition": "已冻结FE候选、本机BE700740e、专用admin1，LOCAL-R1合成对象；临时三页面catalog获用户授权",
      "expected": "仅恢复本轮flag/临时catalog，原权限角色数据不变",
      "actual": "Task2/3/4/21整DTO含完整成本精确等于基线；catalog29/30/31无children/role refs后删除，profile+catalog+roles精确恢复；清观察器、正常退出、Space7 finish一次；noFurtherHTTPUI=true",
      "status": "Pass",
      "evidence": [
        "flag-restoration-verification.json",
        "catalog-cleanup-guard.json",
        "catalog-restoration-readback.json",
        "observer-cleanup.json",
        "logout-readback.json",
        "browser-closeout.json"
      ],
      "defect": null
    }
  ],
  "successfulTaskFlagPUTs": 10,
  "costWrites": 0,
  "creationAttempts": 0,
  "oneDeliberateBrowserFaultBeforeNetwork": 1,
  "sourceChanged": false,
  "noFurtherHTTPUI": true,
  "noDeployment": true
}
