wangjia
|
1a8089a96d
|
docs(design): 前端全景文档 + SKILL 闸章节 + 文档索引登记
ci / server (push) Failing after 10s
ci / design-system (push) Failing after 11s
- doc/frontend-overview.html:一次 UI 改动的标准路径 / 真相源结构 /
五端消费对照 / 各道闸全景 / L1-L2-L3 分治 / 已知滞后(jiu
frontend-overview 思想的 dudu 版)
- design/SKILL.md 增补「单源与闸」章节(agent 改 UI 前必读)
- doc/index.html 登记全景文档
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 00:11:50 +08:00 |
|
wangjia
|
208d0cda12
|
feat(design): design/ 真相源 + 防漂移静态闸(#25)
真相源整固:
- design/index.html 登记簿:token 色板(var() 实时渲染)/ 组件登记卡 /
图标与跨端映射 / guidelines / ui_kits 单一入口,check-ds 强制登记
- design/icons.js 图标单源(Lucide 线条)+ icon-map.json 跨端映射表
(web/iOS/Android 三列,iOS 12 个 SF Symbol 全部收编登记)
- components/core/Icon.jsx 单源图标渲染器;MicBar/RecognitionOverlay 接入
- tokens 新增 --brand-wechat(-press)(微信官方绿)与 --overlay-wave
- fonts.css 弃 Google Fonts CDN,Outfit 可变字体自托管
(assets/outfit-latin.woff2,40KB;中国网络下 CDN 不可用会卡字体)
- design/serve.mjs 零依赖预览服务器(登记簿与原型评审入口)
codegen 强化(export-tokens.mjs):
- 产物直写消费位置:ios/dudu/Shared/DuduTheme.swift、
android/.../design/DuduTheme.kt——删除 design-pipeline/generated/
中间拷贝层(此前 app 内是手工拷贝,--check 守不到真实消费文件已漂移)
- 新增 web/tokens.css 产物(custom props 透传 + Outfit data URI 内嵌)
- tokens 文件遍历排序,产物确定性
存量收编:
- desktop:三个窗口内联 SVG → Icon 组件;tray 裸 rgba → token+opacity
- Android:LoginScreen 微信绿常量 → DuduPalette.brandWechat(Press),
Color.White → textOnAccent
- 官网 web/index.html:接入 tokens.css,34 处硬编码 hex 全部 var() 化;
深色板块(metrics/cta/footer)改挂 data-theme="dark" 复用 dark 令牌;
移除 Google Fonts CDN
- design 包内 8 处裸色:微信绿 token 化、装饰色 ds-ignore 白名单、
同值色改 var() 引用
防漂移闸(零依赖 Node):
- design-pipeline/check-ds.mjs:真相源自检 7 道(dark⊆light / var 链 /
裸色∈tokens 值集 / 组件登记 / icons 唯一 / icon-map 双向同集 / 禁 emoji)
- design-pipeline/check-code.mjs:代码侧单源(desktop 禁字面色+内联 path /
iOS 禁字面色+SF Symbol 同集 / Android 禁 Color(0x / web 禁字面色),
ds-ignore 行级豁免制
- .githooks/pre-commit(启用:git config core.hooksPath .githooks)
- CI design job 扩展为三道闸全绿
- 反向验证通过:注入裸色/孤儿 token/未登记组件/未登记 symbol 均被拦截
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 00:05:22 +08:00 |
|
wangjia
|
4aec0ef6e9
|
fix(desktop): 应用图标接入品牌设计(design/assets/app-icon.svg)
ci / server (push) Failing after 9s
ci / design-tokens (push) Failing after 10s
dock/任务栏此前显示纯蓝占位方块——icons/icon.png 只有底色没有 glyph。
从设计资产 app-icon.svg(蓝底圆角 + 白色圆圈声纹标)渲染 1024px 源图
(内容 824px 居中留边,符合 macOS 图标规范),tauri icon 生成全尺寸
图标集(icns/ico/png),bundle.icon 补全标准列表。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 20:25:18 +08:00 |
|
wangjia
|
2979bdd2a3
|
docs(12B): 延迟验收暂定结论 + 建立项目文档索引
ci / server (push) Failing after 10s
ci / design-tokens (push) Failing after 10s
- doc/latency-acceptance-12b.html:延迟分解、#23/#24 修复记录、暂定新目标
(first_partial P95<1.2s;release_to_commit ≤3s 会话<300ms / 长会话<600ms)、
paraformer 切换待 eval 对比决策、复测方法
- doc/index.html:项目文档单一入口(按规范补建,登记现有 4 份文档)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 20:02:16 +08:00 |
|
wangjia
|
d22e02fa2e
|
fix(#23)+feat(#24): stop 后不再下发周期 usage 帧;gummy 预连接 spare 会话
ci / server (push) Failing after 9s
ci / design-tokens (push) Failing after 10s
#23 修复(服务端根治,五端客户端提交信号自动变安全):
- finish 先冻结会话并停 usageLoop,再 flush provider——此前 usageLoop 在
waitResults(最长 3s)期间继续 tick,周期 usage 帧会抢在尾部 final 之前
下发,客户端以 partial 文本提前上屏、丢失 final 修正(12B 实测 8s 会话
4/4 复现;修复后 6/6 归零)
- 桌面端收尾兜底超时 350ms → 800ms(实测 8s 会话 final flush 需 350~540ms,
350ms 会截丢尾 final)
#24 预连接(12B 调优):
- GummyProvider 常备一条已完成 run-task 握手的 spare 会话,start 直取,
后台异步补位 + 40s 定期换新(DashScope 空闲 60s 断连,实测 60s 存活/
120s Idle timeout,留余量 45s)
- 实测网关 start 处理 120~670ms → 3~4ms;消除 dial 抖动(实测 60ms~3.7s)
对 first_partial 尾部的放大
gummycheck 增加 -model / -pace / -idle 参数,支持模型对比与闲置存活实验
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 19:44:25 +08:00 |
|
wangjia
|
7b693b0f63
|
feat(12B): latencyprobe 延迟验收工具 + 会话建立耗时观测 + 滑动窗口只查不记修复
ci / server (push) Failing after 11s
ci / design-tokens (push) Failing after 11s
- cmd/latencyprobe:复刻桌面端行为(单连接串行、100ms/帧实时推流)实测
网关全链路 first_partial / release_to_commit P50/P95,口径对齐 dictation.rs
- gummy/gateway 增加会话建立耗时日志(dial / task-started / start 总耗时),
作为 first_partial 延迟分解的常驻观测点
- 修复 slideScript:val=0 的只查请求(AudioWindowExhausted)不再落 0 值成员,
与注释「只查不记」一致,避免污染窗口 ZSET 并空耗 seq
12B 实测结论(gummy 真实 provider,本机网关):
- first_partial P50≈940ms:其中 DashScope 需收到 ~0.8s 音频内容才出首个
partial(直连同样),网关暖路径开销仅 ~130ms、冷启 dial ~600ms
- release_to_commit:短会话 ~170ms 达标;8s 会话 350~540ms 超标(final
flush 随内容量增长);偶发 DashScope 抖动可到秒级
- stop 后周期 usage 帧常先于尾部 final 到达,桌面端会以 partial 文本提前
注入丢失 final 修正(iOS 已在 21A 修过同类问题,桌面端待修)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-10 19:03:27 +08:00 |
|
wangjia
|
b5ab92a57e
|
fix: 应用 xhigh 代码评审的跨端修复
ci / server (push) Failing after 13s
ci / design-tokens (push) Failing after 11s
来自 xhigh code review 的正确性/健壮性修复,覆盖全部五端:
- server:鉴权 fail-closed、计量交叉校验与配额扣穿处理、WS 网关并发与关闭顺序、
billing 行锁、redis Lua 过期与设备槽刷新、config 解析
- desktop:会话 epoch 防串话、WS 重连与 401 处理、api 客户端复用、统一 usePoll 轮询
- android:握手时序、请求头封装、账户状态派生、按需重组
- ios:finalize 宽限、串行采集、错误文案服务端优先、删除死代码 CommitController
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 11:50:08 +08:00 |
|
wangjia
|
50b49f3cbe
|
fix(eval): 单条样本失败不再拖垮整轮评估
ci / server (push) Failing after 14s
ci / design-tokens (push) Failing after 12s
- cli:逐样本 transcribe 包 try/except,失败记为该样本 error 并继续;
失败样本 counts 置空,不计入准确率,仅在 errors 列计数
- custom 数据集:manifest 引用的音频不存在时 warn 跳过,不再让 soundfile
抛错崩掉整轮(修复默认 config 的 custom 示例集指向不存在音频导致的崩溃)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 11:33:24 +08:00 |
|
wangjia
|
25acf9db6e
|
feat(eval): ASR 模型评估框架
横向对比云端 gummy 与本地开源模型(faster-whisper/SenseVoice/Paraformer),
重点覆盖中英混说,产出准确率(CER/WER/MER)/速度(延迟/RTF)/资源(cpu/mem/模型大小)
对比报告。公共集(ASCEND/AISHELL/LibriSpeech)统一走 HF 适配器 + 自定义 JSONL manifest。
gummy 引擎对照 server/internal/asr/gummy.go 协议移植。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-13 11:25:04 +08:00 |
|
wangjia
|
40760aa884
|
dudu MVP:五端语音输入法初始提交
ci / server (push) Failing after 14s
ci / design-tokens (push) Failing after 11s
- server:Go 网关(WS 流式识别中继/计费配额/微信登录支付 mock/反馈/埋点),gummy provider 已真实联调
- desktop:Tauri 2(全局快捷键 push-to-talk/浮层/托盘/设置/登录购买/反馈/首启引导)
- android:Compose 主 App + IME(键盘内录音直传)
- ios:App + 键盘扩展(1A spike 实证键盘内不可录音,走 deep link 听写)
- design/design-pipeline:设计系统 + token 导出 iOS/Android 主题
- doc:前后端设计文档(HTML);web:官网宣传页;todo:任务看板
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-06-12 00:38:37 +08:00 |
|