fix(sites): 观众健康检查误报未登录,健康失败原因细分(HC-1)
观众 2026 版首页没有 <a href=logout>:退出按钮在 userbar 的 data-uploader-actions JSON 里由脚本渲染,旧登录标志 a[href*="logout"] 永远不命中,健康检查报"未登录"而用户数据正常。 - audiences 定义 loginSuccess 改为 #info_block / usercp.php / logout 任一(0.2.1) - 健康检查判定细分:登录页 / 权限页 / 疑似人机验证 / 找不到登录标志(带选择器), 原始判定写入 last_health.detail,站点概览技术信息展示 - 首页只是找不到登录标志时,以 24 小时内用户数据解析成功为已登录证据(同 MP) - 新 SiteError 类 challenge(cf-mitigated: challenge),不算凭据错误;健康状态 challenge - testkit mock 增加 setHeaderLayout;加观众首页脱敏结构样本的差分测试 Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
322ecb2f8c
commit
b1d30bd6ee
16 files changed
+433
-27
No files matched your search
@@ -112,10 +112,15 @@ export type SiteRateLimit = z.infer<typeof SiteRateLimit>;
|
||||
/** 站点行 last_health:最近一次健康检测结果 */
|
||||
export const SiteLastHealth = z.object({
|
||||
ok: z.boolean(),
|
||||
/** ok / auth_missing / auth_expired / auth_invalid / rate_limited / unreachable / site_maintenance / parse_error */
|
||||
/** ok / auth_missing / auth_expired / auth_invalid / rate_limited / unreachable / site_maintenance / parse_error / challenge */
|
||||
status: z.string(),
|
||||
latencyMs: z.number().int().nonnegative().nullable(),
|
||||
message: z.string().nullable(),
|
||||
/**
|
||||
* 原始判定(技术信息):reason = logged_in / user_data / login_page / permission_page / challenge /
|
||||
* marker_missing / redirect_login / http;rule 命中的规则,selector 登录标志选择器。旧记录没有这个字段
|
||||
*/
|
||||
detail: z.record(z.string(), z.unknown()).nullable().optional(),
|
||||
});
|
||||
export type SiteLastHealth = z.infer<typeof SiteLastHealth>;
|
||||
|
||||
|
||||
Reference in new issue
Block a user