文件
hyb-oa/issues/2026-02-11-p11-p12-governance-mobile.csv
T
wangsli 3b221a2202 feat(P11-P12): 落地治理开关与移动端MVP(G0-G6/H1/M1-M4)
- 新增 Feature Flag 模型、评估服务与管理 API(erp_sync/invoice_verification)\n- 完成 ERP 与验真灰度收口(路由/服务/作业统一判定)\n- 补齐 pay 与手动 sync 的 department_id 灰度上下文\n- 增加管理后台开关页、PWA 基础设施与移动拍照/审批页面\n- 增加回归脚本、安全基线与压测脚本,更新文档与执行合同\n\nIssue: G0,G1,G2,G3,G4,G5,G6,H1,M1,M2,M3,M4
2026-02-11 20:33:30 +08:00

14 行
5.2 KiB
CSV

ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
G0,P11/P12执行合同建档,创建并校验P11-P12执行合同CSV且冻结依赖关系,CSV通过校验且字段满足规范,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-02-11-p11-p12-governance-mobile.csv,manual,DONE,DONE,DONE,issues/2026-02-11-p11-p12-governance-mobile.csv,[],none
G1,Feature Flag模型与评估服务,新增feature_flags数据模型并实现统一评估服务与env硬闸融合,支持erp_sync/invoice_verification两键评估且默认fail-closed,cd server && npm run prisma:validate && node --check src/services/featureFlags/index.js && node --check src/config.js,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations/* | server/src/services/featureFlags/index.js | server/src/config.js | server/.env.example,"[""G0""]",默认两键force_off作为首期安全基线
G2,开关管理API与审计,新增system.settings可访问的Feature Flag查询与更新API并写审计,GET/PUT接口可用且变更具备审计记录,cd server && node --check src/routes/featureFlags.js && node --check src/app.js,manual,DONE,DONE,DONE,server/src/routes/featureFlags.js | server/src/app.js | server/src/routes/audit.js | server/src/utils/audit.js,"[""G1""]",并发更新使用expectedVersion乐观锁
G3,ERP灰度接入(pay+手动sync),pay自动入队与手动ERP同步统一走feature flag并按department_id灰度,pay成功语义不变且非灰度部门阻断手动sync并跳过自动入队,cd server && ./scripts/regression-integrations.sh,manual,DONE,DONE,DONE,server/src/routes/reimbursements.js | server/src/routes/integrations.js | server/src/services/integrations/erp.js | server/src/services/featureFlags/index.js,"[""G2""]",需补齐reimbursement.department_id查询字段
G4,验真开关统一收口(路由+服务+作业),验真判定统一收敛到services/verification/index并覆盖路由与worker,verify/retry/worker均按统一判定执行且关闭时落verification_disabled_by_flag,cd server && ./scripts/regression-verification.sh,manual,DONE,DONE,DONE,server/src/routes/invoicePool/verification.js | server/src/services/verification/index.js | server/src/jobs/verificationJob.js | server/src/jobs/pgBossJobs.js | server/src/services/verification/tax.js | server/src/services/featureFlags/index.js,"[""G2""]",移除分散的config.invoiceVerificationEnabled直接判断
G5,管理后台开关页,新增Feature Flags管理页面并接入权限与导航,system.settings角色可查看并更新开关且前端构建通过,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/FeatureFlagsPage.tsx | client/src/api/featureFlags.ts | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx,"[""G2""]",展示effective状态与灰度范围
G6,回归脚本与文档收口,新增feature flag回归脚本并接入总回归与README和矩阵,脚本可重复执行且check-minimal保持通过,cd server && ./scripts/regression-feature-flags.sh && cd /home/shunli/Projects/hyb-oa && ./scripts/check-minimal.sh,manual,DONE,DONE,DONE,server/scripts/regression-feature-flags.sh | server/scripts/regression-all.sh | server/README.md | docs/feature-matrix.md,"[""G3"",""G4"",""G5""]",回滚通过RUN_FEATURE_FLAGS_REGRESSION=0
H1,安全与压测门槛,新增安全基线检查与dashboard压测脚本并形成文档基线,脚本输出可复用且阈值说明可追溯,cd server && ./scripts/security-baseline.sh && ./scripts/benchmark-dashboard.sh,manual,DONE,DONE,DONE,server/scripts/security-baseline.sh | server/scripts/benchmark-dashboard.sh | docs/ops/non-functional-baseline.md,"[""G6""]",默认先观测不阻断
M1,PWA基础设施,在现有client启用PWA并新增manifest与SW注册开关,支持安装与离线壳打开且构建通过,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/vite.config.ts | client/src/main.tsx | client/public/manifest.webmanifest,"[""H1""]",默认仅缓存静态壳与离线fallback
M2,移动拍照与离线上传队列,新增移动拍照上传页及indexeddb离线重放队列,断网缓存并在联网后自动重放上传成功,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/MobileCapturePage.tsx | client/src/mobile/uploadQueue.ts | client/src/api/invoicePool.ts | client/src/router/index.tsx,"[""M1""]",iOS只保证前台恢复后重放
M3,移动审批快捷处理,新增移动审批列表与详情快捷动作页复用workflow接口,移动端可完成approve/reject/return/transfer闭环,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/MobileApprovalsPage.tsx | client/src/api/workflow.ts | client/src/router/index.tsx,"[""M1""]",保持现有权限守卫策略
M4,P12验收与收口,补充PWA手工回归清单并同步矩阵与执行合同状态,checklist完整且P12状态可审计追溯,manual: 按 docs/mobile/pwa-regression-checklist.md 执行离线上传与移动审批全流程,manual,DONE,DONE,DONE,docs/mobile/pwa-regression-checklist.md | docs/feature-matrix.md | issues/2026-02-11-p11-p12-governance-mobile.csv,"[""M2"",""M3""]",无自动化时必须写可复现手工步骤