🌤 WeatherKit
v3.3.2 正式版
🆕 New Features
- none
🛠️ Bug Fixes
- 修复 WeatherKit Response 处理范围未同时受用户设置和 URL
dataSets约束的问题:现在只处理两者的交集,避免地图天气小组件只请求当前天气与空气质量时扩展处理其他数据集。 - 修复和风天气历史空气质量接口路径多余斜杠的问题,确保请求使用正确的
/v7/historical/air路径。
🔣 Dependencies
- 将 FlatBuffer Root 处理器迁移至已发布的
@nsnanocat/flatbuffer-root@1.0.0,移除仓库内重复实现。
‼️ Breaking Changes
- none
🔄 Other Changes
- 从 BoxJs 设置中隐藏仅供插件参数使用的
Storage选项,保留运行时配置行为。 - 补充数据集交集、用户设置过滤、FlatBuffer 根槽映射和 QWeather 接口路径的回归测试。
v3.3.1 正式版
🆕 New Features
- 新增按
Settings.DataSets配置选择 WeatherKit 数据集的处理范围:配置项通过数据集映射对应 FlatBuffer root slot,选择的数据集参与 Response 解码与 Inject,未选择的数据槽保持原始内容透传。 @VirgilClyne
🛠️ Bug Fixes
- 修复 Request 脚本按
Settings.DataSets裁剪 URLdataSets的问题,保留 WeatherKit 原始请求参数,避免把 App 的最低数据需求误当成脚本处理范围。 @VirgilClyne - 修复 Response 脚本误用请求
dataSets作为解析和 Inject 范围的问题,改为使用用户设置及其 FlatBuffer slot 映射,因此可以处理请求参数未列出但响应中实际存在的数据集。 @VirgilClyne - 修正 full 数据集配置的设置名与 FlatBuffer slot 映射,统一
weatherChange、trendComparison等选项的名称、类型说明和 BoxJs 数据集描述。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 正式版参数配置继续只暴露已支持的 6 个数据集,完整数据集选项保留给 full/开发配置;相关数据集映射和原始 slot 透传行为补充回归测试。 @VirgilClyne
v3.3.0 正式版
🆕 New Features
- 新增加拿大 AQHI、香港 AQHI、AQHI-Multi(中国 / 中国+香港)及中国致死风险 AQHI(中国 / 中国+香港)六种空气质量健康指数算法,并可直接在插件与模块参数中选择。 @WordlessEcho
- 新增 WeatherKit 兼容的香港与中国 AQHI 本地标尺响应,包含多语言名称、健康风险等级、颜色渐变和健康建议。 @WordlessEcho
- 在正式版模块参数中开放
AirQuality.Current.Pollutants.Provider,可选择彩云天气或和风天气提供当前污染物数据。 @VirgilClyne
🛠️ Bug Fixes
- 修正香港 AQHI 标尺的颜色、风险说明、语言回退与地区代码,并使本地标尺响应头与 WeatherKit 保持一致。 @WordlessEcho
- 为正式版与开发版的 Surge、Loon、Quantumult X 和 Stash 补齐
airQualityScale请求规则及 Stash 脚本提供器;统一裁剪标尺标识末尾的数字版本并按完整路径返回香港与中国 AQHI 本地标尺,避免版本化链接请求 Apple 时返回 404。 @WordlessEcho @VirgilClyne - 修复 Stash 天气预警请求规则缺少必填
type: request、导致覆写配置无效的问题。 @VirgilClyne - 修复天气预警请求未按标识类型正确处理的问题:页面地区标识固定使用和风天气网页,坐标标识按所选数据源处理且
QWeatherWeb自动使用和风天气 API,原生或不支持的标识返回 WeatherKit 兼容的空结果。 @VirgilClyne - 将
weatherAlerts纳入正式版默认可配置数据集,避免启用天气预警数据源后请求遗漏预警数据。 @VirgilClyne - 补充彩云天气与和风天气的默认服务令牌并统一请求、响应脚本的读取路径,未自定义令牌时仍可使用对应天气服务。 @VirgilClyne
- 修复用户传入空 token 时覆盖内置默认令牌的问题,空值会回退到 database 提供的默认服务令牌。 @VirgilClyne
- 恢复正式构建生成普通 Egern 模块
iRingo.WeatherKit.yaml。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 拆分 release、full 与 dev 参数构建配置:正式模块只暴露已支持的设置,完整设置保留给 BoxJS,开发模块使用独立模板、脚本与输出名称。 @VirgilClyne
- 扩展空气质量数据源标志与标尺映射,使新增 AQHI 算法在计算、单位转换和 WeatherKit 编码流程中保持一致。 @WordlessEcho
- 将 AQHI 算法迁移为无版本标尺标识,并统一
AirQualityScale的配置、路径解析与本地响应构建;所有airQualityScale链接处理由 Request 脚本负责。 @VirgilClyne
v3.3.0-beta2 预发布
🆕 New Features
- 新增加拿大 AQHI、香港 AQHI、AQHI-Multi(中国 / 中国+香港)及中国致死风险 AQHI(中国 / 中国+香港)六种空气质量健康指数算法,并可直接在插件与模块参数中选择。 @WordlessEcho
- 新增 WeatherKit 兼容的香港与中国 AQHI 本地标尺响应,包含多语言名称、健康风险等级、颜色渐变和健康建议。 @WordlessEcho
🛠️ Bug Fixes
- 修正香港 AQHI 标尺的颜色、风险说明、语言回退与地区代码,并使标尺响应头与 WeatherKit 保持一致。 @WordlessEcho
- 为 Surge、Loon、Quantumult X 与 Stash 补充
airQualityScale请求规则。 @WordlessEcho - 补齐开发版 Surge、Loon、Quantumult X 与 Stash 的
airQualityScale请求规则,并为正式版和开发版 Stash 配置对应的脚本提供器。 @VirgilClyne - 统一在 Request 脚本中裁剪所有
airQualityScale标识末尾的数字版本,并在写回请求路径后按完整路径匹配香港与中国 AQHI 本地标尺,避免版本化链接请求 Apple 时返回 404。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 扩展空气质量数据源标志与标尺映射,使新增 AQHI 算法在计算、单位转换和 WeatherKit 编码流程中保持一致。 @WordlessEcho
- 将 AQHI 算法迁移为无版本标尺标识,并移除 Response 与标尺解析流程中的重复裁剪逻辑,使所有
airQualityScale链接处理统一由 Request 脚本负责。 @VirgilClyne
v3.3.0-beta1 预发布
🆕 New Features
- 新增 WeatherKit 兼容的香港与中国 AQHI 本地标尺响应,并为 Surge、Loon、Quantumult X 与 Stash 补充
airQualityScale请求规则。 @WordlessEcho
🛠️ Bug Fixes
- 补齐开发版 Surge、Loon、Quantumult X 与 Stash 的
airQualityScale请求规则,并为正式版和开发版 Stash 配置对应的脚本提供器。 @VirgilClyne - 统一在 Request 脚本中裁剪所有
airQualityScale标识末尾的数字版本,并在写回请求路径后按完整路径匹配香港与中国 AQHI 本地标尺,避免版本化链接请求 Apple 时返回 404。 @VirgilClyne - 修复 Stash 天气预警请求规则可能缺少必填的
type: request字段、导致覆写配置无效的问题。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 将空气质量标尺识别迁移为无版本标识,并移除 Response 与标尺解析流程中的重复裁剪逻辑,所有
airQualityScale链接统一由 Request 脚本处理。 @VirgilClyne - 将
AirQualityScale的完整标尺 JSON 与语言映射收进实例私有#Config,并统一通过实例Build()构建本地响应。 @VirgilClyne
v3.2.3 正式版
🆕 New Features
- 彩云天气预警接入 v2.6 实况接口附带的预警数据,复用实况缓存,并将预警代码、事件类型和等级转换为 WeatherKit 数据。 @VirgilClyne
🛠️ Bug Fixes
- 修复天气预警详情请求未按
WeatherAlerts.Provider选择数据源的问题:彩云天气与 QWeather API 处理坐标标识,QWeather 网页处理 9 位地区标识,WeatherKit 保持原始请求;仅精确匹配天气预警路径。 @VirgilClyne - 修复预警标题裁剪不完整的问题,支持“江西省气象台2026年08月13日20时45分变更……”等变更类前缀,并移除
[II/严重]、【…】等尾部等级标记。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 将彩云天气内部版本更新至
v4.3.0,保留 v3 CAP 预警接口并明确命名为WeatherAlertV3CAP()。 @VirgilClyne
v3.2.2 正式版
🆕 New Features
- 新增天气预警数据源设置:默认从 FlatBuffer 的 QWeather 灾害预警链接抓取并解析网页,同时保留用户自定义 QWeather API、彩云天气 API 和 WeatherKit 原始数据三种选项。 @VirgilClyne
- QWeather 网页预警现在由数据源方法直接生成完整的
weatherAlerts顶级对象,并将详情链接转换为 WeatherKit 域名的内部链接。 @VirgilClyne
🛠️ Bug Fixes
- 修复 QWeather 网页预警标题裁剪,移除“天津市气象台更新”等发布机构前缀,同时保留“雷雨大风蓝色预警”等完整等级标题。 @VirgilClyne
- 拆分 QWeather 地区标识和 API 坐标两条天气预警规则:地区标识严格匹配 9 位 Location ID,坐标继续交给用户配置的 API 处理,并在 Rewrite 模板与各客户端模块中保持一致。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 将天气预警来源的 HTML 抓取、字段解析、
detailsUrl、attributionUrl和 metadata 构造收拢到 QWeather 与彩云天气数据源方法,Response 仅负责选择来源并合并顶级 slot。 @VirgilClyne - 将数据源标志补全收拢到实际注入流程;WeatherKit 直通和仅解析的数据不再被修改,空值、Apple、WeatherKit 与未知来源不再补充标志。 @VirgilClyne
- 将 QWeather 内部版本更新至
v5.3.0、彩云天气内部版本更新至v4.2.2,并补充 HTML 解析、数据源切换、严格 9 位地区标识和原始数据直通的回归测试。 @VirgilClyne
v3.2.1 正式版
🆕 New Features
- 统一 QWeather 与彩云天气的预警事件名称和 CAP 分类:彩云天气按
CAPAlertCategory映射全部 12 个标准类别,QWeather 通过eventType.code分类,未知事件回退来源提供的本地化事件名称。 @VirgilClyne
🛠️ Bug Fixes
- 修复国际天气预警标题被
issued规则错误截断的问题,支持 CAPissued ... by ...标题和翻译后的issues/issued标题,并使用来源本地化事件名称回退;例如Coastal Flood Advisory不再显示为d August ...。 @shindgew @VirgilClyne - 修复预警标题优先级,保留包含等级的完整来源标题,避免
暴雨蓝色预警被通用事件名称暴雨覆盖。 @VirgilClyne - 修正 QWeather 英文预警正文的首字母大小写,同时保留
NWS、GMT等正文缩写。 @VirgilClyne - 完善 QWeather 与彩云天气的语言参数映射,统一简体中文、繁体中文、英文和日文地区变体的来源请求语言。 @VirgilClyne
🔣 Dependencies
- 将
@nsnanocat/util更新至v2.7.4。 @001ProMax @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新模块功能说明,新增“修改天气预警数据”,并添加
hhh2210为项目贡献者。 @VirgilClyne - 将 QWeather 内部版本更新至
v5.2.1、彩云天气内部版本更新至v4.2.1,移除不再使用的旧 QWeather 预警枚举。 @VirgilClyne - 更新天气预警字段映射文档,并补充标题语法、来源解析、事件名称回退和全部 CAP 分类的回归测试。 @VirgilClyne
v3.2.0 正式版
🆕 New Features
- 新增
Cloudflare Pages部署支持,提供functions/[[route]].js、pages/_routes.json以及独立的 Pages / Workers 开发与部署脚本;同时统一Hono云端入口。 @001ProMax - 新增 FlatBuffer root overlay 编码能力,仅重写实际变更的数据集,并保留 Apple 未知或新增的根产品表,提升对新
WeatherKitschema 的兼容性。 @hhh2210 - 新增可配置的
WeatherKit重写服务端点,模块统一由Workers更名为Rewrite,支持在weatherkit.pages.dev、dev.weatherkit.pages.dev与weather.nanocat.cloud之间选择。 @VirgilClyne - 新增通用 FlatBuffer 根表处理器,并将
WeatherKit改为按请求数据集逐 slot 解码和回写;未选数据集、未配置字段及新 schema slot 均保持原始二进制内容。 @VirgilClyne - 新增 QWeather 灾害预警坐标适配与
weatherAlerts接口处理:模块/模板仅拦截坐标ids的 Apple/api/v1/weatherAlerts请求,脚本保留旧 QWeather 页面标识兼容,并由 QWeather Alert API 构造 Apple WeatherKit 兼容响应。 @VirgilClyne - 新增彩云天气 CAP 预警接口适配,可按当前语言参数拉取并转换为
WeatherAlerts合并流程可消费的预警来源。 @VirgilClyne
🛠️ Bug Fixes
- 修复
forecastNextHour在 iOS 27 下因元数据过期过快而失效的问题,并完善多段降水状态推导与描述匹配,避免复合天气短语被后续关键词错误覆盖。 @hhh2210 - 修复
WeatherKitdataSets与 availability 改写逻辑:仅过滤插件可注入的数据集,保留 Apple 原生 capability,避免固定列表吞掉新增能力或数据集。 @hhh2210 - 修复天气注入后每日降水量字段的保留逻辑,避免第三方数据覆盖或破坏
WeatherKit原始的全天 / 白天 / 夜间降水总量配对关系。 @hhh2210 - 修复空气质量数据兼容性:统一 Apple 内置 AQ scale 为无版本别名、迁移旧 scale 标识、忽略不可用等级哨兵值,并修正和风天气
reportedTime为 epoch seconds。 @hhh2210 - 修复
forecastNextHourFlatBuffer 编码时未知天气枚举被静默编码为CLEAR的问题。 @hhh2210 - 修复和风天气分钟预报的
reportedTime,改为使用接口返回的updateTime,不再误写为本地读取时间。 @VirgilClyne - 修复云端路由对
dev.weatherkit.*与*.pages.dev域名的识别,并限制 Cloudflare Pages Functions 只处理 WeatherKit API 路径。 @VirgilClyne - 完善 QWeather 预警到 Apple
alertDetails/ v1 JSON 的最终字段映射:messages按来源段拆分,HTML 分支保留正文、标准说明与防御指南,API 分支仅使用description与instruction,responses仅写官方建议行动枚举,并补充事件来源回退、区域、签发/生效/开始/结束/过期时间和来源字段。 @VirgilClyne - 完善 v2
weatherAlertsFlatBuffer 预警补全:支持简体、繁体及英文National Early Warning Center来源名称,只补全已有预警、不新增 alert、不改单条预警 URL;集合级detailsUrl使用metadata坐标与当前 Provider 作为party,metadata.attributionUrl指向 QWeather attribution,并按 WK2 大写枚举写回预警等级与建议行动。 @VirgilClyne - 修复
weatherAlerts模块匹配规则:坐标ids仅接受字面逗号分隔,ids前需已有查询参数;Surge 脚本模块的pattern使用引号包裹,Rewrite 模块保持原生规则格式。 @VirgilClyne - 修复彩云天气各天气接口的语言参数映射,支持简体中文、繁体中文、日文和英文地区变体。 @VirgilClyne
🔣 Dependencies
- 切换
@nsnanocat/util到公共 npm registry 来源。 @hhh2210 - 移除
src/proto子模块,改用@nsringo/weatherkit包,并更新至v1.1.2。 @001ProMax @VirgilClyne - 将
@nsnanocat/util更新至v2.7.0。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新
DataSets参数默认值与说明,明确其仅控制插件可修改的数据集,其余 Apple 数据集继续透传。 @hhh2210 - 为
Hono根路径新增GET /健康检查响应OK。 @hhh2210 - 将构建工具由
Rspack迁移至Rollup,统一正式版与开发版构建配置。 @VirgilClyne - 调整
Vercel部署入口为src/Hono.js,并完善 Cloudflare Pages 的构建输出与路由配置。 @001ProMax @VirgilClyne - 新增覆盖空气质量 scale、NextHour 条件推导、降水总量、provider metadata、request availability、FlatBuffer overlay 与 selective decode 的回归测试。 @hhh2210
- 新增 FlatBuffer 根表处理器契约、逐 slot 编解码、选择性数据集回写及 QWeather 预警的回归测试。 @VirgilClyne
- 新增 WeatherAlert API 字段映射文档,记录官方页面参数、显式渲染字段与本项目转换入口。 @VirgilClyne
- 将 Loon 发布产物扩展名统一为
.lpx,与固定 Rewrite 模块命名保持一致。 @VirgilClyne
v3.2.0-beta5 预发布
🆕 New Features
- 新增
Cloudflare Pages部署支持,提供functions/[[route]].js、pages/_routes.json以及独立的 Pages / Workers 开发与部署脚本;同时调整Vercel入口为edge/vercel.js,统一Hono云端入口。 @001ProMax - 新增 FlatBuffer root overlay 编码能力,仅重写实际变更的数据集,并保留 Apple 未知或新增的根产品表,提升对新
WeatherKitschema 的兼容性。 @hhh2210 - 新增可配置的
WeatherKit重写服务端点,模块统一由Workers更名为Rewrite,支持在weatherkit.pages.dev、dev.weatherkit.pages.dev与weather.nanocat.cloud之间选择。 @VirgilClyne - 新增通用 FlatBuffer 根表处理器,并将
WeatherKit改为按请求数据集逐 slot 解码和回写;未选数据集、未配置字段及新 schema slot 均保持原始二进制内容。 @VirgilClyne - 新增 QWeather 灾害预警坐标适配与
weatherAlerts接口处理:模块/模板仅拦截坐标ids的 Apple/api/v1/weatherAlerts请求,脚本保留旧 QWeather 页面标识兼容,并由 QWeather Alert API 构造 Apple WeatherKit 兼容响应。 @VirgilClyne
🛠️ Bug Fixes
- 修复
forecastNextHour在 iOS 27 下因元数据过期过快而失效的问题,并完善多段降水状态推导与描述匹配,避免复合天气短语被后续关键词错误覆盖。 @hhh2210 - 修复
WeatherKitdataSets与 availability 改写逻辑:仅过滤插件可注入的数据集,保留 Apple 原生 capability,避免固定列表吞掉新增能力或数据集。 @hhh2210 - 修复天气注入后每日降水量字段的保留逻辑,避免第三方数据覆盖或破坏
WeatherKit原始的全天 / 白天 / 夜间降水总量配对关系。 @hhh2210 - 修复空气质量数据兼容性:统一 Apple 内置 AQ scale 为无版本别名、迁移旧 scale 标识、忽略不可用等级哨兵值,并修正和风天气
reportedTime为 epoch seconds。 @hhh2210 - 修复
forecastNextHourFlatBuffer 编码时未知天气枚举被静默编码为CLEAR的问题。 @hhh2210 - 修复和风天气分钟预报的
reportedTime,改为使用接口返回的updateTime,不再误写为本地读取时间。 @VirgilClyne - 修复云端路由对
dev.weatherkit.*与*.pages.dev域名的识别,并限制 Cloudflare Pages Functions 只处理 WeatherKit API 路径。 @VirgilClyne - 完善 QWeather 预警到 Apple
alertDetails/ v1 JSON 的最终字段映射:messages按来源段拆分,HTML 分支保留正文、标准说明与防御指南,API 分支仅使用description与instruction,responses仅写官方建议行动枚举,并补充事件来源回退、区域、签发/生效/开始/结束/过期时间和来源字段。 @VirgilClyne - 完善 v2
weatherAlertsFlatBuffer 预警补全:支持简体、繁体及英文National Early Warning Center来源名称,只补全已有预警、不新增 alert、不改单条预警 URL;集合级detailsUrl使用metadata坐标与当前 Provider 作为party,metadata.attributionUrl指向 QWeather attribution,并按 WK2 大写枚举写回预警等级与建议行动。 @VirgilClyne
🔣 Dependencies
- 切换
@nsnanocat/util到公共 npm registry 来源。 @hhh2210 - 移除
src/proto子模块,改用@nsringo/weatherkit包,并更新至v1.1.2。 @001ProMax @VirgilClyne - 将
@nsnanocat/util更新至v2.7.0。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新
DataSets参数默认值与说明,明确其仅控制插件可修改的数据集,其余 Apple 数据集继续透传。 @hhh2210 - 为
Hono根路径新增GET /健康检查响应OK。 @hhh2210 - 将构建工具由
Rspack迁移至Rollup,统一正式版与开发版构建配置。 @VirgilClyne - 调整
Vercel部署入口为src/Hono.js,并完善 Cloudflare Pages 的构建输出与路由配置。 @001ProMax @VirgilClyne - 新增覆盖空气质量 scale、NextHour 条件推导、降水总量、provider metadata、request availability、FlatBuffer overlay 与 selective decode 的回归测试。 @hhh2210
- 新增 FlatBuffer 根表处理器契约、逐 slot 编解码、选择性数据集回写及 QWeather 预警的回归测试。 @VirgilClyne
- 新增 WeatherAlert API 字段映射文档,记录官方页面参数、显式渲染字段与本项目转换入口。 @VirgilClyne
- 将 Loon 发布产物扩展名统一为
.lpx,与固定 Rewrite 模块命名保持一致。 @VirgilClyne
v3.2.0-beta4 预发布
🆕 New Features
- 新增
Cloudflare Pages部署支持,提供functions/[[route]].js、pages/_routes.json以及独立的 Pages / Workers 开发与部署脚本;同时调整Vercel入口为edge/vercel.js,统一Hono云端入口。 @001ProMax - 新增 FlatBuffer root overlay 编码能力,仅重写实际变更的数据集,并保留 Apple 未知或新增的根产品表,提升对新
WeatherKitschema 的兼容性。 @hhh2210 - 新增可配置的
WeatherKit重写服务端点,模块统一由Workers更名为Rewrite,支持在weatherkit.pages.dev、dev.weatherkit.pages.dev与weather.nanocat.cloud之间选择。 @VirgilClyne - 新增通用 FlatBuffer 根表处理器,并将
WeatherKit改为按请求数据集逐 slot 解码和回写;未选数据集、未配置字段及新 schema slot 均保持原始二进制内容。 @VirgilClyne - 新增 QWeather 灾害预警页面重写与
weatherAlerts接口适配,在请求脚本阶段预处理并直接构造 Apple WeatherKit 兼容响应。 @VirgilClyne
🛠️ Bug Fixes
- 修复
forecastNextHour在 iOS 27 下因元数据过期过快而失效的问题,并完善多段降水状态推导与描述匹配,避免复合天气短语被后续关键词错误覆盖。 @hhh2210 - 修复
WeatherKitdataSets与 availability 改写逻辑:仅过滤插件可注入的数据集,保留 Apple 原生 capability,避免固定列表吞掉新增能力或数据集。 @hhh2210 - 修复天气注入后每日降水量字段的保留逻辑,避免第三方数据覆盖或破坏
WeatherKit原始的全天 / 白天 / 夜间降水总量配对关系。 @hhh2210 - 修复空气质量数据兼容性:统一 Apple 内置 AQ scale 为无版本别名、迁移旧 scale 标识、忽略不可用等级哨兵值,并修正和风天气
reportedTime为 epoch seconds。 @hhh2210 - 修复
forecastNextHourFlatBuffer 编码时未知天气枚举被静默编码为CLEAR的问题。 @hhh2210 - 修复和风天气分钟预报的
reportedTime,改为使用接口返回的updateTime,不再误写为本地读取时间。 @VirgilClyne - 修复云端路由对
dev.weatherkit.*与*.pages.dev域名的识别,并限制 Cloudflare Pages Functions 只处理 WeatherKit API 路径。 @VirgilClyne - 为 QWeather 预警响应补充事件来源回退值,确保缺少来源字段时仍返回 Apple 兼容数据。 @VirgilClyne
🔣 Dependencies
- 切换
@nsnanocat/util到公共 npm registry 来源。 @hhh2210 - 移除
src/proto子模块,改用@nsringo/weatherkit包,并更新至v1.1.2。 @001ProMax @VirgilClyne - 将
@nsnanocat/util更新至v2.7.0。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新
DataSets参数默认值与说明,明确其仅控制插件可修改的数据集,其余 Apple 数据集继续透传。 @hhh2210 - 为
Hono根路径新增GET /健康检查响应OK。 @hhh2210 - 将构建工具由
Rspack迁移至Rollup,统一正式版与开发版构建配置。 @VirgilClyne - 调整
Vercel部署入口为src/Hono.js,并完善 Cloudflare Pages 的构建输出与路由配置。 @001ProMax @VirgilClyne - 新增覆盖空气质量 scale、NextHour 条件推导、降水总量、provider metadata、request availability、FlatBuffer overlay 与 selective decode 的回归测试。 @hhh2210
- 新增 FlatBuffer 根表处理器契约、逐 slot 编解码、选择性数据集回写及 QWeather 预警的回归测试。 @VirgilClyne
v3.2.0-beta3 预发布
🆕 New Features
- 新增
Cloudflare Pages部署支持,提供functions/[[route]].js、pages/_routes.json以及独立的 Pages / Workers 开发与部署脚本;同时调整Vercel入口为edge/vercel.js,统一Hono云端入口。 @001ProMax - 新增 FlatBuffer root overlay 编码能力,仅重写实际变更的数据集,并保留 Apple 未知或新增的根产品表,提升对新
WeatherKitschema 的兼容性。 @hhh2210 - 新增可配置的
WeatherKit重写服务端点,模块统一由Workers更名为Rewrite,支持在weatherkit.pages.dev、dev.weatherkit.pages.dev与weather.nanocat.cloud之间选择。 @VirgilClyne - 新增通用 FlatBuffer 根表处理器,并将
WeatherKit改为按请求数据集逐 slot 解码和回写;未选数据集、未配置字段及新 schema slot 均保持原始二进制内容。 @VirgilClyne - 新增 QWeather 灾害预警页面重写与
weatherAlerts接口适配,可将 QWeather 预警转换为 Apple WeatherKit 兼容响应。 @VirgilClyne
🛠️ Bug Fixes
- 修复
forecastNextHour在 iOS 27 下因元数据过期过快而失效的问题,并完善多段降水状态推导与描述匹配,避免复合天气短语被后续关键词错误覆盖。 @hhh2210 - 修复
WeatherKitdataSets与 availability 改写逻辑:仅过滤插件可注入的数据集,保留 Apple 原生 capability,避免固定列表吞掉新增能力或数据集。 @hhh2210 - 修复天气注入后每日降水量字段的保留逻辑,避免第三方数据覆盖或破坏
WeatherKit原始的全天 / 白天 / 夜间降水总量配对关系。 @hhh2210 - 修复空气质量数据兼容性:统一 Apple 内置 AQ scale 为无版本别名、迁移旧 scale 标识、忽略不可用等级哨兵值,并修正和风天气
reportedTime为 epoch seconds。 @hhh2210 - 修复
forecastNextHourFlatBuffer 编码时未知天气枚举被静默编码为CLEAR的问题。 @hhh2210 - 修复和风天气分钟预报的
reportedTime,改为使用接口返回的updateTime,不再误写为本地读取时间。 @VirgilClyne - 修复云端路由对
dev.weatherkit.*与*.pages.dev域名的识别,并限制 Cloudflare Pages Functions 只处理 WeatherKit API 路径。 @VirgilClyne - 为 QWeather 预警响应补充事件来源回退值,确保缺少来源字段时仍返回 Apple 兼容数据。 @VirgilClyne
🔣 Dependencies
- 切换
@nsnanocat/util到公共 npm registry 来源。 @hhh2210 - 移除
src/proto子模块,改用@nsringo/weatherkit包,并更新至v1.1.2。 @001ProMax @VirgilClyne - 将
@nsnanocat/util更新至v2.7.0。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新
DataSets参数默认值与说明,明确其仅控制插件可修改的数据集,其余 Apple 数据集继续透传。 @hhh2210 - 为
Hono根路径新增GET /健康检查响应OK。 @hhh2210 - 将构建工具由
Rspack迁移至Rollup,统一正式版与开发版构建配置。 @VirgilClyne - 调整
Vercel部署入口为src/Hono.js,并完善 Cloudflare Pages 的构建输出与路由配置。 @001ProMax @VirgilClyne - 新增覆盖空气质量 scale、NextHour 条件推导、降水总量、provider metadata、request availability、FlatBuffer overlay 与 selective decode 的回归测试。 @hhh2210
- 新增 FlatBuffer 根表处理器契约、逐 slot 编解码、选择性数据集回写及 QWeather 预警的回归测试。 @VirgilClyne
v3.2.0-beta2 预发布
🆕 New Features
- 新增可配置的
WeatherKit重写服务端点,模块统一由Workers更名为Rewrite,支持在weatherkit.pages.dev、dev.weatherkit.pages.dev与weather.nanocat.cloud之间选择。 @VirgilClyne - 新增通用 FlatBuffer 根表处理器,并将
WeatherKit改为按请求数据集逐 slot 解码和回写;未选数据集、未配置字段及新 schema slot 均保持原始二进制内容。 @VirgilClyne
🛠️ Bug Fixes
- 修复和风天气分钟预报的
reportedTime,改为使用接口返回的updateTime,不再误写为本地读取时间。 @VirgilClyne - 修复云端路由对
dev.weatherkit.*与*.pages.dev域名的识别,并限制 Cloudflare Pages Functions 只处理 WeatherKit API 路径。 @VirgilClyne
🔣 Dependencies
- 移除
src/proto子模块,改用@nsringo/weatherkit包,并更新至v1.1.2。 @001ProMax @VirgilClyne - 将
@nsnanocat/util更新至v2.7.0,并切换到公共 npm registry。 @VirgilClyne
‼️ Breaking Changes
- none
🔄 Other Changes
- 将构建工具由
Rspack迁移至Rollup,统一正式版与开发版构建配置。 @VirgilClyne - 调整
Vercel部署入口为src/Hono.js,并完善 Cloudflare Pages 的构建输出与路由配置。 @001ProMax @VirgilClyne - 新增 FlatBuffer 根表处理器契约、逐 slot 编解码与选择性数据集回写测试。 @VirgilClyne
v3.2.0-beta1 预发布
🆕 New Features
- 新增
Cloudflare Pages部署支持,提供functions/[[route]].js、pages/_routes.json以及独立的 Pages / Workers 开发与部署脚本;同时调整Vercel入口为edge/vercel.js,统一Hono云端入口。 @001ProMax - 新增 FlatBuffer root overlay 编码能力,仅重写实际变更的数据集,并保留 Apple 未知或新增的根产品表,提升对新
WeatherKitschema 的兼容性。 @hhh2210
🛠️ Bug Fixes
- 修复
forecastNextHour在 iOS 27 下因元数据过期过快而失效的问题,并完善多段降水状态推导与描述匹配,避免复合天气短语被后续关键词错误覆盖。 @hhh2210 - 修复
WeatherKitdataSets与 availability 改写逻辑:仅过滤插件可注入的数据集,保留 Apple 原生 capability,避免固定列表吞掉新增能力或数据集。 @hhh2210 - 修复天气注入后每日降水量字段的保留逻辑,避免第三方数据覆盖或破坏
WeatherKit原始的全天 / 白天 / 夜间降水总量配对关系。 @hhh2210 - 修复空气质量数据兼容性:统一 Apple 内置 AQ scale 为无版本别名、迁移旧 scale 标识、忽略不可用等级哨兵值,并修正和风天气
reportedTime为 epoch seconds。 @hhh2210 - 修复
forecastNextHourFlatBuffer 编码时未知天气枚举被静默编码为CLEAR的问题。 @hhh2210
🔣 Dependencies
- 切换
@nsnanocat/util到公共 npm registry 来源。 @hhh2210
‼️ Breaking Changes
- none
🔄 Other Changes
- 更新
DataSets参数默认值与说明,明确其仅控制插件可修改的数据集,其余 Apple 数据集继续透传。 @hhh2210 - 为
Hono根路径新增GET /健康检查响应OK。 @hhh2210 - 新增覆盖空气质量 scale、NextHour 条件推导、降水总量、provider metadata、request availability、FlatBuffer overlay 与 selective decode 的回归测试。 @hhh2210
v3.1.0 正式版
🆕 New Features
- 新增基于云函数的
WeatherKit (Rewrite)新模块,面向Loon、Surge、Stash、Shadowrocket提供新的 Rewrite 版本配置。
🛠️ Bug Fixes
- 修复和风天气
YesterdayAirQuality在locationInfo为空时的空值访问问题,避免港澳等特殊定位条件下请求失败。 - 修复规则拦截范围,新增
IP-ASN 6185并统一QUIC拒绝表达式,减少异常直连。 - 修复重复天气提供者设置逻辑。
🔣 Dependencies
- 新增运行时依赖:
hono、node-fetch、fetch-cookie。 - 更新开发与基础依赖:
@rspack/cli、@rspack/core升级至^1.7.7,@nsnanocat/util升级至^2.2.3。
‼️ Breaking Changes
- none
🔄 Other Changes
- 为新的 Rewrite 版本补充基于
Hono的云函数转发入口,并支持通过Vercel与Cloudflare Workers部署。 - 新增 workers 构建链路:增加
arguments-builder.workers.config.ts与build:args:workers,用于生成各平台代理模块产物。 - 统一工程结构:
Hono入口调整为src/Hono.js,请求/响应处理拆分到src/process/Request*.mjs与src/process/Response*.mjs,并统一模块后缀与命名。 - 新增并统一 workers 模板与模块命名,配置名称追加
(Rewrite)后缀,提升不同版本的辨识度。 - 更新
wrangler可观测性配置,并在.gitignore中补充.idea忽略规则。
v4.0.0-beta3 预发布
🆕 New Features
- none
🛠️ Bug Fixes
- 修复了Stash的airQualityScale没有script的问题
🔣 Dependencies
- none
‼️ Breaking Changes
- none
🔄 Other Changes
- none
v4.0.0-beta2 预发布
🆕 New Features
- none
🛠️ Bug Fixes
- 修复了airQualityScale没有被拦截修改的问题
🔣 Dependencies
- none
‼️ Breaking Changes
- none
🔄 Other Changes
- none
v4.0.0-beta1 预发布
🆕 New Features
添加AQHI,将污染物的健康风险相加衡量空气质量的算法:
- 加拿大AQHI:基于加拿大非意外死亡数据,根据NO2、O3和PM 2.5的健康风险,按照加拿大空气污染数据分为11级的算法(10.17269/s41997-019-00237-w)
- 香港AQHI:基于香港入院风险数据,根据PM 10、PM 2.5、NO2、SO2和O3的健康风险,按照WHO AGQ 2021分为11级的算法(EPD AQHI)
- 中国(致死风险)AQHI:基于中国非意外死亡数据,根据PM 2.5、NO2、SO2和O3的健康风险,按照中国空气污染数据分为五个级别的算法(10.46234/ccdcw2021.011、济南疾控AQHI)
- 中国(致死风险)+香港AQHI:在中国AQHI基础上使用香港PM 2.5和PM 10的风险数据
(实验性)添加AQHI-Multi,一种使用CGAIM考虑多种污染物混合风险的算法(10.1016/j.oneear.2025.101488):
- AQHI-Multi(中国):基于中国非意外死亡数据,根据PM 2.5、NO2、SO2和O3的健康风险,按照WHO AGQ 2021分为11级的算法
- AQHI-Multi(中国+香港):基于AQHI-Multi(中国),PM 10使用了香港AQHI风险数据。PM 10风险超过PM 2.5的1.2倍时,使用PM 10的风险数据
🛠️ Bug Fixes
- none
🔣 Dependencies
- none
‼️ Breaking Changes
- none
🔄 Other Changes
- none
v3.0.9 正式版
🆕 New Features
- none
🛠️ Bug Fixes
- 修复天气预警
id的 UUID 解码形态,确保解码后与业务侧期望(字符串)一致。
🔣 Dependencies
- none
‼️ Breaking Changes
- none
🔄 Other Changes
- 统一
news.placements.articles.alertIds的 UUID 表达形态:编码支持{ bytes: [...] }输入,解码统一输出字符串 UUID,减少上下游结构差异。 - 增加
placementType()的内部比较能力,用于更稳定地处理 news placements 的placement字段判定。 - 调整响应处理顺序(
refactor(response)),进一步收敛逻辑执行路径,降低后续维护复杂度。 - 更新子模块引用到最新提交,确保主仓库与依赖子项目的版本关系保持一致。
- 新增并完善 UUID 映射测试脚本,覆盖多组
uuid <-> bytes双向转换及 FlatBuffer round-trip 校验。
v3.0.8 正式版
🆕 New Features
- none
🛠️ Bug Fixes
- 修复并收敛污染物指数缺失场景:现在会在污染物对象上统一回填指数,减少因字段不完整导致的结果偏差。
- 优化中国区主污染物识别流程,提升在不同数据源下的判定一致性。
- 优化下一小时天气注入条件判断,减少误注入或重复覆盖的情况。
- 将
FixQWeatherCO重命名为FixPollutantsUnits并统一污染物单位修复策略,减少因单位换算差异导致的空气质量展示误差。
🔣 Dependencies
- none
‼️ Breaking Changes
- none
🔄 Other Changes
- 在
Pollutants2AQI与ConvertPollutants中补充污染物浓度到污染物指数的映射能力,为统一 AQI 计算与主污染物判定打基础。 - 统一空气质量结果的生成与展示路径,减少不同来源数据在展示侧的差异。
- 优化
appendScaleToProviderName的空气质量展示信息拼接逻辑,减少同类场景下的重复处理。 - 统一
InjectAirQuality注入入口并整理执行顺序,提升处理链路稳定性与可维护性。 - 重构空气质量计算流水线:去重 AQI 构建流程,并将算法映射、指数裁剪、最大指数配置等能力下沉到统一模块。
- 在
BuildAQIFromScale中将指数裁剪与上限约束统一配置化,减少边界条件下的不一致结果。 - 对空气质量相关方法命名、执行顺序和内部结构进行了整理,代码可读性与可扩展性进一步提升。
- 全仓统一格式化策略(空格缩进及缩进宽度),提升多人协作时的风格一致性。
v3.0.7 正式版
🆕 New Features
- none
🛠️ Bug Fixes
- 在
parseWeatherKitURL.mjs的parseWeatherKitURL中修复国家参数解析优先级,现在优先使用查询参数中的国家信息,减少地区识别偏差。 - 将
Pollutants2AQI的默认空气质量计算算法更新为EU_EAQI。
🔣 Dependencies
- none
‼️ Breaking Changes
- 数据集与天气相关配置结构已简化并合并;若依赖旧字段名或旧配置路径,需要同步调整。
🔄 Other Changes
- 在
AirQuality.mjs中抽离Pollutants2AQI与ConvertPollutants,增强空气质量通用处理能力,便于在不同响应流程复用。 - 调整天气注入条件与可用性判断逻辑,减少不必要覆盖并简化分支处理。
- 将响应侧数据集注入流程改为并行执行,减少处理耗时。
- 在
AirQuality.mjs中将GetStpConversionFactors收敛为私有方法#GetStpConversionFactors。 - 统一使用
parameters.dataSets驱动 DataSets 处理链路,简化请求侧过滤逻辑(移除不必要的正则),并统一响应注入阶段的执行路径。 - 将原先通过正则进行的地区与可用性判断逻辑下沉到
ColorfulClouds.mjs与QWeather.mjs的配置中统一管理。
v3.0.6 正式版
🔄 Other Changes
- 移除了
数据集(DataSets)相关的配置选项和相关脚本。- 此配置仅用于特殊时期的临时回避方案,目前已不再需要。
v3.0.5 正式版
🛠️ Bug Fixes
- 修复了Egern模块生成失败的问题
🔄 Other Changes
- 重新排版了空气质量数据源的文字
v3.0.4 正式版
🆕 New Features
- 为数据源添加了选项,可以关闭部分模块的功能
🛠️ Bug Fixes
- 修复了昨日污染物数据源默认设置不生效的问题
‼️ Breaking Changes
- 暂时移除了WAQI选项
🔄 Other Changes
- 大幅简化了模块参数的设置
- 算法默认设置改为欧盟EAQI
- 为国标选项添加了一些说明
v3.0.3 正式版
🆕 New Features
- 使用正则表达式,以国家代码为判断来启用模块功能。
- 支持替换更多标准的空气指数。
- 内置算法支持德国LQI和欧盟EAQI。
- 实现和风天气的GeoAPI,现在可以本地查询location ID了。
- 重构和风天气和彩云天气的空气质量生成逻辑,将网络和数据处理分开。
- 重构了AirQuality.Config.Scales的结构。
- 提升了单位转换的精度(15 位小数)。
- 支持欧盟标准(20 度)的STP。
- 缓存了和风天气和彩云天气的部分网络数据。
- 详尽展示了空气质量的数据源。
- 提升了计算空气指数时的精度。
🛠️ Bug Fixes
- 修复了德国LQI指数边界,导致有时数值偏小的问题。
‼️ Breaking Changes
- 空气质量相关的设置结构经过了大幅修改。
🔣 Dependencies
- 升级了
@nsnanocat/util- 修复 Stash 不存在 $argument 的情况下,脚本直接错误退出的问题.
- 新增
[储存] 配置类型 (Storage)选项,提供如下三个选项,其中Argument为默认选项:Argument: 优先使用来自插件选项与模块参数等,由$argument传入的配置,$argument不包含的设置项由PersistentStore (BoxJs)提供。PersistentStore: 只使用来自BoxJs等,由$persistentStore提供的配置;database: 只使用由作者的database.mjs文件提供的默认配置,其他任何自定义配置不再起作用。未选择/未填写: 配置优先级依旧是$persistentStore (BoxJs)>$argument>database
- ⚠️ 注意:
[储存] 配置类型 (Storage)选项只能经由$argument进行配置,可通过支持$argument的插件选项或模块参数进行设置。对于本就不支持$argument的 app (如 Quantumult X),始终按照未选择/未填写模式进行处理(与旧版逻辑一致)。
🔄 Other Changes
- 数据集和未来一小时降水强度默认限制在彩云天气的支持范围内。
- 今日空气质量和对比昨日默认限制在彩云天气的支持范围内。
- 默认使用彩云天气替换了CN天气。
- 默认使用内置算法,转为德国LQI。
- 适配NSNanoCat/util v2.1.5
- 将部分设置剥离到 BoxJs。
- 增加了新的配置优先级选项
- 清除了不再使用的代码。
- 完善了AirQuality、ColorfulClouds和QWeather的类型检查。
- 重写了查找主要污染物的逻辑。
- 更改了内置算法设置的key name。
- 调整了一大堆日志的位置。
- 增加了新的阻断 Apple QUIC 流量的规则。
v3.0.2 正式版
🆕 New Features
- 使用正则表达式,以国家代码为判断来启用模块功能。
- 支持替换更多标准的空气指数。
- 内置算法支持德国LQI和欧盟EAQI。
- 实现和风天气的GeoAPI,现在可以本地查询location ID了。
- 重构和风天气和彩云天气的空气质量生成逻辑,将网络和数据处理分开。
- 重构了AirQuality.Config.Scales的结构。
- 提升了单位转换的精度(15 位小数)。
- 支持欧盟标准(20 度)的STP。
- 缓存了和风天气和彩云天气的部分网络数据。
- 详尽展示了空气质量的数据源。
- 提升了计算空气指数时的精度。
🛠️ Bug Fixes
- 修复了德国LQI指数边界,导致有时数值偏小的问题。
‼️ Breaking Changes
- 空气质量相关的设置结构经过了大幅修改。
🔄 Other Changes
- 数据集和未来一小时降水强度默认限制在彩云天气的支持范围内。
- 今日空气质量和对比昨日默认限制在彩云天气的支持范围内。
- 默认使用彩云天气替换了CN天气。
- 默认使用内置算法,转为德国LQI。
- 适配NSNanoCat/util v2.1.3
- 将部分设置剥离到 BoxJs。
- 增加了新的配置优先级选项
- 清除了不再使用的代码。
- 完善了AirQuality、ColorfulClouds和QWeather的类型检查。
- 重写了查找主要污染物的逻辑。
- 更改了内置算法设置的key name。
- 调整了一大堆日志的位置。
- 增加了新的阻断 Apple QUIC 流量的规则。
v3.0.0 预发布
🆕 New Features
- 使用正则表达式,以国家代码为判断来启用模块功能。
- 支持替换更多标准的空气指数。
- 内置算法支持德国LQI和欧盟EAQI。
- 实现和风天气的GeoAPI,现在可以本地查询location ID了。
- 重构和风天气和彩云天气的空气质量生成逻辑,将网络和数据处理分开。
- 重构了AirQuality.Config.Scales的结构。
- 提升了单位转换的精度(15 位小数)。
- 支持欧盟标准(20 度)的STP。
- 缓存了和风天气和彩云天气的部分网络数据。
- 详尽展示了空气质量的数据源。
- 提升了计算空气指数时的精度。
🛠️ Bug Fixes
- 修复了德国LQI指数边界,导致有时数值偏小的问题。
‼️ Breaking Changes
- 空气质量相关的设置结构经过了大幅修改。
🔄 Other Changes
- 数据集和未来一小时降水强度默认限制在彩云天气的支持范围内。
- 今日空气质量和对比昨日默认限制在彩云天气的支持范围内。
- 默认使用彩云天气替换了CN天气。
- 默认使用内置算法,转为德国LQI。
- 适配NSNanoCat/util v2.1.0,将部分设置剥离到BoxJS。
- 清除了不再使用的代码。
- 完善了AirQuality、ColorfulClouds和QWeather的类型检查。
- 重写了查找主要污染物的逻辑。
- 更改了内置算法设置的key name。
- 调整了一大堆日志的位置。
v3.0.0-pre2 预发布
🆕 New Features
- 使用正则表达式,以国家代码为判断来启用模块功能。
- 支持替换更多标准的空气指数。
- 内置算法支持德国LQI和欧盟EAQI。
- 实现和风天气的GeoAPI,现在可以本地查询location ID了。
- 重构和风天气和彩云天气的空气质量生成逻辑,将网络和数据处理分开。
- 重构了AirQuality.Config.Scales的结构。
- 提升了单位转换的精度(15 位小数)。
- 支持欧盟标准(20 度)的STP。
- 缓存了和风天气和彩云天气的部分网络数据。
- 详尽展示了空气质量的数据源。
‼️ Breaking Changes
- 空气质量相关的设置结构经过了大幅修改。
🔄 Other Changes
- 数据集和未来一小时降水强度默认限制在彩云天气的支持范围内。
- 今日空气质量和对比昨日默认限制在彩云天气的支持范围内。
- 默认使用彩云天气替换了CN天气。
- 默认使用内置算法,转为德国LQI。
v3.0.0-pre1 预发布
🆕 New Features
- 使用正则表达式,以国家代码为判断来启用模块功能。
- 支持替换更多标准的空气指数。
- 内置算法支持德国LQI和欧盟EAQI。
- 实现和风天气的GeoAPI,现在可以本地查询location ID了。
- 重构和风天气和彩云天气的空气质量生成逻辑,将网络和数据处理分开。
- 重构了AirQuality.Config.Scales的结构。
- 提升了单位转换的精度(15 位小数)。
- 支持欧盟标准(20 度)的STP。
- 缓存了和风天气和彩云天气的部分网络数据。
- 详尽展示了空气质量的数据源。
‼️ Breaking Changes
- 空气质量相关的设置结构经过了大幅修改。
🔄 Other Changes
- 数据集和未来一小时降水强度默认限制在彩云天气的支持范围内。
- 今日空气质量和对比昨日默认限制在彩云天气的支持范围内。
- 默认使用彩云天气替换了CN天气。
- 默认使用内置算法,转为德国LQI。
v2.0.7 正式版
🛠️ Bug Fixes
- 修复
降水类型无法正确显示混合雨雪类型的问题 - 修复
未来一小时降水无法正确显示雨夹雪、大雪等降水类型的问题
🔄 Other Changes
- 更新接口枚举对比工具,以支持更多天气条件的对比识别
- 在
DEBUG模式下,对比不一致的枚举值会通过通知与日志进行提示
- 在
- Quantumult X Snippet 增加 filter 用以拒绝 QUIC 的规则
