# GoodBuddy 客户端共享演示
- `workspace.html`:组织内多工作空间协作,支持创建空间、选择成员、`@` 定向消息、上下文预览、分身草稿和本人接手。建议从此页面开始体验。
- `index.html`:访客侧共享空间,包括知识库阅读、数字分身示例对话和授权来源说明。
- `settings.html`:客户端共享设置,包括知识库选择、分身身份、提示词、监督回顾授权及原文可见性。
- 设置页底部提供「组织工作空间 · 我的处理偏好」,按空间独立设置林知远的接收方式。空间偏好使用独立保存按钮,与个人访客分身开关分别生效。
- `demo.css`、`demo.js`:两页共用的样式、示例资料与交互逻辑,无外部资源依赖。
建议通过仓库开发服务访问 `/docs/demo/client/index.html` 和 `/docs/demo/client/settings.html`。也可直接打开 HTML;浏览器对 `file:` 页面的本地存储行为可能不同,两页联动以同源 HTTP 访问为准。
配置保存到当前浏览器的 `goodbuddy-sharing-demo-v1` 本地存储项。恢复示例后需点击保存;未保存的更改离开页面时会提示。真实 GoodBuddy 设置、服务端授权、身份验证、资料发布、模型调用均未接入。对话不执行自定义提示词,使用明确标注的固定示例回答。
## 演示流程
### 组织协作
1. 打开 `workspace.html`。当前模拟林知远已加入「明日工作室」,可切换「产品设计」和「AI 应用研究」,或创建多个新空间并选定成员。
2. 输入 `@` 或点击「选择成员」,明确接收人。展开上下文选择,预览讨论摘要、共享设置草稿后勾选发送。这里只模拟单接收人消息。
3. 在产品设计空间向张明发消息,默认由分身给出固定示例回复;向陈悦发消息,默认生成待本人确认的草稿。
4. 顶部切换模拟成员到陈悦,查看并编辑草稿,再确认发送。其他成员只能看到待确认状态和确认后的回复。
5. 切换到张明,可以接手已有分身回复的线程,补充本人回复,原分身回复保留。勾选「需要本人确认」发送的消息不自动发布分身回复。
6. 调整当前成员在当前空间的接收方式,或在设置页保存林知远各空间的偏好,后续消息使用新偏好。新空间默认本人处理。
空间消息和偏好保存在 `goodbuddy-workspace-demo-v1`。空间消息互相独立,上下文保存发送时的内容快照。角色切换、组织成员关系、加入空间均为本地模拟,不构成真实认证或授权;本地存储包含所有模拟角色的数据。线程对本空间成员可见,只有指定接收者显示处理操作。回复是固定演示逻辑,不会执行提示词或调用真实分身。当前只有一个示例组织,没有真实邀请、组织切换或后台任务派发。
### 个人共享
1. 浏览两个共享知识库,切换到数字分身并点击示例问题,查看对应资料来源。
2. 在设置中取消一个知识库并保存,访客侧阅读列表和分身可用来源同步减少。
3. 在数字分身设置中授权选定的监督回顾,保存后询问产品决策;单独开启原文查看,访客侧才出现回顾原文。
4. 暂停数字分身,知识库继续提供阅读;暂停知识共享,分身继续开放,但不能使用已撤销的知识来源。
5. 将访问范围改为仅团队成员,匿名访客页面显示访问限制。
本原型为知识库与分身采用同一共享空间和访问范围,没有模拟跨范围授权。监督回顾只包含一条明确展示的虚构记录。知识库数量及更新时间为示例元数据,正文只展示节选。桌面采用侧栏与双栏布局,窄屏改为单栏。
## 交互验证
启动 `npm run dev:web -- --host 127.0.0.1 --port 5178` 后,运行 `node docs/demo/client/verify.mjs`,验证资料撤销、监督回顾原文可见性、独立暂停和团队访问限制。脚本使用独立的 JSDOM 存储,不修改浏览器中的配置。Vite 注入样式可能产生 JSDOM CSS 解析提示;此脚本验证交互与内容,不替代浏览器视觉检查。
运行 `node docs/demo/client/verify-workspace.mjs` 验证定向消息、上下文快照、草稿可见性、本人确认优先、接手、空间隔离、创建及设置持久化。