chore(qa): 验收台账与证据入库 + 构建/部署配置同步

- docs/acceptance/qa-tracker.md:跨周期缺陷单一真源台账(§7=第五轮)。
- 周期 1/2 + iPhone SE/axe 验收证据目录、ACCEPTANCE_REVIEW 快照入库。
- 同步 README/CONTEXT/CLAUDE/DESIGN/testing/deployment/lessons-learned 口径;
  next.config/Dockerfile/nginx/Jenkinsfile/docker-compose/sentry/prisma 对齐
  standalone 产物装配与部署形态。
This commit is contained in:
2026-09-28 10:48:09 +08:00
parent 6bb7c557ee
commit a0328a623f
128 changed files with 22455 additions and 504 deletions
@@ -0,0 +1,232 @@
{
"generatedAt": "2026-09-22T04:52:07.803Z",
"target": "http://localhost:3000",
"device": "iPhone SE 口径仿真:viewport 375x667 / deviceScaleFactor 2 / isMobile+hasTouch / colorScheme 由 CDP 强制",
"caveat": "Playwright 仿真,非真机;用于复现 R-1/R-3 的布局与叠层判定,不能替代实机验收",
"thresholds": {
"noHorizontalOverflow": "docScrollW <= clientW",
"consentClearsFooter": "bannerOverlapsFooter === false"
},
"rows": [
{
"tag": "dark-dismissed-home",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-dismissed-news-detail",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-dismissed-news-list",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-dismissed-contact",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-dismissed-not-found",
"theme": "dark",
"footerBottomGap": null,
"lastText": "",
"footerBottomVsViewport": null,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-pending-home",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-pending-news-detail",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-pending-news-list",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-pending-contact",
"theme": "dark",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "dark-pending-not-found",
"theme": "dark",
"footerBottomGap": null,
"lastText": "",
"footerBottomVsViewport": null,
"bannerTop": 461,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-dismissed-home",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-dismissed-news-detail",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-dismissed-news-list",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-dismissed-contact",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-dismissed-not-found",
"theme": "light",
"footerBottomGap": null,
"lastText": "",
"footerBottomVsViewport": null,
"bannerTop": null,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-pending-home",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-pending-news-detail",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-pending-news-list",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-pending-contact",
"theme": "light",
"footerBottomGap": 64,
"lastText": "蜀ICP备2026013658号",
"footerBottomVsViewport": -128,
"bannerTop": 461,
"bannerOverlapsFooter": true,
"docScrollW": 375,
"clientW": 375
},
{
"tag": "light-pending-not-found",
"theme": "light",
"footerBottomGap": null,
"lastText": "",
"footerBottomVsViewport": null,
"bannerTop": 461,
"bannerOverlapsFooter": false,
"docScrollW": 375,
"clientW": 375
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB