聊天面板支持"用户 prompt 吸顶",或开放 renderer 层的插件 UI 扩展点

背景 / 场景

  • 在长对话里(尤其是 planning、多轮 debug、跨文件重构),最初或最近的用户 prompt 一旦被滚动条推出视口,就很难随时回看
  • 想确认"当前这轮 assistant 是在处理我哪一句需求"、"上一轮我明确禁止过什么"时,只能反复往上滚,非常打断心流
  • 类似诉求在 DeepSeek Harness 生态已有社区实现:https://github.com/oil-oil/dsh-oil-sticky-prompt(“Pins the last user prompt that has crossed the top of [data-conversation-scroll]”)

期望效果(择一即可)

方案 A(原生 UI 特性) — 更"轻",官方一次做完全员受益

  • 在聊天面板 viewport 顶部叠加一个半透明浮层:显示"最近一条已滚出顶部的 user prompt",2 行内截断,点击滚回原消息
  • 只保留一个浮层,切换 topic 或滚回不再遮挡时自动淡出
  • 可选:设置开关,默认关闭;或允许用户按 Cmd+K 之类切换

方案 B(更根本,插件生态) — 开放 renderer 层 UI 扩展点

  • 当前 plugin.json 支持的组件(skills / commands / hooks / mcpServers / agents / rules)都在逻辑层,插件无法向对话面板注入 DOM / CSS / React 组件
  • 建议新增类似 renderer / webview / contributes.ui 字段,允许插件挂载受限 UI 到官方定义的挂载点(例如 chat viewport 顶部、composer 上方、侧栏 tab)
  • 参考:VS Code Extension API 的 views, viewsContainers 契约

补充信息

  • Qoder 版本:0.2.5(stable,macOS arm64)
  • OS:macOS 25.5.0 (Sequoia)