UI Interaction Demo · winBrain Creator OS

删掉「补充材料」后,首页会是什么样?

基于真实前端代码(workbench-ui.js chatPickerHTML)的可交互演示:before / after 同屏对比

可交互演示Before / After基于真实代码窄门 · 结论前置
结论 删掉「补充材料」= 首页选择器只剩「工作对象」三件套(项目 / 专家 / 员工): 搜索框保留,分区标签与两个登记按钮消失,分割线消失,底部提示从「工作对象与补充材料都在这里」改为「工作对象都在这里」。 主页其余交互(搜索、创建、选择、发送)全部不变 —— 删除影响面 = 选择器根视图的一个分区 + 两条 action + 一个对话框,后端 registerResource 可保留(Creator 数据集仍用)。

Live Demo首页选择器 · Before vs After(真实 UI 模拟)

首页 · 现在(Before)有补充材料
AI CONVERSATION · AI 对话

今天想解决什么问题?

选择一个项目、专家或员工,AI 会带着对应的目标、职责与协作关系进入对话。

🔍 搜索项目组、专家或员工
工作对象
项目组项目承载目标与上下文 · 新建项目 / 进入项目对话
👤
专家专家聚合员工与本体 MCP · 与专家直接对话
员工员工 = Skill · 单项任务执行
补充材料
📁
登记文本文件把文本内容写入受控 Workspace
📄
登记资料保存资料名称、说明与文本内容

+ 工作对象与补充材料都在这里

首页 · 删除后(After)只剩工作对象
AI CONVERSATION · AI 对话

今天想解决什么问题?

选择一个项目、专家或员工,AI 会带着对应的目标、职责与协作关系进入对话。

🔍 搜索项目组、专家或员工
工作对象
项目组项目承载目标与上下文 · 新建项目 / 进入项目对话
👤
专家专家聚合员工与本体 MCP · 与专家直接对话
员工员工 = Skill · 单项任务执行

+ 工作对象都在这里

Impact删除影响面 · 代码级清单

位置 现在(代码实证) 删除后
workbench-ui.js chatPickerHTML 根视图 「工作对象」分区 + 分割线 + 「补充材料」分区(2 个登记按钮) 只剩「工作对象」3 个入口,分割线与补充材料分区移除
workbench-ui.js chatEntryHTML 提示文案 工作对象与补充材料都在这里 改为 工作对象都在这里
workbench-ui.js action 映射 "chat-picker-resource": runtimeOnly 整行移除
workbench-api-adapter.js action 绑定 view.ACT["chat-picker-resource"] → openResourceDialog() 绑定移除;openResourceDialog / saveResource 成为死代码
workbench-api-adapter.js 资源对话框 #wb-resource-dialog(登记资源弹窗) HTML + 样式移除(若不再有任何入口)
workbench-api-adapter.js 资源列表 UI 资源 tab 展示已登记资源 看产品决策:可保留(查看历史登记)或一并移除
后端 registerResource API POST /api/v1/resources + ResourceUseCases 建议保留:CreatorOptions.datasets 仍合并资源供新建专家选数据集
capabilities.ts 能力声明 resources: { kinds: ["database","document","file"] } 若彻底移除则删;若保留后端则保留

Action Loop删除决策清单 · 勾选 + 复制

删除前逐条确认0/6
▸ 真实代码出处(展开查看)

1. chatPickerHTML 根视图(frontend/src/adapters/browser/workbench-ui.js:4562-4573)

return `
${isEntry ? "选择工作对象" : "开始新的业务对话"}...
${chatPickerSearchHTML()}
工作对象
${["project","expert","employee"].map(...).join("")}
补充材料
`;

2. 入口提示(workbench-ui.js:4519)

<p class="chat-entry-hint">${icon("plus")}工作对象与补充材料都在这里</p>

3. action 绑定(workbench-api-adapter.js:833-836 + workbench-ui.js:6118)

view.ACT["chat-picker-resource"] = (target) =>
  openResourceDialog(target.dataset.id === "file" ? "file" : "document");
"chat-picker-resource": runtimeOnly,

4. 后端仍被 Creator 使用(src/application/workbench.ts:116-122)

const resources = this.operationStore().loadResources();
const datasets = [...DATASETS.map(...), ...resources.map(({id,name,description}) => ({id,name,description}))];