wangjia
|
19281d9c42
|
feat(auth+desktop): 邮箱验证码登录 + 登录窗改版(微信/邮箱双方式,无边框)
ci / server (push) Failing after 10s
ci / design-system (push) Failing after 10s
后端(协议 → 存储 → 接口,E2E 测试全绿):
- protocol:AuthEmailCodeRequest / AuthEmailRequest DTO
- store:EmailIdentity 表(邮箱唯一索引)+ authmail:* Redis key
- auth/email.go:POST /v1/auth/email/code 发 6 位码(crypto/rand,
60s 冷却 SetNX,10 分钟 TTL);POST /v1/auth/email 常量时间比对、
码一次性、邮箱建号(昵称取前缀)→ JWT(与微信登录同响应形态)
- Mailer 接口 + MockMailer(验证码打日志供联调;SMTP 未配置自动降级,
装配结果入启动日志,上线前须换真实实现)
- TestEmailLogin E2E:发码/冷却 429/错码拒绝/登录/token 可用/码防复用
桌面(Rust 命令 + UI 改版):
- api.rs:login_email_code / login_email(成功保存 token + ws 重连,
与扫码登录同路径)
- 登录窗改版(原型 LoginPurchase 先行,dark 截图验收):logo + 分段
切换(微信扫码 / 邮箱登录,与设置页同控件语言)+ 邮箱表单
(60s 倒计时、错误文案、未注册自动建号提示)
- 二维码真渲染:qrcode 库画 canvas(前景/背景取主题 token),
替换原 URL 文本占位;过期态半透明化
- 登录窗无边框化:transparent + Overlay 标题栏 + 原生贴形阴影;
抽公共 WindowFrame 组件(设置窗同步重构复用)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-11 09:40:16 +08:00 |
|
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
|
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
|
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 |
|