ben4202121_buddybridge/ROADMAP.md
2026-06-27 18:45:03 +08:00

5.1 KiB
Raw Permalink Blame History

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

实现思路

  1. styles.css 中定义 --buddybridge-primary 变量,默认回退到 --interactive-accent
  2. 把所有紫色强调色用户气泡、Assistant 左边框、按钮、focus ring改用该变量。
  3. 在设置页添加颜色选择器,或在命令面板添加「设置 BuddyBridge 主色调」命令。
  4. 将用户选择的颜色写入聊天容器元素的 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 的 descriptionargument-hint,作为自定义命令来源。
  • 命令命名规则与 CodeBuddy 一致:
    • commands/test.md/test
    • commands/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 已有能力,减少插件维护成本。

下一步行动

  1. 收集 v1.0.9/v1.0.10 的实际使用反馈。
  2. 根据反馈调整第一阶段优先级。
  3. 进入第二阶段:实现自定义主色调。