自动汇总 2026-10-20 当天
hummingg在 GitHub 上的提交。
hummingg/hummingg-com
- feat(watch): 全站展示系统名 HumminggOS,创作页产物代码紧贴打包
- 首页标题统一成「应用商店 · HumminggOS」,首屏文案与 meta description 点明系统名
- 五个页面页脚 HUMMINGG OS 统一为官方写法 HumminggOS(手册模板同步后重新生成)
- 创作页顺序调整为 检查结果 → 继续改/版本 → 代码 → 签名打包,
- 让最终要签名的产物代码紧接在打包前
- Merge remote-tracking branch ‘origin/main’
- feat(watch): GitHub Actions 自动部署,首页并入站点设计系统
- deploy-sites.yml 新增 deploy-watch:push 到 main 且命中 watch/** 时,
- 先跑 src 下网页测试,再检查 public 与 src 是否一致(不一致直接失败),
- 最后 wrangler deploy –config watch/wrangler.jsonc
- 首页改由 src/store/ 生成:共用 install/styles.css 与 mode-nav.css,
- 补 CSP、拆出 store.mjs,清单渲染改用 DOM API 而非 innerHTML
- 同步补上手册页源码 src/manual/(此前只存在于产物里)
- watch/public 首次入库:签名私钥不进 git,CI 里重建不出 .wapp 与固件镜像
- 顺带修正 uuid-generator 的 wrangler 配置路径(tools/uuid-generator 已不存在)
- feat(watch): 创作页交接新标签、安装错误码翻译、返回键兜底、预览模拟网络
- 导航顺序改为 系统 → 创作 → 安装 → 手册 → 商店(五个页面 + 手册模板同步)
- 「带到安装页」改用新标签打开,交接数据双写 sessionStorage/localStorage,
- 创作页的描述与代码不再被覆盖;弹窗被拦截时退回同标签
- 安装协议错误码翻成人话;码 2 自动重查设备状态,区分”还在收包/正在安装/
- 已完成/已空闲”,避免盲目重装
- 生成的应用自动补 back:true 与 lcd+touch 权限,修复”装上去退不出来”
- 预览里 net.* 按设备契约返回 nil, err,不再红屏中断
- 预览支持 AI 生成的模拟响应(mock 字段),用户可在面板里改;
- 只影响网页预览,不进应用包
- 手册同步更新,含预览数据说明
- fix(watch): sync_web.sh 改用 POSIX 读法,修 CI 里整段同步静默不执行
- find -print0 配 read -d 是 bash 扩展,GitHub Actions 的 ubuntu 镜像里
- /bin/sh 是 dash,实测报 “read: Illegal option -d”,两个同步函数的循环体
- 一行都没跑(脚本仍打印「完成」,所以 CI 看起来是绿的)。
- 改成 ( cd 源目录 && find . ) 输出相对路径 + while read,只用 POSIX:
- dash 下幂等、能检出漂移、路径带空格也正常
- 相对路径省掉前缀截断,逻辑更直白
hummingg/watch-appstore
- fix(port): touch.state 不再消费返回边沿
- 应用每帧先 state 再 read,旧 state 会把 back_decide 的 BACK_FIRE 吃掉,
- 应用随后只看到 BACK_SWALLOW,于是按了返回却没退出。
- state 保持只查询语义:热区内只返回「无触摸」并维持 armed,由 read 执行托管返回。
- 不动 src/、不动 ABI、不换应用规避。
- feat(host): 自检页改为显示 HumminggOS,不再画三色条
- 色条对判断 RGB/BGR 与字节序仍有意义,但真机自检时更常需要确认屏幕能正常出图。
- 触摸与六轴读数仍走串口,自检不依赖网络与应用。
- docs(firmware): 记录生产域同内容复刷验收与备份偶发超时
- 生产页升级模式完整走通:备份→兼容门→写 app0→逐段回读→第 04 步首次通过
- 写后整片 16MB 与写前备份逐字节相同(同内容写入,不当作跨版本变更证据)
- 备份读取首次在 21% 超时、重试成功,如实记为未定根因的偶发问题
- feat(firmware): USB 串口安装应用与用户公钥登记
- USBAPP v1:web 安装器经串口分段上传 .wapp,安装复用 store_jobs 的后台任务,
- 不另开任务;下载仍走流式写入,不整包进内存
- USBKEY v1:网页端生成的 P-256 公钥按 ≤127 字符分行登记,公钥存 NVS,
- 重刷 appfs 不丢;登记后该密钥签的包可安装
- 控制台新增 usb-app / usb-key 命令,回包走与 REPL 相同的 USJ 写路径
- 含三份协议单测与一份真机端到端脚本(登记→签名→安装→卸载)。
- docs(firmware): 记录发布后商店触摸验收(生产站拉取→下载→验签→安装)
- fix(store): 联网首装改在商店任务栈里补装,修 net_boot 栈溢出
- r2 把 ensure_app_installed() 挪进 net_boot_task,该任务栈 4096 字节,
- HTTPS 下载 + 验签安装必然溢出(core dump 已证实 net_boot 栈溢出)。
- 现在联网首装交 store_jobs_run_blocking(first_install_work),复用商店任务的
- 16KB 静态栈与排他门闸;net_boot_task 只负责对时后补装。
- 回归 8 例,新增「必须经任务层、不许就近直调」与「桌面忙时不退化成直调」。
- feat(apps): 应用设置页与桌面命中区收敛
- 内置应用补 app-settings.lua(配置项走 store_console 的 config 接口)与 apps/common 共享代码
- market/mouse/radar/speaker/timer/metronome/weather 配置声明随之调整
- 桌面与应用命中区、长按语义按真机反馈收敛;宿主脚本与备忘同步更新
- 只改应用与宿主脚本,不动 src/ 与 ABI。
- chore(tools): 补构建、发布与真机验收脚本
- 固件网页候选的打包/预览/校验脚本(prepare-web-firmware、serve-web-firmware、
- test-web-firmware-*、test-firmware-*)
- 真机只读复核与中断恢复脚本(device-readonly-crosscheck、device-reset-recovery、
- device-usb-install-acceptance、device-adapter-reset-acceptance、device/*)
- .gitignore 忽略 .wrangler/ 本地状态
- docs(firmware): 回退命令按实际语义写清 version ID 与配置参数
- feat(verify): 支持已登记的用户公钥验签
- app_verify_with_der() 抽出给定 DER 公钥的验签路径,内置商店钥与用户钥共用
- app_verify_body() 在内置钥失败时回退到已登记用户钥
- 新增 app_verify_set_user_verifier() 挂载点,由 user_keys_init 注入
- 这样多台电脑各自打包、各自登记公钥后都能安装,不必共用商店私钥。
- docs(firmware): 补 r4 回退路径(站点版本回退与整片 16MB 恢复)
- docs: 补发布、验收与移交记录
- 含 r3/r4 固件发布记录、USB 安装器、用户钥登记、应用创作页与
- 生产浏览器持续验收记录;均为真机证据与未放行项的如实记录。
- docs(firmware): 记录 r4 应用运行时人工确认与旧 core dump 清除
- Tap Check 1.0.3 在真机确认:数字比例正常、点按加一、长按、清零、返回可退出
- coredump 分区(0xff0000,64 KiB)已擦除并回读全 0xFF,启动不再报已有转储
- 擦除后复核启动模式、Wi-Fi、用户钥、应用与 APPFS 用量均未变