fn_b/docs/maintenance/PRODUCTION_VERIFICATION_2026-10-29.json

1721 lines
38 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"checks": [
{
"check": "production environment/debug/DB",
"passed": true,
"detail": null
},
{
"check": "all_old_article_ids_retained",
"passed": true,
"detail": null
},
{
"check": "old_urls_and_creation_dates_retained",
"passed": true,
"detail": null
},
{
"check": "unrelated_article_core_fields_unchanged",
"passed": true,
"detail": null
},
{
"check": "original_user_rows_unchanged",
"passed": true,
"detail": null
},
{
"check": "184 or more total articles",
"passed": true,
"detail": 184
},
{
"check": "9 categories",
"passed": true,
"detail": 9
},
{
"check": "10 approved tutorials",
"passed": true,
"detail": null
},
{
"check": "temporary editorial access closed",
"passed": true,
"detail": null
},
{
"check": "production resource binding",
"passed": true,
"detail": null
},
{
"check": "independent production search index",
"passed": true,
"detail": null
},
{
"check": "approved production commit /www/wwwroot/clashfreenode-new.com",
"passed": true,
"detail": null
},
{
"check": "approved production commit /www/wwwroot/resource-v2/app",
"passed": true,
"detail": null
},
{
"check": "original Nginx unchanged clashfreenode.com.conf",
"passed": true,
"detail": null
},
{
"check": "original Nginx unchanged resource-v2.gemcook.net.conf",
"passed": true,
"detail": null
},
{
"check": "generated tags preserved at checkout",
"passed": true,
"detail": null
},
{
"check": "production home HTTP200",
"passed": true,
"detail": 200
},
{
"check": "latest free-node home",
"passed": true,
"detail": "fn20261029"
},
{
"check": "production home index/follow",
"passed": true,
"detail": null
},
{
"check": "no test robots header on formal",
"passed": true,
"detail": null
},
{
"check": "home no menu highlight",
"passed": true,
"detail": null
},
{
"check": "formal canonical",
"passed": true,
"detail": null
},
{
"check": "existing formal analytics restored",
"passed": true,
"detail": null
},
{
"check": "no newly excluded advertising",
"passed": true,
"detail": null
},
{
"check": "formal robots not block-all",
"passed": true,
"detail": null
},
{
"check": "formal sitemap domain",
"passed": true,
"detail": null
},
{
"check": "closed unconfigured editorial API",
"passed": true,
"detail": 503
},
{
"check": "page /freenode",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /freenode",
"passed": true,
"detail": null
},
{
"check": "page /shadowrocketids",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "page /client",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /client",
"passed": true,
"detail": null
},
{
"check": "page /advanced",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /advanced",
"passed": true,
"detail": null
},
{
"check": "page /search/Clash",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /search/Clash",
"passed": true,
"detail": null
},
{
"check": "page /a/m169.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m174.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m173.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m167.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m172.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "page /a/mihomo-dns-leak.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m170.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "page /a/system-proxy-vs-tun.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "page /a/m171.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "page /a/clash-verge-rev-windows.html",
"passed": true,
"detail": 200
},
{
"check": "no test URL in public page /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /freenode",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /shadowrocketids",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /client",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /advanced",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /search/Clash",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m169.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m174.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m173.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m167.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m172.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/mihomo-dns-leak.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m170.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/system-proxy-vs-tun.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/m171.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "no dev asset /a/clash-verge-rev-windows.html",
"passed": true,
"detail": null
},
{
"check": "asset /build/assets/app-BCx10ygF.css",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/app-Ba5joxXD.css",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/app-DDSp2ths.js",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-brands-400-BfBXV7Mm.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-brands-400-Bs6tcqqs.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-regular-400-BVHPE7da.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-regular-400-DRN8N0d1.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-solid-900-8GirhLYJ.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-solid-900-IAB4Droh.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-v4compatibility-CErXDOsT.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/fa-v4compatibility-DnhYSyY-.woff2",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/iconfont-B3tZHDj4.ttf",
"passed": true,
"detail": 200
},
{
"check": "asset /build/assets/iconfont-D7mxe_Lh.woff",
"passed": true,
"detail": 200
},
{
"check": "asset /css/tutorials.css",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/clash-meta-android-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/dns-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/mac-client-guide-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/migration-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/quantumult-x-ios-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/system-proxy-tun-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/v2rayng-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/verge-import.png",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/verge-linux-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/verge-mac-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/verge-system-proxy.png",
"passed": true,
"detail": 200
},
{
"check": "asset /images/tutorials/windows-cover.svg",
"passed": true,
"detail": 200
},
{
"check": "asset /sites/cfn/icon.png",
"passed": true,
"detail": 200
},
{
"check": "asset /sites/cfn/images/banner/windows.jpg",
"passed": true,
"detail": 200
},
{
"check": "asset /sites/cfn/images/logo/logo.png",
"passed": true,
"detail": 200
},
{
"check": "asset /upload/images/ad_fu.png",
"passed": true,
"detail": 200
},
{
"check": "asset /media/050d6878-df1f-467f-b9ce-19ff241e25ba",
"passed": true,
"detail": 200
},
{
"check": "asset /media/0ce3715f-afa3-47d4-b911-79bb36906d9c",
"passed": true,
"detail": 200
},
{
"check": "asset /media/137b455e-7adf-485c-8d28-a6e8ae6255d9",
"passed": true,
"detail": 200
},
{
"check": "asset /media/13c34280-92b0-454e-95b8-168916ebb47d",
"passed": true,
"detail": 200
},
{
"check": "asset /media/1d55b6e1-fc00-40df-b31d-fb9fc2b8c8dc",
"passed": true,
"detail": 200
},
{
"check": "asset /media/21f7e301-6e30-4daa-bcf4-e60d1f1e69e0",
"passed": true,
"detail": 200
},
{
"check": "asset /media/25a4e1e4-fdad-470a-873b-0e89194e6ad2",
"passed": true,
"detail": 200
},
{
"check": "asset /media/290cc8c1-7cc5-4a1e-9736-5510a50ed90f",
"passed": true,
"detail": 200
},
{
"check": "asset /media/2c98f3b6-d34b-4a15-8bd0-a2597faf2714",
"passed": true,
"detail": 200
},
{
"check": "asset /media/310393c8-a783-49d5-a908-90dabd092a2a",
"passed": true,
"detail": 200
},
{
"check": "asset /media/3626485a-47e2-4dad-b5eb-d233bf563297",
"passed": true,
"detail": 200
},
{
"check": "asset /media/3a89700b-8939-420b-9ab6-bf6b0d7e10ac",
"passed": true,
"detail": 200
},
{
"check": "asset /media/46d07f66-cf13-427e-b566-e39573968a8e",
"passed": true,
"detail": 200
},
{
"check": "asset /media/4d2686d2-bbb6-4826-9019-27004ad5b55f",
"passed": true,
"detail": 200
},
{
"check": "asset /media/58ea6fc8-f279-47a5-b23f-9553278bc0d3",
"passed": true,
"detail": 200
},
{
"check": "asset /media/62b1f9b1-14c0-49d4-9083-75bc10cdbf05",
"passed": true,
"detail": 200
},
{
"check": "asset /media/6a0512b9-f81c-433f-9852-4180ce02f58c",
"passed": true,
"detail": 200
},
{
"check": "asset /media/6f4c2087-fd5b-43de-a536-3217064b521f",
"passed": true,
"detail": 200
},
{
"check": "asset /media/85412e68-488d-4553-b17e-586c87612fdd",
"passed": true,
"detail": 200
},
{
"check": "asset /media/90d663e3-f413-4308-93ba-1908b281fe64",
"passed": true,
"detail": 200
},
{
"check": "asset /media/98b44958-4a28-420a-9bdf-57f3e7d7d800",
"passed": true,
"detail": 200
},
{
"check": "asset /media/a740b59f-cef1-40b6-b3ae-5eeb794eb009",
"passed": true,
"detail": 200
},
{
"check": "asset /media/a7f50b47-62aa-43e5-b037-094e76738cce",
"passed": true,
"detail": 200
},
{
"check": "asset /media/c0c93a21-881a-4995-b66f-ea0c1e0233f3",
"passed": true,
"detail": 200
},
{
"check": "asset /media/cb29bfd2-aa32-4290-b1c4-bf40631da564",
"passed": true,
"detail": 200
},
{
"check": "asset /media/d000d275-1a38-4051-ae3f-e811d2544795",
"passed": true,
"detail": 200
},
{
"check": "asset /media/d0a611ae-c9fe-4f91-af20-176a92a307c5",
"passed": true,
"detail": 200
},
{
"check": "asset /media/d848eda9-1763-46ea-9d04-0821b60b394a",
"passed": true,
"detail": 200
},
{
"check": "asset /media/ec7f3234-e209-4663-b474-27f344952275",
"passed": true,
"detail": 200
},
{
"check": "37 production illustration publications",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-spaniel-daisy-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS9BBZXFTM9KP5MFFGME21G-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-cat-moon-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-warm-cat-stretch-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-beagle-picnic-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-balanced-cat-walk-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYSA1ANR0FQ1CC23VT23GG10-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-dogs-dance-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-balanced-cat-rest-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-dalmatian-window-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-cat-vase-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYM9W6KF513WVC605KD2882D-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS9PBSVN4YG49YM9GFSA8QG-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS8TWGK0717VP03D6CHNFHT-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS95VTPPWF82N0N6Z4B2K4Z-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-corgi-laundry-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-poodle-cafe-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity 001-dog-terrier-slipper-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-warm-cat-sleep-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-shiba-doorstep-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cat-window-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-dog-dachshund-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-schnauzer-bicycle-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-bordercollie-kite-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cat-blue-chair-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-balanced-cat-watch-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS9GVB7VJV7NJH7DS0V5FPD-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-cat-fish-dream-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-dog-dalmatian-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity freenode-cat-collage-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-bulldog-bathmat-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYS9VV3DJ5N8PNH98W1NC0Y3-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-warm-cat-pair-20261026.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-dachshund-terrace-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity cfn-tuxedo-cat-20261023.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity dog-greyhound-cushion-20261028.webp",
"passed": true,
"detail": null
},
{
"check": "image integrity tg_image__maomi_a-01KYSA6TVHXNZ93E5YKWYD6Y9H-1-full.jpg",
"passed": true,
"detail": null
},
{
"check": "rejected image remains excluded",
"passed": true,
"detail": null
},
{
"check": "only project-scoped read/write runtime client active",
"passed": true,
"detail": null
},
{
"check": "approved preview fixed assignments retained",
"passed": true,
"detail": null
},
{
"check": "formal consumer assignment idempotency",
"passed": true,
"detail": null
},
{
"check": "runtime client cannot publish assets",
"passed": true,
"detail": 403
},
{
"check": "existing Resource assets rows unchanged",
"passed": true,
"detail": 5
},
{
"check": "existing Resource clients rows unchanged",
"passed": true,
"detail": 20
},
{
"check": "original ingestion POST routes preserved",
"passed": true,
"detail": null
},
{
"check": "test preview remains noindex",
"passed": true,
"detail": null
}
],
"base_url": "https://clashfreenode.com",
"environment": {
"environment": "production",
"debug": "false",
"base_url": "https://clashfreenode.com",
"not_test_db": true,
"article_count": 184,
"category_count": 9,
"latest": {
"sSlug": "fn20261029",
"sTitle": "「10月29日」2026年最新高速SSR/V2ray/Clash/Shadowrocket免费节点订阅链接"
},
"tutorials": [
{
"id": 206,
"sSlug": "m169",
"sTitle": "Clash Meta for Android 使用教程:导入订阅、选择节点与连接",
"created_at": "2026-08-04 10:21:04"
},
{
"id": 211,
"sSlug": "m174",
"sTitle": "Clash Verge Rev 使用教程:Linux 安装、订阅与代理设置",
"created_at": "2026-08-04 10:21:23"
},
{
"id": 210,
"sSlug": "m173",
"sTitle": "Clash Verge Rev 使用教程:Mac 安装、订阅与系统代理",
"created_at": "2026-08-04 10:21:19"
},
{
"id": 212,
"sSlug": "m167",
"sTitle": "从 Clash for Windows 迁移到 Clash Verge Rev",
"created_at": "2026-08-04 10:24:04"
},
{
"id": 209,
"sSlug": "m172",
"sTitle": "Mac 代理客户端下载指南:ClashX 与 Clash Verge Rev 怎么选",
"created_at": "2026-08-04 10:21:15"
},
{
"id": 375,
"sSlug": "mihomo-dns-leak",
"sTitle": "Clash 进阶:DNS 防泄漏配置与验证",
"created_at": "2026-10-29 11:47:13"
},
{
"id": 207,
"sSlug": "m170",
"sTitle": "Quantumult X 使用教程:iOS 安装、订阅导入与连接",
"created_at": "2026-08-04 10:21:08"
},
{
"id": 376,
"sSlug": "system-proxy-vs-tun",
"sTitle": "系统代理和 TUN 有什么区别?接管范围、使用选择与排错",
"created_at": "2026-10-29 11:47:13"
},
{
"id": 208,
"sSlug": "m171",
"sTitle": "v2rayNG 使用教程:Android 安装、导入订阅与连接",
"created_at": "2026-08-04 10:21:12"
},
{
"id": 377,
"sSlug": "clash-verge-rev-windows",
"sTitle": "Clash Verge Rev 使用教程:从安装到第一次连接(Windows)",
"created_at": "2026-10-29 11:47:13"
}
],
"all_old_article_ids_retained": true,
"old_urls_and_creation_dates_retained": true,
"unrelated_article_core_fields_unchanged": true,
"original_user_rows_unchanged": true,
"editorial_disabled": true,
"resource_enabled": true,
"resource_url": "https://resource-v2.gemcook.net",
"search_index": "cfn_articles_v3"
},
"resource_clients": [
{
"id": 21,
"project": "fna-v3-illustrations",
"scopes": "[\"read\",\"write\",\"publish\",\"share\"]",
"enabled": 0
},
{
"id": 22,
"project": "fna-v3",
"scopes": "[\"read\",\"write\"]",
"enabled": 1
}
],
"passed": true,
"check_count": 323,
"failed_count": 0,
"asset_count": 59,
"verified_at": "2026-10-29T11:50:13Z"
}