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 类型。
AuxPane(src/web-ui/src/app/scenes/session/AuxPane.tsx)通过 ContentCanvas(mode="agent")承载这些标签,MiniApp 无法作为标签页加入。
- MiniApp 由独立的
MiniAppScene(src/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 桌面版。
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类型。AuxPane(src/web-ui/src/app/scenes/session/AuxPane.tsx)通过ContentCanvas(mode="agent")承载这些标签,MiniApp 无法作为标签页加入。MiniAppScene(src/web-ui/src/app/scenes/miniapps/MiniAppScene.tsx)承载,与 ContentCanvas 标签体系分离。Proposed behavior
让任意 MiniApp 都能作为内容标签页在辅助面板(ContentCanvas)中打开,与 AI 会话并排,并可像其他标签一样切换、分屏、拖拽。
建议方案:
PanelContentType中新增miniapp类型,并在 ContentCanvas 的标签渲染中承载 MiniApp 运行时(复用现有MiniAppRunner/ iframe 沙箱与app.*桥接)。进一步方向:将 MiniApp 纳入 ContentCanvas 统一的标签/分屏体系后,还能与文件查看器、生成式部件等自由组合分屏,形成“会话 + 多面板协同”的通用工作台。
Product surface
Web UI
Details, examples, or constraints
通用使用场景:
价值:减少场景切换、保持对话上下文连续,让 MiniApp 与会话形成协同工作台,整体提升 MiniApp 生态的实用性与使用频次。
相关:#1952(内置 Markdown 查看器公式渲染)——两者共同完善“会话 + 面板协同”的体验。
环境:Windows 11,BitFun 桌面版。