Skip to content

[Feature]: 支持 MiniApp 在辅助面板(ContentCanvas)中作为标签页打开,与会话并排显示 #1954

Description

@huanghaoh

Problem / opportunity

MiniApp 是 BitFun 的一等公民能力形态(阅读、分析、可视化、编辑、交互式工具等),但目前只能作为独立场景(MiniAppScene)全屏打开,无法像内置查看器那样进入会话旁的辅助面板(AuxPane / ContentCanvas)与会话并排。

这限制了 MiniApp 与 AI 会话的协同。很多 MiniApp 的核心价值恰恰在于“一边操作 MiniApp、一边与 AI 对话”——用户希望在 MiniApp 中查看/编辑/操作的同时持续与 AI 交流,而不必在 MiniApp 场景与会话之间来回切换、打断对话上下文。当前要在两者间切换,体验割裂。

能力上也不一致:内置查看器(markdown-viewer / code-viewer / image-viewer 等)已能并排,MiniApp 作为更丰富、可交互的应用形态反而不能并排。

根因(源码层面):

  • 辅助面板的内容标签类型由 PanelContentType 定义(src/web-ui/src/app/components/panels/base/types.ts),取值含 markdown-viewer / code-viewer / file-viewer / image-viewer / browser / generative-widget / terminal / plan-viewer 等,但没有 miniapp 类型。
  • AuxPanesrc/web-ui/src/app/scenes/session/AuxPane.tsx)通过 ContentCanvas(mode="agent")承载这些标签,MiniApp 无法作为标签页加入。
  • MiniApp 由独立的 MiniAppScenesrc/web-ui/src/app/scenes/miniapps/MiniAppScene.tsx)承载,与 ContentCanvas 标签体系分离。

Proposed behavior

让任意 MiniApp 都能作为内容标签页在辅助面板(ContentCanvas)中打开,与 AI 会话并排,并可像其他标签一样切换、分屏、拖拽。

建议方案:

  • PanelContentType 中新增 miniapp 类型,并在 ContentCanvas 的标签渲染中承载 MiniApp 运行时(复用现有 MiniAppRunner / iframe 沙箱与 app.* 桥接)。
  • 提供从 MiniApp 场景/画廊“在侧边面板打开”的入口,并允许已打开的 MiniApp 标签在场景与辅助面板之间移动。

进一步方向:将 MiniApp 纳入 ContentCanvas 统一的标签/分屏体系后,还能与文件查看器、生成式部件等自由组合分屏,形成“会话 + 多面板协同”的通用工作台。

Product surface

Web UI

Details, examples, or constraints

通用使用场景:

  • 分析/可视化类 MiniApp:一边看图表或数据,一边让 AI 解读、追问。
  • 编辑/创作类 MiniApp:一边在 MiniApp 中编辑,一边让 AI 辅助生成或修改。
  • 交互式工具类 MiniApp:操作工具的同时与 AI 协作,无需离开当前面板。

价值:减少场景切换、保持对话上下文连续,让 MiniApp 与会话形成协同工作台,整体提升 MiniApp 生态的实用性与使用频次。

相关:#1952(内置 Markdown 查看器公式渲染)——两者共同完善“会话 + 面板协同”的体验。

环境:Windows 11,BitFun 桌面版。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions