# 场景三:会话分享广场 [← 返回 README](../README.md) | 相关文档:[插件作者管理社区](./scenario-plugin-author.md) | [团队协作](./scenario-team.md) DSH-Guild 的「分享 DSH 会话」是一件不太常见的能力:把本机的一个会话**打包上传**到社区,别人点开卡片就能**克隆到本地**继续用。围绕它开一个社区,就成了一个会话集市 —— 有人贴踩坑现场,有人贴跑通的模板,有人贴完整调试过程。 这份文档假设你要运营一个「会话分享广场」这样的公开社区。 --- ## 一、先理解分享的机制 - **分享 DSH 会话**:把本机一个会话打包 → 上传到社区;包体上限由插件设置 `share.maxSizeMb` 控制,默认 **50 MB**。 - **克隆到本地**:他人点开消息里的分享卡片 → 弹窗展示分享者 / 大小 / 时间 / 事件数 → 一键克隆成本地会话。 - **分享卡片**:发消息时可以附带一张自己创建的分享,卡片内嵌在消息里;点击卡片弹出详情,也可直接下载包体。 - 包体存放在 Server 的 R2 桶里(自部署时是你的桶),和附件走同一套上传通道。 > 分享的是**会话数据**,不是你的整个工作区。上传前留意会话里是否包含敏感信息(路径、凭据、业务数据)—— 公开社区里所有人可见。 --- ## 二、建广场 1. 面板 **+** → 创建社区,可见性选 **公开**,名称例如「会话分享广场」,简介写清楚「这里贴什么、怎么用」。 2. 创建后自带的 **公告** 频道(默认对 `@everyone` 只读)先改成广场规则: - 发帖格式建议:`【场景】+ 一句话说明 + 分享卡片`; - 提醒不要把密钥 / 隐私数据打进包里; - 说明「点卡片即可克隆到本地」。 3. 社区简介会出现在**发现页**(可按名称 / 简介搜索,按热门 / 活跃 / 最新排序,列表展示最近发言时间与近 7 天消息数)—— 简介写得好,广场才有自然流量。 ### 如果你自部署了 Server 用官方社区种子可以直接把这套底子铺好(其中就包含「会话分享广场」),并恒排在发现页顶部、带「官方」标记: ```bash curl -X POST https://<你的自定义域>/api/admin/seed-official \ -H "Authorization: Bearer " \ -H "X-Admin-Token: " ``` 会创建 3 个公开社区(DSH 官方 / 会话分享广场 / 插件与技能开发),每个自带公告、文字频道与各频道置顶说明帖,owner 是你自己。想改内容就改 [packages/server/src/lib/official.ts](../packages/server/src/lib/official.ts) 后重新执行。详见 [自部署 Server](./deploy.md#六可选写入官方社区与种子内容)。 --- ## 三、频道怎么配 | 频道 | 类型 | 用途 | | --- | --- | --- | | `公告` | 公告 | 广场规则、精选集、活动通知(只读) | | `综合` | 文字 | 散帖、求助、闲聊 | | `踩坑现场` | 文字 | 报错 / 异常现场,贴分享卡片让人下载复现 | | `模板与脚手架` | 文字 | 跑通的会话模板,给人克隆当起点 | | `每周精选` | 话题 | 一条话题一个主题,精选往期分享并讨论 | 配置要点: - **公告**:不需要额外设权限,默认对 `@everyone` 只读,只有所有者或经频道权限放行「发送消息」的角色能发。精选集就固定在这里。 - **话题频道**:点进去是话题列表,点开某条才聊天;24 小时无人回复自动归档,适合做周期性的精选 / 活动,不会被散帖冲掉。 - 频道支持改名 / 改主题 / 删除与上移 / 下移排序,把 `公告` 与高频频道排前面。 --- ## 四、角色与权限 分类靠角色,不靠频道数量堆。 **策展人**(新建角色,勾选): - `查看频道` `发送消息` `发起讨论组` `管理讨论组` - `管理消息`(用来置顶精选、清理违规帖子与卡片) - `邀请成员` - 需要维护频道结构时再加 `管理频道`;**不给** `管理社区` `管理角色` **贡献者**(可选,新建角色): - 只勾 `查看频道` `发送消息`; - 用于给持续产出优质分享的人一个显式标识(配色区分)。 **@everyone**:默认权限即可 —— 广场的活力来自所有人都能发帖。 两条硬规则:只能操作**层级严格低于**自己的角色与成员;不能授予自己没有的权限位。权限变更会实时下发,失效的连接会被主动断开。 --- ## 五、运营动作 - **发一条分享**:在 DSH 里选中会话 → 分享到社区;或在发消息时附带一张分享卡片,让卡片内嵌在消息里。 - **置顶精选**:有「管理消息」权限的人可置顶 / 取消置顶,头部置顶面板可查看并跳转到原消息。 - **做合集**:把同类分享归到一个话题(如「每周精选」下的某条主题串),串内讨论、串外不改动。 - **引导提问格式**:要求求助帖带上(1)现象,(2)分享卡片,(3)期望行为。附件直接粘贴 / 拖拽,一条消息最多 4 个。 - **找已有分享**:用消息搜索按关键词 + 频道 / 作者 / 时间范围(24h / 7d / 30d)/ 仅 `@我` 检索,避免重复贴。 - **通知**:`@everyone` 用于活动通知,日常更新直接发公告频道即可,减少打扰。 - **处理违规**:先移除成员,反复回来就**封禁**(被封禁者无法重新加入,可随时解封);必要时在成员面板**删除消息**内容。 - **多社区并行**:同一个人最多加入 20 个社区、自建 20 个,自建有每 24 小时 5 个的滚动限制。 --- ## 六、常见坑 | 现象 | 原因 / 处理 | | --- | --- | | 分享失败 | 包体超过 `share.maxSizeMb`(默认 50 MB);在 DSH 插件设置里调大后重试 | | 别人克隆后跑不起来 | 会话里的路径 / 环境是分享者的本机的;在公告里要求分享者附上环境说明 | | 公告频道自己发不了 | 检查频道权限覆盖里 `发送消息` 是否对相应角色 allow | | 帖子秒沉 | 把精华用置顶固定,或归到话题频道做合集 | | 话题串"消失" | 24h 无人回复自动归档,回复即恢复 | | 找不到广场 | 公开社区要在发现页搜索;私有社区只能凭邀请码加入 |