文件
hyb-oa/issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv
T

10 行
10 KiB
CSV
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
"WOUAFIX-0","合同建档与边界冻结","建立 WOUA-FIX / WECOM-RUNTIME-READY-V1 执行合同,承接用户确认:OA active 缺企微人员按测试数据处理,企微缺必填字段先接受不补,本轮允许受控写入但不修改企微资料。","1) CSV 校验通过;2) 范围限定为 OA 测试员工软清理、归档仍绑定处理、WOUA 只读复检和事实源回写;3) 不修改企微通讯录或人事助手资料;4) 不打开 wecom_hr_master_sync_v1 真实员工批量 apply;5) 不推进 wecom_attendance_approval_mirror_v1。","受影响流程:OA active 员工 -> 企业微信通讯录/人事助手 -> 差异分类 -> 受控清理 -> 只读复检;验证步骤:python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv。","python3|manual","DONE","DONE","DONE","issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv","[]","用户已明确批准写入;边界保持为 OA 测试账号软归档、企微缺字段接受不补、归档绑定保留审计;不写企微、不执行真实员工 WHMS 批量 apply、不进入深度镜像。CSV 校验已通过。"
"WOUAFIX-1","核实现有模型和安全写入路径","读取员工、账号、企业微信绑定、审计日志和既有归档/离职处理代码,确定测试员工应采用软归档/停用而非物理删除。","1) 明确 employees active/status/archive 字段和用户停用字段;2) 明确 wecom_identity_bindings 处理方式;3) 明确不会影响真实员工和已匹配企微人员;4) 输出脚本实现所需的匹配条件。","受影响流程:管理员清理测试员工 -> OA 员工状态和登录权限 -> 企业微信绑定审计;验证步骤:rg -n 'wecom_identity_bindings|archived|terminated|is_active|status' server/prisma/schema.prisma server/src。","rg|manual","DONE","DONE","DONE","server/prisma/schema.prisma|server/src","[""WOUAFIX-0""]","确认采用 employees.status='archived'、employment_status='inactive'、archived_at 和 token_version+1 软归档;wecom_identity_bindings 默认保留;只触达 WOUA 报告中的 oaActiveMissingInWecom 或显式 allowlist。"
"WOUAFIX-2","新增受控修复 runner","新增 QA-only CLI,对 WOUA 报告中的 oaActiveMissingInWecom 测试员工执行 dry-run/apply 软清理,并对 inactiveWithBinding 生成处理项;同时修正 trialrun seed/runtime smoke,避免已归档的 T0000 fallback 管理员在存在真实 active admin 时被下次部署重新激活;支持归档测试主管后的 active 下属和 pending 待办转交到 fallback active manager。","1) 默认 dry-run 不写数据库;2) apply 必须 --apply 且 WOUA_FIX_APPLY=1;3) 只处理当前只读审计报告中 oaActiveMissingInWecom 的员工号或显式 allowlist;4) 不输出手机号、邮箱、完整 userid、secret、token 或原始 payload;5) 企微缺字段仅记录 accepted_missing_required_fields;6) 部署 smoke 可使用任意 active admin,不强制复活已归档 fallback admin;7) manager side-effect repair 只转交员工号和待办指派,不写企微。","受影响流程:QA 执行清理脚本 -> 软归档测试 OA 员工 -> 禁止测试账号继续登录 -> 生成脱敏修复报告 -> 下次部署不重复激活已归档 fallback 测试管理员 -> 归档测试主管的下属和 pending 待办转交到 active manager;验证步骤:cd server && node --check src/scripts/resolve-wecom-oa-user-consistency.js;cd server && node --check src/scripts/seed-trialrun.js;cd server && node --check src/scripts/smoke-trialrun-runtime.js;cd server && node src/scripts/resolve-wecom-oa-user-consistency.js --help。","node|pg","DONE","DONE","DONE","server/src/scripts/resolve-wecom-oa-user-consistency.js|server/src/scripts/seed-trialrun.js|server/src/scripts/smoke-trialrun-runtime.js|server/package.json","[""WOUAFIX-1""]","新增 npm script resolve:wecom-oa-users;help、node --check 均通过;远端 seed 日志确认已归档 T0000 保持归档并使用 HYD000006 active admin fallback;manager repair 将 SMOKE101 和 2 个 pending 测试待办转交 HYD000007。"
"WOUAFIX-3","单测覆盖修复边界","新增 focused vitest 覆盖 dry-run、apply 双确认、缺企微测试员工软清理、企微缺字段接受、inactive 绑定处理、allowlist 防误伤和脱敏输出。","1) 未设置 WOUA_FIX_APPLY=1 时 apply 抛错且不写;2) 只处理允许的差异分类;3) missingRequiredFields 不触发更新;4) 输出不含手机号、邮箱或完整 userid;5) 单测可独立运行。","受影响流程:WOUA 修复 runner -> 写入保护 -> 审计报告;验证步骤:cd server && npx vitest run tests/unit/scripts/resolve-wecom-oa-user-consistency.test.js --reporter=verbose。","vitest","DONE","DONE","DONE","server/tests/unit/scripts/resolve-wecom-oa-user-consistency.test.js","[""WOUAFIX-2""]","focused vitest 已通过:1 个测试文件、8 个用例全部通过;覆盖 dry-run 回滚、apply guard、allowlist、缺字段接受、inactive binding 默认保留和显式清理。"
"WOUAFIX-4","本地静态门禁","执行 WOUA-FIX 本地门禁,确认脚本、既有 WOUA runner、trialrun seed/runtime smoke、Prisma schema 和 diff 格式正常。","1) node --check 新修复脚本通过;2) node --check 既有 WOUA 审计脚本通过;3) node --check seed-trialrun 和 smoke-trialrun-runtime 通过;4) prisma validate 通过;5) git diff --check 通过;6) focused vitest 通过。","受影响流程:本地实现 -> 可部署 QA-only 修复工具;验证步骤:cd server && node --check src/scripts/resolve-wecom-oa-user-consistency.js;cd server && node --check src/scripts/audit-wecom-oa-user-consistency.js;cd server && node --check src/scripts/seed-trialrun.js;cd server && node --check src/scripts/smoke-trialrun-runtime.js;cd server && npm run prisma:validate;git diff --check。","node|npm|git","DONE","DONE","DONE","server/src/scripts/resolve-wecom-oa-user-consistency.js|server/src/scripts/seed-trialrun.js|server/src/scripts/smoke-trialrun-runtime.js|server/tests/unit/scripts/resolve-wecom-oa-user-consistency.test.js|server/package.json","[""WOUAFIX-3""]","node --check、npm run prisma:validate、focused vitest、skill 校验和文档审计均通过;audit-docs 仅保留既有 unregistered docs warning;最终 git diff --check 在提交前重跑。"
"WOUAFIX-5","公网 dry-run/apply 与只读复检","以 SYNC_ENV=0 受控部署 QA-only 变更,在远端先 dry-run 核对受影响员工号,再执行受控 apply,随后复跑 WOUA 只读审计。","1) dry-run 报告只列脱敏差异和员工号,不含隐私字段;2) apply 只处理用户确认的测试数据,不写企微;3) 复跑 WOUA 结论应为 PASS_NO_DRIFT 或 PASS_WITH_FINDINGS 且不再包含未决测试 OA active 缺企微;4) 企微缺字段保留为 accepted finding。","受影响流程:远端 OA 测试员工清理 -> 企业微信/OA 用户一致性复检 -> 运行优先门禁判断;验证步骤:SYNC_ENV=0 bash deploy/deploy.sh;ssh 远端容器执行 npm run resolve:wecom-oa-users -- --report <summary.json> --dry-run;WOUA_FIX_APPLY=1 npm run resolve:wecom-oa-users -- --report <summary.json> --apply;npm run audit:wecom-oa-users -- --live --format=json。","bash|ssh|node","DONE","DONE","DONE","external|artifacts/qa-flow/wecom-oa-user-consistency-fix-*","[""WOUAFIX-4""]","已以 SYNC_ENV=0 部署至 https://oa.hyinda.com;dry-run 命中 EMP001、SMOKE001、SMOKE201、SMOKE301、SMOKE302、SMOKE401、T0000;apply 报告 /app/artifacts/qa-flow/wecom-oa-user-consistency-fix-20260518T160944Z/summary.json archivedApplied=7 wecomWrites=0;manager repair apply 报告 /app/artifacts/qa-flow/wecom-oa-user-consistency-fix-20260518T161656Z/summary.json;最终 WOUA /app/artifacts/qa-flow/wecom-oa-user-consistency-20260518T161716Z/summary.json:OA active 5、WeCom active 5、matchedActive 5、oaActiveMissingInWecom 0、missingRequiredFields 5、inactiveWithBinding 1。"
"WOUAFIX-6","事实源回写与路线判断","更新人工试运行报告、文档索引、事实源矩阵和路线图,记录 WOUA-FIX 结果、企微缺字段暂不补的决策,以及下一步是否进入运行优先能力实现。","1) 文档记录清理结果、复检报告路径和 accepted_missing_required_fields;2) 明确不代表真实员工批量 WHMS apply 已批准;3) 明确考勤/审批深度镜像仍需模板 ID、sp_no 和真实回调配置;4) 文档审计通过。","受影响流程:事实源读取 -> 企微路线判断 -> 下一阶段派工;验证步骤:node scripts/qa/audit-docs.mjs --check-registry;rg -n 'WOUA-FIX|accepted_missing_required_fields|PASS_WITH_FINDINGS|WECOM-RUNTIME-READY-V1' docs issues。","node|rg","DONE","DONE","DONE","docs/trialrun/人工试运行报告.md|docs/trialrun/真机公网测试清单.md|docs/管理员手册.md|docs/文档索引.md|docs/文档事实源状态矩阵.md|docs/企微优先开发路线图.md|docs/产品口径.md|docs/开发交付与变更管理规约.md|docs/需求-请假考勤修正规约.md","[""WOUAFIX-5""]","已回写路线图、PRD、产品口径、开发交付规约、请假考勤/审批/企微规约、管理员手册、试运行报告、真机清单、文档索引、事实源矩阵和 skill;明确 WOUA-FIX 只清零 OA active 缺企微测试账号,不补企微字段,不放行深度镜像;下一步推荐 WECOM-RUNTIME-READY-V1。"
"WOUAFIX-7","状态回填与中文提交","完成 Issue 状态回填、本地验证、公网复检证据核对和中文提交。","1) WOUAFIX-0..6 按实际执行结果回填;2) 所有已声明 Test_Method 有结果;3) git diff 不含 secret、token、手机号、邮箱、完整 userid 或原始 payload;4) 中文 commit 引用 WOUAFIX。","受影响流程:Issue CSV -> 验证证据 -> 提交审计 -> 下一阶段执行入口;验证步骤:git status --short;git log -1 --oneline。","git|manual","DONE","DONE","DONE","issues/2026-05-18_23-45-45-wecom-oa-user-consistency-fix-runtime-ready.csv|docs|server","[""WOUAFIX-6""]","状态已回填;提交前本地门禁通过;最终提交后在交付回复中记录 commit hash、部署状态、远端报告路径、剩余 accepted findings 和下一步 WECOM-RUNTIME-READY-V1。"