Skip to content

feat(dev): 接入 WK3 FlatBuffer 天气替换 - #111

Draft
hhh2210 wants to merge 4 commits into
NSRingo:devfrom
hhh2210:codex/wk3-binary-codecs
Draft

hhh2210 wants to merge 4 commits into
NSRingo:devfrom
hhh2210:codex/wk3-binary-codecs

Conversation

@hhh2210

@hhh2210 hhh2210 commented Nov 14, 2026 •

Copy link
Copy Markdown
Contributor

改动与路由

本 PR 使用 NSRingo/apple.WeatherKit#1 提供的 WK3.Schema/Codec 处理实际 FlatBuffer 响应,与协商 JSON 的 WeatherKit #110 分工:主 App 保持 JSON,桌面小组件保留 FlatBuffer,暂不再加小组件 JSON 白名单。实现上复用既有供应商注入函数并注册协议包 codec;其余根类型及未知或失败产品保留原始 arena。

真机验证(macOS Widget)

2026-11-14 于 macOS 27.3 (26C5035r) + Surge 6.12.0 (12840) 直接编辑桌面小组件,依次切换天津市津南区、昆明、福州再恢复当前位置。三次全新 WeatherWidget 请求(UA WeatherKit_WeatherWidget_macOS_Version 27.3 (Build 26C5035r),Accept 与 Content-Type 均为 application/vnd.apple.flatbuffer;messageType=WK3.Weather)均改写为彩云当前/逐日/逐小时数据(10 日、24 小时);原生日志成功构建 timeline 2、2、1 次,整个观察窗口无 failedToCreateResponseModel、Unable to decode 或 FlatbuffersErrors。津南区经像素截图确认,昆明与福州通过原生 Accessibility 文本核对(完整记录):

城市 响应数值(当前 / 最高 / 最低) 小组件显示对照
天津市津南区 7.74 / 13.42 / 5.07 津南区,8°摄氏度,雾霾,最高气温13°摄氏度,最低气温5°摄氏度
昆明市 16.44 / 18.65 / 9.36 Kunming,16°摄氏度,晴朗无云,最高气温19°摄氏度,最低气温9°摄氏度
福州市 22.07 / 23.1 / 22 Fuzhou,22°摄氏度,局部多云,最高气温23°摄氏度,最低气温22°摄氏度

天津津南区桌面天气小组件截图

测试与发布状态

主仓库 141 项测试及两种构建通过,#110 + #111 组合共 161 项测试全部通过(0 跳过);协议包 Linux CI 28 项测试通过,并完成固定 flatc 25.9.23 重生成与 tsc diff 校验。目前仍依赖 ^2.0.5(已发布版尚无新 Codec),故保持 Draft,待 NSRingo/apple.WeatherKit#1 发布后更新依赖及 lockfile。

复用协议包的 WK3.Codec 替换当前、逐日与逐小时天气,按产品保留其他原始数据。附供应商失败、未来字段与字节保留回归及 27.3 真机记录。

依赖 apple.WeatherKit 的 codec 分支;协议包发布后更新依赖和 lockfile,当前保留原版本以供 Draft 审阅。

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant