feat(compat): add QQ compatibility manifest
Static JSON served from raw.githubusercontent.com/.../main/compat/qq.json that SnowLumaDesktop polls (3-day cached fallback) to classify the local QQ install as known-good / known-bad / unknown / too-old. - compat/qq.json — initial allow-all manifest (policy.allowUnknown=true) - compat/qq.schema.json — JSON Schema for the manifest shape Editing this file is how we ship "QQ X.Y.Z breaks Hook" advisories without cutting a Desktop release.
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"$schema": "./qq.schema.json",
|
||||
"version": 1,
|
||||
"updatedAt": "2026-05-16T00:00:00Z",
|
||||
"policy": {
|
||||
"allowUnknown": true,
|
||||
"warnUnknown": true
|
||||
},
|
||||
"knownGoodVersions": [],
|
||||
"knownBadVersions": [],
|
||||
"minVersion": null,
|
||||
"notes": [
|
||||
"QQ 兼容性 manifest — Desktop 启动时拉 https://raw.githubusercontent.com/SnowLuma/SnowLuma/main/compat/qq.json 校验本地 QQ 版本",
|
||||
"policy.allowUnknown = true: 任何不在 knownBadVersions 里的版本都允许(理论上所有 QQ 新版本都可用)",
|
||||
"knownBadVersions: 列在这里的版本 Desktop 会拒绝注入,弹出引导让用户切版本",
|
||||
"minVersion: 设为 SemVer 字符串则更早的版本会被拒",
|
||||
"知道某个版本会破坏 Hook 后把它加进 knownBadVersions,加 reason 字段说明"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "SnowLuma QQ compatibility manifest",
|
||||
"type": "object",
|
||||
"required": ["version", "policy", "knownGoodVersions", "knownBadVersions"],
|
||||
"properties": {
|
||||
"$schema": { "type": "string" },
|
||||
"version": { "type": "integer", "const": 1 },
|
||||
"updatedAt": { "type": "string", "format": "date-time" },
|
||||
"policy": {
|
||||
"type": "object",
|
||||
"required": ["allowUnknown"],
|
||||
"properties": {
|
||||
"allowUnknown": {
|
||||
"type": "boolean",
|
||||
"description": "若 true,未在 known* 中列出的版本视为允许;若 false,需明确出现在 knownGoodVersions"
|
||||
},
|
||||
"warnUnknown": {
|
||||
"type": "boolean",
|
||||
"description": "未列出的版本启动时是否弹警告"
|
||||
}
|
||||
}
|
||||
},
|
||||
"knownGoodVersions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["version"],
|
||||
"properties": {
|
||||
"version": { "type": "string", "description": "QQ 版本号字符串,如 '9.9.20.123'" },
|
||||
"note": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"knownBadVersions": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": ["version"],
|
||||
"properties": {
|
||||
"version": { "type": "string" },
|
||||
"reason": { "type": "string" },
|
||||
"fixedInDesktopVersion": { "type": "string" }
|
||||
}
|
||||
}
|
||||
},
|
||||
"minVersion": {
|
||||
"type": ["string", "null"],
|
||||
"description": "最低支持版本(SemVer),null = 不限"
|
||||
},
|
||||
"notes": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user