3.0.0.beta15:Discourse 3.0 闭幕(包含侧边栏、聊天、新菜单等)

:dizzy: Discourse 3.0.0.beta15 有什么新功能?

此测试版将我们从 2.9.0.beta14 移至 3.0.0.beta15,因为我们计划在 一月份进行主版本更新,将各种激动人心的变化整合到 Discourse 中:

:new: 侧边栏 + 新用户菜单(Discourse 外观的重大改变)
:new: https://meta.discourse.org/t/discourse-chat/230881(现已包含在 Discourse 源代码树中)

即将到来的 3.0 主版本升级也将标志着我们在 2022 年开发的许多其他新增功能。目前来看,请注意,这些升级不会给后端 API 带来任何不兼容问题。

Hashtags 进行了 #大改造

Chat 和 Sidebar 现在默认启用

通过 此更改,Chat 和 Sidebar 现在可以通过网站设置在所有 Discourse 实例上启用!虽然现有网站没有变化,但管理员可以通过 chat enabledsidebar 网站设置或运行设置向导 (discourse.example.com/wizard) 来启用它们。

改进的管理员体验

除了 Discourse 3.0 中的各种其他改进之外,每次管理员运行设置向导时,您都会看到一些有用的新切换选项:

另一个变化是,在升级/部署后网站出现新功能时,会向管理员发送新通知:

简化 DnD、用户状态和通知

“请勿打扰”模式已与用户状态集成,并重命名为“暂停通知”。

  • 用户状态现在显示在群组页面上
  • 在帖子的内联提及中显示实时用户状态
  • 允许 UserApiKey 的 user_status 范围

更多 :new: 功能!

  • 警告管理员匿名用户可能暴露私有群组名称
  • 添加用户切换以屏蔽/取消屏蔽密码
  • Embed Motoko 的 Onebox
  • 在核心中添加对桌面推送通知的支持
  • 对以术语开头的标签进行排序,优先级更高
  • 区分直接或间接关注主题的通知类型
  • 允许类别版主设置主题自动删除计时器
  • 在处罚用户时显示相似用户
  • 可选允许指定单独的 s3_asset_cdn_url
  • 允许显示不带术语的标签自动完成结果
  • 改进管理 2fa 的 UI
  • 对聊天消息强制执行提及限制
  • 在帖子的内联提及中显示实时用户状态
  • 支持 Youtube Short onebox
  • 允许 UserApiKey 的 user_status 范围
  • 改进提及的编辑器警告
  • 频道可以允许/禁止 @all/@here 提及
  • 添加实验性插件 API 以注册消息导航下拉菜单
  • 为新 PM 和待审核项区分通知指示器
24 个赞

更多更新!

但等等,还有更多!我们尽力为您突出显示新功能和新变化,但总是有太多变更无法一一描述。如需完整的新功能、错误修复、用户体验改进等列表,请务必查看下方列出的“其他功能与修复”。

安全更新

本测试版包含一项针对社区和 HackerOne 报告问题的安全修复:

  • 限制创建未列出主题

插件改进

discourse-animated-avatars

新功能
  • 允许始终使用动态头像

discourse-assign

新功能
  • 不推荐休假中的用户
  • 使插件兼容重新设计后的用户消息
用户体验变更
  • 更新小型操作以使用句子大小写

discourse-bbcode

安全变更
  • 修复允许的字体名称

discourse-calendar

新功能
  • 添加置顶主题的选项

discourse-checklist

用户体验变更
  • 在无序列表中使用复选框作为项目符号

discourse-encrypt

用户体验变更
  • 搜索群组消息时不包含加密帖子。

discourse-footnote

用户体验变更
  • 防止长字符串导致溢出

discourse-post-voting

错误修复
  • 分类设置 create_as_post_voting_default 未按预期工作。
  • 将通过电子邮件对首帖的回复视为回答。
  • 文本校对

discourse-question-answer-discourse

错误修复
  • 分类设置 create_as_post_voting_default 未按预期工作。
  • 将通过电子邮件对首帖的回复视为回答。
  • 文本校对

discourse-saml

错误修复
  • 以哈希格式添加 idp_cert_multi,并包含 signing 键。

discourse-spoiler-alert

可访问性
  • 通过键盘切换剧透提示,并改进屏幕阅读器支持

其他修复与改进

点击展开

错误修复

  • 更稳定的系统测试
  • 正确使用 request_uri 生成 load_more_url
  • 此时组件可能被销毁
  • 始终从 loadMore 正确返回 Promise
  • 确保加载更多时不会清除浏览筛选条件
  • 更新 v1.23 的 nginx 配置
  • 不为 MacOS 显示推送通知横幅
  • user_watching_category_or_tag 添加缺失的邮件模板
  • 对频道归档状态进行多项修复
  • 在刚发布的帖子中显示提及状态
  • 避免切换存在状态时出现竞态条件
  • 窗格销毁时取消获取消息
  • DButton 的省略号参数
  • 在已删除帖子中显示主题标题
  • 在行内一键框引用 SSRF 查找发出的 DNS 时优雅处理
  • 移除遗漏的 chat_channels 遗留路径
  • 正确允许管理员访问用户聊天偏好页面
  • 正确处理导航至消息
  • 耳语工具提示显示允许的群组
  • 更可靠的归档频道规范
  • 确保恢复网络时不会创建未读提及
  • 解决 R2 gem 中的 bug 的临时方案
  • 管理员无法查看其他用户的用户侧边栏偏好
  • 因自动完成导致的脆弱测试
  • 增加等待时间以防止特定的脆弱测试
  • 自动完成淡出箭头键聊天修复
  • 允许嵌套聊天转录
  • 确保我们拥有 CGI gem 的修补版本
  • 重新启用 using_session 测试
  • 防止在 DnD 模式下播放聊天声音
  • 提及时用户状态的样式
  • 提及自动完成的箭头滚动
  • 防止创建空 User 对象
  • 当导航菜单为遗留模式时显示侧边栏偏好链接
  • 当消息未暂存时触发更新最后已读
  • Prometheus 插件期望生产环境使用 webrick
  • 修正 last_read_message_id 的回归问题
  • 允许管理员访问用户偏好
  • 正确排序公共频道
  • 更好的 chat-api 错误处理
  • 防止 chat-api 生成双斜杠 URL
  • 引用带有状态表情的提及会破坏提及
  • 带有淡出效果的标签自动完成滚动箭头键
  • 在标签组中包含标签以进行标签搜索
  • 响应式按钮和更宽的内容容器
  • 不为静音子类别返回无术语的标签搜索
  • TL0 无法向具有可消息化级别为“所有人”的群组发送消息
  • 测试中不要假设干净的状态
  • 如果频道 slug 未更改则不验证
  • 头像的 box-sizing
  • Discourse-follow 通知类型
  • 为 ChatMessage.cook 添加缺失的 user_id 参数
  • 仅当用户可以创建帖子时才能访问分类聊天
  • 在 git 合并过程中丢失的字符串用法
  • 移除魔法时间范围
  • 允许在标签自动完成中按退格键
  • 按箭头键滚动自动完成容器
  • 移除书签自动删除偏好中的 user_option 保存
  • 正确解析 Mandrill Webhook
  • 将 REPLACEMENTS 图标添加到样式指南
  • 邮件摘要主题顺序应保持一致
  • 使用正确的俄语复数规则
  • 无法通过向导更改主页样式
  • 编辑聊天消息以移除上传时不要重复检查
  • 工作人员信息警告链接的路径无效
  • 正确计算 DistributedMutex 锁定尝试次数
  • 移除“nohighlight”的控制台警告
  • 重置搜索控制器状态
  • 确保用户状态在提及中不会在插件中失败
  • GitHub 一键框省略号样式在 9d03f20 中回归
  • 恢复 read_moreread_more_in_category 缺失的文本
  • 使用更具体的类名以避免冲突
  • 确保生成的 tsqueries 有效
  • 80e422c 中的 multipart uppy 上传回归
  • 确保聊天中的标签自动完成不被键盘遮挡
  • 如果用户无法聊天,则不为标签返回频道
  • 子文件夹安装中的图片损坏
  • 密码重置时子文件夹中的表情符号 URL 损坏
  • 新的私信通知应优先于提及
  • 针对安全分类的服务器端标签查找
  • 正确隐藏频道设置中的管理员设置
  • 显示被屏蔽 IP 地址的最后匹配时间
  • 321b14d 中的管理员 Webhook 回归
  • 不提供有关 GDPR 合规性的建议
  • 为设置添加翻译
  • 基于权限的重复标签查找结果
  • 使用主题的正确 color_scheme_id 属性
  • 当 skip_new_user_tips 为 false 时不要重置已见弹窗
  • 个人资料页面无法加载
  • 打开之前删除的帖子时出错
  • Webhook 应更新频道的 last_message_sent_at
  • 在可用时使用 CDN 进行聊天 mp3 声音
  • URL 片段未清除
  • 更新被屏蔽 IP 地址的 match_count
  • 新消息将直接消息频道移至顶部
  • 仅在不在聊天频道时取消激活活动频道
  • 仅在用户晋升/降级时修改安全侧边栏链接
  • 不要强制在非首帖上显示主题地图
  • 确保聊天频道元数据日期已更新
  • 从窄屏过渡时用户菜单的 bug
  • deactivate 并非在所有情况下都被调用
  • avatarUrl 辅助函数结果中包含 CDN
  • 更改 Drupal 永久链接创建以使用 /node/
  • 在数据库级别确保聊天频道 slug 唯一性
  • 为聊天频道订阅添加 MessageBust.last_id
  • 仅在 ember-cli 页面上进行相对 URL 路由
  • 关注词替换表情渲染
  • 不要在 GitImporter 中更新 url
  • 在帖子创建者规范中观察未列出主题创建限制
  • 邮件标签烹饪文本替换错误
  • 不要用 WatchedWords 替换标签烹饪文本
  • 处理片段解析中的空 svg 类
  • 从用户菜单中排除已认领的审查项
  • 水平滚动无法正常工作
  • 在克隆前跟随重定向时,使用第一个 git 请求
  • 验证取消订阅密钥是否有关联用户
  • ScrollingPostStream 在 #15313 中回归
  • 在审查项上显示聊天频道信息
  • 允许仅模板的审查项组件
  • iPad 上侧边栏和重新设计的用户菜单的边距
  • 在某些情况下允许 oneboxer 中使用 svg
  • 改进发布重复链接时的消息
  • 同意自动标记时不通知帖子删除

用户体验变更

  • 改进联系邮箱和 URL 描述的文案
  • 将 webkit 切换为伪元素以实现淡出效果
  • 设置向导文案变更并垂直堆叠 Logo 字段
  • 暂时恢复自动完成高亮变更
  • 将类名更新为非冲突名称
  • 向导步骤增强
  • 重新设计和重构惩罚模态框
  • 标签自动完成样式
  • 将“请勿打扰”重命名为“暂停通知”
  • 添加文件上传为何禁用的工具提示
  • 更改频道中预览卡的颜色
  • 更新小型操作文本以使用句子大小写
  • 添加新的 boxshadow 变体
  • 更改高亮颜色
  • 在 kbd 标签的元素之间包含空格
  • 新主题横幅的样式更一致
  • 在最大图像宽高设置中添加灯箱信息
  • 在类似搜索中排除静音类别的子类别
  • email_time_window_mins 关闭时省略说明备注
  • 改进小屏幕上用户消息的导航
  • 调整提及中的表情符号大小
  • 在相似性搜索中排除搜索忽略和用户静音的类别
  • 重构并更新小型帖子样式
  • 为开始讨论链接添加 target
  • 改进群组删除对话框的 UI
  • 从聊天消息操作中移除静音
  • 聊天索引重构

性能

  • 避免为匿名查看主题运行冗余书签查询
  • 在 PostGuardian 中缓存主题级别检查
  • TopicView 中移除冗余数据库查询
  • 使聊天提及通知异步
  • 忽略重复的 PresenceChannel 离开/加入调用
  • 优化 TopicLink.topic_map 查询性能
  • 修复主题视图页面上的 N+1 查询问题
  • 修复 /categories 路由上的 N+1 查询
  • TopicQuery.remove_muted_tags 中移除不必要的查询
  • 修复序列化主题发帖人时的 N+1 查询
  • 停止在 ChatChannelSerializer#current_user_membership 中序列化用户
  • 聊天中使用 MessageBus.last_ids 替代 MessageBus.last_id
  • 搜索公共频道时移除不必要的 SQL UNION 查询
  • 为聊天未读计数查询添加索引
  • 预加载聊天时移除不必要的数据库查询
  • 创建新主题时仅执行一次类别更新
  • 改进样式表和主题 JS 的 Accept 头处理
  • 添加 GlobalSetting 以重定向头像而非代理
  • 不取消防抖并防止滚动时 popper 弹出
  • 在数据库事务外部更新 Group#user_count 计数器缓存
11 个赞

帖子已拆分为新主题:User Preferences 仍引用 3.0.0.beta16 中的“请勿打扰”