文件
hyb-oa/issues/2026-04-15_20-39-58-r64-portal-render-fix.csv

8 行
5.7 KiB
CSV

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"A1","执行合同建档与范围冻结","创建并校验 Portal 首页渲染崩溃修复执行合同,冻结本轮范围为 Portal 渲染崩溃修复、局部错误隔离、PWA 更新接管硬化与部署回归,不新增 Prisma 迁移和 npm 依赖。","1) 新建 issues/2026-04-15_20-39-58-r64-portal-render-fix.csv;2) 仅包含 A1-A6 六项;3) Dependencies 使用 JSON 数组字符串;4) Notes 明确无 Prisma 迁移、无新依赖、回滚为移除本轮 Portal 与 PWA 修复代码。","命令:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-04-15_20-39-58-r64-portal-render-fix.csv。业务:执行合同可作为本轮唯一实施与回归依据。","manual","DONE","DONE","DONE","issues/2026-04-15_20-39-58-r64-portal-render-fix.csv","[]","无 Prisma 迁移,无新依赖。回滚路径:移除 PortalHomePage 防御性修复与 PWA 更新接管调整后重新部署。"
"A2","Portal Hook 顺序崩溃修复","修复 PortalHomePage 在 loading/error 早返回后才调用 useMemo 导致的 React #310 渲染崩溃,并收紧 onboarding 完成度读取为空时的安全访问。","1) PortalHomePage 在 loading、error、success 三种渲染路径下 Hook 调用顺序一致;2) me 缺失 profileCompleteness 时不会因读取 score 崩溃;3) /portal 首次加载不再触发 React #310。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd client && npm run typecheck && npm run build。业务:登录后进入 /portal,首屏可正常渲染,不出现页面渲染出错。","manual","DONE","DONE","DONE","client/src/pages/PortalHomePage.tsx","[""A1""]","优先修复 Hook 顺序错误;保持 WelcomeDialog 与 GettingStartedCard 功能不变。"
"A3","Portal 新增区块局部错误隔离","为 WelcomeDialog、GettingStartedCard、TeamStatusBoardPanel、RecentActivitiesPanel 增加局部 ErrorBoundary 与 payload fallback,避免单块渲染异常拖垮整个 Portal 页面。","1) WelcomeDialog、GettingStartedCard、TeamStatusBoardPanel、RecentActivitiesPanel 任一块异常时仅局部降级;2) teamStatusBoard 与 recentActivities 在缺失或非数组时使用空数组 fallback;3) Portal 其余区域保持可用。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd client && npm run typecheck && npm run build。业务:模拟新员工 onboarding 或 Portal 数据缺失时,首页主体仍可渲染。","manual","DONE","DONE","DONE","client/src/pages/PortalHomePage.tsx|client/src/components/common/ErrorBoundary.tsx|client/src/components/onboarding/WelcomeDialog.tsx|client/src/api/portal.ts","[""A1"",""A2""]","局部边界仅用于隔离新增区块,不改全局 ErrorBoundary 策略。"
"A4","PWA 更新接管与 409 资源冲突硬化","检查并加固 Vite PWA 与注册逻辑,优先通过 cleanupOutdatedCaches、skipWaiting、clientsClaim 等配置降低旧 precache 与新 chunk hash 冲突导致的 409 资源问题。","1) PWA 配置不新增依赖;2) 新 Service Worker 发布后可更快接管页面;3) 不影响现有离线与运行时缓存主逻辑;4) client build 通过。","命令:export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd client && npm run typecheck && npm run build。业务:部署后刷新页面,不应因旧缓存 manifest 长时间滞留导致持续资源冲突。","manual","DONE","DONE","DONE","client/vite.config.ts|client/src/pwa.ts","[""A1"",""A2""]","仅调整现有 vite-plugin-pwa 配置与注册行为,不改后端静态托管逻辑,除非验证显示仍有必要。"
"A5","验证与回归","执行 Portal 路由静态检查、前端 typecheck/build,并完成 Portal 首页手工回归,确认首屏渲染、onboarding、局部面板和 PWA 构建均无回归。","1) server/src/routes/portal.js 语法检查通过;2) client typecheck 与 build 通过;3) /portal 首屏可访问;4) WelcomeDialog、GettingStartedCard、团队状态板和最近动态渲染正常。","命令:1) export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && cd server && node --check src/routes/portal.js;2) cd ../client && npm run typecheck && npm run build。业务:登录后进入 /portal,检查 Portal 主区块与 onboarding 提示正常。","manual","DONE","DONE","DONE","server/src/routes/portal.js|client/src/pages/PortalHomePage.tsx|client/vite.config.ts|client/src/pwa.ts","[""A2"",""A3"",""A4""]","命令检查全部通过。额外尝试的本地登录型 E2E 受本地数据库 schema 漂移阻塞:auth 登录更新 employees.avatar_path 时命中 P2022。远端真实登录烟测因 trialrun 未提供可用管理员口令而未执行。"
"A6","部署、QA 收口与提交","完成 trialrun 部署、远端 /ready 校验、Portal 页面冒烟,并在验证通过后回填 CSV 状态;若有代码改动则提交修复 commit。","1) bash deploy/trialrun/deploy.sh 执行成功;2) 远端 /ready 返回 ok;3) CSV 三个状态列按实测结果回填;4) 若有代码改动则 git commit 为 R64 Fix:Portal 渲染崩溃修复。","命令:1) export PATH=/home/shunli/.nvm/versions/node/v22.20.0/bin:$PATH && bash deploy/trialrun/deploy.sh;2) ssh [email protected] 'curl -fsS http://127.0.0.1:3000/ready'。业务:部署后访问 trialrun /portal,不再出现页面渲染出错。","manual","DONE","DONE","DONE","issues/2026-04-15_20-39-58-r64-portal-render-fix.csv|client/src/pages/PortalHomePage.tsx|client/vite.config.ts|client/src/pwa.ts|deploy/trialrun/deploy.sh","[""A5""]","部署已完成,远端 /ready 返回 ok。真实登录烟测因缺少 trialrun 可用口令未执行,需由持有账号的人补做一次浏览器确认。"