Skip to content

Commit ad635c0

Browse files
committed
fix: Windows Agent 和 Chat 模式切换不方便;增加 Tab 空白区域可拖拽
1 parent 56bbc99 commit ad635c0

5 files changed

Lines changed: 53 additions & 6 deletions

File tree

apps/electron/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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": {

apps/electron/src/renderer/components/app-shell/ModeSwitcher.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff 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'

apps/electron/src/renderer/components/tabs/TabBar.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff 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}

apps/electron/src/renderer/components/tabs/TabBarItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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
>

release-notes/v0.9.16.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
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`

0 commit comments

Comments
 (0)