7.6 KiB
7.6 KiB
五人团队正式内用最小收口证据
证据身份与边界
- 发现基线:
bbb5c89;规划基线:58c8dec。 - 复核对象:本文件所在工作提交;提交前所有结果仅归属于当前受控工作树,提交后以本文件所在提交为
reviewedCommit。 - 允许环境:回环 HTTP、回环 PostgreSQL、合成角色/业务数据、无网络外部适配器。
- 未执行:部署、push、公网、生产配置、共享或真实数据库、真实账号、企业微信真机、真实 OCR、真实付款、银行流水和 ERP。
- 状态上限:
LOCAL_CANDIDATE_PASS;不得据此告知用户线上可测试。
最终门禁摘要
| 证据 | 结果 | 关键结论 |
|---|---|---|
| 权限与敏感资料只读复审 | PASS,聚焦 107/107;统计权限 4/4 | system_admin 与经理/CEO/财务/超级管理员分离;工资/绩效汇总使用独立敏感权限,拒绝路径先于敏感查询或文件读取。 |
| 付款状态机只读复审 | PASS,聚焦 36/36;重试回归 27/27 | maker-checker、锁顺序、直付关闭、失败项重试、取消/回单审计均无 P1。 |
| 候选 workflow 只读复审 | PASS_WITH_FOLLOWUPS,follow-up 已修复 |
witness 来源、结果 parser、loopback、模式标签与无历史 Issue CSV 依赖均有反例。 |
| migration 只读复审 | PASS,无 P1/P2 未结项 | 两项加法 migration;system_admin 位于 admin 前;可空取消原因;回滚前置已记录。 |
| 服务端全量 | PASS,161/161 文件、985/985 测试 | 包含用户导入 8/8、付款批次 27/27、员工统计权限 4/4。 |
| 前端静态门禁 | PASS | typecheck 与 Vite production build 通过;仅既有 Browserslist 提示。 |
| 默认完整基础门禁 | PASS,exit 0 | bash scripts/check-minimal.sh 的历史流程基线、984 项服务端测试、前端 build 与功能矩阵全部通过;本机 stub 使用回环权限。 |
| 路由与候选反例 | PASS,52/52 | 71 条路由全部分类;10/10 核心流程束、10/10 witness、7/7 acceptance、0 blocking gap。 |
| 隔离 PostgreSQL | PASS,exit 0 | 当前 61 项 migration 从空库应用;五组付款竞态 PASS;审计/通知唯一;临时库残留 0。 |
| Playwright focused | FOCUSED_BROWSER_PASS,44/44 |
0 failed、0 skipped、0 unexpected;10 个 witness 均来自指定 spec。 |
| Playwright/full 候选 | LOCAL_CANDIDATE_PASS,exit 0 |
2026-07-18 13:27 CST 完成;44/44,0 failed、0 skipped、0 unexpected;基础层与结果门禁同时通过。 |
默认门禁第一次在禁止回环监听的沙箱内运行时,两个本机 stub 测试未能产生完整结果;允许本机-only stub 后聚焦 12/12 通过,随后原命令完整 exit 0。该诊断未访问公网,也未作为 PASS 替代原命令。
PostgreSQL 竞态与迁移证据
命令:bash scripts/qa/run-web-gates.sh payment-concurrency-local。
- 双执行:一个成功、一个确定性 409;付款/执行审计和内部通知各唯一。
- 执行与取消:本轮执行成功、取消 409;无重复状态或副作用。
- 双创建:一个 201、一个 409;仅一个有效批次/项及一条创建审计。
- 直接付款与批次付款:范围外均拒绝且零副作用;范围内直付 409、批次执行成功。
- 缺失制单人:复核 409,批次保持 draft,零复核审计。
- 空库 migration 后只读确认枚举相邻顺序为
system_admin后接admin。 - runner 与独立检查结束后,
hyb_oa_payment_%临时数据库计数为 0。
十个核心流程 witness
每项均断言最终路径、唯一 H1、合成角色、允许/禁止动作,以及 unhandled API / page error / 非白名单 console error = 0。
| 流程束 | 最终路径 | H1 | 角色 fixture | 允许动作 | 禁止动作 |
|---|---|---|---|---|---|
| 登录退出 | /login |
海音达 OA | employee | 登录 | 应急超级管理员 |
| 报销 | /reimbursements |
我的报销 | employee | 新建报销 | 导出 |
| 审批 | /workflow/tasks |
待我处理 | manager | 处理 | 通过 |
| 票据 | /invoice-pool |
票据 | employee | 上传票据 | 作废 |
| 采购 | /purchase-requests |
采购 | employee | 新建采购 | 通过 |
| 项目/合同 | /contracts-registry |
合同 | manager | 新增合同 | 执行付款 |
| 付款/AP | /payment-batches |
付款 | finance | 新建批次 | 复核批次 |
| 人员/审计 | /system/users |
系统用户管理 | system_admin | 新建用户 | 应急超级管理员 |
| 考勤/归档 | /mobile/attendance |
考勤 | employee | 修正申请 | 提交应急修正 |
| 移动工作台 | /mobile |
今天待办 | employee | 新建报销 | 财务 |
浏览器视口与截图
- 移动:375×812,覆盖移动考勤、归档空态、长字段详情、换行、底栏遮挡与页面横溢。
- PC:768×1024、1024×768,覆盖项目、资产、合同、付款、报销五类表格;局部横滚可用、右侧操作可命中、document 横溢不超过 2px。
- 截图均使用合成身份和合成业务记录,已人工复核未见真实资料、内部 Secret、完整账号、银行资料或原始 payload。
- 产物目录为
output/playwright/07-18-small-team-internal-readiness/;最终 full 复跑后的 SHA-256 如下。
| 截图 | SHA-256 |
|---|---|
assets-1024x768.png |
d3d0ff0d9dd413521a068ca1c87ad6978d12d08e836d6fe3c1048559f013014b |
assets-768x1024.png |
1a5c9b07617479cfa14fa9a4525bbdf32fac6eb74635d8dbd7641e319871abbc |
contracts-registry-1024x768.png |
f318e1637f3eb65eb853f3d0436c1825efca4fcc9336b80a6cccb6ab7236b3b9 |
contracts-registry-768x1024.png |
5ce2b667aef2fd24cdc918729fe998327991246417477d6301f8314406bde7dd |
desktop-archive-1024x768.png |
9d099e825e897f37383ee7d40622322946356a9dd89b8893d9531120da6750f6 |
mobile-archive-detail-375x812.png |
6a1359c4bae284cd68872faa148755e2b6fc53b7be41b1739ae2aff0090a9436 |
mobile-archive-empty-375x812.png |
9b6fb325287e4436de7a71f80cf5b75c3a4e5d4f183b8919af5ffa59cf1070ca |
mobile-attendance-375x812.png |
01f75c88be01b4e4ab0696bb1de39f211eaaee402377757bf7384a278c197a7d |
payment-batches-1024x768.png |
0d8f69b360a7fbfcf5a0774aa031a0c6845dac6f468a28486c72a575db0a8db1 |
payment-batches-768x1024.png |
72554a7d3a6778547a69732a5a2c1cf49bfdb2e1394acb3f465782becd559ef1 |
projects-1024x768.png |
cf925dede4124e1780c8a9e67e82bf596e96278131fd03c1a115e6d45dd22eba |
projects-768x1024.png |
da5dd4b0842b407d715b91e5025f8b4e6c68cb7d7b5a87c0e460630a95f40308 |
reimbursements-1024x768.png |
30726bbdba0d8dc0e80d8aa269c57996d72ce0564c84c333b7cb8a97e832e096 |
reimbursements-768x1024.png |
46a146af17f1f69069492b1232071de4ae55f81f73a36ed95d5672f56e887621 |
Finding 生命周期边界
- 原 finding 台账已按本证据更新本地修复状态,未改写发现时严重度、置信度或发现状态。
05-31-unified-page-header-actions的权限显隐、资产旧 E2E、七页面标题动作及项目/资产视觉验收已闭合,并归档至archive/2026-07/。- 本地验证通过的条目只更新
当前修复状态=LOCAL_FIX_VERIFIED。 - 未部署的运行时条目继续
DEPLOYMENT_PENDING;企业微信/角色/公网行为继续EXTERNAL_BEHAVIOR_PENDING。 - 纯测试/门禁条目使用
NOT_APPLICABLE部署状态;不需要外部行为的条目使用NOT_REQUIRED。 - 移动通知定位只闭合考勤入口增量;其他对象定位不在本任务范围,
MOB-TARGET-001整体保持开放。
后续授权边界
真实账号职责分配、超级管理员托管、内部地址部署、migration 执行、备份恢复、部署来源、公网角色、企业微信真机和新 Day 1 连续试运行均由后续获批 Trellis task 承担。