GitHub 提交日报 · 2026-10-31

自动汇总 2026-10-31 当天 hummingg 在 GitHub 上的提交。

hummingg/skills

hummingg/watch-appstore

  • fix(font): 中文字库改按通用规范汉字表选字,不再按项目文档词频
    • 上一版只补了口语虚词,同一次回答里「琢磨」仍被画成「□磨」——缺「琢」。
    • 根因不是字数不够,是取样基准错了:文档语料 240 万汉字只有 2889 个去重字,
    • 重技术词、轻日常词,而且 glob 里有 tools/.py 和 docs/.md,选字结果取决于
    • 谁写了什么文档(写篇 bug 报告提到「琢磨」,下次生成就能收进「琢」,自指)。
    • 新增 tools/data/common-3500.txt:通用规范汉字表一级字表 3500 字,
    • 取自 github.com/iDvel/The-Table-of-General-Standard-Chinese-Characters
    • 的「1-8105纯汉字(按顺序排列).txt」前 3500 行(原文件 8105 行、无重复)。
    • 汉字来源改为:一级字表 ∪ EXTRA_STRINGS ∪ 界面源码用字(apps/*.lua +
    • 固件 main 源码,兜住一级字表之外的技术词,实测只有 12 个)。
    • 文档词频降级为 –corpus-top N,默认关闭。
    • 一级字表不能单独用:嗯/呃/嗷 属二级三级、诶 不在表里,而它们是语音助手
    • 高频字,所以 EXTRA_STRINGS 那份虚词表保留。
    • 字形 3272 → 3909(CJK 3525),位图 98299 → 118986 B(+20.7KB),
    • 固件 app 2290656 → 2317712 B(+26KB,4MB 分区仍剩 45%)。这是「零成本」
    • 路线:比收全 21359 汉字(+844KB)便宜两个数量级,且结果可复现。
    • 验证:宿主 153/153 PASS;真机 elf_sha256=201b3d6d…,appfs 901120 未变、
    • Wi-Fi 自动重连;问「用琢磨造个句」,回答里「琢磨」出现三次全部正常渲染。
  • fix: 收尾 10-28~30 的审计项(Wi-Fi/蓝牙/USBKEY/PMIC/codec/触摸栈)
    • 固件侧:
    • wifi_manager:连接重试退避、扫描安全、console 回显;配套 settings_app 开关
    • user_keys / hid_ble / bt_manager:并发与启动失败路径,USBKEY 状态结果
    • bsp_codec + port/audio:初始化失败回滚,端口状态并发
    • pmic_axp2101:回读安全(读失败不谎报)
    • app_api / app_manager:Lua backref 归属、重绘安全、错误非字符串
    • 两块板 bsp_touch:2.06 触摸采样栈 2048→4096(coredump 定因),1.28 同步
    • usb-app-transfer:USBAPP 代码段上限 32KB→64KB
    • 应用侧:dbmeter/dice/keyboard/level/market/metronome/mouse/power/radar/steps/timer/weather
    • 的命中框、错误策略与配置读写。
    • 用例:新增 18 个(扫描安全、重试退避、写失败、解包安全、端口并发…),
    • 并把既有用例对齐到新行为。宿主基线 153/153 PASS(BASH_ENV 清空后实测)。
  • chore(tools): 收录标定过的磁贴定位器,忽略接管期一次性夹具
    • spectrum-stress.py(原 _takeover_spectrum_v3.py)值得留:它把真机桌面磁贴的
    • 定位方法固化了 —— 网格序 = [builtin:settings, builtin:store] + config 字母序,
    • 颜色 = sum(ord(c)) % 6,行三元组唯一可当行号;取色要并集 0/±40px 三个偏移,
    • 否则正中两个缩写字母会把 120px 色带切成两段。滑动用 2000ms/260px 约 2 行,
    • 不跳行。–locate-only 可单跑定位。
    • 其余 takeover* 与 _read_order.py 是接管会话的本地临时夹具,进 .gitignore。
  • docs: 补 10-27~31 的会话记录、部署说明与两份专项验收
    • 20 篇按主题切分的会话记录(凭据安全、解包安全、端口并发、写失败、
    • 蓝牙启动、codec 回滚、Lua backref、重绘安全、命中框、Wi-Fi 重试/扫描、
    • review 整改清单与终审)
    • deployment.md / handoff.md / handoff-takeover-2026-10-30.md:接管现状、
    • 证据索引与开放事项
    • spectrum-stress-20261031.md:10 轮 × 60s 录音压力验收(无累积下降)
    • speaker-e2e-20261031.md:按住说话→百度 ASR→DeepSeek→百度 TTS 端到端
    • ROADMAP.md
  • fix(font): 中文字库补口语虚词,修掉语音助手回答里的豆腐块
    • speaker 把大模型回答原文画在屏上,实测「咱慢慢聊」「AI 朋友呀」两处显示成
    • 方块。根因不是空格(U+0020/U+3000 都在子集里),而是 18px 子集只收了 3193 字,
    • 按项目文档词频裁出来的,口语虚词成片缺失。
    • EXTRA_STRINGS 显式加入 咱呀哟嗯呃诶嗷呗啦嘛哦啊吧呢哪… 等虚词叹词。
    • 不能靠重跑脚本:能不能进子集取决于当天语料里恰好有没有。
    • 新增 EXCLUDE_CHARS = “龘”:tools/*.py 在语料里,而 test-cn-font.py 拿「龘」
    • 当「必须缺失」的哨兵,重跑会把哨兵收进子集,那条用例当场变红。
    • 重新生成 port/ui/lv_font_cn_18.c:3193 → 3272 字形,位图 98299 B。
    • 验证:宿主 153/153 PASS(含 test-cn-font 4/4);真机固件 elf_sha256
    • d9bd1eeb…,appfs 901120 未变、Wi-Fi 自动重连;让模型说一句必然含
    • 「咱」「呀」的话,「呀」已正常显示。
    • 残留:自由文本仍会撞子集外(同次回答里「琢磨」的「琢」仍是方块)。
    • 是否收全 20992 汉字(固件约 +900KB,4MB 分区仍放得下)见
    • docs/speaker-e2e-20261031.md §4.2,未擅自改。
  • test(wifi): 真机验收快速开关重连与失败路径;字库扫描补 app.json
    • Wi-Fi 侧(docs/wifi-acceptance-20261031.md):
    • 快速开关与重连 ×3:关后 connected=0 且 interface_up=0,开后 3.2s 全部重连成功
    • 失败加入:不存在的 SSID → ESP_ERR_TIMEOUT 20.5s 干净返回,随后 60s 采样
    • connected=0 / tasks 恒 15(无残留重连任务),再指定正确网络立即成功
    • 恢复后 Wi-Fi 页显示 connected 192.168.1.5,与 net-status 一致
    • 观察:扫描列表里邻居网络的 SSID 含字库外字符时显示为方块(预期行为)
    • 字库:UI_SOURCE_GLOBS 补 apps/**/app.json —— 磁贴上的应用名取自清单、
    • 不在 lua 里,之前漏扫。当前清单无中文缺字,重生成字节未变(不需要重刷)。