Discourse 2.4.0.beta7 リリースノート

2.4.0.beta7 の新機能

管理者 API キーの改善

Discourse API は、Discourse サイトと対話するための強力なツールです。最新のベータ版では、API キーシステムに多数の改善を加え、セキュリティと機能性の両方を向上させました。

  • ユーザーは複数の API キーを作成できるようになりました。そのため、キーが漏洩した場合でも個別に無効化できます。
  • API キーに説明文を追加できるようになり、各キーの用途を管理しやすくなりました。
  • キーを完全に削除することなく、使用不可(無効化)にできるようになりました。
  • 6 ヶ月間使用されていない API キーは自動的に削除されます。この設定は revoke_api_keys_days サイト設定で変更可能です。

スタッフ向けウェルカムメッセージ

新しいユーザーや TL1 に達したユーザーと同様に、モデレーターまたは管理者権限が付与されたスタッフもウェルカムメッセージを受け取るようになりました。このメッセージでは、スタッフチームへの歓迎、管理者インターフェースへのアクセス方法、そして新しいスタッフにとって素晴らしいリソースである Discourse Moderation Guide へのリンクが記載されています。

デフォルトのタグ通知ステータスを設定する新しいサイト設定

管理者は以前から、新規ユーザーがフォーラムに参加した際にどのカテゴリを「ウォッチ」「トラッキング」「ミュート」するかを制御できました。また、ユーザー自身もどのタグをウォッチ/トラッキング/ミュートするかを制御できますが、これはサインアップ前にサイト側で設定することはできませんでした。現在、管理者は以下の新しいサイト設定を通じて、サインアップ前にユーザーがどのタグをトラッキングするかを決定できるようになりました:

  • default_tags_watching
  • default_tags_tracking
  • default_tags_muted
  • default_tags_watching_first_post

デフォルトのサイト設定変更時に全ユーザーのユーザー設定を更新

以前は、default_ で始まるサイト設定を変更しても、その変更は新規ユーザーにのみ適用され、既存ユーザーには影響しませんでした。現在、管理者は変更を過去に遡って全ユーザーに適用するか、新規ユーザーのみに適用するかを選択できるようになりました。

新しいカテゴリタグ設定:タググループからタグを含む新規トピックの作成を必須化

タググループを活用しているサイトでは、スタッフはカテゴリ内のすべての新規トピックが、作成前にタググループから少なくとも x 個のタグを含むことを要求できるようになりました。これはトピックを整理するための優れた方法です。

例を挙げましょう。ユーザーが素晴らしいカスタム事例を共有する「車のカスタム」カテゴリがあるとします。そこで「車両部位」というタググループを作成し、「タイヤ」「ホイール」「外装」「内装」「照明」などのタグを含めます。このタググループを新しい設定に追加すると、ユーザーはトピックを作成する際にこれらのタグの少なくとも 1 つを追加することが必須となり、他のユーザーが一目でカスタムの対象部位を把握できるようになります。

ユーザーが選択可能なプライマリグループ

user selected primary groups という新しいサイト設定を追加しました。これを有効にすると、ユーザーは自分がプライマリグループにしたいグループを選択できるようになります。これは、プライマリグループが アバターフラア を提供するサイトなどで、ユーザーが表示するフラアを切り替えたい場合に役立ちます。このサイト設定を有効にすると、グループに所属しているユーザーは、アカウントタブに新しい「プライマリグループ」ユーザー設定のドロップダウンメニューを表示するようになります。

image

設定可能なメールスタイル

サイトは、独自の HTML と CSS を使用して通知メールの外観をカスタマイズできるようになりました。新しいメールカスタマイズオプションは /admin/customize/email_style にあります。

ハイパーリンク挿入時のトピック検索

トピック作成画面でハイパーリンクを挿入する際、ハイパーリンクモーダルから直接既存のトピックを検索できるようになりました。

「いいね!」 37

さらに続きます!

でも、まだあります!新しい機能や変更点をできる限りご紹介していますが、詳細をすべて挙げるには変更が多すぎます。新しい機能、バグ修正、UX 改善などの完全なリストについては、以下に記載されている「追加機能と修正」を必ずご確認ください。

セキュリティ更新

このベータ版には、コミュニティとHackerOneから報告された問題に対する 1 つのセキュリティ修正が含まれています。

  • 言及の自動補完時に権限を確認

プラグインの改善

ユーザーノート

  • バグ修正

投票

  • バグ修正

解決済み

  • バグ修正

Patreon

  • オプションの寄付プロンプトの追加
  • バグ修正

OAuth2 Basic

  • コピーの改善

Data Explorer

  • レポートへの共有リンク
  • バグ修正

割り当て

  • 「未割り当て」ナビゲーションメニューを追加するための新しいカテゴリ設定
  • 割り当てリストを逆順の更新日順に並べ替え(以前はランダム)
  • バグ修正

Akismet

  • バグ修正
  • コードのリファクタリング

Docker Manager

  • 報告された脆弱性を解消するための依存関係の更新
  • ダッシュボードから /admin/upgrade へのリンクを常に表示

翻訳者

  • バグ修正

RSS ポーリング

  • wellfed からリネーム
  • バグ修正

Onebox

  • バグ修正

No Bump

  • バグ修正

制限された返信

  • 初期リリース

WP Discourse

  • DiscourseUtilities::get_discourse_categories に一意のトランジェントキーを使用。この関数は、プラグインの内部使用のために設定されるトランジェントに保存される以上のデータを返します。
  • 不正にフォーマットされたヘッダーキーの修正

Zendesk

  • バグ修正

スタイルガイド

  • 新しい date-time-inputs のサポート追加

ポリシー

  • ポリシー受諾の履歴を保持
  • バグ修正

追加機能と修正

クリックして展開

新しい機能

  • JS の eval を使用せずに翻訳オーバーライドを読み込む
  • 追加ナビゲーション項目用の「init」メソッドの追加
  • Docker 開発環境のローカルまたはネットワーク全体での公開を許可
  • ライトボックスにタイトルがない場合、画像の alt テキストをファイル名にフォールバック
  • パラメータ付きの埋め込みで「新規トピック作成」ボタンを表示
  • メッセージやウィスパーに対してユーザーの last_posted_at の更新を停止
  • ステージングユーザーへの一括招待を送信可能に
  • 受信メールの添付ファイルを削除し、raw フィールドを切り詰める
  • 認識されたスパムヘッダーに SES スパムヘッダーを追加
  • グループ PM 用のトピックリストの記憶機能を追加
  • ウィキ編集者はウィキトピックのタグ編集を許可
  • トピックシリアライザーに画像 URL を含める
  • プライベートメッセージリストでのスクロール位置を記憶
  • プライベートメッセージリストでの位置を記憶
  • ドラフトバックアップ用の実験的な非表示設定
  • スタッフがカスタムメールテンプレートに topic_url を使用可能に
  • ホニープットとチャレンジロジックの改善
  • ‘nofollow’ に加えて ‘ugc’ rel 属性を使用
  • ログインページタイトルに短いサイト説明を追加

バグ修正

  • 検索の抜粋でオーディオ/ビデオを確認する際に無効な URL をスキップ
  • 要約メールに <img> alt 属性を追加
  • リストア仕様を安定させるために調整
  • サブカテゴリで選択されていない場合、タグトピックリストを正しく表示
  • インポート用に prettier でビルド
  • イニシャライザーからテーマ翻訳にアクセス可能に
  • FilterQueryParams が本質的にグローバルな状態をミューテート
  • 画像サイズ制御に使用される正規表現の改善
  • モバイル設定が navItem でアクティブになっても機能しなかった問題の修正
  • iOS でアプリを切り替える際にコンポーザーのフォーカス外イベントをスキップ
  • 招待の再送時に created_at 日付を更新しない
  • モバイルアプリのトラフィックをクローラー訪問として考慮しない
  • onebox で cache オプションを渡す必要はない
  • Dropbox ビデオが読み込まれなかった問題の修正
  • デスクトップでのみメニューが高くなりすぎないよう保証
  • zeitwerk を使用して whitelisted_generic_onebox_spec の失敗を防止
  • アクションの更新は setting-component ミックスイン内にあるべき
  • メニューパネルが画面に対して高くなりすぎないよう保証
  • 定義のないサブカテゴリに対して TopicQuery が適切に反応しなかった問題の修正
  • 無効な場合、ユーザーメニューに個人メッセージリンクを追加しない
  • リント修正
  • makeArray を discourse-common に移動
  • run のインポート不足
  • 無効な場合、プラグインの CSS/JS アセットを読み込まない
  • ウィスパーが最後の投稿である場合、未読トピックがクリアされない問題の修正
  • モバイル用にミュートされたサブカテゴリを非表示
  • フォームでの Enter キーがリフレッシュではなく送信を行うように修正
  • 通知同意バナーをキーボードとスクリーンリーダーで利用可能に
  • discourse-markdown-it 用に upload-short-url から attachment_css_class 定数を移動
  • マルチサイトテナントごとに Discourse.system_user を個別にキャッシュ
  • 一部の条件下でドラフトが保存されていないにもかかわらず保存中と表示される問題の修正
  • categoryId で q パラメータなしにタグをフィルタリング可能に
  • 管理者サイト設定 UI でデフォルトユーザー優先カテゴリが更新されない問題の修正
  • インポート時の prettier 適用
  • 概要を表示する前に抜粋があることを保証
  • スラッグ検証の修正
  • バックアップ復元時にアップロードディレクトリが空であることを考慮
  • スラッグが空の場合、カテゴリ URL を正しく生成
  • /tags/filter/search ルートで q パラメータを必須化
  • pretty text で ember インポートを使用しない
  • テスト用の Ember.run.debounce ハックにモジュールを使用
  • さらに多くのリント修正
  • キーワードを使用したカスタムフィールドのアップサート時に配列キーを文字列に変換
  • jobs_base_spec.rb の不安定なテストの追加修正
  • jobs_base_spec.rb の不安定なテスト
  • 画像スケールボタンを無条件に配置
  • ESC キーと外側クリックでモーダルを閉じる
  • メールアドレスへの PM 送信時のエラー修正
  • Category.find_by_slug を Category.find_by(slug: …) より優先
  • slug によるトピッククエリのカテゴリルックアップ
  • category_id が空白の場合、ユーザー検索に正しく対応
  • テーマコンポーネント設定が UI で更新されなかった問題の修正
  • 開発環境でプラグイン翻訳を再読み込み
  • ウィザード実行中にカスタムテーマを使用する場合、base_scheme_id が nil の場合 color_scheme 名にフォールバック
  • oauth2_user_infos に一意でない行の保存を許可
  • rack-mini-profiler の更新
  • ミュートされたサブカテゴリを非表示
  • アバターの nil ケースを処理(念のため)
  • アバターダウンロードがリダイレクトに従うことを許可
  • 破損した証明書
  • prettier を使用したビルドの失敗
  • Oneboxed 投稿に投票者を表示
  • 通知を作成する前にいいねされた投稿の存在を確認
  • リストア仕様の Rubocop ルール
  • マルチサイト以外の復元時に再接続ステップでエラーを発生させない
  • 未コンパイルのメールスタイル CSS の下位互換性
  • ユーザーが閲覧できない場合、グループメンバーを読み込まない
  • 新しいトピック作成中にトピック入力を無効化しない
  • 新しいローダーによりウィザードテストが破損
  • ソーダブルコントローラー変数の競合
  • テストスイートの修正
  • ImportExport モジュールへの正しいパス
  • 復元プロセスでの再接続が正しい DB に接続
  • 特定の条件下で通知が欠落
  • tl3 links no follow 設定を尊重
  • ファイルサイズによりアバターのダウンロードが不可能な場合、空白のアバターを返す
  • web_hook_topic_view_serializer から image_url を除外
  • null バイト検索による 500 エラーを防止
  • リダイレクトに従うと、レスポンスコードが 200 の場合 URL を返す
  • xkcd 画像のサイズを変更しない
  • 通知ウェブフックにユーザー ID を含める
  • 一部の属性が欠落している場合、ユーザーモデルを読み込む
  • カテゴリ更新のスラッグ検証を冪等化
  • 通知数更新時に通知のみを再読み込み
  • jobs に関する Zeitwerk 関連の修正
  • 証明書生成のレート制限と乗っ取り防止
  • onebox のオーディオおよびビデオタグに一般的な HTML5 メディア拡張子を追加
  • 非セキュアカテゴリでの新規トピックにおける言及自動補完の修正
  • ‘only_hidden_tags_changed?’ メソッドがタグが変更されていない場合でも ‘true’ を返していた問題の修正
  • id は to_i されたため常に true
  • D-button はデフォルトで type を button に設定
  • zeitwerk を使用したプラグインジェネレーターの修正
  • ドラフトシステムへの各種修正
  • Redis gem をバージョン 4.1.3 に更新
  • IE11 向けの NodeList での forEach サポートをポリフィル
  • サブカテゴリのエンコードされたスラッグを処理
  • エンコードされたスラッグを切り詰めない
  • ‘_MF’ 以外のキーに対するサイトテキストオーバーライドを表示
  • 複数形のキーを .other に変換し、有効な補間を確認
  • Redis gem をバージョン 4.1.3 に更新
  • redis freedom パッチを削除
  • エンコードされたスラッグに関するさらに多くの修正
  • URL を二度エンコードしない
  • エンコードされたスラッグを処理する場所の追加
  • /categories での nil スラッグを処理
  • サブカテゴリのルックアップ時に nil を考慮
  • トピックタイムライン位置計算の修正
  • 親タグを持つ 2 つのタググループに属する場合、タグを使用不可に
  • 例文で引用ジェネレーターを使用
  • 空の push_url への通知送信を防止
  • push_url が空白の場合、通知 API 呼び出しを行わない
  • カテゴリスラッグのインデックス修正のためのマイグレーション追加
  • プロフィールでの入力送信時にゴミ箱ボタンがフォーカスされるのを防止
  • ユーザー招待通知メールに private_email 設定を尊重
  • 既存ユーザーをトピック/PM に招待する際にトピックリンクを含める
  • GitHub コミット onebox 内の行数リンクの修正
  • Public_file_server.enabled はテストで false
  • カテゴリの重複スラッグを防止する一意のインデックス追加
  • Category.find_by_slug
  • iOS で Emoji を選択する際に返信ボックスのピン留めを解除しない
  • 不要になった hiredis gem を削除
  • サブカテゴリ権限の検証
  • カテゴリツリー深さの検証
  • ユーザーが投稿した場合のみ通知レベルを移動
  • jobs に関する Zeitwerk 関連の修正
  • 予定されたジョブが読み込まれていることを保証
  • ‘local_cdn_url’ メソッドはローカル相対 URL に対しても機能するべき
  • テーマが js ファイルをアップロードして提供可能に
  • 利用可能な場合、コンポーザープレビューでアップロードの CDN URL を使用
  • TOTP でのパスワード変更を許可
  • 結果をさらに表示する際の検索メニューパネルのスクロールを許可
  • 壊れたテストの削除
  • この Emoji テストも壊れていた
  • 不安定なテスト
  • reviewable_scores の正確な sub_total 計算
  • 設定されている場合、適切にエンコードされたスラッグ
  • アップロード作成時に tempfiles をディスクから削除することを保証
  • 連続する段落を編集する際に正しい差分を表示
  • 重複する TopicAllowedUsers の作成を防止
  • 小さな GitHub onebox レイアウトの問題
  • 一覧のモバイル調整

UX 変更

  • タグ入力:選択されていない場合、必須タグを提案
  • 「管理者権限の付与」メールと UI にユーザーのメールアドレスを表示
  • タググループ名入力フィールドを拡大し、プレースホルダーテキストを追加
  • アクセシビリティ向上のため、アラートとモーダルの閉じるボタン化
  • ダークテーマで <select> に正しい背景を適用
  • iOS での引用改善
  • iOS コンポーザーのリグレクション修正
  • 無効なドロップダウンのスタイルをカラー変数で更新
  • 検索メニュー結果でのタグ表示を標準化
  • ダッシュボードリンクを git 比較ではなく git コミットリストに
  • グループメンバーシップ UI を明確化
  • 抜粋でローカル日付が UTC であることを強調
  • GitHub onebox 情報が不必要に折り返されないように保証
  • メールでの新しい GitHub onebox レンダリングの改善
  • ポリビルダーの閉じる poll タグの後に改行を追加
  • Digest メールフッターをテーブルで囲み、アライメントオプションを改善
  • コンポーザーリンクモーダル検索結果にメタデータを含める
  • 簡単なスタイリングを可能にするために digest メールテンプレートに CSS クラスを追加

パフォーマンス

  • バナー用のフィルタリング済みインデックス追加
  • ポスト移動を高速化するための通知へのインデックス追加
  • 返信投稿時にクライアントでドラフトを破棄しない
  • 高コストなアップロードのクリーンアップ頻度を低下
  • 要約メールで新規ユーザー数をキャッシュ
  • group_to_category_groups へのインデックス追加
  • oauth2_user_infos(user_id, provider) の一意のインデックス追加
  • 既読状態の移動を高速化
「いいね!」 26