{
  "task": "MP-LIST-REFRESH-01",
  "issue": 29,
  "recordedAt": "2026-11-01T23:48:38+08:00",
  "candidate": {
    "task": "MP-LIST-REFRESH-01",
    "path": "projects/mp/mp-conference",
    "branch": "bugfix/legacy-meeting-expert-display",
    "base": "e625cb92f8f22112a3bbbfcdab439755ac518e06",
    "files": {
      "components.d.ts": "d7a82b5b90d2bbe7e04d255982d937d466cf58b4b6042d848c627afa73a79067",
      "src/api/v2/types.ts": "e45048140c44bbc76e61f0148cbf32caa34d7219660d27e9b2479388fb882279",
      "src/components/conference/ConferenceCard.vue": "2cd95ae757bdd5ae0bacdf59bb96758f1a3a20e0b731bc8125f90ee7101c28c6",
      "src/components/consultant/HistoricalExpertCard.vue": "abcd856714a555941eb0e2d809808c44a33a08c429198a112b24abbf96e658c7",
      "src/pages/conference/collection/index.vue": "acb5e117349c0f7356400b4aca23e09b0cdc89c5ad052bf4440b9cb3ff4f8081",
      "src/pages/conference/detail/index.vue": "7d8a463ab91e244f5eabb9f7f1b8c20935eea38c0ae523883259f5cf2ee90308",
      "src/pages/conference/subscribe/index.vue": "0ce36de99b8f6d401a5595bbb02571ae35119993be79116ea293ae7d033baee1",
      "src/pages/consultant/detail/index.vue": "ac8ba906076f35e518319757603b62c3b900d4347c90bf866b297d2a0af82909",
      "src/pages/gather/index.vue": "7ba5a122f4e3664b63da4f956c04c0d8aea36cb98effac94455003f7ccfe48d4",
      "src/pages/index/index.vue": "29d3705a415399cdfd3969e7df26a45effd6f63a18c4b30b31e4d22f7583668b",
      "src/pages/search/list/index.vue": "c98e5b1fc58315f2a07a1be7e1f22ddc2d4826e8bb996d5886141172a019398d",
      "src/pages/talk/index.vue": "6974042951029fed96c391676aea080a47669a9503ce22eaa19b20afc0e32f94",
      "src/pages/topic/detail/index.vue": "dd52259fd0f92f3ce25c5c7fe9382565ca9ab2dd363aa20e9410704b3624124d",
      "src/utils/conference-presentation.ts": "ddf280afdf8922539faf024434237f005f3337586d7dac1f40e4a70de4094baa",
      "tests/historical-experts.test.cjs": "cec77896a76b5325fd0a3e0ffa3823b8abbffa79bd10728134cda4c9c3262294",
      "tests/list-refresh.test.cjs": "88a606195ebaca182ee3f263c907868f2e8a490d4825f34b3308a31b36ffd2db"
    },
    "fingerprint": "21bff02523d974b3f81384e8b32d7c497757af2c5d1f2168cbf7e61731be1cd2",
    "unchanged_dependencies": {
      "backend": "ea4cb67841fd3c0562327ff43e4f3336319c226c99ea717329a12ac8b4444d23",
      "bff": "7f5de354de248992c59b18f832313710099157b254f651a452913c0ae47ec9a2"
    }
  },
  "environment": "dedicated localhost PG55439 / Backend8019 / BFF3019; WeChat existing project; ego Space8 with H5 QA proxy8896",
  "role": "anonymous public UI; generated local synthetic app credentials in memory only",
  "cases": [
    {
      "id": "MPQA-LIST-MIXED",
      "impact": "LIST-01",
      "status": "Pass",
      "layer": "真实微信+H5/HTTP",
      "stepsExpected": "目录打开900107，预期同时显示两类公开摘要且无额外专家入口",
      "actual": "微信与H5均显示QA列表普通公司/QA公开职位及QA列表历史公司/QA旧公开职位；390宽无横溢，卡内a/button=0",
      "evidence": "wechat-list-mixed.png; h5-list-mixed.json/.png"
    },
    {
      "id": "MPQA-LIST-VARIANTS",
      "impact": "LIST-01",
      "status": "Pass",
      "layer": "真实H5/HTTP",
      "stepsExpected": "仅改自有fixture公开状态/移除自有历史快照后刷新，预期普通/历史/无专家及空公开字段分别正确",
      "actual": "历史仅1摘要→无公开专家0摘要但会议保留→普通仅1摘要；开发原100002空名为专家、长文本截断，100001无专家摘要",
      "evidence": "list-history-only.json; list-no-public-experts.json; list-ordinary-only.json; list-public-fallback-empty.json; supplement-http.jsonl"
    },
    {
      "id": "MPQA-LIST-NAV",
      "impact": "LIST-01",
      "status": "Pass",
      "layer": "真实微信原生+H5",
      "stepsExpected": "点会议行应打开会议900107并可返回，历史snapshot不作Profile目标",
      "actual": "原生实际点列表行进入同合成会议详情，返回仍有摘要；H5列表行亦进入900107，不新增专家级链接/约访",
      "evidence": "wechat-navigation.json; network.jsonl; h5-list-mixed.json"
    },
    {
      "id": "MPQA-RETURN-REFRESH",
      "impact": "LOAD-01",
      "status": "Pass",
      "layer": "真实H5+受控传输延迟",
      "stepsExpected": "列表加载后点详情再返回，同关键词后台真实GET期间不清空旧卡/重现骨架",
      "actual": "仅QA localhost延迟4秒真实上游GET；返回待响应时1卡/0骨架，完成HTTP200后仍1卡；DOM观察轨迹无骨架记录，不声称逐帧录像",
      "evidence": "return-refresh-pending.json; return-refresh-complete.json; network.jsonl"
    },
    {
      "id": "MPQA-KEYWORD-EMPTY",
      "impact": "LOAD-01",
      "status": "Pass",
      "layer": "真实H5/HTTP",
      "stepsExpected": "不同关键词立即清旧结果；真实空数组应显示空态",
      "actual": "新关键词时0卡/3骨架，真实HTTP200空结果后0卡/暂无数据，未保留旧专家",
      "evidence": "new-keyword-pending.json; new-keyword-empty.json; network.jsonl"
    },
    {
      "id": "MPQA-STALE-QUERY",
      "impact": "LOAD-01",
      "status": "Pass",
      "layer": "真实H5+受控传输延迟",
      "stepsExpected": "较慢旧查询在新空查询后返回，不得覆盖新结果",
      "actual": "先QA关键词5秒延迟、随后不同无匹配关键词快速返回；首个旧GET在5.06秒后HTTP200，之后采样仍是新关键词/0卡/空态。额外GET及轮询辅助误选最新start造成超时已保留，不加测试数量",
      "evidence": "stale-network-pair.json; stale-response-rejected.json; network.jsonl"
    },
    {
      "id": "MPQA-SEARCH-LIST",
      "impact": "LOAD-01",
      "status": "Pass",
      "layer": "真实H5/HTTP",
      "stepsExpected": "独立搜索列表页应读取公开会议摘要",
      "actual": "搜索页10张会议且包含合成普通公开摘要；仅该页读取通过。H5输入宽0阻断该页实际输入，不冒称搜索页关键词/竞争全路径通过；控时单测仅复用",
      "evidence": "search-real-list.json; network.jsonl"
    },
    {
      "id": "MPQA-HOME-RETURN",
      "impact": "LOAD-02",
      "status": "Pass",
      "layer": "真实H5+受控传输延迟",
      "stepsExpected": "首页已加载后切tab返回，刷新期间保留内容",
      "actual": "真实GET延迟3秒，首页5卡/0骨架且正在刷新提示；完成后提示消失并以新响应显示",
      "evidence": "home-refresh-pending.json; network.jsonl"
    },
    {
      "id": "MPQA-FAILURE-CLEAR",
      "impact": "LOAD-01/02",
      "status": "Pass",
      "layer": "真实H5/HTTP",
      "stepsExpected": "实际上游503后应显示错误/重试且去除不可复核专家，保留会议外壳",
      "actual": "精确核cwd/端口后短停本任务8019；首页5卡、目录2卡保持，摘要均0；实际BFF503。恢复8019后新onShow真实GET重验恢复摘要，不伪称H5手动按钮点击成功",
      "evidence": "home-real503.json; gather-real503.json/.png; gather-recovery-onshow.json; failure-service.json; network.jsonl"
    },
    {
      "id": "MPQA-EXPERT-REVOKED",
      "impact": "LOAD-02",
      "status": "Pass",
      "layer": "真实H5/HTTP",
      "stepsExpected": "原公开专家详情离开后撤回，再返回应清除旧内容",
      "actual": "自有Profile10初始公开加载成功；仅该合成Profile改draft；返回真实404后旧名清除并显示记录不存在/重新加载专家。未改热点数据",
      "evidence": "expert-before-revoked.json; expert-revoked404.json; network.jsonl"
    },
    {
      "id": "MPQA-NATIVE-RETRY",
      "impact": "LOAD-01/02",
      "status": "Pass",
      "layer": "真实微信原生/本地HTTP",
      "stepsExpected": "列表真实503且清摘要；恢复服务后原生点重试应重验恢复",
      "actual": "H5跨调用聚焦使重试按钮被onShow重验替换，未盲重试；另在微信目标平台验证：错误态在服务恢复后保持，原生点击一次重新加载，错误消失/历史摘要恢复；不宣称MCP截图工具恢复",
      "evidence": "native-list-retry.json; native-list-retry-service.json; wechat-list-real503.png; wechat-list-retry-recovered.png"
    },
    {
      "id": "MPQA-ANONYMOUS-PRIVATE",
      "impact": "LOAD-03",
      "status": "Pass",
      "layer": "真实H5匿名页面",
      "stepsExpected": "未登录不得展示收藏/订阅私有列表",
      "actual": "两页均前往登录，私有conference-list内0卡；页面缓存中其他公开页全局5卡已排除，不能把其计成私有泄露",
      "evidence": "anonymous-collection.json; anonymous-subscribe.json"
    },
    {
      "id": "MPQA-REAL-SESSION-SWITCH",
      "impact": "LOAD-03",
      "status": "Blocked",
      "layer": "真实会话层未执行",
      "stepsExpected": "有效身份A列表→B/退出，旧响应不得串账号",
      "actual": "没有两份已核验可用的本地BFF合成会话/绑定身份；未借真实账号、伪造JWT或新造授权。开发collection/subscribe的token同步watch及迟到Promise拒绝测试有效，仅受控层，不升级真实账号Pass。需主任务提供安全两会话fixture或明确接受该层未测",
      "evidence": "tests.log (developer controlled tests); qa-task-package.md"
    },
    {
      "id": "MPQA-TOPIC-POSITIVE-UI",
      "impact": "LOAD-01/02",
      "status": "Blocked",
      "layer": "真实热点正向内容层未执行",
      "stepsExpected": "已有热点/专家列表及热点详情返回时保留正向内容，并验证失败/撤回",
      "actual": "当前本地无正向热点fixture，本任务明确不改热点数据；未新造/激活热点。开发热点/专家列表、热点详情Promise/404测试复用，真实专家404已另测；热点正向页面仍需合规fixture或主任务接受层级边界",
      "evidence": "tests.log; tests/list-refresh.test.cjs (developer evidence only)"
    }
  ],
  "counts": {
    "Pass": 12,
    "Fail": 0,
    "Blocked": 2,
    "Skipped": 0
  },
  "developerEvidenceReused": {
    "focusedAndAdjacentTests": 53,
    "newControlledPromiseAndSummaryTests": 12,
    "adjacent": 41,
    "notNewQARuns": true,
    "backendBFFMigrationUnchanged": true
  }
}
