安全更新
此测试版包含 3 项由社区和 HackerOne 报告的安全问题修复。
- 针对带有负载的 GET、HEAD 或 DELETE 请求返回 413 错误。
- 限制 embed#topics 可执行的工作量
- 为 SVG 上传添加 content-disposition: attachment
插件改进
多个插件
- 错误修复
- 我们已修复了众多插件中的大量错误
代码审查
- 为代码审查类别添加自定义主题
Graphviz
- 从 2.40 版本升级到 2.44 版本
知识探索器
- 添加键盘快捷键
- 将路由移至
/docs
Akismet
- 在卸载前添加清理数据库的任务
检查清单
- 移除对除
[ ]、[x]和[X]之外复选框的支持
Docker 管理器
- 添加插件兼容性检查支持
加密
- 添加自动启用加密的设置
- 在渲染前解密通知标题
翻译器
- 安全修复
数据探索器
- 添加对软删除(隐藏)查询的支持
聊天集成
- 添加 Microsoft Teams 支持
订阅
- 插件正式化
- 允许一次性购买产品
- 支持 3D Secure 支付
- 新的 UX 样式
- 在订阅结束时取消支付,而非立即取消
- 在活动订阅上显示续订日期
分配
- 为群组新增分配摘要页面
日历
- 额外的事件功能与改进
其他功能与修复
[details=“点击展开”]
新功能
- 确保在修复缺失问题时重新生成帖子
- 自动播放嵌入的 Twitter GIF 媒体
- 允许群组成员取消静音类别和标签
- 不通知私聊中标签的变更
- 引入处理遗留损坏上传的任务
- 群组类别权限选项卡
- 在 Firefox Android 上阻止震动
- 在搜索中使用 PG
ts_headline高亮主题标题 - 为搜索添加高级排序
- 投票插件的通知
- 加入群组时设置通知级别
- 投票分解 2.0
- 在 TopicViewWordpressSerializer 中添加 category_id
- 为类别标题新增插件出口
- 从添加成员模态框向群组发送邀请邮件
- 在
/categories页面添加可展开的已静音类别 UI - 如果用户未登录,在错误页面显示登录按钮
- 使用 g,j 和 g,k 导航到下一个和上一个主题
- 允许在帖子中使用 picture HTML 元素
- 支持按天/周/月显示图表
- 允许指定任意的 Unicorn 监听地址
- 支持将 HEIF 图像转换为 JPEG
- 在主题列表中添加跟踪过滤器
- 从移动编辑器预览提交帖子
- 在工作人员操作日志中添加查询参数
- 在标签页面支持
top过滤器 - 添加“在所有者回复时删除”书签功能
- 如果电子邮件更改,触发
user_updated事件 - 使用 CSS Grid 改进头部元数据对齐和截断
- 分段加载隐藏帖子
- 允许视频 GIF 使用 video 标签属性
- 在用户书签列表中添加搜索
- 为匿名搜索添加全局速率限制
- 解析电子邮件签名中的图片
- 在用户文本大小偏好中添加“最小”选项
- 添加 reply_as_new_group_message 编辑器操作
- 如果没有上传内容,仅创建 SQL 备份
- 对于外部认证,可选择跳过创建账户弹窗
- 所有认证方法的 Sso_overrides_(email|username|name)
- 如果用户名更改,触发
user_updated事件 - 始终显示类别定义的网站设置
- 允许禁用搜索中的额外术语注入
错误修复
- 新用户时
user_option选项可能为nil。 - 来自翻译徽章名称的用户标题被自动撤销
- SiteSettings::LocalProcessProvider 在多点站点上无法工作
- Default_tags_muted 设置也应适用于匿名用户
- 通过已删除帖子的标记发送私聊
- 强制使用社交登录进行 2FA 设置时的错误消息
- 删除未使用的标签不应删除属于标签组的标签
- 所有权转移时取消关注自己的帖子
- 投票可以被引用和加载
- 在测试中不要过早取消搜索
- 当主题使用默认配色方案时显示标签
- 在暗色模式下加载页面时不要覆盖 Logo 标记
- 修复 CSS 变量问题
- 使 group_show_serializer#is_group_owner 符合标准
- 加载主题时始终等待 Promise
- 更高效且更具弹性的 widget-dropdown 主体
- 添加 bookmark-list 组件
- 由于 HEIC 导致的编辑器上传图标回归
- 销毁上传时清除卡片和个人资料背景
- 为 Twitter GIF 添加 playsinline
- 允许 Safari 在帖子中加载并自动播放视频
- 重构破坏了向导
- 如果未找到匹配格式,则跳过渲染 Twitter 视频
- 当 iconList 缺失时出错
- 将 iframe 替换为
<video>以显示 Twitter 视频 - 点击类别自动完成行
- 防止当存在标签
constructor时在 /tags 上出错 - 这在 TRAVIS 模式下留下了一个空的示例组
- 确保自动关闭通知使用系统语言环境发布
- 移动端群组添加下拉菜单已损坏
- 延迟主题功能已损坏
application控制器未被卡片使用- DEV: 引入
@bind装饰器 - 粘贴事件监听器被重新添加而非移除
- 将脚本资源位置添加到 worker-src CSP 指令
- 生成主题缩略图作业因损坏图像而无限运行
- 点击自动完成时更新预览
- 防止
LockOn冲突 - 将 queryParams 移至每个发现控制器而非共享
- 刷新功能无法工作
- 在永久链接转换中保留锚点
- 移除未使用的其他类别
- 改进规范以确保修订成功
- 将帖子移至新主题时生成主题摘要
- 确保用户偏好设置中在新标签页打开外部链接的功能在书签列表摘要中有效
- 不要求启用标签即可用于 IMAP 归档和删除
- 允许插件固定以获取缺失的提交
- AWS S3 错误不一定包含消息
- 将控制器方法名称更改为与其新名称匹配
- 关于主题时间的 Heisentest
- 允许版主选择受限类别作为父类别
- 使用非默认主题进行配色方案选择
- 为所有搜索结果暴露 PG 标题高亮
- 将基于 PG 标题的搜索摘要生成限制为 200 个字符
- 尝试使 topic_tracking_state_spec 稳定
- iOS/iPadOS 在更改主题页脚中的通知级别时冻结
- 上传图像时使用正确的网站设置
- 更新配色方案颜色时使缓存失效
- 确保“加载更多目录项”具有 .json URL
- 创建带有标签但无权限的主题时返回 422
- 链接帖子上传时包含安全媒体 URL
- 更新存在插件的颜色
- 已发布页面的标题字体大小更小
- 在配色方案样式表文件名 slug 中同时包含名称和 ID
- 打开汉堡菜单时同步可审查数量
- 移除 persistedQueryParams,因为它应该开箱即用
- 使用
ts_headline生成 tsquery 时指定配置 - 邀请后刷新 PM 参与者列表
- 选择集颜色列表设置中缺少底部边框
- 用户偏好测试并不总是调用 Pretender
- 当列表被过滤时停止同步跟踪状态
- 仅抛出正确的
"error"消息 - Pretender 错误被吞没
- 在测试模式下为损坏的 Pretender 响应抛出错误
- 重写
/my/URL 时替换fullPath - 确保阴影在比较网站设置前具有 last_posted_at
- 尝试输出有用的错误消息
- 如果当前设置类别没有结果,则显示 all_results
- 为
multisite:migrate禁用并发迁移 - 如果多点站点迁移失败,则不运行种子数据
- 不支持大于 999 的摘要
- 主题地图错误地计算了分配操作
- 在移动设备上显示“禁止群组成员”消息
/my/URL 的重写也应适用于子目录站点- 允许更改用户组的通知级别
- 之前的修复提交了错误的东西且已损坏

- 从摘要中排除共享草稿
- 群组管理 UI 中缺少花饰图标的当前值
- 当未设置默认主题时加载基础配色方案
- 检查带有 SHA1 的可选择头像
- IMAP 归档修复和群组列表邮箱代码统一
- Discobot 不适当的标记部分
- 在主题外使用时共享功能的错误
- 从 URL 获取正确的可选择头像
- 从带有负载的无效请求中排除
DELETE方法 - 重置 max_posts 查询参数
- 尊重 latest.rss 的查询参数
- 取消订阅所有时设置 mailing_list_mode 为 false
- IMAP 同步电子邮件更新跨群组的唯一性及小幅改进
- 移除测试模式控制台中的一项错误
- 应允许类别页面使用非 ASCII slug
- 点击导航项时重置 ‘filter’ 查询参数
- 过滤时保留 URL 中的类别名称
- 允许 ‘c’ 作为标签
- 在 EnsureS3UploadsExistence 作业中定义 s3_helper
- 为避免与 AR 冲突,将 delete_when_reminder_sent? 书签方法重命名
- 添加保护以防止在移除帖子书签时自动删除
- 确保主题用户书签在书签自动删除时同步
- 允许帖子中的视频使用 playsinline
- 确保在 RenderEmpty 响应期间设置正确的语言环境
- 减少图表高度
- 防止 group_show_serializer 覆盖基本群组序列化器
- 计算属性弃用
- Page:changed 有时报告错误的 URL
- 恢复群组重定向
- 将 onebox 提升至 2.0.1 以修复引擎优先级问题
Topic.similar_to中原始内容的烹饪片段- 处理
Topic.similar_to中Post#raw为空的情况 - 通过更好的
Topic#title匹配改进Topic.similar_to - 改进 allowed_path 列迁移
- 解决已删除的垃圾主题标记为“非垃圾”后未恢复的问题
- 删除具有锁定信任级别的用户时避免验证错误
- 使用主题标题作为已发布页面的头部标题
- 减少为主机词素注入的术语数量
- 改进匹配版本词素的正则表达式
- 不为版本词素注入额外术语
- 为反应通知添加翻译
- 为反应通知保留 ID
- 使用允许列表和阻止列表术语
- 使用旧路径的测试
- 上传未进行适当测试
- 在更多地方传递
siteSettings - 添加 enable_email_sync_demon 全局变量,并默认禁用 EmailSync demon
- 在 GroupSmtpMailer 中添加 strip_secure_urls 方法
- 除非启用 IMAP + SMTP,否则不显示群组设置的电子邮件选项卡
- 无论种子如何,reindex_search_spec 测试均通过
- 在取消订阅页面显示正确的状态
- 将书签自动删除偏好的常量和翻译移动
- 恢复标签主题列表上的导航栏
- 在匿名缓存键中包含已解析的语言环境
- 使 set_locale 成为 around_action 以避免在请求间泄漏
- 改进代码块的电子邮件样式
- 移除 iOS 技巧以防止聚焦输入时滚动
- 由受信任的垃圾标记者自动隐藏的评价应始终具有足够的权重
- 移除 YouTube 缩略图占位符的边框
- 为 Safari 应用视频预览技巧以仅流式传输
- 在向导中添加系统字体
- 如果用户可以审查主题,则允许用户恢复/删除帖子
NotificationsController#index中的拼写错误未被测试捕获- 忽略已删除的 delete_when_reminder_sent 书签列
- 停止在媒体 URL 上重复预置 window.location.origin
- 测试 fillGapBefore
- 从管理员序列化器中移除
username_lower - 在 S3 清单中保留 by_users 检查
- 如果目标标签已添加,则删除主题中的同义词
- 改进 S3 清单逻辑
- 在分叉服务器中出现 nil 类上的未定义方法错误
- 为表情符号设置宽度/高度以防止懒加载警告
- 在
Auth::DefaultCurrentUserProvider中处理 PG 只读模式 - 在只读模式下添加到缓存失败时不抛出错误
- 在保存后、上传前触发上传前事件,以确保上传有效
- 用户应能够删除自己的排队帖子
- 在 qunit 中焦点测试不可靠
- 我们的 highlight.js 测试构建已损坏
- 测试中直接使用 jQuery
deleted是 Topic 的计算属性- 报告覆盖了 CP
category-drop测试已损坏并覆盖了 CP- 被覆盖的计算属性
- 测试中缺少 favicon
- 列出带有静音混合大小写标签的主题
- 链式日志记录器中缺少应用程序回溯
- 错误地捕获
PG::ServerError - 加载更多帖子时正确计算流计数器
- 测试中损坏的图像路径更少
- 不要使用像
.observes这样的原型扩展 - 涉及日期的测试正在记录警告
passwordRequired是计算属性- 投票测试覆盖了几个计算属性
- 测试中更多的 404 图像请求
- 测试模式下缺少
topic的错误 - 不要加载测试中不存在的图像
- 不再使用工具提示
Discourse.Site已弃用- 为两种 slug 格式显示背景图像
- 插入超链接时缺少标题
- 书签搜索修复
- 当
Topic#title或Category#name更改时重新索引帖子 - 将主题标题添加回 choose-topic
- 更新 meh-o 图标为 far-meh
- 确保比较缩略图大小时使用相同的单位
- JS 测试中更少的 404
- 测试中记录更多错误
- 弃用
usernames现为recipients - 移除更多被设置的计算属性
- 弃用 -
usernames现为recipients - 覆盖更多计算属性
- 从汉堡测试中移除计算属性设置
- 不要在测试中直接使用 jQuery
- 在测试中设置计算属性
- 移除 i18nPrefix 弃用
- 工作人员恢复帖子时移除 user_deleted
- : 仅在用户创建后电子邮件更改时触发
user_updated事件 in:title搜索应仅搜索主题的首个帖子- 搜索页面批量选择按钮位置
- 新和未读计数尊重静音类别
- 如果图像过大则阻止生成缩略图
- 对 iOS 应用视频预览变通方法
- 安全 URL 生成中的回归,跟进 36bad0c
- 启用安全媒体时预加载音频/视频的元数据
- 诱使 Safari 加载视频预览
- topic.notifications.reasons 中的偏移斜杠错误
- 为用户摘要页面添加 noindex 头
- 不要覆盖
maxlength计算属性 loaded是 CP 且不能被覆盖- 在开发模式下静默 route-recognizer 源映射错误
- 静默 ember-qunit 源映射警告
- 添加 popper 源映射
- 在开发模式下正确加载 ember 源映射
- 无法在主题上设置
url,它从 slug 计算得出 currentCategory错误- FilterPlaceholder 是计算属性
topic.details不是纯 JS 对象- 允许 highlightjs-worker 成功编译
- 在按相关性排名时忽略搜索中的文档长度
- 当图片缩放按钮位于链接内时阻止重定向
- 按相关性搜索可能返回错误的帖子编号
- 以防万一主题未设置,添加保护
- 更正
/about爬虫视图中的用户个人资料 URL - 索引搜索时从 URL 中剥离查询
- 为主机词素注入额外词素
- 搜索整个 URL 无法工作
- 对原生批量导入的改进
- 确保聚合搜索显示排名最高的帖子
- 使用高级搜索过滤器时书签模态 UI 的各种改进
- 使用高级搜索过滤器时的错误搜索摘要 take2
- 仅获取电子邮件中正确的折叠标题
- 不要从 oneboxes 中剥离
noopener - 不要在错误的月份颁发“月度新用户”奖
- 从私人上下文中移除社交分享图标
- 在使用前检查最后发帖者是否存在
- 在电子邮件中设置 lang/xml:lang html 属性
- 更新主题点赞计数时跳过耳语帖子
- 略微减少 discobot 用户的虚假延迟
- 上次访问栏回归
- 当认证提供商不提供电子邮件时允许注册
- 用占位符替换可审查项中已删除上传的链接
- 当用户名/名称被锁定时不显示启用的输入
- 同步客户端和服务器端的类别标签查找行为
- 通知点击时帖子菜单书签图标和属性未刷新
- 当 topic_users.bookmarked 错误为 true 时将其迁移为 false
- 与
Discourse::VERSION相关的测试输出 - 不稳定的测试
- 不稳定的测试
- 当未选择群组时邀请中断的错误修复
- 未选择群组时的邀请
- 处理电子邮件时捕获各种异常
- cook-text 中的短 URL 解析
- 如果 Redis 宕机,强制 ActiveRecord 读取角色 take 2
- 如果 Redis 宕机,强制 ActiveRecord 读取角色
- 不要向暂停的用户发送系统电子邮件
getURL弃用- “重新发送所有邀请”按钮未按预期工作
- 将书签名称限制为 100 个字符并截断现有名称
- 停止从 TopicUser.update_post_action_cache 更新 bookmarked 列
- 使用高级搜索过滤器时的错误搜索摘要
- 同时禁用安全密钥和 TOTP 2FA
- 仅向管理员提供禁用 2FA 的选项
- 书签快捷方式跳转到带有提醒的新书签
- 不要高亮大型代码块
- 为投票结果字段设置默认值
- 将用户重定向到具有正确类别 slug 的 URL
- 确保类别顺序保持一致
- 添加表格 CSS 规则以规范化
- 修复解析标签和类别标签时的竞态条件
- 改进类别标签查找
- 改进类别标签查找
- 子子类别可以仅使用两个级别被提及
- 移除对三级标签的支持
- 为投票结果字段设置默认值
- 生成主题缩略图时 nil 到数组错误
- 处理上传在缩小过程中丢失的情况
- 不要在所有点击时重新渲染 widget-dropdown
- CookText 可能在 Promise 解析前消失
OptimizedImage#filesize- 使 Email::Styles 在 HTML 文档而非片段上操作
- 确保与日期一起使用时显示秒
- 将 normalize css 从 3.0.1 更新到 8.0.1
- 生成规范 URL 时跳过隐藏帖子
- 将现有图像上传为网站设置
- 将图像上传为网站设置
- 表情符号自动完成未正确触发
- 将 DOWNLOAD_URL_EXPIRES_AFTER_SECONDS 的时间增加到 5 分钟
- 负限制值不应导致 500 错误
- 在服务器端过滤已读/未读通知
- 当记录已被删除时删除相关搜索数据
- 如果可用,返回上传的 CDN URL
- 支持省略尾随斜杠且具有查询参数的根路径
- 搜索未感知多点站点
- 向非管理员用户隐藏 publish_read_state 选项
- 恢复期间有时并非所有 psql 输出都被记录
- 当不为 0 时 emoji_autocomplete_min_chars 失败
- 从 ThemesInstallTask 更新时更新主题字段
- 由于 cook-text 的元素属性为 null,无法映射上传
- 在所有地方识别无 slug 的主题 URL
- 比较稳定版与测试版时修正版本比较逻辑
- 如果没有建议主题,则序列化空数组
- 种子需要在优化站点图标之前运行
- Published-page-header 应该是 published-page-body 的兄弟节点而非父节点
- 损坏的规范
- 从 robots.txt 中移除路径,改用 noindex 头
- 在烹饪版本上匹配 discobot 触发器
- 无效 URL 不应破坏 store.has_been_uploaded?
- 避免在只读模式下将通知标记为已见
UX 变更
- 当没有未使用的标签可删除时,更好的措辞
- 帮助用户理解每个范围的含义
- 对用户和群组卡片简介使用相同的格式
- 预加载已静音类别列表以防止渲染延迟
- 确保搜索结果在移动设备上换行
- 使用系统语言环境设置 silence_reason
- 更新移动应用 WebView 中的头部背景颜色
- 确保 CSS 变量在向导样式表中加载
- 重构 pikaday 月份上/下个月按钮样式
- 重构灯箱悬停投影
- 为编辑器输入/文本区域统一焦点样式
- 允许使用 Tab 和 Enter 导航 widget 下拉菜单
- 修复移动设备上编辑器预览的间距
- 在 iOS 中按下完成时一致地缩小编辑器
- 改进全页搜索的对齐和一致性
- 修复引用分享按钮的间距
- 如果版主不允许邀请加入群组,则显示更好的错误消息
- 如果版主不是任何群组的拥有者,则不显示邀请加入群组的选项
- 修复合并选定帖子时缺失的图标
- 在邀请模态框中使用群组选择器
- 修复长书签笔记的布局
- 通过始终拥有默认值简化电子邮件模板编辑
- 在管理员视图中添加用户电子邮件偏好的链接
- 移除编辑器预览中由图像调整控制添加的额外空格
- 恢复表格边框
- 在外部认证账户创建期间隐藏登录按钮
- 默认抑制电子邮件中的“回复”部分
- 在移动用户卡中截断长徽章名称
- 如果用户未登录,在 403 错误页面添加登录按钮
性能
- 并发删除索引 idx_regular_post_search_data
- 在迁移期间删除 idx_regular_post_search_data
- 提高 post_search_data 迁移的性能
- 确保事务大小最小化
- 为非私聊搜索添加部分索引
- 对于
User#private_posts_for_user,优先使用连接而非子查询 - 移除搜索中的额外子查询
- 在
SearchIndexer中切换到 ActiveRecord 的 upsert - 更快的 TL3 晋升所需回复计算
- 我通过仅执行 1 次查询提高了 ‘notify_reviewable’ 作业的性能
- 限制用于生成搜索摘要标题的字符数
- 使用 PG 标题进行摘要生成和搜索高亮
- 索引时替换搜索摘要中的视频和音频链接
- 优化
ActionView::Helpers::TextHelper#excerpt - 当下载的图像被移除时释放 post_upload 记录
- 将 URI 正则表达式移至
GroupSearchResults.blurb_for中的常量 - 搜索时减少一次对 Redis 的调用
- 为多点站点集群预加载 S3 清单数据
- 避免为每次搜索用 Nokogiri 解析
Post#cooked - 将 avatar_lookup 和 primary_group_lookup 合并为 user_lookup
- 通过移除未使用的主题属性来减小搜索负载大小
- 将 highlightjs 移至后台工作线程,并添加结果缓存
- Topic_view 参与者帖子计数:不返回 ID 列表
- 缓存用户摘要数据
- 添加 user_id 条件以便在查询中使用另一个索引
- 在 user_post_bookmarks 中为用户加载主题书签
- 在每日 EnsureS3UploadsExistence 作业中移除 post_upload 恢复
- 在默认主题列表负载中不包含缩略图信息
- 使用帖子编号在 mega 主题中创建规范路径
- 仅在 etag 更改时更新
- 重构灯箱装饰器以使用 querySelectorAll
- 以更高效的方式检查模态可见性
- 从
SearchTopicListItemSerializer中排除image_url和thumbnails - 缓存所有元数据 60 秒
- 记忆化烹饪触发器
- 当不需要时停止向搜索添加更多主题