File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11{
22 "name" : " @proma/electron" ,
3- "version" : " 0.9.16 " ,
3+ "version" : " 0.9.17 " ,
44 "description" : " Proma next gen ai software with general agents - Electron App" ,
55 "main" : " dist/main.cjs" ,
66 "author" : {
Original file line number Diff line number Diff line change @@ -68,8 +68,8 @@ export function ModeSwitcher(): React.ReactElement {
6868 } , [ mode , restoreSession ] )
6969
7070 return (
71- < div className = "pt-2" >
72- < div className = "relative flex rounded-xl bg-muted p-1" >
71+ < div className = "pt-2 titlebar-no-drag " >
72+ < div className = "relative flex rounded-xl bg-muted p-1 titlebar-no-drag " >
7373 { /* 滑动背景指示器 */ }
7474 < div
7575 className = { cn (
@@ -82,7 +82,7 @@ export function ModeSwitcher(): React.ReactElement {
8282 key = { value }
8383 onClick = { ( ) => handleModeSwitch ( value ) }
8484 className = { cn (
85- 'mode-btn relative z-[1] flex-1 flex items-center justify-center gap-1.5 rounded-lg px-3 py-1 text-sm font-medium transition-colors duration-200' ,
85+ 'mode-btn titlebar-no-drag relative z-[1] flex-1 flex items-center justify-center gap-1.5 rounded-lg px-3 py-1.5 text-sm font-medium transition-colors duration-200' ,
8686 mode === value
8787 ? 'mode-btn-selected text-foreground'
8888 : 'text-muted-foreground hover:text-foreground'
Original file line number Diff line number Diff line change @@ -199,9 +199,13 @@ function TabBarInner({
199199
200200 return (
201201 < div className = "flex items-end h-[34px] tabbar-bg relative" >
202+ { /* 顶部 TabBar 的空白区域必须保持可拖拽,尤其是 macOS/Windows 自定义标题栏。
203+ 注意:不要把 titlebar-no-drag 加到下面的整条 flex 容器上,否则标签右侧空白会再次失去拖拽能力。
204+ 前景 flex 容器也必须是 drag-region,因为它会覆盖在背景拖拽层之上。
205+ 需要交互的单个 Tab 会在 TabBarItem 内部自己声明 titlebar-no-drag。 */ }
202206 < div className = "absolute inset-0 titlebar-drag-region" />
203207
204- < div className = { cn ( "relative flex items-end flex-1 min-w-0 overflow-x-clip titlebar-no- drag" , isWindows && "pr-[140px]" ) } >
208+ < div className = { cn ( "relative flex items-end flex-1 min-w-0 overflow-x-clip titlebar-drag-region " , isWindows && "pr-[140px]" ) } >
205209 { tabs . map ( ( tab ) => (
206210 < TabBarItem
207211 key = { tab . id }
Original file line number Diff line number Diff line change @@ -101,7 +101,7 @@ export function TabBarItem({
101101
102102 return (
103103 < div
104- className = "relative flex-1 min-w-[48px] max-w-[200px]"
104+ className = "relative flex-1 min-w-[48px] max-w-[200px] titlebar-no-drag "
105105 onMouseEnter = { onHoverEnter }
106106 onMouseLeave = { onHoverLeave }
107107 >
Original file line number Diff line number Diff line change 1+ # Proma v0.9.16
2+
3+ > 对比基准:v0.9.15
4+
5+ ## 新功能
6+
7+ - ** 语音输入自定义热词实验** — 豆包流式语音输入新增本地自定义热词能力,可在「设置 → 语音输入」中按行或逗号填写产品名、技术词、人名等专有词 (#380 )
8+ - ** 请求级热词注入** — 启动识别时会把热词去重后直传给豆包 ASR 的 ` corpus.context.hotwords ` ,无需先到火山控制台创建热词表
9+ - ** 轻量词库配置** — 新增设置页多行输入控件,默认保存在本地配置中,适合作为热词识别效果的快速实验入口
10+ - ** 安全兜底** — 读取旧配置或手动编辑过的配置时,对非字符串热词字段自动降级为空值,避免启动识别时报错
11+
12+ ## Bug 修复
13+
14+ - ** 语音停顿后文本丢失修复** — 语音浮窗不再简单用最新 ASR 事件覆盖整段文本,会合并「已确认文本 + 当前分句」,避免用户自然停顿后前文被后续分句覆盖 (#380 )
15+ - ** 语音停顿容忍度提升** — 豆包 ASR 的 ` end_window_size ` 从 800ms 调整为 5000ms,并补充 ` force_to_speech_time ` ,减少稍微停顿就被过早切句的问题
16+ - ** Windows 缩放快捷键修复** — 修复 Windows 下主键盘 ` Ctrl++ ` 可能被上报为 ` Ctrl+= ` 导致无法放大的问题,并兼容小键盘加号
17+ - ** Windows 顶部空间修正** — 左侧 Sidebar 不再沿用 macOS 红绿灯避让间距,Windows 下 Chat / Agent 模式切换区域更紧凑,减少顶部空白
18+ - ** 关闭按钮遮挡修复** — 调整 Agent 侧栏文件区域与关闭按钮的层级和间距,避免窗口控制区与文件内容互相遮挡
19+
20+ ## 界面与体验优化
21+
22+ - ** 语音识别跨停顿更自然** — 豆包返回全量文本或仅返回当前分句时,浮窗都会尽量保持一段完整、连续的听写结果
23+ - ** 专有名词识别更可控** — 用户可以把项目名、框架名、英文缩写等直接加入热词输入框,用更低成本验证词库对识别准确率的改善
24+ - ** Windows 侧栏布局优化** — Chat / Agent 模式切换高度提高,非 macOS 平台的侧栏顶部间距更贴合自定义标题栏
25+
26+ ## 开发与打包
27+
28+ - ** 版本更新** — ` @proma/electron ` 从 ` 0.9.15 ` 升级到 ` 0.9.16 `
29+ - ** Agent SDK 升级** — ` @anthropic-ai/claude-agent-sdk ` 及对应平台 optionalDependencies 从 ` 0.2.123 ` 升级到 ` 0.2.129 `
30+ - ** 语音文本合并测试** — 新增 ` voice-text-normalizer ` BDD 风格测试,覆盖「停顿后返回当前分句」和「全量返回不重复拼接」两类场景
31+ - ** 设置页基础组件** — 新增 ` SettingsTextarea ` ,用于承载语音输入热词这类多行设置项
32+
33+ ## 使用提示
34+
35+ - 如果语音输入经常把产品名、库名或人名识别错,可以在「设置 → 语音输入 → 自定义热词」中逐行添加,例如 ` Proma ` 、` Jotai ` 、` ShadcnUI `
36+ - 自定义热词适合少量高频专有名词;如果需要大规模词表或强制替换词,后续仍可接入火山控制台的热词表 / 替换词表能力
37+ - 本版本把语音停顿窗口放宽到 5 秒,适合听写时自然思考;再次按语音快捷键仍会立即停止并提交
38+
39+ ## 下载
40+
41+ - ** macOS Apple Silicon** — ` Proma-0.9.16-arm64.dmg `
42+ - ** macOS Intel** — ` Proma-0.9.16.dmg `
43+ - ** Windows** — ` Proma-Setup-0.9.16.exe `
You can’t perform that action at this time.
0 commit comments