mirror of
https://github.com/ben4202121/buddybridge.git
synced 2026-07-22 07:48:01 +00:00
5.1 KiB
5.1 KiB
BuddyBridge 改进路线图
本路线图基于 v1.0.9 的用户反馈和长期产品方向整理,按优先级和依赖关系分阶段推进。
第一阶段:稳定性与打磨(当前优先)
1.1 修复「回答完成后仍显示思考中」
状态:已修复(v1.0.10)
问题:流式响应结束时,如果最后只收到 done/result 事件或没有任何 text chunk,占位用的思考指示器没有被清除。
修复方式:在 sendMessage 流式循环结束后,统一调用一次 renderMessages(),确保 DOM 与最终 message 状态一致。
1.2 输入框体验优化
- 多行输入:
Shift + Enter换行,Enter发送(当前已支持,但输入框高度不会自动增长)。 - 自动增高:根据内容自动扩展 textarea 高度,减少滚动条。
- 发送按钮状态:流式响应时禁用输入框和发送按钮,避免重复发送。
1.3 错误与空状态优化
- 网络/CLI 错误时显示更友好的错误卡片,而不是纯文本。
- 无响应时给出可操作提示(重试、检查路径)。
第二阶段:个性化与可配置性
2.1 自定义主色调
目标:让用户通过命令或设置页修改聊天面板的主色调,而不是固定使用 Obsidian 的 --interactive-accent。
实现思路:
- 在
styles.css中定义--buddybridge-primary变量,默认回退到--interactive-accent。 - 把所有紫色强调色(用户气泡、Assistant 左边框、按钮、focus ring)改用该变量。
- 在设置页添加颜色选择器,或在命令面板添加「设置 BuddyBridge 主色调」命令。
- 将用户选择的颜色写入聊天容器元素的
style属性。
优先级:高。改动小、见效快、能显著提升品牌感。
2.2 设置页重构
- 将设置项分组:通用、CodeBuddy 路径、外观、快捷键。
- 添加「重置为默认」按钮。
- 支持导入/导出设置。
第三阶段:斜杠命令(Slash Commands)
3.1 设计原则
- 不照搬 Claudian:只借鉴「输入
/触发命令」这一通用交互,代码独立实现。 - 优先透传:CodeBuddy CLI 本身支持大量
/命令,先把输入原样透传给 CLI,让 CLI 自己处理。 - 本地命令插件化处理:对需要特殊 UI 或不能交互的命令,在插件侧提供替代实现。
3.2 第一阶段:安全透传
这些命令不需要交互,直接透传给 CLI:
/clear→ 实际在插件侧新建对话(更快)/compact/context/cost/model <model-name>/permissions/resume <session-id>/export/status
3.3 第二阶段:输入框自动补全
- 用户输入
/时弹出命令列表。 - 内置命令表硬编码在插件中。
- 扫描 vault 下
.codebuddy/commands/**/*.md,读取 frontmatter 的description和argument-hint,作为自定义命令来源。 - 命令命名规则与 CodeBuddy 一致:
commands/test.md→/testcommands/backend/deploy.md→/backend:deploy
3.4 第三阶段:交互式命令
对无法在非交互模式下运行的命令,由插件提供 UI:
| 命令 | 插件行为 |
|---|---|
/model 不带参数 |
弹出模型选择器 |
/resume 不带参数 |
弹出历史会话选择器 |
/config |
打开设置面板或快速切换常用配置 |
/theme |
弹出主题选择器 |
第四阶段:高级功能(长期)
4.1 上下文用量指示器
参考 Claudian 的圆形仪表盘,在输入区工具栏显示当前会话的 token 使用百分比。
依赖:需要 CLI 提供 context 用量事件或接口。
4.2 文件引用(@mention / file chips)
- 输入
@弹出文件选择器。 - 选中文件后显示为可删除 chip。
- 发送时把文件路径注入 prompt。
4.3 Plan Mode / Inline Edit / Diff 视图
- Plan Mode:当模型返回计划时,以卡片形式展示,用户可批准或拒绝。
- Inline Edit:在笔记中高亮选区,调用 CodeBuddy 编辑并展示 diff。
- Diff 视图:对 Write/Edit 工具结果展示行级 diff,支持接受/拒绝。
4.4 多语言与无障碍
- 提取所有用户可见字符串到 i18n 文件。
- 支持中文 / English。
- 完善键盘导航、焦点管理和 ARIA 属性。
4.5 移动端适配
- 当前插件是桌面端专用(
isDesktopOnly: true)。 - 后续评估是否支持移动端 Obsidian,主要障碍是 CodeBuddy CLI 的调用方式。
决策记录
| 日期 | 决策 | 原因 |
|---|---|---|
| 2026-06-27 | 不修改 api.ts 的 spawn 逻辑 |
该文件属于敏感区域,路径问题通过插件设置手动指定解决。 |
| 2026-06-27 | UI 参考 Claudian 但不复制代码 | 避免版权风险,只借鉴通用设计模式。 |
| 2026-06-27 | 斜杠命令优先透传给 CLI | 最大限度复用 CodeBuddy 已有能力,减少插件维护成本。 |
下一步行动
- 收集 v1.0.9/v1.0.10 的实际使用反馈。
- 根据反馈调整第一阶段优先级。
- 进入第二阶段:实现自定义主色调。