Discourse 版本 2.4

Focus

Codename

Start date

June 18th, 2019

Release date

Feb 25th, 2020

49 个赞

新功能

  • 限制每个用户的通知数量为 10,000 条
  • 当可审查的认领者变更时发布消息 (#9019)
  • 管理员可配置重新标记的冷却时间窗口,并设置由 TL3+ 用户标记为垃圾邮件的帖子是否自动隐藏 (#9010)
  • 在登录/创建下方添加插件出口,并为移动端添加出口
  • 支持上传包含用户邮箱或用户名的 CSV 文件 (#8971)
  • 除非帖子被编辑或超过 24 小时已被审查,否则用户不能使用相同理由重新标记最近处理过的项目 (#8969)
  • 新增用于装饰插件出口的插件 API (#8937)
  • 改进书签功能第二部分 —— 主题书签 (#8954)
  • 导出 defaultRenderTag 函数 (#8941)
  • 添加小型操作帖子以指示转发的邮件
  • 即使未通过最低优先级阈值,待处理的队列帖子也会被包含在内 (#8925)
  • 在认领和取消认领可审查的标记帖子时添加日志记录 (#8920)
  • 支持视频标题标签/属性 (#8914)
  • 新增信任等级增长报告 (#8878)
  • 为使用自定义用户代理进行单框显示的特定主机添加站点设置
  • 允许单选项投票 (#8853)
  • 确保始终在 Web 清单中填充 short_name
  • 在 SSO 提供者协议中添加登出功能 (#8816)
  • 为点赞添加触觉反馈
  • 将可疑用户发送至审查队列 (#8811)
  • 用户可在其个人资料中推荐任何公开主题 (#8809)
  • 为投票添加“群组”选项 (#8469)
  • 当管理员被自动停用时添加日志消息
  • 允许同时搜索公开主题和个人消息 (#8784)
  • 使用联系人选择器 API 进行邀请
  • 使用批量授予功能时替换现有徽章所有者 (#8770)
  • 在帖子移动、主题转换或分类变更时更新上传安全状态 (#8731)
  • 在编辑器中对视频和音频使用 upload:// 短 URL (#8760)
  • 导出所有类型的报告 (#8748)
  • 恢复后 7 天删除“备份”模式
  • 仅包含 1 到 3 个表情符号的行将显示为大号表情符号
  • 通过分类级别隐私和基于帖子的访问规则实现安全媒体,允许重复上传 (#8664)
  • 允许在全局通知中定义忽略持续时间 (#8715)
  • 添加隐藏设置以禁用库存桶的配置
  • 批量授予徽章 (#8694)
  • 将排除的用户名传递给用户选择器 (#8695)
  • 使用新的徽章 API
  • 添加用于禁用安全媒体的 Rake 任务 (#8669)
  • 默认启用 CSP (#8665)
  • 支持使用许可证密钥下载 MaxMind DB
  • 互联网浏览器弃用全局通知 (#8577)
  • 主题管理菜单在移动端固定于底部 (#8620)
  • 允许插件添加全局通知 (#8552)
  • 允许对撤销的处罚进行 TL3 晋升
  • 允许插件传递复杂的帖子参数 (#8598)
  • 添加 mybb.ru 导入脚本 (#8609)
  • 打开主题管理菜单的键盘快捷键 (#8568)
  • 使“重新排序分类”支持嵌套分类 (#8578)
  • 个人资料推荐主题模态框及管理员扳手重构 (#8545)
  • 完全从 CSP 中移除 unsafe-eval
  • 在 rake admin:create 中密码不匹配时添加消息 (#8543)
  • 在数据库中哈希 API 密钥 (#8438)
  • 创建 IE 支持插件 (#8520)
  • 当组件被添加但未分配时发出警告 (#8482)
  • 用户个人资料的推荐主题及卡片 (#8461)
  • 添加站点设置以移除 X-Frame-Options
  • 标签同义词
  • 在 Web 钩子帖子序列化器中添加 topic_filtered_posts_count 属性
  • 能够将所有活动组件添加到主题 (#8447)
  • 添加隐藏设置以允许在 CSP 中使用 unsafe-eval
  • 紧邻新建主题按钮的插件出口 (#8443)
  • 支持将用户名列表粘贴到私信中
  • 改进可疑用户发现机制
  • 使站点文本控制器处理页面和区域设置 (#8408)
  • 能够将组件添加到所有主题 (#8404)
  • 整合群组成员资格请求通知
  • 限制用户的活动会话数量 (#8411)
  • 根据 DMARC 裁决隐藏来自传入邮件的帖子 (#8333)
  • 投票结果的饼图选项 (#8352)
  • 在核心用户选项中添加时区 (#8380)
  • 新 API 用于对审查队列应用自定义过滤器 (#8392)
  • 添加导出投票按钮 (#8370)
  • 支持 WebAuthn 的 RS256 算法 (#8385)
  • 改进邮箱变更工作流
  • 规范化服务工作者路由 (#8359)
  • 移除对 ‘suppress_from_latest’ 分类设置的支持 (#8308)
  • 默认阻止 Screaming Frog SEO 蜘蛛
  • 引入基于 IP 的默认应用级速率限制
  • 添加对安全媒体的支持 (#7888)
  • 按日期范围筛选可审查项目 (#8354)
  • 允许将搜索范围限定到标签 (#8345)
  • 按分类忽略新项目 (#8330)
  • 向新 TL2 用户发送消息并引导他们查看高级教程 (#8335)
  • 当只有一个验证器时自动重定向到验证器
  • 支持默认静音所有分类 (#8295)
  • 允许 FinalDestination 为特定主机使用自定义用户代理
  • 当标签被添加到帖子时通知标签关注者 (#8299)
  • 无需 JS eval 即可加载翻译覆盖
  • 彻底重构管理员 API 密钥系统 (#8284)
  • 为管理员添加欢迎消息 (#8293)
  • 为额外导航项添加“初始化”方法
  • 允许在本地或全网发布 Docker 开发环境
  • 如果灯箱中没有标题,则回退使用图片的 alt 文本而非文件名 (#8286)
  • 在带参数的嵌入页面上创建新主题按钮 (#8280)
  • 用户偏好设置中默认标签的新站点设置 (#8283)
  • 分类可要求主题必须包含来自标签组的标签
  • 当默认站点设置更改时,可选择更新所有用户的偏好设置
  • 停止为消息和低语更新用户的 last_posted_at
  • 允许向暂存用户发送批量邀请
  • 移除附件并截断传入邮件的原始字段 (#8253)
  • 站点设置/界面允许用户设置其主要群组 (#8244)
  • 将 SES 垃圾邮件头添加到已识别的垃圾邮件头 (#8254)
  • 欢迎版主消息 - 添加复制功能!(#8246)
  • 为群组私信添加记住主题列表功能 (#8235)
  • 在自定义邮件样式中支持 SCSS
  • 允许维基编辑者为维基主题编辑标签
  • 在主题序列化器中包含图片 URL
  • 记住私信列表中的滚动位置 (#8212)
  • 记住私信列表中的位置
  • 实验性隐藏设置用于草稿备份
  • 允许工作人员使用 topic_url 自定义邮件模板
  • 改进蜜罐和挑战逻辑
  • 当站点设置更改时,可选择更新所有用户的分类偏好 (#8180)
  • 在 ‘nofollow’ 旁使用 ‘ugc’ rel 属性
  • 在登录页面标题中添加简短站点描述
  • 在编辑器中添加链接时搜索主题 (#8178)
  • 支持 bin/turbo_rspec 中的 --fast-fail
  • 在插件中也加载 pretenders (#8173)
  • 显示 API 密钥的创建日期和最后使用时间
  • 重新设计的 GitHub 单框显示
  • 添加站点设置以显示更详细的 404 错误 (#8014)
  • 对所有外部认证方法使用全页重定向 (#8092)
  • 改进 GitHub 提交、PR 和问题的单框显示渲染
  • 加权可审查用户准确率 (#8156)
  • 不准确的用户具有负的审查准确率
  • 在用户偏好设置中创建新验证器时添加名称输入框
  • 为验证器输入框添加占位符
  • 在解压缩文件时增加额外保护层
  • 允许 UploadRecovery 在单个帖子上运行 (#8094)
  • 使用 2FA 登录(安全密钥)管理 WebAuthn 验证器 (#8099)
  • 在帖子 Webhook 负载中添加主题和分类上下文 (#8110)
  • 验证主题标题中的屏蔽词 (#8127)
  • 支持 PWA 清单中的可屏蔽图标
  • 使分享按钮支持自定义 JavaScript (#8090)
  • 白名单 allowfullscreen iframe 属性 (#8086)
  • 更新 mini_scheduler 以支持历史记录过滤
  • 允许嵌入忽略 HTTP REFERER
  • 用户菜单中的快速访问面板 (#8073)
  • 针对 >= tl2 用户的新帖子编辑期限 (#8070)
  • 为新帖子添加 tl2 编辑阈值
  • 在主题列表嵌入中添加主题创建者用户名
  • 添加主题前插件出口
  • 弹出窗口显示更详细的可审查项目评分 (#8035)
  • 提高匿名缓存性能
  • 在群组导航中支持数据探索器出口 (#8063)
  • 跟踪 API 密钥最后使用日期
  • 嵌入带有详细元数据的主题 (#8062)
  • 匿名缓存向记录器报告数据
  • 新的 ‘Discourse-Render’ HTTP 头
  • 恢复标记帖子时通知发帖人
  • 使用 Discord 登录 (#8053)
  • 不将 ↔ 替换为表情符号
  • 用于与 iOS/Android 原生应用链接的站点设置
  • 在所有初始化器后添加钩子
  • 允许主题上传 JS 文件作为资源
  • [date] 添加倒计时属性 (#8037)
  • 在使用 TLS 1.3 0-RTT 时防止重放攻击 (#8020)
  • 允许插件在备份恢复期间操作站点设置
  • 在 JavaScript 中将 theme_uploads 视为设置
  • 在群组消息上发布读取状态 (#7989)
  • 将 PWA 安装提示整合到 Discourse UI 中 (#8013)
  • 收藏的表情符号也会在编辑器自动补全中显示 (#8011)
  • 为用户通知添加 Webhook
  • 仅限工作人员的投票结果 (#7984)
  • 通过 JavaScript API 在远程站点嵌入主题列表 (#8008)
  • 支持群组成员可见性级别 (#8004)
  • 为投票构建器添加预览 (#7988)
  • 允许主题覆盖颜色转换变量 (#7987)
  • 兑换邀请时的外部认证
  • 添加设置以在主题中显示转发邮件的内容 (#7935)
  • 添加选项以始终在邮件中发送摘要
  • 当成员被接受加入群组时发送通知 (#7614)
  • 在安全分类中提及以优先处理群组
  • 允许帖子处理互斥锁保持更长时间
  • 在已关注词语管理界面中添加测试功能
  • 改进 rake db:stats 提供的统计信息
  • 在关于页面列出分类版主 (#7916)
  • 自定义 HTML 邮件 (#7934)
  • 当 base_url 变更时生成新的 VAPID 密钥
  • 实时同步未读状态到主题列表 (#7933)
  • 将附件添加到发出邮件
  • 添加搜索操作符以查看来自某用户的所有直接消息 (#7913)
  • 已关注词语改进 (#7899)
  • 允许下载已关注词语
  • 允许批量清除已关注词语
  • 当帖子被屏蔽时列出其中包含的所有屏蔽词
  • 允许查看可审查队列帖子的原始邮件 (#7910)
  • 在将私信公开时允许选择分类 (#7907)
  • 允许过去 6 个月无处罚的用户成为 TL3 (#7892)
  • 批量邀请每分钟最多发送 200 封邮件 (#7875)
  • 创建用于销毁分类的 Rake 任务
  • 新的日期/时间组件 (#7898)
  • 导出从 Gz 转换为 Zip (#7889)
  • 管理员/用户导出使用 Zip 格式压缩 (#7784)
  • 创建用于销毁分类的 Rake 任务
  • 允许自定义 robots.txt (#7884)
  • 使用 WorkboxJS 使 Discourse 离线工作 (#7870)
  • 在精美主题标题中使用配置的引号
  • 用于排版引号的站点设置
  • 管理员/用户导出使用 Zip 格式压缩 (#7784)
  • 当 S3 或 CDN 变更时在恢复期间重新映射上传
  • 添加隐藏设置以将 S3 上传包含在备份中
  • 允许在帖子通知中使用 Markdown (#7864)
  • 在无 Ember 布局上显示登录和注册按钮 (#7867)
  • 为群组发布选项添加“群组所有者”
  • 为“已登录用户”添加新的群组可见性选项 (#7814)
  • Rake 主题安装器 (#7848)
  • 添加白俄罗斯语
  • 为无法访问主题的用户提供可选指导 (#7852)
  • 登录时重定向到内部链接支持查询参数 (#7829)
  • 允许禁用主题组件 (#7812)
  • 为关联账户行添加 CSS 类
  • 在极端负载下禁用搜索
  • 从主题预填直接消息的标题
  • 在管理员用户列表页面添加无限滚动 (#7821)
  • 服务端 In:tagged 搜索 (#7822)
  • In:tagged 和 In:untagged 高级搜索过滤器
  • 导出支持表格模式的任何类型报告 (#7662)
  • 启用时在搜索菜单结果中显示标签 (#7819)
  • 添加对标签组搜索的支持
  • 支持多个 TOTP 因素 (#7626)
  • 添加单独更新主题设置的端点 (#7789)
  • 搜索时对已关闭主题施加轻微惩罚 (#7782)
  • 为新表情符号提供早期支持 (#7785)
7 个赞

BUG FIXES

  • Make reviewable claiming work with deleted topics (#9040)
  • Sync Ember and non-Ember layouts (#9028)
  • Ensures topic count is correctly showing in box category badges (#9034)
  • Translate none-tag and all-tags labels in tag filter (#9030)
  • Ensures scoped search category is searching in all categories (#9031)
  • Ensures we don’t attempt to create a new PM on an existing topic (#9029)
  • Blank popular posts in summary emails due to lightbox images
  • Ensures group automatic membership dropdown works (#9022)
  • Muted was not working in topic timeline (#9021)
  • Ensure web hooks are retried at most 5 times
  • Correctly shows suggested topics label (#9017)
  • Ensures mini-tag-chooser is respecting max_tags_per_topic (#9018)
  • Use dedicated site attribute in category + tag filtered pages too.
  • Consider webp a supported image format for upload (#9015)
  • Only mark attachments as secure media if SiteSetting.secure_media? (#9009)
  • TOTP could not be used on sites with colons in their names
  • Restore initState() call within discourse-location for subfolder
  • Respect prioritize_username_in_ux setting in email
  • Correct upload statistics report for external storage
  • When admin changes staff email still enforce old email confirm (#9007)
  • When admin changes another user’s email auto-confirm the change (#9001)
  • Remove broken error dismiss button
  • Respect muted tags for mailing list mode
  • Minor linting issue for future rubocops
  • Disable save button for API key creation when invalid (#9005)
  • Patch ActiveRecord SchemaCache for safe concurrency support
  • Remove border-box from modal-body to avoid iOS fixed position bug
  • Makes setting-object capable of defining value/name properties itself (#9003)
  • Prevents setting default values on setting component to reload page
  • Prevents notifications button to be cutoff on mobile (#8998)
  • Enums should be treated as flat arrays (#8995)
  • Group members dropdown was broken on mobile (#8994)
  • Remove anchors from banner headings.
  • Mentions updater should work regardless of .notify
  • Group mentions were not being cooked the same was as previewed
  • Ensures report-filter/category is correctly filtering (#8992)
  • Use ‘hostname’ when Discourse.os_hostname is not available
  • Disable poll options if user groups do not allow them (#8987)
  • Strip video oneboxes from excerpts
  • Some select-kit dropdowns were cut-off by hidden overflow in modals
  • Use separate site attribute for single category “top tags” list.
  • Use correct translation string
  • Sk body should follow wrapper width (#8984)
  • Prevents error when loading tag groups (#8983)
  • Prevents expand post to trigger page routing (#8982)
  • Tweak upload security emoji check (#8981)
  • Improvements and fixes for update_upload_acl rake task (#8980)
  • Never mark uploads based on regular emoji secure (#8973)
  • Invalid syntax in elsif in Theme importer
  • Toolbar menu specificity
  • Username mentions lost styling
  • If a group is unmentionable, don’t render it as mentionable
  • Tag topic counts wrong after adding synonyms
  • Value-list choices when removing a value
  • Confirm draft_key is present on GET
  • Return a 404 when the draft_key is missing
  • Prevents everyone group to show as group option for polls (#8957)
  • Brings back castInteger as a safer migration path for sk2 (#8966)
  • When unread reply notification exists don’t create new (#8921)
  • Dont create new notification if already exists
  • Update Site.top_tags in “categories” route if topic list available.
  • Never allow custom emoji to be marked secure (#8965)
  • Displays selection text when no default_notification_level is set (#8962)
  • Don’t remove the topic image if posts don’t have them
  • Ensures shortcuts work correctly with topic-notifications-button (#8956)
  • Ensures select-kit can select a row with 0 as value (#8955)
  • Handle SSO Provider Parse exception
  • Linking to a category via hashtag had a broken URL.
  • Correctly compile theme template overrides (#8946)
  • Use plain text if available instead of image upload.
  • Regression with wizard canvas elements
  • Don’t count ignored, missing uploads in migration to S3
  • Remove pie draw animation (#8940)
  • Avoid highlight mention to groups that are not public.
  • Make inline oneboxes work with secured topics in secured contexts (#8895)
  • Subfolder sites rewriting URLs to root domain on initial load (#8932)
  • Date was not mutated when changing it in change-timestamp modal (#8935)
  • Avoid highlight mention to groups that are not public
  • Don’t use theme colors for digest unsubscribe footer links
  • Correctly excludes current user in user-chooser (#8928)
  • Makes user-selector use real booleans (#8909)
  • Render HTML for pie chart options (#8912)
  • Polyfill String.startsWith function for IE11
  • Make category slug validation less strict (#8915)
  • Disable preloading audio + video when secure media enabled (#8922)
  • Ignore group mentions inside quotes (#8905)
  • Removes limit for trust level growth report (#8908)
  • Makes tag-{info,list} more specific to avoid styling other elements (#8902)
  • Flair icon being removed when updating other profile info
  • Skip absolutizing URLs when source URI is invalid
  • Properly convert quotes to Markdown (#8808)
  • Ensure s2 is working with wizard (#8886)
  • Reset edit_reason in posts when creating a new version.
  • Strip audio/video content from excerpt (#8881)
  • Prevents ac wrap to overflow on group-add-member modal (#8882)
  • Remove post/topic image_url on post edits
  • Spoiler logic should live inside of spoiler plugin
  • Ensures we have a proper component name (#8876)
  • Recovered posts with no user will be taken over by system user (#8834)
  • Replaces fake null value by clearable option (#8875)
  • Show detailed error messages for category pages. (#8832)
  • Tag info misleading message saying it’s not restricted
  • Opening new topic draft never creates post (#8828)
  • Corrects min/max logic for mini-tag-chooser (#8871)
  • Simplify maximum/minimum logic in sk2 to avoid chicken/egg (#8868)
  • Allow submitting various forms via keyboard (#8866)
  • Don’t leak event listeners (bug introduced in 999e2ff)
  • Add support for sub-sub-categories in base_importer
  • Allow both meta_data and custom_fields when creating a topic
  • Topic progress bar shouldn’t show up on desktop (#8854)
  • Edit title respects min trust to edit post
  • Prevents firefox to generate a click event on space (#8856)
  • Ensures tags-admin-dropdown is working correctly with sk2 (#8852)
  • Links in category box descriptions should be clickable
  • Labels were switched in the wizard for privacy options
  • Warn users of overwriting new topic draft (#8841)
  • Featured topic title on profile HTML parsed (#8850)
  • Prevents exception on /admin/badges page when model is not set (#8849)
  • Email attachments with a size of 0 bytes caused error
  • Sort out the route navigation in admin/email-style (#8837)
  • Better error messages when name is too long
  • Restore up/down icons in period-chooser
  • Never return the same reply more than once via reply_ids
  • Make dropdown custom user fields compatible with select-kit 2
  • Don’t return post replies from other topics
  • Off-by-one error setting the distributed mutex key to expire
  • Check parameter types
  • Admin user list not showing 2FA icon for only security keys enabled (#8839)
  • Suppress notification flood when post is edited (#8838)
  • We don’t want to update the post read count and user stats if the post timing wasn’t created due to a conflict. (#8824)
  • Use updated_at in the S3 inventory job (#8823)
  • Serve .ico files without nginx 404 for secure media uploads (#8826)
  • Stop encoding presigned URLs with UrlHelper (#8818)
  • Import sub-sub-categories (#8810)
  • Ensure ‘unless’ helper resolves variable name once (#8820)
  • Disallow featuring hidden topics (#8814)
  • Stop secure media URLs being censored too liberally in emails (#8817)
  • Customized email subjects was ignored for some notifications
  • Set showFooter to true on group topic list (#8795)
  • Wrap markdown videos with video-container class to stop post height jumping (#8806)
  • Blank cooked markdown could raise an exception in logs
  • Mitigate issue where legacy pre-secure hotlinked media would not be redownloaded (#8802)
  • Correct notification when tag or category is added (#8801)
  • Award “User of the month” badge at the beginning of month
  • Uploads:s3_migration_status rake task was broken
  • Export all category names in user archives (#8790)
  • Apply like based badge based off grant date
  • Undefined method ‘title’ for nil:NilClass in PostAlerter#create_notification
  • GetURL on a subfolder site should ignore prefix in middle of URL (#8794)
  • Post reviser picking up edits for hidden posts (#8792)
  • Improve downsize_uploads (#8409)
  • Adjust the broken image placeholder border (#8781)
  • Failed to notify user after restoring backup
  • Add ‘noindex’ header to rss feed responses.
  • Resolve pull hotlinked image and broken link issues for secure media URLs (#8777)
  • Topics sorting in tag pages is broken.
  • Ensure sourcemap’s source is correct. Uses the full assets path this time. (#8774)
  • Redis fallback handler refactoring (#8771)
  • A separate FallbackHandler should be used for each redis pair
  • Create frozen copies of passed in config where possible
  • Extract start_reset method and remove method used by tests
  • Use presigned URL to avoid 403 when pulling hotlinked images for secure media (#8764)
  • Re-apply sourceURL in development mode
  • Featuring topic on other users profile shows their topics (#8769)
  • Notify staged users about private categories (#8765)
  • Show category list on subcategory page if it has subcategories too (#8768)
  • Ensure sourcemap’s source is correct
  • Show all parent categories on topic page (#8767)
  • Quoting a quote preserves the original post information (#8746)
  • Ensure only edited badge titles update a users title
  • Use schema.org’s BreadcrumList
  • Categories_breadcrumb helper to support more than 2 levels of categories.
  • Use new tag routes (#8683)
  • Workaround limitation in jquery.autoellipsis (#8747)
  • Higher z-index for usercards in the header
  • Do not extract dates from quotes and Oneboxes (#8754)
  • Allow the app to generate and accept longer backup codes (#8761)
  • Incorrect locale in badge granter (#8749)
  • When tag or category is added notify users that topic was modified (#8750)
  • Do not error in excerpts when aside tag has no class attribute
  • Make topic query include topics from sub-sub-categories (#8709)
  • Make category-chooser show all parent categories (#8706)
  • Users should be able to remove their primary group
  • Don’t override timezone on every visit of profile preferences
  • Don’t cause exceptions due to rename of reply_id column
  • Show PM icon in docked header
  • Applies correct styles to icon and attempts to dry code (#8739)
  • Do not increase size of emojis in markdown tables (#8742)
  • Reload the ReviewableScore types when extending flags (#8740)
  • Include sub-sub-categories in new/unread counts (#8710)
  • Change additional public uploads to not be secure (#8738)
  • Groups pagination was broken
  • Change rootNone behavior in category-chooser (#8692)
  • Add missing translation key for narrative bot Italian locale.
  • Styling for feature topic on profile modal (#8727)
  • Show error message if the topic deletion fails (#8723)
  • Correctly wrap image and resize controls inside paragraph (#8718)
  • Better error message when topic deletion fails
  • Create post notices only for public posts (#8708)
  • Group membership leak
  • Raised a proper NotFound exception when filtering groups by username with invalid username.
  • Properly filter the groups based on current user visibility when viewing another user’s groups.
  • Spec for groups_controller#index when group directory is disabled for logged in user.
  • Groups_controller.sortable specs to actually test all sorting combinations.
  • Rewrote the “view another user’s groups” specs to test all group_visibility and members_group_visibility combinations.
  • Ensures group-navigation states changes when route changes (#8724)
  • Ensures secondary menu of user notifications mobile nav reloads (#8716)
  • Update user-selector excluded usernames after insert (#8711)
  • Update featured badge ranking when mass-awarding badges
  • Moves back padStart/padEnd to core polyfills (#8714)
  • Specs with old filename
  • Use CDN for the discourse-internet-explorer
  • Remove padding while composer is saving
  • Ran prettier on user-selector-test (#8700)
  • Make ‘findBySlugPathWithID’ when URL ends with a slash (#8699)
  • Prevents url of file from being pasted when pasting file on iOS (#8693)
  • Don’t log a claimed topic database error during tests
  • Stop logging errors in postgres on reviewable conflict
  • Decompressing lots of small files triggered error
  • Allow users to change title in locales other than English
  • Do not redirect to /auth/* urls after authentication
  • If the admin sso sync has no external ID, don’t throw an error
  • Don’t leak event listeners in user-activity-drafts (#8682)
  • Allow omniauth confirmation page to pass through GET parameters
  • Add noindex header to user profile pages.
  • Make scrolling to bottom post in topic more consistent (#8671)
  • Ensure we consistently pick the same topic for bench
  • OnScroll method was not defined on mobile discovery (#8672)
  • Topic_tracking_state when mute_all_categories_by_default is enabled
  • Only agree with the first post when using the ‘Delete post + replies and agree’ option
  • Cached new topic data should not be deleted after dismiss new (#8660)
  • New/unread count after dismissing new topics in a regular category (#8659)
  • Allows scroll on load for discovery topic list (#8661)
  • Bulk insert to create application requests
  • Bulk insert to create topics
  • No need to create separate user for each topic, post etc.
  • Another bulk_insert of ApplicationRequests
  • Dont create user and topic instances when not neccessary
  • Merge examples with expensive setup into one example
  • MaxMind DB file not downloading correctly
  • Keep ‘rb’ & ‘rp’ tags in html to markdown conversion.
  • Ensure CSP is off for qunit
  • Show uncategorized description on categories page
  • Descriptions were blank for uncategorized in hamburger menu
  • Add a blank poll options validation (#8652)
  • Don’t give error 500 when invalid date param is given to admin reports (#8658)
  • Allow underscore in file extension while downloading the uploads.
  • Correctly account for onebox height when lazy loading images
  • Any global notice text can contain HTML (#8655)
  • Bots accuracy should be zero (#8654)
  • Allow any protocol in wildcard url checker (#8651)
  • Avoid superflous logging when mime type is bad
  • Under rare conditions saving a new draft could error temporarily
  • Catch error when unknown COSE algorithm is supplied for Security Key (#8649)
  • Trigger commands are different for each locale, account for that.
  • Only show admin wrench when there are actions on mobile
  • Don’t display cloak on admin tool when the right wrench is clicked (#8641)
  • Visual improvements to admin topic menu (#8638)
  • Use cached MaxMind DB for longer
  • Open a card on click even if the mention has extra elements (#8626)
  • The ‘reviewed’ status filter should include deleted elements (#8630)
  • Update topic/post counter correctly when category has zero topics (#8600)
  • Makes highlighting last viewed topic more resilient (#8624)
  • Correctly styles pwa consent banner (#8623)
  • Allows global_notice site setting to contain html (#8622)
  • Cache_critical_dns was erroring without IPAddr
  • Correctlt styles notification-consent-banner (#8621)
  • Track correct site setting
  • English and US date/time formats
  • Better error message when forum is in read-only mode
  • Update normalize css from 3.0.1 to 8.0.1 (#8591)
  • Correct description for out of love badge (#8615)
  • Everyone can see poll results when on_vote and closed (#8613)
  • Bug when revoking badge as title (#8616)
  • Category routes model params should decode their URL parts (#8612)
  • Ensure that we encode a slug only once if slug generation method is encoded
  • Give expanded CSS/HTML editor >`0 height
  • Label helpers on sign up form are not hidden (#8603)
  • Remove rerenderTriggers
  • Remove full nested quotes on direct reply (#8581)
  • Show signup input tips and improve spacing
  • Limit requests and include data when reporting deprecated icons
  • Correct user serializer user method for extended serializer (#8590)
  • Include Symbol polyfill for IE11
  • IE11 compatibility for readonly check
  • Show parent and subcategories for 2nd level categories (#8579)
  • Prevent errors in IE11 following AJAX request
  • Add missing Object.entries polyfill for IE11
  • Show new/unread button when a new topic or post is created (#8576)
  • Parallel spec system needs a dedicated upload folder for each worker. (#8547)
  • Move IE specific CSS rules to discourse-internet-explorer plugin (#8567)
  • Remove ‘staff_only’ results option for non-staff (#8565)
  • Fix choose-topic component to search by url (#8574)
  • Avoid String.matchAll for IE11 support
  • Use updated_at date to denote expired invites (#8521)
  • Prevents crash in discourse_tagging with empty term (#8548)
  • If a prettified slug is a number, return defaultt (#8554)
  • Require: false for rotp gem (#8540)
  • Category id in filterCategory (#8555)
  • Ensure currentUser exists before getting ID
  • If we run db:migrate on its own, it should load the environment
  • Migration paths were being forgotten
  • Allow IE script to load with a CDN
  • Granting staff status should auto-approve users waiting approval (#8533)
  • Granting staff status should auto-approve users waiting approval
  • Constraint error when inserting the same topic group twice
  • Cache short upload URL (#8541)
  • Disallow c as a tag
  • Disallow none as a category slug
  • Hide old bookmark button on post-menu if SiteSetting.enable_bookmarks_with_reminders
  • Replace deprecated URI.encode, URI.escape, URI.unescape and URI.unencode (#8528)
  • Update S3 stubs for more aws-sdk API changes (#8534)
  • Add new content type for theme/component
  • Don’t raise an error if the user is not present
  • Prevent scientific notation in free space check (#8473)
  • Always add username span in quick access item (#8526)
  • Reorder categories not working
  • Alphabetical tag sorting in mini-tag-chooser
  • Tag input doesn’t show all top 5 permitted tags
  • Ensures slug and id are not arrays (#8495)
  • Muted tags are respected by TopicTrackingState (#8467)
  • Don’t try to create an empty tag when updating a topic (#8481)
  • Default draft key in openComposerWithTopicParams (#8496)
  • Optimize images in Onebox (#8471)
  • Do not autocomplete categories or emojis in code blocks (#8459)
  • Crawler requests not tracked for non UTF-8 user agents
  • Skip validation on enforcing second factor change if the value is “no”
  • Avoid unpinning composer on iOS when invoking emojis
  • Ignore DMARC for emails sent to mailing list mirror
  • Image file names with dots were showing incorrectly in composer markdown (#8465)
  • Login page that redirects to preferences was broken
  • Redirect to /login-preferences didn’t work for subfolders
  • Anonymous cache regression
  • Export poll UI should only show for admins
  • Keep ruby & rt tags in html to markdown conversion.
  • Secure Upload URLs in lightbox (#8451)
  • BufferedValuesString.split is not a function (#8463)
  • Prevents multiple jumps to happen with LockOn (#8460)
  • Allow for nil upload record when migrating to S3
  • Ensures the element is on the page before scroll with lockon (#8458)
  • Use filtered posts when determining the next page
  • Add a component to all themes takes only active ones
  • Move select components/themes to top
  • Improve defaultIsAvailable
  • Add filter(Boolean) and remove btn class
  • Inbound link when the only slug available (#8457)
  • Don’t allow category slugs to be entirely digits
  • Respect enable_inline_emoji_translation setting in titles
  • Prepends whitespace when inserting via emoji picker
  • Filter readers avatars correctly when the post is a whisper
  • Guarantee order to correctly defer replies in review queue (#8426)
  • 500 error for missing badge grouping (#8446)
  • Hide pie legend when results are grouped (#8445)
  • Poll pie container was too large (#8444)
  • Do not autocomplete categories or emojis in code blocks (#8433)
  • Generate redirect URL correctly when using a subdirectory
  • Handle none path correctly with three levels
  • Ensures censor has always at least an empty string to handle (#8442)
  • Delay the ‘send_advanced_tutorial_message’ job to prevent race conditions
  • Optimize quoted images (#8427)
  • Add a unique index to developers table (#8436)
  • Make sure the suspended status is up to date (#8432)
  • Adds data-topic-id to quick-access-item (#8430)
  • Use mapBy and filterBy directly
  • Make Google Groups scraper work for G Suite users
  • Cache failed onebox URL request server-side (#8421)
  • Mark secure media upload insecure automatically if used for theme component (#8413)
  • Serve crawler view to Google PageSpeed
  • Correctly ignore/approve replies when acting on a flagged post (#8425)
  • Do not start the login flow when logging out from SSO/Authenticator (#8423)
  • Use dedicated Vimeo onebox for all video types
  • Correctly resize lazy loaded images in Oneboxes
  • Correct hostname in vimeo.com
  • Bypass finaldestination check for Vimeo links.
  • Do not validate topic when resetting bumped_at
  • Show updated_at for invite sent date.
  • Draft not clearing when replying to new topic
  • Oneboxer.js infinitely retrying failed requests (#8414)
  • Improves recurring by ensuring DST is computed correctly (#8410)
  • Don’t error when the empty current value in dif (#8406)
  • The build; ran prettier (#8412)
  • Update site data when we receive a list of categories
  • Only trigger upload ACL update when needed
  • Show quoted images correctly. (#8391)
  • Be more tactical with replacing markdown chars
  • Replace %20 with space in markdown file name for uploads (#8405)
  • When dismissing category inform via MessageBus (#8371)
  • Prevents exception and more duplicates (#8396)
  • Prevents timezone to show duplicated zones in preview
  • Method names incorrect (#8393)
  • Always return secure_proxy_without_cdn url for secure media (#8394)
  • Remove uneeded from discourse loader (#8390)
  • Aliases for require functioning (#8387)
  • Allow private media uploads to be reused in login_required sites
  • Replace this.get(“foo”) with this.foo to fix linting checks
  • Handle german quotes in discourse local-dates (#8386)
  • Mobile top topic list with a period and a category or tag
  • Do not log if an invalid mime type is passed to app
  • Add skip_validations in one more place for narrative bot plugin
  • Allow advanced tutorial when title emojis are disabled
  • Use correct MIME type for theme exports (#8379)
  • Abort CensoredWordsValidator early if censored_words_regexp nil (#8375)
  • Amazon video oneboxes were not working.
  • Allow secure uploads if global s3 setting active and enable_s3_uploads validations (#8373)
  • More Promise uses that were not imported
  • For a single authenticator, do not interrupt registration flow
  • Email excerpts for posts starting with a quote were displaying a username
  • Turn off auto bumping for topics with scheduled bumps
  • Parallel spec system needs needs a dedicated upload folder for each worker. (#8372)
  • ‘default_categories_muted’ site setting not working for anonymous users.
  • Do not insert conflict rows into category user
  • Automatically recover from bad sprockets cache in development (#8364)
  • Unable to remove required tag group from a category
  • Errors when using tags with colons in their name
  • Ensure load-more considers current position (#8357)
  • Better handling of Group model state (#8356)
  • Enter key should submit password reset form, not refresh the page
  • PM glyph in user-menu should always be shown to staff
  • We don’t need to refresh dates so often (#8367)
  • Attempts to be correct about dst when using recurrence (#8366)
  • A pmOnly tag should link to messages (#8361)
  • Don’t error CleanUpInactiveUserJob when user is missing (#8362)
  • Ensure revisions are made to store edit reasons and no reasons get wiped (#8363)
  • Support for rake db:rollback with plugins
  • Include 5 participants in topic summary
  • Use this.content.category instead of this.category on navigation-item
  • Confirm new email with backup codes enabled
  • Don’t show bots as post readers
  • Revert mobile jump to last post behaviour
  • SVG Sprite version hash should be based on bundle result
  • Tag topic lists should pass on noSubcategories when building the top menu
  • Tracking Topic State know about category_seen_at (#8351)
  • Need to require open-uri for discourse-narrative-bot plugin
  • Allow importing themes with subdirectories in extra_js
  • Missing User objects in Utilities
  • Computed is part of @ember/object not @ember/object/computed
  • Allow forceActive without a customHref
  • Do not deactivate admin accounts with recent posts or api keys (#8342)
  • Update quotes after moving posts (#8326)
  • Topic lists filtered by tag and a specified filter don’t work
  • Tag and category watchers regression (#8336)
  • Better error handling for invalid locale bundle versions
  • In case @ember/object hasn’t been loaded yet
  • Do not skip some emails in user search (#8317)
  • Keep emoji images in group bio excerpt (#8329)
  • More missing RSVP imports
  • Was using a native browser Promise instead of RSVP
  • Use correct class variable to get notification levels.
  • Remove magic numbers in notification levels.
  • Update api_key rake task for recent changes
  • Return a deprecation for Discourse.Session
  • Add deprecation for Discourse.NavItem in case themes are using it
  • Alias modules that are required AND imported (#8315)
  • Count current penalty if it started more than 6 months ago (#8313)
  • Use ‘about.json’ endpoint instead of using ember model to get the data.
  • Badge and user title interaction fixes (#8282)
  • Ensure enforce 2FA for staff satisfied by security keys (#8316)
  • Drafts are unique by draft_key and user_id
  • Correct display of last used date in API key details UI
  • Downcase SSO external email before checking against Discourse email (#8306)
  • Include onebox default options in development environment
  • The internal position on the topic timeline is a scroll position
  • Regression not showing excerpts in mobile timeline
  • Use long version of month names in date formats
  • Unicode group names encoded for url (#8302)
  • Too much blank padding in video oneboxes
  • Correct translation key for api key revoke button
  • Skip invalid URLs when checking for audio/video in search blurbs
  • Add <img> alt attribute for Summary emails
  • Tweak restorer spec to make it stableish (#8300)
  • Display tags topic list correctly when none is selected for subcategories
  • Build with prettier for imports (#8298)
  • Allow theme translations to be accessed in initializers (#8285)
  • FilterQueryParams mutates state that is essentially global
  • Improve regex used for image sizing controls (#8291)
  • On mobile setting active on navItem would not work
  • Skip composer blur event when switching apps in iOS
  • Do not update created_at date when resending invites
  • Do not consider mobile app traffic as crawler visits
  • No need to pass cache option in onebox
  • Dropbox videos were not loading
  • Ensure menu not too tall on desktop only
  • Prevents whitelisted_generic_onebox_spec to fail with zeitwerk (#8288)
  • Update action should be in setting-component mixin (#8287)
  • Ensures menu panel is not too tall for screen (#8248)
  • TopicQuery doesn’t react well to subcategories without definitions
  • Do not add personal message link in user menu if they are disabled
  • Move makeArray to discourse-common
  • Missing run import
  • Do not load plugin CSS/JS assets when disabled (#8275)
  • Unread topics not clearing when whisper is last post (#8271)
  • Hide muted subcategories for mobile (#8273)
  • Enter key on forms submits rather than refresh (#8274)
  • Make notification consent banner usable via keyboard and screenreader (#8255)
  • Move attachment_css_class constant out of upload-short-url for discourse-markdown-it
  • Cache Discourse.system_user separately for each multisite tenant (#8276)
  • Under some conditions draft would say it was saving when not
  • Tags can be filtered on categoryId without a q param (#8264)
  • Default user preferenced categories are not updating in admin site setting UI.
  • Prettier on importing mixin (#8270)
  • Ensure there’s an excerpt before showing the bio
  • Correct slug validation
  • Account for empty uploads directory upon backup restore (#8262)
  • Generate category url correctly when slugs are empty
  • Require q param in /tags/filter/search route (#8263)
  • Don’t use ember imports in pretty text
  • Use modules for Ember.run.debounce hack in testing
  • Upserting custom fields using keywords converts the array key to a string
  • More flaky jobs_base_spec.rb (#8259)
  • Flaky jobs_base_spec.rb (#8258)
  • Place image scale buttons unconditionally
  • Close modals on ESC key and clicking outside
  • Correct error when sending PM to email address
  • Prefer Category.find_by_slug over Category.find_by(slug: …)
  • TopicQuery category lookup by slug
  • Respond to user search correctly when category_id is blank
  • Theme component setting was not getting updated in the UI (#8247)
  • Reload plugin translations in development (#8243)
  • When running the wizard and using a custom theme, fallback to the color_scheme name if the base_scheme_id is nil (#8236)
  • Allow storage of non unique rows in oauth2_user_infos
  • Update rack-mini-profiler
  • Hide muted subcategories (#8239)
  • Handle nil case for avatar, just in case
  • Allow avatar downloads to follow redirects
  • Show poll voters in Oneboxed posts. (#7768)
  • Check for presence of liked post before creating notification
  • Rubocop rule on restorer spec (#8238)
  • Restore for non-multisite is not raising an error on reconnect step (#8237)
  • Backwards compatibility for uncompiled email style css
  • Do not load group members when user can’t see it.
  • Should not disable topic inputs while creating new topic.
  • Wizard tests were broken with new loader
  • Sortable controller var conflict
  • Correct path to ImportExport module (#8227)
  • Reconnect in restore process connects to correct DB (#8218)
  • Notifications are missing under certain conditions
  • Respect tl3 links no follow setting (#8232)
  • Return blank avatar when downloading an avatar is not possible due to file size
  • Exclude image_url from web_hook_topic_view_serializer
  • Prevent null-byte searches causing 500 error (#8226)
  • Follow redirect returns url if response code is 200
  • Do not resize xkcd image
  • Include user id in notification webhook (#8195)
  • Load user model when some attributes are missing.
  • Make category updates slug validation idempotent
  • Reload only notifications when refreshing notification count (#8221)
  • Zeitwerk-related fixes for jobs. (#8219)
  • Rate limit and hijack certificate generation. (#8215)
  • Add common HTML5 media extensions to onebox audio and video tags (#8216)
  • Correct mention autocomplete in new topics in unsecured categories
  • ‘only_hidden_tags_changed?’ method returned ‘true’ even when tags are not changed.
  • Id is always true since it’s been to_i’d
  • D-button should default type to button (#8217)
  • Fixes plugin generator with zeitwerk (#8220)
  • Various fixes to draft system
  • Update Redis gem to version 4.1.3
  • Polyfills forEach support on NodeList for IE11 (#8213)
  • Handle encoded slugs for subcategories
  • Do not truncate encoded slugs
  • Display site text overrides for non ‘_MF’ keys (#8189)
  • Transform pluralized keys to .other, to check valid interpolation
  • Update Redis gem to version 4.1.3 (#8197)
  • Get rid of redis freedom patch
  • More encoded slug fixes (#8191)
  • Do not encode the URL twice
  • More places do deal with encoded slugs
  • Handle the nil slug on /categories
  • Account for nil when looking up subcategories
  • Correct topic timeline position calculation
  • Tag cannot be used if it belongs to two tag groups with parent tag
  • Use the quote generator in the example text
  • Do not send notification to empty push_url
  • Do not make notification API call if push_url is blank
  • Add migrations to fix index on category slugs
  • Prevents trash button to get focus when submiting input on profile (#8198)
  • Respect private_email setting for user invited notification email
  • Include topic link when inviting existing users to a topic/PM
  • Correct line count link in GitHub commit onebox
  • Public_file_server.enabled is false in test (#8192)
  • Add unique index to prevent duplicate slugs for categories
  • Do not unpin reply box in iOS when selecting Emoji
  • Remove hiredis gem which is no longer needed
  • Subcategory permissions validation
  • Validation of category tree depth
  • Move notification level only when user posted
  • Zeitwerk-related fixes for jobs. (#8187)
  • Ensure that scheduled jobs are loaded. (#8183)
  • ‘local_cdn_url’ method should work for local relative urls too.
  • Allow themes to upload and serve js files (#8188)
  • Use upload’s cdn url in composer preview if available.
  • Allow change password with TOTP
  • Allows scrolling of search menu panel when showing more results (#8186)
  • Accurate sub_total calculation for reviewable_scores (#8184)
  • Properly encoded slugs when configured to (#8158)
  • Ensure we remove tempfiles from disk when creating an upload
  • Show a correct diff when editing consecutive paragraphs (#8177)
  • Prevent from creation of duplicated TopicAllowedUsers (#8169)
  • Minor Github onebox layout issues
  • Mobile adjustments for reviewable list
  • Downsize_uploads script
  • Don’t fail when there’s no directory to strip
  • During concurrent emails generation renderer should not be reused
  • Order UserFields by position, by default (#8176)
  • Site user_fields sorted by position
  • Sort UserField by position for Site
  • Don’t swallow the original error when moving posts
  • Narrative Bot certificates are ERB templates (#8174)
  • Topic timeline placement on iPad
  • Existing post timings could prevent moving posts
  • Decrement posts read count when destroying post timings (#8172)
  • Remove site setting ‘shadowed-by-global’ option (#8061)
  • Do not reset original scroll position in iOS to zero
  • Downsize_uploads script to support external storage
  • Store user_accuracy_bonus to clarify explanations (#8165)
  • Fix rake db:create after zeitwerk changes
  • Solution for pending migrations for bin/turbo_rspec
  • Updates discourse-ember-source gem (#8167)
  • Add mobile padding to bottom of user preferences screen
  • Check for category conflicts in SiteSetting validations (#8137)
  • Disallow negative reviewable score even if the accuracy would make it negative
  • Ensure push_url exists before making push notification API call
  • Properly downsize image on upload
  • Maxminddb:get task no longer working
  • Errors due to confusion between trustLevel and trust_level (#8149)
  • Update user vote count on topic trash/recover (#8144)
  • Correct position of topic progress in iOS when composer is visible
  • Broken rubocop by empty line in application.rb (#8148)
  • Autoload lib/ path for Sidekiq (#8147)
  • Ensures chart parent element is still present before render (#8145)
  • EmojiOne is now JoyPixels (#8142)
  • First post true if user creates topic first (#8139)
  • Show composer above DiscourseHub app nav on iPad
  • Apply Visual Viewport composer height calc in iOS only
  • Harden DistributedMutex
  • Exception with triggerRefresh and subcat listing (#8131)
  • Use migrations path for post_migrate (#8133)
  • Revert Demon::DemonBase back to Demon::Base (#8132)
  • Try to match advanced tutorial reset first (#8048)
  • Prevents trigger post read count update on non existing post (#8128)
  • Reset watched site settings when default locale changes
  • Respect unicode whitelist when suggesting username
  • Correctly escape category description text (#8107)
  • Change focus when application resumes in android
  • Include video tags and short urls in ‘have_uploads’ method.
  • Include ‘short_path’ as src in each_upload_url method.
  • PWA install was broken due to missing basic logo
  • Cleanup DiscoursePluginRegistry state after tests that use it
  • Fix options given to per-minute rate limiter
  • Properly render server side plugin outlets (#8106)
  • Require a min amount of reviewables before calculating thresholds
  • Sensitivity did not work by default
  • Remove versions from Active Record warm up (#8105)
  • Ignore min_trust_to_send_messages when messaging groups (#8104)
  • Proper jumpToPost with whispers/small-actions
  • By default, don’t abort Google Groups crawling on error
  • Split migration into two steps in developer guide (#8103)
  • Only apply post hide logic to flag actions
  • Google Groups crawler failed to login
  • Preview up to ‘max_oneboxes_per_post’ oneboxes
  • Put back the TL3 ->` TL0 spam thing
  • Ignored flags should not count in your accuracy score
  • Correct theme SCSS error handling
  • Live reload plugin stylesheets when editing in development
  • Live reload plugin stylesheets when the color scheme changes
  • Do not include theme variables in plugin SCSS, and fix register_css
  • Do not allow posting of category topic template without any changes
  • Escape $ in translations before interpolating (#8100)
  • Open drafts for PMs from Activity >` Drafts screen.
  • Ensure page is reloaded correctly when a hash is present (#8096)
  • Don’t show non-members as readers when the post is a whisper
  • Improve protection against problematic usernames (#8097)
  • Load raw hbs templates correctly from theme javascripts folder
  • Explicitly specify the format when loading /associate/{{token}}
  • Add support for version query parameter in InlineUploads
  • Do not escape fancy_title again. (#8095)
  • Do not show latest count in tabs on tag lists
  • Rails 6 multisite migrations and plugin migrations
  • Support <img> in code blocks when inlining uploads
  • Make markdown regexp patterns case insensitive.
  • Do not log ‘pull_hotlinked_images’ edits in the staff action log
  • Change admin dashboard sort caret icon color on hover
  • Let mailgun_api_key also support their “HTTP webhook signing key” (#8091)
  • Cast all numerical values in reports (#8087)
  • Clear authentication data from session after create account (#8040)
  • User directory should not include unapproved users
  • POP3 doesn’t work with TLS 1.3
  • Switch to full screen external login for Safari
  • Inline_uploads and subfolder (#8076)
  • Migrate_to_s3 task and subfolder
  • Errors in qunit tests when version check info is missing
  • Do not show staged users avatars when expanding the read count indicator
  • Display emojis in search result blurbs
  • Improve Onebox detection (#8019)
  • Modify frozen String and profile_db_generator uses category id (#8080)
  • Migrate post_edit_time_limit to tl2_post_edit_time_limit (#8082)
  • Move read state when moving posts
  • Topics with muted tag didn’t show up when filtering by category and tag
  • Post editing period specs
  • Inline_uploads not working on subfolder setups
  • :reject_user_delete action can only be handled by ReviewableUser (#8068)
  • Mobile Safari composer improvements (#8069)
  • Make ‘group membership requests’ feature compatible with visibility level option ‘logged_on_users’.
  • Adjust composer size for iPhone Xs Max and Xʀ
  • Report cached controller and action to loggers
  • Ensures google classic has correct man_facepalming emoji (#8065)
  • Include ‘short_url’ as src if upload url not exist
  • Close user card after clicking Message button
  • Auth popup handling for Safari same-site cookie quirks
  • Flagged posts user notifications (#8041)
  • User should get notified when a post is deleted
  • Broken scheduler when changing per_host <-> global
  • Allow accessing nested objects within theme settings
  • In case of orphan user records skip badge
  • Heartbeat should be per host
  • Notifications not updating correctly from background tab
  • Remote theme record not saved when checking for updates (#8054)
  • Avoid publishing changes if the topic was deleted
  • Include read indicator when the publish_group_state is enabled
  • An overridden text of a non-existent plural key resulted in error
  • Ensure live-reloading of theme CSS works first time (#8052)
  • Made turbo_rspec display errors in shared groups correctly
  • Race condition during deploys creating stylesheets
  • Don’t search for tags when editing topic title
  • Don’t blow up if the topic does not exists anymore
  • When activating via omniauth, create tokens after password reset
  • When activating a user, ensure the change is reflected immediately
  • Allow dashboard to load even when git version cannot be found
  • Display actual readers on the first post
  • Ensure avatar sizes are integers
  • Only use app argument for official iOS app banner
  • Show who read only if the attribute is enabled
  • Update topic groups correctly
  • Overriding _MF texts didn’t work for en_US
  • When using a custom authenticator URL, send request using GET
  • Add_to_serializer not correctly accounting for inheritance chains
  • Don’t display PWA banner when using native app
  • Remove duplicate %-sign from error messages
  • Heartbeat check per sidekiq process (#7873)
  • Allows mini-tag-chooser to fetch tags in background (#8033)
  • Filter out hidden posts for wordpress
  • Do not set destination_url cookie after deleting own account. (#8028)
  • Infinite loop when mentioning in IE11
  • Properly load desktop and mobile only plugin css assets.
  • Allow topic edits when using a hidden tag
  • Race-condition in fallback handlers (#8005)
  • Don’t try to delete staged, unused admins and mods
  • Regularly reset unknown extension of uploads
  • Limit PWA install banner to Android for now
  • Read indicator only appears when the group setting is enabled
  • Ensure extra locales are only available to staff
  • Ensure offset is always positive
  • Prevents mobile nav to create an error when unregistering click events (#8016)
  • Uses simpler pattern for custom href on extra nav items (#8015)
  • Rack-mini-profiler not showing plugin frames
  • J/K navigation resets current selection when scrolling fast.
  • Properly set notification levels on group invite
  • When inviting groups to message respect tracking state
  • Explicitly require topic_query_params
  • Clear banner topic cache after remapping
  • Ensures reports can’t modify records (#8006)
  • Correct race condition loading library
  • Hold s3 related distributed locks longer
  • Store custom attributes that are needed by plugins in queuedpost payload (#8009)
  • Attempts to use params from addDiscoveryQueryParam (#8007)
  • Convert omniauth authenticator names to symbols before comparing
  • Do not raise exception if the authenticator email is missing
  • Downcase email coming back from auth-provider
  • Replace model usage with SQL query
  • Correct ordering for post_edits report, and remove query limit
  • Correct query for post_edits dashboard report
  • Remove the tmp inventory files after the s3 uploads check.
  • RIP swipe-in menus on Android (#7997)
  • Don’t update watching_first_post notifications when moving first post
  • Trusted users might cause content to be hidden with one flag
  • Prevent failed remaps during restores
  • Truncate topic_links.url to 500 chars during remap
  • Do not create a double like notification. (#7999)
  • Blank second factor gets default name
  • Polyfills String.prototype.repeat for IE (#7994)
  • Disallow user self-delete when user posted in PMs
  • Use #dup instead of #+@ since content could be an instance of Nokogiri::XML::Element.
  • Drop readonly function when dropping table
  • Create readonly functions during backup
  • Detect DiscourseHub user agent.
  • Award ‘First Onebox’ badge just for Oneboxed URLs. (#7974)
  • Correct OmniAuth route ordering
  • Notify on Reviewable update. (#7980)
  • Wrong discobot tutorial started for certain locales.
  • Remove dependency on present? in distributed_mutex lib
  • Correctly encode non-ASCII filenames in HTTP header
  • Do not follow redirect on same host with path /login or /session
  • Allows replacement of digits and symbols emojis (#7978)
  • Embedding topics would fail with some HTML
  • Don’t hide/close topics if they don’t meet minimum visibility
  • Use unescaped title as combo-box id (#7979)
  • S3 uploads were missing a cache-control header (#7902)
  • Ensures flag-ratio report shows users with disagreed >` agreed (#7977)
  • Show membership requests link just for group owners. (#7543)
  • Generated controller should be in an underscored folder (#7975)
  • Ensures pikaday picker is showing in UTC (#7968)
  • Allows copy pasting file in composer with chrome (#7969)
  • Syntax error in b1f5949
  • Make the workbox path compatible with multisite
  • Composer preview on IE11 (#7970)
  • Rename deprecated “refresh” icon to “sync” (#7966)
  • Better detection of Apple browsers (#7961)
  • Various watched words improvements
  • Don’t include multisite upload path to source URL if already exist.
  • Make uploads recovery compatible with multisite.
  • Correctly update replies when first post gets moved
  • Modal onClose was being called repeatedly
  • Rollback when multisite tests raise exceptions
  • Don’t reuse redis connections in different threads in tests
  • Gravatar uploads being dependent on authorized_extensions.
  • DistributedMutex (#7953)
  • Better error message on username update from Admin user page.
  • Add back verbose option to DbHelper.remap
  • Add frozen_string_literal: true in the migration
  • Prevent user-notifications-dropdown from causing unintended changes
  • Post#each_upload_url yields incorrect path to block when CDN is enabled.
  • Make initializer work on first db:migrate
  • Correctly identify Chromium-based Edge
  • Support multi-file stylesheets in theme components (#7950)
  • Better error when SSO fails due to blank secret (#7946)
  • Include default label when exporting reports
  • Provide an error message if no valid tags were selected
  • Frozen string error in TopicEmbed.import (#7938)
  • Hide live-loaded posts from ignored users
  • Reverts #18e2816 (#7940)
  • Use same id for both original & optimized inventories in multisite setup.
  • Apply defaults constraints to routes format (take 2) (#7920)
  • Keep query params present in auth_redirect (#7923)
  • Ensure that jobs don’t run immediately after migrate_to_s3
  • Improves tags checking when updating category of topic (#7921)
  • Removes uncategorized context if not allowed in composer (#7922)
  • Send featuredLink as featured_link to backend to update correct … (#7915)
  • Use uniq instead of uniq! when checking for uncompressed root path. Use rails naming convention for ZipUtils
  • Migrations tried to change frozen string
  • Update reply count when moving posts
  • Delete notifications users can’t see after moving posts
  • Old notifications didn’t link to correct post after moving post
  • Allows to specify camelCased attributes in wrap component (#7919)
  • Set a minimum reading time per post. (#7842)
  • Always backup local uploads in addition to files stored on S3
  • Do not request refresh on ‘log out all’ request
  • Show same username or name for post notices. (#7862)
  • URL encode usernames in user profile links in RSS feeds
  • Remove post upload record creation inside ‘find_missing_uploads’ method.
  • Bugs preventing to close delete account modal with button (#7904)
  • String that can’t be translated in watched words UI
  • Empty backup names with unicode site titles
  • Respect logout_redirect setting on ‘Log out all’
  • When ‘raw’ started with non-image upload url it’s not converted to short-url.
  • Convert hotlinked non-image urls to short url.
  • Remove all service workers from Apple devices again
  • Rename deprecated icons, allow custom icons in badges
  • Recompile extra_js theme assets when COMPILER_VERSION changes (#7897)
  • Fallback to gzip compression if brotli isn’t supported (#7895)
  • Skip markdown conversion for hotlinked non image urls
  • Backups taken by pg_dump >`= 11 are nonportable (#7893)
  • Apply defaults constraints to routes format (#7890)
  • Ensure suppressed categories do not produce any featured topics. (#7863)
  • Allow ampersand in site_texts routes
  • Recalculate settings when dependent settings change
  • Use default locale for flag reasons
  • Do not show bootbox if post has no replies. (#7866)
  • Turn off search logging when read-only (#7877)
  • Ensures spinner is showing on tags/show when loading more (#7876)
  • Ensures routing with hash doesn’t stuck history (#7872)
  • Ensures routin with hash doesnt stuck history
  • Latest Selenium gem broke Google Groups import script
  • Remapping during restore was wrong for CDN URLs
  • Remap differently when backup comes from multisite
  • Turbo tests exit codes
  • Clear theme editor content on switching tabs
  • Remap shouldn’t try to change read-only columns
  • Show category name in title for crawler view
  • Use correct timezone for manual SQL
  • Don’t use exceptions to catch conflicts
  • Back button would go to previous topic instead of list
  • Only add image size when with & height are in pixels
  • IE grid layout issue on user’s own activity page
  • Fail if none of our tags could be updated
  • Do not show invite button if local logins are disabled
  • Ensures routing to / with query string works (#7859)
  • Don’t disable download_remote_images_to_local if site uses S3 (#7861)
  • Upsert a custom field if a unique constraint fails
  • Ensure lightbox image download has correct content disposition in S3 (#7845)
  • Prevent emoji-picker from not showing (#7856)
  • Respect the full_screen_login parameter from plugin auth providers (#7855)
  • Use title attribute for notification items. (#7840)
  • Remove misplaced save button
  • Show ‘Export’ button for all tabular reports. (#7838)
  • Logs for enabling/disabling components should show up in the staff actions logs
  • Ensures emoji helper is working with custom emojis (#7843)
  • Ensures /t/TOPIC_ID/POST_NUMBER is correctly routing (#7841)
  • Page starts at 1 (#7844)
  • Remove misplaced outlet
  • Creating new badge is failing on empty SQL query (#7837)
  • Only show remove timer button to users with permission to do so
  • Use normal title instead of fancy title for prefilled composer
  • Don’t send notification email when user isn’t allowed to see topic
  • Ensures static pages are using absolute path (#7828)
  • Copy local theme changes to correct temp folder when diffing updates to remote theme
  • Fix a navigation bug
  • FakeExceptions should have the original class name
  • An exception cause is itself an exception
  • Mark topics in sub categories as unread when dismissing parent
  • Turbo_rspec doesn’t accept these options
  • Only include pending/agreed scores in the total score
  • Provides an emoji helper to replace codes by images (#7802)
  • Prevents failure when TL was mutated on internal object (#7808)
  • Do not allow creation of topic if there is no category available for posting (#7786)
  • Calling action with a string is deprecated (#7807)
  • Closes search-menu on escape (#7804)
  • Do not include uncategorized_category_id in topic_create_allowed if posting in uncategorized is disabled
  • Ensure topic exists before making a banner. (#7781)
  • Don’t use DistributedCache to store redis readonly state
  • CategoryUser#batch_set (#7787)
  • Remove notification_level from category_users unique indexes
  • CategoryUser#batch_set wasn’t updating pre-existing records
  • Changed was being reported incorrectly
  • Iterate when clearing watched words cache
  • Multisite upload urls must have either db name or the word ‘short-url’.
  • Mobile overflow for tall fixed modals
  • Ensures url to full reviewable conversation works on subfolder
  • Category-chooser search should be scoped to category (#7794)
  • Ensure :after_auth event is triggered. (#7791)
  • Back button shenanigans when redirecting from index routes
  • Support carriage return in InlineUploads.
  • Don’t replace img tags within anchor tags with markdown format.
  • Edge case with anchor tag in InlineUploads.
  • Some toolbar operations weren’t triggering the change event
  • If a user deletes a hidden post, it should not lose history
  • Do not refresh all settings on save for all settings, limit to only a few
  • ‘status’ param change not filtering the topics in tag route.
  • BBcode edge case for InlineUploads.
  • Use correct name for selectable_avatars_enabled site setting
  • InlineUploads should replace attachment links with markdown text.
  • Upload#short_url generates incorrect URL when extension is nil.
  • Don’t allow users to edit topic information when the OP is locked
  • Couldn’t modify a widget that wasn’t in the registry
  • Remove temporary hack for fixed iOS bug (#7773)
7 个赞

UX 变更

  • 在编辑分类标签的主题模板中隐藏表情选择器 (#9036)
  • 当本地日期选择器在主编辑器之外使用时将其隐藏
  • 限制 btn-small 中的图标高度,以防止高度不一致
  • 消除长移动设备创建账户表单上的双重模态滚动
  • 对用户名和 user-name 使用相同的样式
  • 仅第一个属性应设为超链接
  • 根据属性位置添加边距
  • 改进小按钮的外观 (#8990)
  • 在小帖子消息中正确显示提及
  • 调整移动设备上主题通知下拉菜单的宽度
  • 保持移动设备编辑器中的分类和标签输入在同一行
  • 对投票构建器 UI 进行微调 (#8985)
  • 限制移动设备用户卡片上用户字段的高度,并添加 line-clamp 混入
  • 限制工作人员操作详情的最大高度
  • 防止分类下拉菜单中的主题计数换行 (#8943)
  • 在 SK2 下拉菜单上使用 border-box 盒模型
  • 为目标主题显示所有父级分类
  • 编辑器自动补全将建议所有可见的群组名称
  • 投票中不放大表情符号 (#8934)
  • 在将帖子移至现有主题时显示目标主题状态
  • 更新移动站点设置的侧滑导航以支持从右向左 (RTL) 布局
  • 修复可认领审核项的移动布局问题
  • 防止新徽章在移动设备上成为孤儿元素
  • 当用户字段无效时始终禁用创建账户按钮
  • 忽略 IDP 中等于电子邮件的 name 参数 (#8869)
  • 改进 composer.saved_draft 的文案 (#8863)
  • 缓存图标选择器的完整图标列表 (#8862)
  • 消除时间线通知按钮的细微渲染延迟 (#8860)
  • 调整选择通知计数的算法
  • 桌面端主题进度条不应闪烁
  • 为徽章引入图标选择器组件 (#8844)
  • 防止迷你标签选择器头部换行 (#8858)
  • 为迷你标签选择器添加箭头导航支持 (#8857)
  • 当标题不是两行时,在停靠标题中居中显示标题
  • 在移动设备上不显示置顶选项描述 (#8846)
  • 确保置顶选项图标不在新行 (#8845)
  • 默认在分类页面包含已静音的分类 (#8842)
  • 为 Google 地图单框添加图标
  • 隐藏 allow_embedding_site_in_an_iframe 设置
  • 在撰写时显示垂直主题时间线 (#8813)
  • 引入自动“分类主题”设置 (#8804)
  • 管理员在搜索 all: 时仅应看到自己的私信
  • 无效 CSV 错误消息现在包含关于格式错误行的信息 (#8773)
  • 使用 ‘-’ 作为默认分类 slug (#8607)
  • 添加标签同义词时的确认提示
  • 用户离开私密群组时必须确认
  • 对选择主题模态框进行微调
  • 改进私信标题编辑的外观
  • 改进移动设备个人简介中列表和用户字段的外观
  • 确保所有生成的备份代码都显示在屏幕上
  • 当 CSV 无效时返回更友好的错误信息。添加取消按钮以返回到 /badges 视图
  • 更新 IE11 弃用警告,并默认启用
  • 在移动设备个人资料中居中显示精选主题
  • 移除对分类框链接的 JS 依赖
  • “带子分类的盒子”中的子子分类 + 一致性
  • 修正分类搜索优先级的验证消息
  • 针对子子分类对分类页面样式进行一些调整
  • 回复中不使用头像作为 OpenGraph 图片的后备 (#8605)
  • Invites#show 无法通过 JSON 请求,且配置不当 (#8570)
  • 通知/跟踪状态的新铃铛图标
  • 改进分类列表中子子分类的样式 (#8593)
  • 在分类列表中显示孙级分类 (#8592)
  • 防止帖子管理菜单出现在首帖 (OP) 的标题下方
  • 降低隐藏主题内容的不透明度,但控制项除外
  • 用户管理页面微调,以容纳长群组名称
  • 微调以使私信收件人输入更具灵活性
  • 增加移动设备组合框的点击区域
  • 复数化“点赞/已读此内容”
  • 改进 Firefox 中社交登录/注册按钮的对齐
  • 图片灯箱的 z-index 需要高于模态框的 z-index
  • 改进“移至主题”和“移至消息”模态框的文案
  • 在可提及群组集中包含公共群组 (#8516)
  • iOS 注册模态框的小修复
  • 标签组合框样式应与主题上的标签匹配
  • 标签信息的样式微调
  • 尝试使图表加载更流畅 (#8529)
  • 从上传模态框中移除“显示更多”(#8470)
  • 移除移动设备用户卡片的头像动画 (#8483)
  • 移除用户标题的双重编码
  • 防止初始面板加载时出现滚动条 (#8456)
  • 调整向导步骤的边距 (#8452)
  • 添加链接时跳过选择中的前导空格
  • 即使标题相同也显示群组全名 (#8437)
  • 在触摸设备上悬停图片时不显示阴影 (#8429)
  • 当备份恢复被禁用时显示明显的消息
  • 为灯箱图片添加悬停效果 (#8416)
  • 在投票中将“隐藏结果”重命名为“显示投票”(#8403)
  • 如果比例未定义,则将选定比例设置为 100%
  • 使深色主题下的分享图标颜色一致
  • 增加长注册表单内容的淡出效果,使滚动更明显
  • 更明显的备用认证链接
  • 允许在管理面板中使用回车键提交测试邮件
  • 不再显示用户总数,仅显示将受影响的用户数量
  • 在私信主题列表中添加 +n 指示器 (#8353)
  • 在 content_security_policy_script_src 设置中添加 CSP 文档链接
  • 在 Firefox 中复制 API 密钥时不添加前导/尾随空格
  • 如果未选择任何标签,标签输入将建议所需标签
  • 在“授予管理员权限”邮件和 UI 中显示用户电子邮件地址
  • 加宽标签群组名称输入框并添加占位符文本
  • 将警报和模态框关闭转换为按钮以提高可访问性
  • 在深色主题下为 <select> 应用正确的背景 (#8234)
  • 改进 iOS 上的引用
  • 修复 iOS 编辑器的回归问题
  • 使用颜色变量更新禁用下拉菜单的样式
  • 标准化搜索菜单结果中的标签显示
  • 仪表板链接指向 Git 提交列表而非 Git 比较
  • 使群组成员 UI 更清晰 (#8210)
  • 在摘录中强调本地日期为 UTC (#8208)
  • 确保 GitHub 单框信息不会不必要地换行
  • 改进邮件中新的 GitHub 单框渲染
  • 在投票构建器中在关闭投票标签后添加换行
  • 将摘要邮件页脚包裹在表格中以获得更好的对齐选项
  • 在编辑器链接模态框搜索结果中包含元数据
  • 向摘要邮件模板添加 CSS 类以便更容易地进行样式设置
  • 在密码重置模态框的“帮助”按钮上添加字形
  • 使用回车键触发模态框中的主要操作
  • 使用主题颜色显示 GitHub 问题标签
  • 改进编辑器超链接模态框 (#8160)
  • 重构 iOS 编辑器布局
  • 停止使用固定宽度字体渲染 GitHub 问题描述
  • 减小 GitHub 单框图标的大小
  • 移除 iOS 13 中的 iPad 键盘用户设置
  • 修复 iOS 应用中主题进度的位置
  • 创建新认证器时输入名称 (#8153)
  • 在快速访问个人资料标签中添加“草稿”(#8155)
  • 将高大模态框的高度限制为视口百分比
  • 修复 Android 上的编辑器布局
  • 在 iPad 上关闭键盘时触发编辑器调整大小
  • 编辑管理文本字段时绕过 Chrome 自动补全
  • 以与帖子菜单按钮相同的顺序显示已读/点赞数 (#8140)
  • iPad 上的全屏视口编辑器布局
  • 修复主题进度的位置
  • 修复主题进度条的对齐并移除一些魔法数字
  • 改进 iPad 上的编辑器布局
  • 将编辑原因链接更改为图标
  • 使用视觉视口 API 获取 iOS 编辑器高度
  • 添加类以在关于页面上区分特定的版主分类
  • 使用中等格式在帖子通知中显示时间 (#8074)
  • 显示带有 SHA 的安装版本而非提交数量
  • 调整 RTL 编辑器存在头像的对齐
  • 为嵌入/主题提供更好的用户图片
  • 将时间线控件对齐到顶部
  • 如果已读计数为零则隐藏已读指示器
  • 使用 Flexbox 进行主题列表嵌入
  • 使用 vertical-align: middle 而非 em 单位
  • 使用颜色代码变量
  • 将嵌入主题列表的 HTML 结构从表格转换为 div
  • 已读指示器改进 (#8049)
  • 移除关于桌面通知的未使用字符串
  • #8047 的小后续修复
  • 标题中标签的更好对齐 (#8047)
  • 解决搜索中 Chrome 自动补全的 Bug
  • 带有长子分类名称的分类框布局修复
  • 防止非灯箱引用中的图片拉伸或挤压 (#8021)
  • 如果用户无法创建标签,则隐藏“创建标签”选项 (#7723)
  • 分类标题前插件出口的一致性放置 (#8010)
  • 在站点设置描述中添加 robots.txt 编辑器的链接
  • 如果必要,回退到未本地化的认证提供者名称
  • 防止 Twitter 单框 iframe 高于移动设备视口
  • 改进常见 OmniAuth 异常的错误处理 (#7991)
  • 修改管理员邮件模板以提供更多表单空间 (#7993)
  • 打开忽略持续时间模态框时清空用户名
  • 在认证流程期间隐藏登录/注册标题按钮
  • 在 no_ember 页面添加登录按钮图标 (#7982)
  • 改进投票构建器模态框的布局
  • 改进报告导出 UI 上的日期 (#7971)
  • 在本地日期插件中使用更短的星期标签
  • 在日期选择器中使用更短的星期标签
  • 当隐藏时将“保留帖子”重命名为“保留隐藏帖子”(#7767)
  • 管理员摘要邮件预览页面的样式修复 (#7959)
  • 移除忽略用户列表上令人困惑的边框
  • 使个人资料浏览量与其他元素保持一致 (#7956)
  • 防止烹饪后的日期换行 (#7954)
  • 当管理员在更改分类权限时点击保存但未添加群组,显示警告 (#7947)
  • 提高置顶/跟踪原因文本的对比度,改进布局
  • 当缺少账户描述时改进账户关联
  • 向 post-controls 添加展开/折叠类 (#7932)
  • 修复单框 favicon 的垂直对齐 (#7926)
  • 改进移动设备上长标签标题的布局
  • 重构头像上传模态框以获得更好的移动间距
  • 更新邀请“未找到”消息
  • 修复移动设备上个人资料图片上传控件的间距
  • 为分类框标题添加带有 href 的 <a> 标签 (#7901)
  • 移除双因素偏好设置中的重复文案
  • 使用 SCSS 颜色变量
  • 默认禁用系统编辑通知 (#7896)
  • 交换忽略和静音部分,将“保存更改”按钮移到底部
  • 使用相对于视口的高度作为 robots.txt 文本区域的高度
  • 重新排列编辑模态框中的控件
  • 确保弹出提示显示在下拉菜单之上 (#7891)
  • 移动编辑器样式修复 (#7878)
  • 更新标签群组的占位符
  • 向私信图标链接添加 title 属性和 aria-label
  • 如果选定的帖子不在视口中则丢弃 (#7869)
  • 展开帖子按钮对齐修复 (#7865)
  • 将默认站点徽标高度设为整齐的 40px
  • 为徽章图标添加宽度以适配无维度的 SVG
  • 改进带有换行的 Twitter 状态单框
  • 为引用的推文添加样式 (#7832)
  • 改进编辑器中相似主题结果的样式 (#7839)
  • 在搜索菜单结果中将标签和分类放在同一行 (#7830)
  • 改进主题计时器移除按钮的移动定位
  • 在搜索菜单结果中让每个信息独占一行 (#7825)
  • 更新 ignored_user_summary 文案 (#7748)
  • 移动链接以显示跟踪的主题,简化翻译
  • 更改视频占位符的图标
  • 帖子已读后隐藏“帖子未读”工具提示 (#7813)
  • 将单框视频占位符图标设为灰色
  • 如果在已关闭的主题中批准帖子,则要求确认
  • 移除主题计时器的新内联按钮 (#7790)
  • 添加推迟主题的快捷键 (#7798)
  • 改进更改时间戳模态框的日期选择器 (#7771)
  • 在归档帖子上显示点赞图标 (#7775)

安全变更

  • 使用 U2F / TOTP 的双因素认证 (2FA)
  • 解析备份元数据时使用严格 JSON 解析
  • 改进第二因素认证逻辑
  • 撤销用户 API 密钥时修正权限检查
  • WildcardUrlChecker 中的漏洞
  • 升级 rack-mini-profiler 以避免可能的 XSS (#8537)
  • 从 SVG 文件中移除事件处理程序
  • 确保内联的只能是图片上传
  • 将 puma 从 3.12.1 升级到 3.12.2 (#8464)
  • 自动补全提及时检查权限
  • 恢复时安全解压缩备份 (#8166)
  • 管理员错误启用了 Mini profiler
  • 安全解压缩文件 (#8124)
  • 更新 rubyzip 依赖
  • 更新 rack-mini-profiler 至最新版以修正 XSS
  • 如果不存在嵌入主机,则不允许 base_uri 作为嵌入主机
  • 单框用户个人资料位置字段时的 XSS
  • 通过认证提供者激活账户时重置密码
  • 不在查询字符串中发送 CSRF 令牌
  • 升级 nokogiri
  • 对匿名 JS 错误报告添加速率限制
  • 不向无访问权限的用户透露分类详情
  • 限制需要登录的站点上的 message-bus 访问
  • 要求 OmniAuth 请求阶段使用带 CSRF 令牌的 POST
  • 清理用于互斥锁键的电子邮件 ID
  • 连接关联账户时添加确认屏幕
  • 验证备份块标识符
  • 在管理面板中显示关注词汇时的 XSS
  • 默认分类的 SQL 注入
  • 升级 lodash
  • 偏好设置页面标题选择器的 XSS
  • 从邀请邮件中剥离 HTML
  • 路由中的 XSS
  • 转义包含 [details] 的帖子中的电子邮件文本

性能

  • 避免激进地调用 shell 获取主机名
  • 更高效地缓存允许的用户字段 (#8968)
  • 缓存 PostRevisor#diff_size (#8939)
  • 优化帖子编辑
  • 生成通知时分批加载用户 (#8870)
  • 加快在大型数据库上移动帖子的速度
  • 为用户卡片使用单独的路由,并拆分用户序列化器 (#8789)
  • 缓存精选徽章的排名,以简化用户序列化 (#8698)
  • 序列化忽略/静音信息时减少数据库查询 (#8629)
  • 在当前用户对象中缓存忽略和静音的用户 ID
  • 在 guardian 中检查忽略/静音权限时避免数据库查询
  • 在 user_stats 表中缓存用户徽章数量 (#8610)
  • 转换帖子时减少查询次数 (#8358)
  • 在 NGINX 中更长时间地缓存静态资源
  • 为横幅添加过滤索引
  • 为通知添加索引以加快帖子移动速度
  • 停止在客户端发布回复时销毁草稿
  • 更不频繁地运行昂贵的清理上传任务
  • 在摘要邮件中缓存新用户数量
  • 在 group 到 category_groups 上添加索引 (#8231)
  • 为 oauth2_user_infos(user_id, provider) 添加唯一索引 (#8230)
  • 加快读取状态移动速度
  • 避免热路径上的正则表达式
  • 渲染邮件模板时重用渲染器
  • 加快关于页面渲染时间并限制分类版主 (#8112)
  • 确保在整个多站点环境中预热架构缓存
  • 避免每次关闭连接时都启动一个线程
  • 当读取其他用户的帖子时更新读者计数。不再次获取帖子数据以更新计数 (#8078)
  • 使用 CDN URL 作为 favicon 的代理
  • 为常规作业调度运行多个线程
  • 减少用户操作的一致性窗口
  • 未使用时避免过滤共享草稿
  • 仅选择我们使用的字段
  • 预先计算群组成员最后阅读的帖子
  • 加快编辑器正文的长度计算
  • 避免主题视图中的 N+1 查询
  • Rake posts:rebake_uncooked_posts 内联运行
  • 当消息总线泛滥时,服务器将延迟处理
  • 对缓存存储使用添加更多约束
  • 提高查找直接私信时的查询速度
  • 使用 Oj 序列化 JSON (#7820)
  • 限制差异比较大文本块的时间
  • 使用 Oj 序列化 JSON (#7780)
11 个赞