wangjia
|
7d155fa2de
|
fix(desktop): trafficLightPosition y 按按钮中心语义调为 18,与顶条标题垂直对齐
ci / server (push) Failing after 10s
ci / design-system (push) Failing after 12s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 08:53:07 +08:00 |
|
wangjia
|
559e224301
|
fix(desktop): 设置窗口尺寸回归内容实际大小 + 原生贴形阴影 + 红绿灯对齐 + 显式拖拽权限(12A 实测反馈)
ci / server (push) Failing after 10s
ci / design-system (push) Failing after 11s
- 去掉 16px CSS 阴影边距方案(窗口比观感大、外圈灰影、点击区域错位):
transparent 窗口开 macOS 原生阴影,阴影贴合内容圆角,窗口 440x560
即卡片本体
- trafficLightPosition {16,12}:红绿灯垂直居中于 36px 自绘顶条,与
「dudu 设置」标题对齐
- capabilities 显式加 core:window:allow-start-dragging,保证
data-tauri-drag-region 拖拽可用
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 07:52:23 +08:00 |
|
wangjia
|
b914aebb00
|
fix(desktop): 设置窗口透明化 + 自绘 MacWindow 框,去掉原生白边(12A 实测反馈)
ci / server (push) Failing after 11s
ci / design-system (push) Failing after 12s
Overlay 标题栏模式下原生 NSWindow 底色在深色内容四周露出白边。改为
与托盘菜单一致的模式:窗口 transparent + shadow:false,由页面自绘
窗框(对齐原型 MacWindow 规格:radius-md + border-1 + shadow-window,
16px 阴影边距,窗口尺寸相应 472x592),红绿灯 trafficLightPosition
对齐自绘顶条,内容区独立滚动。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 07:47:19 +08:00 |
|
wangjia
|
adfa1ef1e4
|
fix(desktop): 开启 macOSPrivateApi,透明窗口不再画白底(12A 实测反馈)
ci / server (push) Failing after 11s
ci / design-system (push) Failing after 12s
识别浮层/托盘菜单窗口虽已 transparent:true 且页面背景透明,但 macOS
上 WKWebView 需要 macOSPrivateApi 才能真透明,否则渲染白底。Cargo
侧 macos-private-api feature 已就位,仅补 conf 开关。不走 App Store
分发,私有 API 可用。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 07:40:40 +08:00 |
|
wangjia
|
911ceca079
|
feat(design+desktop): Select 真相源组件 + 设置窗口无边框(12A 实测反馈)
ci / server (push) Failing after 11s
ci / design-system (push) Failing after 12s
Select 组件(用户拍板:下拉框全端共用一个真相源):
- design/components/forms/Select.jsx:自绘下拉——触发器同 Input
(control-sm/radius-sm/border-1 + chevronDown),弹层同菜单
(radius-md/shadow-menu、选中项前置对勾、hover surface-2),
外点/Esc 收起;登记簿加卡;icons.js 新增 chevronDown 并登记 icon-map
- 原型 SettingsTray 与桌面 SettingsApp 同步换用(替换原生 select——
其系统弹层样式/位置不可控,即 12A 截图问题)
原型组件运行时可再生(修复单源缺口):
- design-pipeline/bundle-components.mjs:用 desktop 现成 esbuild 重建
_ds_bundle.js(此前为 Claude 导出产物、仓库内无法再生,组件一改即
过期);import 'react' 经全局 shim,命名空间不变;已实测原型页正常
- _ds_bundle.js 重建(15 个组件,含 Select/Icon)
设置窗口无边框:
- tauri.conf settings 窗口 titleBarStyle=Overlay + hiddenTitle,
系统红绿灯悬浮左上;SettingsApp 自绘顶条(surface-2 + 下边框 +
data-tauri-drag-region 可拖拽),对齐原型 MacWindow 规格
合并 feat/design-truth-source(真相源与闸体系)进本分支
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 01:00:29 +08:00 |
|
wangjia
|
ddedef9605
|
Merge branch 'feat/design-truth-source' into worktree-latency-probe-12b
|
2026-07-11 00:55:05 +08:00 |
|
wangjia
|
c9823ce454
|
fix(desktop): 托盘菜单左缘对齐图标、去掉垂直间隙(12A 实测反馈)
ci / server (push) Failing after 9s
ci / design-tokens (push) Failing after 11s
此前菜单水平居中于托盘图标(观感偏左)且下方留 4px 间隙。改为
macOS 系统菜单习惯:左缘对齐图标左缘、紧贴菜单栏;菜单超出屏幕
右缘时整体左收 8px 边距。
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 00:41:41 +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
|
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
|
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
|
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 |
|