{ "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" }