diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8da0c2dfbf..db969a63c2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+## Unreleased
+
+### General
+-
+
+### Client
+-
+
+### Server
+-
+
+
 ## 2024.9.0
 
 ### General
@@ -22,6 +34,7 @@
 - Enhance: Play編集画面の項目の並びを少しリデザイン
 - Enhance: 各種メニューをドロワー表示するかどうか設定可能に
 - Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加
+- Enhance: CWでも絵文字をクリックしてメニューを表示できるように
 - Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正
 - Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正
 - Fix: 月の違う同じ日はセパレータが表示されないのを修正
diff --git a/locales/bn-BD.yml b/locales/bn-BD.yml
index 6fb51ea5d8..0d9e4e116c 100644
--- a/locales/bn-BD.yml
+++ b/locales/bn-BD.yml
@@ -451,7 +451,6 @@ or: "অথবা"
 language: "ভাষা"
 uiLanguage: "UI এর ভাষা"
 aboutX: "{x} সম্পর্কে"
-disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
 noHistory: "কোনো ইতিহাস নেই"
 signinHistory: "প্রবেশ করার ইতিহাস"
 doing: "প্রক্রিয়া করছে..."
diff --git a/locales/ca-ES.yml b/locales/ca-ES.yml
index 49ea2bb64f..9d4ef016ce 100644
--- a/locales/ca-ES.yml
+++ b/locales/ca-ES.yml
@@ -509,7 +509,6 @@ uiLanguage: "Idioma de l'interfície"
 aboutX: "Respecte a {x}"
 emojiStyle: "Estil d'emoji"
 native: "Nadiu"
-disableDrawer: "No mostrar els menús en calaixos"
 showNoteActionsOnlyHover: "Només mostra accions de la nota en passar amb el cursor"
 showReactionsCount: "Mostra el nombre de reaccions a les publicacions"
 noHistory: "No hi ha un registre previ"
diff --git a/locales/cs-CZ.yml b/locales/cs-CZ.yml
index 7db7424762..4a27ed7635 100644
--- a/locales/cs-CZ.yml
+++ b/locales/cs-CZ.yml
@@ -471,7 +471,6 @@ uiLanguage: "Jazyk uživatelského rozhraní"
 aboutX: "O {x}"
 emojiStyle: "Styl emoji"
 native: "Výchozí"
-disableDrawer: "Nepoužívat šuplíkové menu"
 showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši"
 noHistory: "Žádná historie"
 signinHistory: "Historie přihlášení"
diff --git a/locales/de-DE.yml b/locales/de-DE.yml
index 8e44a3bbd4..453f6308f6 100644
--- a/locales/de-DE.yml
+++ b/locales/de-DE.yml
@@ -491,7 +491,6 @@ uiLanguage: "Sprache der Benutzeroberfläche"
 aboutX: "Über {x}"
 emojiStyle: "Emoji-Stil"
 native: "Nativ"
-disableDrawer: "Keine ausfahrbaren Menüs verwenden"
 showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen"
 noHistory: "Kein Verlauf gefunden"
 signinHistory: "Anmeldungsverlauf"
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 61e45628ae..ad81376f89 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -509,7 +509,6 @@ uiLanguage: "User interface language"
 aboutX: "About {x}"
 emojiStyle: "Emoji style"
 native: "Native"
-disableDrawer: "Don't use drawer-style menus"
 showNoteActionsOnlyHover: "Only show note actions on hover"
 showReactionsCount: "See the number of reactions in notes"
 noHistory: "No history available"
diff --git a/locales/es-ES.yml b/locales/es-ES.yml
index 45ad792717..66cab3e957 100644
--- a/locales/es-ES.yml
+++ b/locales/es-ES.yml
@@ -502,7 +502,6 @@ uiLanguage: "Idioma de visualización de la interfaz"
 aboutX: "Acerca de {x}"
 emojiStyle: "Estilo de emoji"
 native: "Nativo"
-disableDrawer: "No mostrar los menús en cajones"
 showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor"
 showReactionsCount: "Mostrar el número de reacciones en las notas"
 noHistory: "No hay datos en el historial"
diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml
index c1e2555d0d..0cf4b65c38 100644
--- a/locales/fr-FR.yml
+++ b/locales/fr-FR.yml
@@ -493,7 +493,6 @@ uiLanguage: "Langue d’affichage de l’interface"
 aboutX: "À propos de {x}"
 emojiStyle: "Style des émojis"
 native: "Natif"
-disableDrawer: "Les menus ne s'affichent pas dans le tiroir"
 showNoteActionsOnlyHover: "Afficher les actions de note uniquement au survol"
 showReactionsCount: "Afficher le nombre de réactions des notes"
 noHistory: "Pas d'historique"
diff --git a/locales/id-ID.yml b/locales/id-ID.yml
index b579d3261b..55ca9d91ac 100644
--- a/locales/id-ID.yml
+++ b/locales/id-ID.yml
@@ -504,7 +504,6 @@ uiLanguage: "Bahasa antarmuka pengguna"
 aboutX: "Tentang {x}"
 emojiStyle: "Gaya emoji"
 native: "Native"
-disableDrawer: "Jangan gunakan menu bergaya laci"
 showNoteActionsOnlyHover: "Hanya tampilkan aksi catatan saat ditunjuk"
 showReactionsCount: "Lihat jumlah reaksi dalam catatan"
 noHistory: "Tidak ada riwayat"
diff --git a/locales/it-IT.yml b/locales/it-IT.yml
index f56cd4e5b2..55b612cac5 100644
--- a/locales/it-IT.yml
+++ b/locales/it-IT.yml
@@ -334,6 +334,7 @@ renameFolder: "Rinomina cartella"
 deleteFolder: "Elimina cartella"
 folder: "Cartella"
 addFile: "Allega"
+showFile: "Visualizza file"
 emptyDrive: "Il Drive è vuoto"
 emptyFolder: "La cartella è vuota"
 unableToDelete: "Eliminazione impossibile"
@@ -509,7 +510,10 @@ uiLanguage: "Lingua di visualizzazione dell'interfaccia"
 aboutX: "Informazioni su {x}"
 emojiStyle: "Stile emoji"
 native: "Nativo"
-disableDrawer: "Non mostrare il menù sul drawer"
+menuStyle: "Stile menu"
+style: "Stile"
+drawer: "Drawer"
+popup: "Popup"
 showNoteActionsOnlyHover: "Mostra le azioni delle Note solo al passaggio del mouse"
 showReactionsCount: "Visualizza il numero di reazioni su una nota"
 noHistory: "Nessuna cronologia"
@@ -1270,6 +1274,13 @@ genEmbedCode: "Ottieni il codice di incorporamento"
 noteOfThisUser: "Elenco di Note di questo profilo"
 clipNoteLimitExceeded: "Non è possibile aggiungere ulteriori Note a questa Clip."
 performance: "Prestazioni"
+modified: "Modificato"
+discard: "Scarta"
+thereAreNChanges: "Ci sono {n} cambiamenti"
+signinWithPasskey: "Accedi con passkey"
+unknownWebAuthnKey: "Questa è una passkey sconosciuta."
+passkeyVerificationFailed: "La verifica della passkey non è riuscita."
+passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verifica della passkey è riuscita, ma l'accesso senza password è disabilitato."
 _delivery:
   status: "Stato della consegna"
   stop: "Sospensione"
@@ -2375,6 +2386,7 @@ _notification:
   renotedBySomeUsers: "{n} Rinota"
   followedBySomeUsers: "{n} follower"
   flushNotification: "Azzera le notifiche"
+  exportOfXCompleted: "Abbiamo completato l'esportazione di {x}"
   _types:
     all: "Tutto"
     note: "Nuove Note"
@@ -2389,6 +2401,8 @@ _notification:
     followRequestAccepted: "Richiesta di follow accettata"
     roleAssigned: "Ruolo concesso"
     achievementEarned: "Risultato raggiunto"
+    exportCompleted: "Esportazione completata"
+    test: "Prova la notifica"
     app: "Notifiche da applicazioni"
   _actions:
     followBack: "Segui"
diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml
index 98045b43ac..660fa38e38 100644
--- a/locales/ja-KS.yml
+++ b/locales/ja-KS.yml
@@ -509,7 +509,6 @@ uiLanguage: "UIの表示言語"
 aboutX: "{x}について"
 emojiStyle: "絵文字のスタイル"
 native: "ネイティブ"
-disableDrawer: "メニューをドロワーで表示せえへん"
 showNoteActionsOnlyHover: "ノートの操作部をホバー時のみ表示するで"
 showReactionsCount: "ノートのリアクション数を表示する"
 noHistory: "履歴はないわ。"
diff --git a/locales/ko-GS.yml b/locales/ko-GS.yml
index 77fcc9f489..082140f2e9 100644
--- a/locales/ko-GS.yml
+++ b/locales/ko-GS.yml
@@ -476,7 +476,6 @@ uiLanguage: "UI 표시 언어"
 aboutX: "{x}에 대해서"
 emojiStyle: "이모지 모양"
 native: "기본"
-disableDrawer: "드로어 메뉴 쓰지 않기"
 showNoteActionsOnlyHover: "마우스 올맀을 때만 노트 액션 버턴 보이기"
 noHistory: "기록이 없십니다"
 signinHistory: "로그인 기록"
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index e9b09b0c76..f737a74d5d 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -236,6 +236,8 @@ silencedInstances: "사일런스한 서버"
 silencedInstancesDescription: "사일런스하려는 서버의 호스트명을 한 줄에 하나씩 입력합니다. 사일런스된 서버에 소속된 유저는 모두 '사일런스'된 상태로 취급되며, 이 서버로부터의 팔로우가 프로필 설정과 무관하게 승인제로 변경되고, 팔로워가 아닌 로컬 유저에게는 멘션할 수 없게 됩니다. 정지된 서버에는 적용되지 않습니다."
 mediaSilencedInstances: "미디어를 사일런스한 서버"
 mediaSilencedInstancesDescription: "미디어를 사일런스 하려는 서버의 호스트를 한 줄에 하나씩 입력합니다. 미디어가 사일런스된 서버의 유저가 업로드한 파일은 모두 민감한 미디어로 처리되며, 커스텀 이모지를 사용할 수 없게 됩니다. 또한, 차단한 인스턴스에는 적용되지 않습니다."
+federationAllowedHosts: "연합을 허가하는 서버"
+federationAllowedHostsDescription: "연합을 허가하는 서버의 호스트를 엔터로 구분해서 설정합니다."
 muteAndBlock: "뮤트 및 차단"
 mutedUsers: "뮤트한 유저"
 blockedUsers: "차단한 유저"
@@ -334,6 +336,7 @@ renameFolder: "폴더 이름 바꾸기"
 deleteFolder: "폴더 삭제"
 folder: "폴더"
 addFile: "파일 추가"
+showFile: "파일 표시하기"
 emptyDrive: "드라이브가 비어 있습니다"
 emptyFolder: "폴더가 비어 있습니다"
 unableToDelete: "삭제할 수 없습니다"
@@ -509,7 +512,10 @@ uiLanguage: "UI 표시 언어"
 aboutX: "{x}에 대하여"
 emojiStyle: "이모지 스타일"
 native: "기본"
-disableDrawer: "드로어 메뉴를 사용하지 않기"
+menuStyle: "메뉴 스타일"
+style: "스타일"
+drawer: "서랍"
+popup: "팝업"
 showNoteActionsOnlyHover: "마우스가 올라간 때에만 노트 동작 버튼을 표시하기"
 showReactionsCount: "노트의 반응 수를 표시하기"
 noHistory: "기록이 없습니다"
@@ -1273,6 +1279,10 @@ performance: "퍼포먼스"
 modified: "변경 있음"
 discard: "파기"
 thereAreNChanges: "{n}건 변경이 있습니다."
+signinWithPasskey: "패스키로 로그인"
+unknownWebAuthnKey: "등록되지 않은 패스키입니다."
+passkeyVerificationFailed: "패스키 검증을 실패했습니다."
+passkeyVerificationSucceededButPasswordlessLoginDisabled: "패스키를 검증했으나, 비밀번호 없이 로그인하기가 꺼져 있습니다."
 _delivery:
   status: "전송 상태"
   stop: "정지됨"
@@ -2240,6 +2250,9 @@ _profile:
   changeBanner: "배너 이미지 변경"
   verifiedLinkDescription: "내용에 자신의 프로필로 향하는 링크가 포함된 페이지의 URL을 삽입하면 소유자 인증 마크가 표시됩니다."
   avatarDecorationMax: "최대 {max}개까지 장식을 할 수 있습니다."
+  followedMessage: "팔로우 받았을 때 메시지"
+  followedMessageDescription: "팔로우 받았을 때 상대방에게 보여줄 단문 메시지를 설정할 수 있습니다."
+  followedMessageDescriptionForLockedAccount: "팔로우를 승인제로 한 경우, 팔로우 요청을 수락했을 때 보여줍니다."
 _exportOrImport:
   allNotes: "모든 노트"
   favoritedNotes: "즐겨찾기한 노트"
@@ -2378,6 +2391,7 @@ _notification:
   renotedBySomeUsers: "{n}명이 리노트했습니다"
   followedBySomeUsers: "{n}명에게 팔로우됨"
   flushNotification: "알림 이력을 초기화"
+  exportOfXCompleted: "{x} 추출에 성공했습니다."
   _types:
     all: "전부"
     note: "사용자의 새 글"
@@ -2392,6 +2406,8 @@ _notification:
     followRequestAccepted: "팔로우 요청이 승인되었을 때"
     roleAssigned: "역할이 부여 됨"
     achievementEarned: "도전 과제 획득"
+    exportCompleted: "추출을 성공함"
+    test: "알림 테스트"
     app: "연동된 앱을 통한 알림"
   _actions:
     followBack: "팔로우"
diff --git a/locales/pl-PL.yml b/locales/pl-PL.yml
index 73eff0941a..f586ff2bff 100644
--- a/locales/pl-PL.yml
+++ b/locales/pl-PL.yml
@@ -492,7 +492,6 @@ uiLanguage: "Język wyświetlania UI"
 aboutX: "O {x}"
 emojiStyle: "Styl emoji"
 native: "Natywny"
-disableDrawer: "Nie używaj menu w stylu szuflady"
 showNoteActionsOnlyHover: "Pokazuj akcje notatek tylko po najechaniu myszką"
 showReactionsCount: "Wyświetl liczbę reakcji na notatkę"
 noHistory: "Brak historii"
diff --git a/locales/pt-PT.yml b/locales/pt-PT.yml
index 41246c18ae..34de5066f3 100644
--- a/locales/pt-PT.yml
+++ b/locales/pt-PT.yml
@@ -509,7 +509,6 @@ uiLanguage: "Idioma de exibição da interface "
 aboutX: "Sobre {x}"
 emojiStyle: "Estilo de emojis"
 native: "Nativo"
-disableDrawer: "Não mostrar o menu em formato de gaveta"
 showNoteActionsOnlyHover: "Exibir as ações da nota somente ao passar o cursor sobre ela"
 showReactionsCount: "Ver o número de reações nas notas"
 noHistory: "Ainda não há histórico"
diff --git a/locales/ro-RO.yml b/locales/ro-RO.yml
index b4c9b90de9..a5f8057860 100644
--- a/locales/ro-RO.yml
+++ b/locales/ro-RO.yml
@@ -453,7 +453,6 @@ or: "Sau"
 language: "Limbă"
 uiLanguage: "Limba interfeței"
 aboutX: "Despre {x}"
-disableDrawer: "Nu folosi meniuri în stil sertar"
 noHistory: "Nu există istoric"
 signinHistory: "Istoric autentificări"
 doing: "Se procesează..."
diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml
index 9610600ed0..cdc4898a3b 100644
--- a/locales/ru-RU.yml
+++ b/locales/ru-RU.yml
@@ -503,7 +503,6 @@ uiLanguage: "Язык интерфейса"
 aboutX: "Описание {x}"
 emojiStyle: "Стиль эмодзи"
 native: "Системные"
-disableDrawer: "Не использовать выдвижные меню"
 showNoteActionsOnlyHover: "Показывать кнопки у заметок только при наведении"
 showReactionsCount: "Видеть количество реакций на заметках"
 noHistory: "История пока пуста"
diff --git a/locales/sk-SK.yml b/locales/sk-SK.yml
index 41f8949196..eb1675bdb0 100644
--- a/locales/sk-SK.yml
+++ b/locales/sk-SK.yml
@@ -454,7 +454,6 @@ uiLanguage: "Jazyk používateľského prostredia"
 aboutX: "O {x}"
 emojiStyle: "Štýl emoji"
 native: "Natívne"
-disableDrawer: "Nepoužívať šuflíkové menu"
 showNoteActionsOnlyHover: "Ovládacie prvky poznámky sa zobrazujú len po nabehnutí myši"
 noHistory: "Žiadna história"
 signinHistory: "História prihlásení"
diff --git a/locales/th-TH.yml b/locales/th-TH.yml
index 2fb4a5253a..f5d29a2ce5 100644
--- a/locales/th-TH.yml
+++ b/locales/th-TH.yml
@@ -509,7 +509,6 @@ uiLanguage: "ภาษาอินเทอร์เฟซผู้ใช้ง
 aboutX: "เกี่ยวกับ {x}"
 emojiStyle: "สไตล์ของเอโมจิ"
 native: "ภาษาแม่"
-disableDrawer: "ไม่แสดงเมนูในรูปแบบลิ้นชัก"
 showNoteActionsOnlyHover: "แสดงการดำเนินการโน้ตเมื่อโฮเวอร์(วางเมาส์เหนือ)เท่านั้น"
 showReactionsCount: "แสดงจำนวนรีแอกชั่นในโน้ต"
 noHistory: "ไม่มีประวัติ"
diff --git a/locales/uk-UA.yml b/locales/uk-UA.yml
index 36d741d30e..e51156ce22 100644
--- a/locales/uk-UA.yml
+++ b/locales/uk-UA.yml
@@ -452,7 +452,6 @@ language: "Мова"
 uiLanguage: "Мова інтерфейсу"
 aboutX: "Про {x}"
 native: "місцевий"
-disableDrawer: "Не використовувати висувні меню"
 noHistory: "Історія порожня"
 signinHistory: "Історія входів"
 enableAdvancedMfm: "Увімкнути розширений MFM"
diff --git a/locales/uz-UZ.yml b/locales/uz-UZ.yml
index ee4ab83ce7..cf2e5f2fe7 100644
--- a/locales/uz-UZ.yml
+++ b/locales/uz-UZ.yml
@@ -471,7 +471,6 @@ uiLanguage: "Interfeys tili"
 aboutX: "{x} haqida"
 emojiStyle: "Emoji ko'rinishi"
 native: "Mahalliy"
-disableDrawer: "Slayd menyusidan foydalanmang"
 showNoteActionsOnlyHover: "Eslatma amallarini faqat sichqonchani olib borganda ko‘rsatish"
 noHistory: "Tarix yo'q"
 signinHistory: "kirish tarixi"
diff --git a/locales/vi-VN.yml b/locales/vi-VN.yml
index aadbf8b16f..f3979bbd3c 100644
--- a/locales/vi-VN.yml
+++ b/locales/vi-VN.yml
@@ -486,7 +486,6 @@ uiLanguage: "Ngôn ngữ giao diện"
 aboutX: "Giới thiệu {x}"
 emojiStyle: "Kiểu cách Emoji"
 native: "Bản xứ"
-disableDrawer: "Không dùng menu thanh bên"
 showNoteActionsOnlyHover: "Chỉ hiển thị các hành động ghi chú khi di chuột"
 noHistory: "Không có dữ liệu"
 signinHistory: "Lịch sử đăng nhập"
diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml
index ff00a1bb8f..0d76361d6f 100644
--- a/locales/zh-CN.yml
+++ b/locales/zh-CN.yml
@@ -334,6 +334,7 @@ renameFolder: "重命名文件夹"
 deleteFolder: "删除文件夹"
 folder: "文件夹"
 addFile: "添加文件"
+showFile: "显示文件"
 emptyDrive: "网盘中无文件"
 emptyFolder: "此文件夹中无文件"
 unableToDelete: "无法删除"
@@ -509,7 +510,9 @@ uiLanguage: "显示语言"
 aboutX: "关于 {x}"
 emojiStyle: "表情符号的样式"
 native: "原生"
-disableDrawer: "不显示抽屉菜单"
+menuStyle: "菜单样式"
+style: "样式"
+popup: "弹窗"
 showNoteActionsOnlyHover: "仅在悬停时显示帖子操作"
 showReactionsCount: "显示帖子的回应数"
 noHistory: "没有历史记录"
@@ -1270,6 +1273,10 @@ genEmbedCode: "生成嵌入代码"
 noteOfThisUser: "此用户的帖子"
 clipNoteLimitExceeded: "无法再往此便签内添加更多帖子"
 performance: "性能"
+signinWithPasskey: "使用通行密钥登录"
+unknownWebAuthnKey: "此通行密钥未注册。"
+passkeyVerificationFailed: "验证通行密钥失败。"
+passkeyVerificationSucceededButPasswordlessLoginDisabled: "通行密钥验证成功,但账户未开启无密码登录。"
 _delivery:
   status: "投递状态"
   stop: "停止投递"
@@ -2375,6 +2382,7 @@ _notification:
   renotedBySomeUsers: "{n} 人转发了"
   followedBySomeUsers: "被 {n} 人关注"
   flushNotification: "重置通知历史"
+  exportOfXCompleted: "已完成 {x} 个导出"
   _types:
     all: "全部"
     note: "用户的新帖子"
@@ -2389,6 +2397,8 @@ _notification:
     followRequestAccepted: "关注请求已通过"
     roleAssigned: "授予的角色"
     achievementEarned: "取得的成就"
+    exportCompleted: "已完成导出"
+    test: "测试通知"
     app: "关联应用的通知"
   _actions:
     followBack: "回关"
diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml
index c684fbe628..74c03befd1 100644
--- a/locales/zh-TW.yml
+++ b/locales/zh-TW.yml
@@ -236,6 +236,8 @@ silencedInstances: "被禁言的伺服器"
 silencedInstancesDescription: "設定要禁言的伺服器主機名稱,以換行分隔。隸屬於禁言伺服器的所有帳戶都將被視為「禁言帳戶」,只能發出「追隨請求」,而且無法提及未追隨的本地帳戶。這不會影響已封鎖的實例。"
 mediaSilencedInstances: "媒體被禁言的伺服器"
 mediaSilencedInstancesDescription: "設定您想要對媒體設定禁言的伺服器,以換行符號區隔。來自被媒體禁言的伺服器所屬帳戶的所有檔案都會被視為敏感檔案,且自訂表情符號不能使用。被封鎖的伺服器不受影響。"
+federationAllowedHosts: "允許聯邦通訊的伺服器"
+federationAllowedHostsDescription: "設定允許聯邦通訊的伺服器主機,以換行符號分隔。"
 muteAndBlock: "靜音和封鎖"
 mutedUsers: "被靜音的使用者"
 blockedUsers: "被封鎖的使用者"
@@ -334,6 +336,7 @@ renameFolder: "重新命名資料夾"
 deleteFolder: "刪除資料夾"
 folder: "資料夾"
 addFile: "加入附件"
+showFile: "瀏覽文件"
 emptyDrive: "雲端硬碟為空"
 emptyFolder: "資料夾為空"
 unableToDelete: "無法刪除"
@@ -509,7 +512,10 @@ uiLanguage: "介面語言"
 aboutX: "關於{x}"
 emojiStyle: "表情符號的風格"
 native: "原生"
-disableDrawer: "不顯示下拉式選單"
+menuStyle: "選單風格"
+style: "風格"
+drawer: "側邊欄"
+popup: "彈出式視窗"
 showNoteActionsOnlyHover: "僅在游標停留時顯示貼文的操作選項"
 showReactionsCount: "顯示貼文的反應數目"
 noHistory: "沒有歷史紀錄"
@@ -1273,6 +1279,10 @@ performance: "性能"
 modified: "已變更"
 discard: "取消"
 thereAreNChanges: "有 {n} 處的變更"
+signinWithPasskey: "使用密碼金鑰登入"
+unknownWebAuthnKey: "未註冊的金鑰。"
+passkeyVerificationFailed: "驗證金鑰失敗。"
+passkeyVerificationSucceededButPasswordlessLoginDisabled: "雖然驗證金鑰成功,但是無密碼登入的方式是停用的。"
 _delivery:
   status: "傳送狀態"
   stop: "停止發送"
@@ -2240,6 +2250,9 @@ _profile:
   changeBanner: "變更橫幅圖像"
   verifiedLinkDescription: "如果輸入包含您個人資料的網站 URL,欄位旁邊將出現驗證圖示。"
   avatarDecorationMax: "最多可以設置 {max} 個裝飾。"
+  followedMessage: "被追隨時的訊息"
+  followedMessageDescription: "可以設定被追隨時顯示給對方的訊息。"
+  followedMessageDescriptionForLockedAccount: "如果追隨是需要審核的話,在允許追隨請求之後顯示。"
 _exportOrImport:
   allNotes: "所有貼文"
   favoritedNotes: "「我的最愛」貼文"
@@ -2378,6 +2391,7 @@ _notification:
   renotedBySomeUsers: "{n}人做了轉發"
   followedBySomeUsers: "被{n}人追隨了"
   flushNotification: "重置通知歷史紀錄"
+  exportOfXCompleted: "{x} 的匯出已完成。"
   _types:
     all: "全部 "
     note: "使用者的最新貼文"
@@ -2392,6 +2406,8 @@ _notification:
     followRequestAccepted: "追隨請求已接受"
     roleAssigned: "已授予角色"
     achievementEarned: "獲得成就"
+    exportCompleted: "已完成匯出。"
+    test: "通知測試"
     app: "應用程式通知"
   _actions:
     followBack: "追隨回去"
diff --git a/package.json b/package.json
index 4755ed33b0..edc1d7e318 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
 	"name": "misskey",
-	"version": "2024.9.0-alpha.12",
+	"version": "2024.9.0",
 	"codename": "nasubi",
 	"repository": {
 		"type": "git",
diff --git a/packages/backend/package.json b/packages/backend/package.json
index 9097b0eaf7..394066533d 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -67,9 +67,9 @@
 	"dependencies": {
 		"@aws-sdk/client-s3": "3.620.0",
 		"@aws-sdk/lib-storage": "3.620.0",
-		"@bull-board/api": "5.23.0",
-		"@bull-board/fastify": "5.23.0",
-		"@bull-board/ui": "5.23.0",
+		"@bull-board/api": "6.0.0",
+		"@bull-board/fastify": "6.0.0",
+		"@bull-board/ui": "6.0.0",
 		"@discordapp/twemoji": "15.1.0",
 		"@fastify/accepts": "5.0.0",
 		"@fastify/cookie": "10.0.0",
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index 5de1f87667..dd7bb7823e 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -256,7 +256,7 @@ export class ClientServerService {
 		});
 
 		bullBoardServerAdapter.setBasePath(bullBoardPath);
-		//(fastify.register as any)(bullBoardServerAdapter.registerPlugin(), { prefix: bullBoardPath });
+		(fastify.register as any)(bullBoardServerAdapter.registerPlugin(), { prefix: bullBoardPath });
 		//#endregion
 
 		fastify.register(fastifyView, {
diff --git a/packages/backend/test/e2e/fetch-resource.ts b/packages/backend/test/e2e/fetch-resource.ts
index f8aa67cfac..7efd688ec2 100644
--- a/packages/backend/test/e2e/fetch-resource.ts
+++ b/packages/backend/test/e2e/fetch-resource.ts
@@ -180,7 +180,6 @@ describe('Webリソース', () => {
 		}));
 	});
 
-	/* queueは一時的に無効化されている
 	describe.each([{ path: '/queue' }])('$path', ({ path }) => {
 		test('はログインしないとGETできない。', async () => await notOk({
 			path,
@@ -198,7 +197,6 @@ describe('Webリソース', () => {
 			cookie: cookie(alice),
 		}));
 	});
-	*/
 
 	describe.each([{ path: '/streaming' }])('$path', ({ path }) => {
 		test('はGETできない。', async () => await notOk({
diff --git a/packages/frontend/src/components/MkNote.vue b/packages/frontend/src/components/MkNote.vue
index 0fdb938e25..e8ff743bf2 100644
--- a/packages/frontend/src/components/MkNote.vue
+++ b/packages/frontend/src/components/MkNote.vue
@@ -53,7 +53,14 @@ SPDX-License-Identifier: AGPL-3.0-only
 			<MkInstanceTicker v-if="showTicker" :instance="appearNote.user.instance"/>
 			<div style="container-type: inline-size;">
 				<p v-if="appearNote.cw != null" :class="$style.cw">
-					<Mfm v-if="appearNote.cw != ''" style="margin-right: 8px;" :text="appearNote.cw" :author="appearNote.user" :nyaize="'respect'"/>
+					<Mfm
+						v-if="appearNote.cw != ''"
+						:text="appearNote.cw"
+						:author="appearNote.user"
+						:nyaize="'respect'"
+						:enableEmojiMenu="true"
+						:enableEmojiMenuReaction="true"
+					/>
 					<MkCwButton v-model="showContent" :text="appearNote.text" :renote="appearNote.renote" :files="appearNote.files" :poll="appearNote.poll" style="margin: 4px 0;"/>
 				</p>
 				<div v-show="appearNote.cw == null || showContent" :class="[{ [$style.contentCollapsed]: collapsed }]">
diff --git a/packages/frontend/src/components/MkNoteDetailed.vue b/packages/frontend/src/components/MkNoteDetailed.vue
index 4a042b9cce..bdb800b32a 100644
--- a/packages/frontend/src/components/MkNoteDetailed.vue
+++ b/packages/frontend/src/components/MkNoteDetailed.vue
@@ -68,7 +68,14 @@ SPDX-License-Identifier: AGPL-3.0-only
 		</header>
 		<div :class="$style.noteContent">
 			<p v-if="appearNote.cw != null" :class="$style.cw">
-				<Mfm v-if="appearNote.cw != ''" style="margin-right: 8px;" :text="appearNote.cw" :author="appearNote.user" :nyaize="'respect'"/>
+				<Mfm
+					v-if="appearNote.cw != ''"
+					:text="appearNote.cw"
+					:author="appearNote.user"
+					:nyaize="'respect'"
+					:enableEmojiMenu="true"
+					:enableEmojiMenuReaction="true"
+				/>
 				<MkCwButton v-model="showContent" :text="appearNote.text" :renote="appearNote.renote" :files="appearNote.files" :poll="appearNote.poll"/>
 			</p>
 			<div v-show="appearNote.cw == null || showContent">
diff --git a/packages/frontend/src/components/MkNoteHeader.vue b/packages/frontend/src/components/MkNoteHeader.vue
index 0499e09046..888c570571 100644
--- a/packages/frontend/src/components/MkNoteHeader.vue
+++ b/packages/frontend/src/components/MkNoteHeader.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 
 <template>
 <header :class="$style.root">
-	<component :is="defaultStore.state.enableCondensedLine ? 'MkCondensedLine' : 'div'" :minScale="0" style="min-width: 0;">
+	<component :is="defaultStore.state.enableCondensedLine ? 'MkCondensedLine' : 'div'" :minScale="0.5" style="min-width: 0;">
 		<div style="display: flex; white-space: nowrap; align-items: baseline;">
 			<div v-if="mock" :class="$style.name">
 				<MkUserName :user="note.user"/>
diff --git a/packages/frontend/src/components/global/MkCondensedLine.vue b/packages/frontend/src/components/global/MkCondensedLine.vue
index 7c4957d77f..473d444c16 100644
--- a/packages/frontend/src/components/global/MkCondensedLine.vue
+++ b/packages/frontend/src/components/global/MkCondensedLine.vue
@@ -5,7 +5,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 
 <template>
 <span :class="$style.container">
-	<span ref="content" :class="$style.content">
+	<span ref="content" :class="$style.content" :style="{ maxWidth: `${100 / minScale}%` }">
 		<slot/>
 	</span>
 </span>
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index a6eebc1534..684ae381f0 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -1,7 +1,7 @@
 {
 	"type": "module",
 	"name": "misskey-js",
-	"version": "2024.9.0-alpha.12",
+	"version": "2024.9.0",
 	"description": "Misskey SDK for JavaScript",
 	"license": "MIT",
 	"main": "./built/index.js",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a9f6b16871..69c0243e5f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -90,14 +90,14 @@ importers:
         specifier: 3.620.0
         version: 3.620.0(@aws-sdk/client-s3@3.620.0)
       '@bull-board/api':
-        specifier: 5.23.0
-        version: 5.23.0(@bull-board/ui@5.23.0)
+        specifier: 6.0.0
+        version: 6.0.0(@bull-board/ui@6.0.0)
       '@bull-board/fastify':
-        specifier: 5.23.0
-        version: 5.23.0
+        specifier: 6.0.0
+        version: 6.0.0
       '@bull-board/ui':
-        specifier: 5.23.0
-        version: 5.23.0
+        specifier: 6.0.0
+        version: 6.0.0
       '@discordapp/twemoji':
         specifier: 15.1.0
         version: 15.1.0
@@ -1888,16 +1888,16 @@ packages:
   '@bcoe/v8-coverage@0.2.3':
     resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
 
-  '@bull-board/api@5.23.0':
-    resolution: {integrity: sha512-ZZGsWJ+XBG49GAlNgAL9tTEV6Ms7gMkQnZDbzwUhjGChCKWy62RWuPoZSefNXau9QH9+QzlzHRUeFvt4xr5wiw==}
+  '@bull-board/api@6.0.0':
+    resolution: {integrity: sha512-O0IsIwAOU47bPTJnqRO7RtKFQToMvwRebbuPi6M+SG1gXyiqixLg9pycnfXgSeroaT9E7QQ2PsCPW1HO8VORvw==}
     peerDependencies:
-      '@bull-board/ui': 5.23.0
+      '@bull-board/ui': 6.0.0
 
-  '@bull-board/fastify@5.23.0':
-    resolution: {integrity: sha512-woCnCAav4IByuo05D13MZtETzZp0ej1y0R+6IY33pqLKDRKa6Dor6OMx1l6/nMc/wXeng4SXC5rnrAck7Py70w==}
+  '@bull-board/fastify@6.0.0':
+    resolution: {integrity: sha512-VrKa5BdxYmXh5fJvlSPSm71b+QA9VVXHyGk6xmI/qAefUQbwd2cWJo+ppqaWSaweXa9ymJc+V4l/un0K4oomVA==}
 
-  '@bull-board/ui@5.23.0':
-    resolution: {integrity: sha512-iI/Ssl8T5ZEn9s899Qz67m92M6RU8thf/aqD7cUHB2yHmkCjqbw7s7NaODTsyArAsnyu7DGJMWm7EhbfFXDNgQ==}
+  '@bull-board/ui@6.0.0':
+    resolution: {integrity: sha512-wAFTlBTJbq5DSWxCzTV+FOyZDVwrXP+G1CQ2BpLG9o9+dpwYxUESx/VxNEDHnyPcy13gm29kB4fSRY+nkelkcQ==}
 
   '@bundled-es-modules/cookie@2.0.0':
     resolution: {integrity: sha512-Or6YHg/kamKHpxULAdSqhGqnWFneIXu1NKvvfBBzKGwpVsYuFIQ5aBPHDnnoR3ghW1nvSkALd+EF9iMtY7Vjxw==}
@@ -2707,10 +2707,6 @@ packages:
     resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==}
     engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
 
-  '@fastify/accept-negotiator@1.0.0':
-    resolution: {integrity: sha512-4R/N2KfYeld7A5LGkai+iUFMahXcxxYbDp+XS2B1yuL3cdmZLJ9TlCnNzT3q5xFTqsYm0GPpinLUwfSwjcVjyA==}
-    engines: {node: '>=14'}
-
   '@fastify/accept-negotiator@2.0.0':
     resolution: {integrity: sha512-/Sce/kBzuTxIq5tJh85nVNOq9wKD8s+viIgX0fFMDBdw95gnpf53qmF1oBgJym3cPFliWUuSloVg/1w/rH0FcQ==}
 
@@ -2757,23 +2753,20 @@ packages:
   '@fastify/reply-from@11.0.0':
     resolution: {integrity: sha512-dv3o8hyy4sxhg1RN9l6ueM+PMMaIPKLjtL2T99H5M7h1Xt8d1RX3r+xC+sL5AqJqLvReX4N+7mTq9QDeB8i6Lg==}
 
-  '@fastify/send@2.0.1':
-    resolution: {integrity: sha512-8jdouu0o5d0FMq1+zCKeKXc1tmOQ5tTGYdQP3MpyF9+WWrZT1KCBdh6hvoEYxOm3oJG/akdE9BpehLiJgYRvGw==}
-
   '@fastify/send@3.1.1':
     resolution: {integrity: sha512-LdiV2mle/2tH8vh6GwGl0ubfUAgvY+9yF9oGI1iiwVyNUVOQamvw5n+OFu6iCNNoyuCY80FFURBn4TZCbTe8LA==}
 
-  '@fastify/static@6.12.0':
-    resolution: {integrity: sha512-KK1B84E6QD/FcQWxDI2aiUCwHxMJBI1KeCUzm1BwYpPY1b742+jeKruGHP2uOluuM6OkBPI8CIANrXcCRtC2oQ==}
-
   '@fastify/static@8.0.0':
     resolution: {integrity: sha512-VKGn1PQslB2VqzspyMKPu9xasF9vj+YuyGhVLb1ih6V60VVcRvcf0fFRcl3opt6c6YWwhKKdTUTfVE6COnpw6A==}
 
+  '@fastify/static@8.0.1':
+    resolution: {integrity: sha512-7idyhbcgf14v4bjWzUeHEFvnVxvNJ1n5cyGPgFtwTZjnjUQ1wgC7a2FQai7OGKqCKywDEjzbPhAZRW+uEK1LMg==}
+
   '@fastify/view@10.0.0':
     resolution: {integrity: sha512-2KnfgpSbAImKV5kKdNAkSyjV+9kYUYLvgDLx/wlzgqel92bN9Z520cwG3g3bAkr0yVnEJu62dIm2qAL9FASS1w==}
 
-  '@fastify/view@8.2.0':
-    resolution: {integrity: sha512-hBSiBofCnJNlPHEMZWpO1SL84eqOaqujJ1hR3jntFyZZCkweH5jMs12DKYyGesjVll7SJFRRxPUBB8kmUmneRQ==}
+  '@fastify/view@10.0.1':
+    resolution: {integrity: sha512-rXtBN0oVDmoRZAS7lelrCIahf+qFtlMOOas8VPdA7JvrJ9ChcF7e36pIUPU0Vbs3KmHxESUb7XatavUZEe/k5Q==}
 
   '@github/webauthn-json@2.1.1':
     resolution: {integrity: sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==}
@@ -3083,10 +3076,6 @@ packages:
     resolution: {integrity: sha512-uSvJdwQU5nK+Vdf6zxcWAY2A8r7uqe+gePwLWzJ+fsQehq18pc0I2hJKwypZ2aLM90+Er9u1xn4iLJPZ+xlL4g==}
     engines: {node: '>=8'}
 
-  '@lukeed/ms@2.0.1':
-    resolution: {integrity: sha512-Xs/4RZltsAL7pkvaNStUQt7netTkyxrS0K+RILcVr3TRMS/ToOg4I6uNfhB9SlGsnWBym4U+EaXq0f0cEMNkHA==}
-    engines: {node: '>=8'}
-
   '@lukeed/ms@2.0.2':
     resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==}
     engines: {node: '>=8'}
@@ -6914,9 +6903,6 @@ packages:
     resolution: {integrity: sha512-/PlTQCI96+fZMAOLMZK4CWG1ItCbfZ/0jx7UIJFChPNrx7tcEgerUgWbeieCM9MfHInUDyK8DWYZ+YrywDJuTg==}
     hasBin: true
 
-  fastify-plugin@4.5.0:
-    resolution: {integrity: sha512-79ak0JxddO0utAXAQ5ccKhvs6vX2MGyHHMMsmZkBANrq3hXc1CHzvNPHOcvTsVMEPl5I+NT+RO4YKMGehOfSIg==}
-
   fastify-plugin@4.5.1:
     resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==}
 
@@ -7377,9 +7363,6 @@ packages:
   hash-sum@2.0.0:
     resolution: {integrity: sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==}
 
-  hashlru@2.3.0:
-    resolution: {integrity: sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A==}
-
   hasown@2.0.0:
     resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
     engines: {node: '>= 0.4'}
@@ -12252,7 +12235,7 @@ snapshots:
       '@babel/traverse': 7.23.5
       '@babel/types': 7.24.7
       convert-source-map: 2.0.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       gensync: 1.0.0-beta.2
       json5: 2.2.3
       semver: 6.3.1
@@ -12272,7 +12255,7 @@ snapshots:
       '@babel/traverse': 7.24.7
       '@babel/types': 7.24.7
       convert-source-map: 2.0.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       gensync: 1.0.0-beta.2
       json5: 2.2.3
       semver: 6.3.1
@@ -12531,7 +12514,7 @@ snapshots:
       '@babel/helper-split-export-declaration': 7.22.6
       '@babel/parser': 7.24.7
       '@babel/types': 7.24.7
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -12546,7 +12529,7 @@ snapshots:
       '@babel/helper-split-export-declaration': 7.24.7
       '@babel/parser': 7.24.7
       '@babel/types': 7.24.7
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       globals: 11.12.0
     transitivePeerDependencies:
       - supports-color
@@ -12567,22 +12550,22 @@ snapshots:
 
   '@bcoe/v8-coverage@0.2.3': {}
 
-  '@bull-board/api@5.23.0(@bull-board/ui@5.23.0)':
+  '@bull-board/api@6.0.0(@bull-board/ui@6.0.0)':
     dependencies:
-      '@bull-board/ui': 5.23.0
+      '@bull-board/ui': 6.0.0
       redis-info: 3.1.0
 
-  '@bull-board/fastify@5.23.0':
+  '@bull-board/fastify@6.0.0':
     dependencies:
-      '@bull-board/api': 5.23.0(@bull-board/ui@5.23.0)
-      '@bull-board/ui': 5.23.0
-      '@fastify/static': 6.12.0
-      '@fastify/view': 8.2.0
+      '@bull-board/api': 6.0.0(@bull-board/ui@6.0.0)
+      '@bull-board/ui': 6.0.0
+      '@fastify/static': 8.0.1
+      '@fastify/view': 10.0.1
       ejs: 3.1.10
 
-  '@bull-board/ui@5.23.0':
+  '@bull-board/ui@6.0.0':
     dependencies:
-      '@bull-board/api': 5.23.0(@bull-board/ui@5.23.0)
+      '@bull-board/api': 6.0.0(@bull-board/ui@6.0.0)
 
   '@bundled-es-modules/cookie@2.0.0':
     dependencies:
@@ -13120,8 +13103,6 @@ snapshots:
     dependencies:
       levn: 0.4.1
 
-  '@fastify/accept-negotiator@1.0.0': {}
-
   '@fastify/accept-negotiator@2.0.0': {}
 
   '@fastify/accepts@5.0.0':
@@ -13196,14 +13177,6 @@ snapshots:
       toad-cache: 3.7.0
       undici: 6.19.8
 
-  '@fastify/send@2.0.1':
-    dependencies:
-      '@lukeed/ms': 2.0.1
-      escape-html: 1.0.3
-      fast-decode-uri-component: 1.0.1
-      http-errors: 2.0.0
-      mime: 3.0.0
-
   '@fastify/send@3.1.1':
     dependencies:
       '@lukeed/ms': 2.0.2
@@ -13212,15 +13185,6 @@ snapshots:
       http-errors: 2.0.0
       mime: 3.0.0
 
-  '@fastify/static@6.12.0':
-    dependencies:
-      '@fastify/accept-negotiator': 1.0.0
-      '@fastify/send': 2.0.1
-      content-disposition: 0.5.4
-      fastify-plugin: 4.5.0
-      glob: 8.1.0
-      p-limit: 3.1.0
-
   '@fastify/static@8.0.0':
     dependencies:
       '@fastify/accept-negotiator': 2.0.0
@@ -13230,15 +13194,24 @@ snapshots:
       fastq: 1.17.1
       glob: 11.0.0
 
+  '@fastify/static@8.0.1':
+    dependencies:
+      '@fastify/accept-negotiator': 2.0.0
+      '@fastify/send': 3.1.1
+      content-disposition: 0.5.4
+      fastify-plugin: 5.0.0
+      fastq: 1.17.1
+      glob: 11.0.0
+
   '@fastify/view@10.0.0':
     dependencies:
       fastify-plugin: 5.0.0
       toad-cache: 3.7.0
 
-  '@fastify/view@8.2.0':
+  '@fastify/view@10.0.1':
     dependencies:
-      fastify-plugin: 4.5.0
-      hashlru: 2.3.0
+      fastify-plugin: 5.0.0
+      toad-cache: 3.7.0
 
   '@github/webauthn-json@2.1.1': {}
 
@@ -13616,8 +13589,6 @@ snapshots:
 
   '@lukeed/csprng@1.0.1': {}
 
-  '@lukeed/ms@2.0.1': {}
-
   '@lukeed/ms@2.0.2': {}
 
   '@mapbox/node-pre-gyp@1.0.9(encoding@0.1.13)':
@@ -15938,7 +15909,7 @@ snapshots:
       '@typescript-eslint/types': 7.17.0
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
       '@typescript-eslint/visitor-keys': 7.17.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
     optionalDependencies:
       typescript: 5.5.4
@@ -15951,7 +15922,7 @@ snapshots:
       '@typescript-eslint/types': 7.17.0
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2)
       '@typescript-eslint/visitor-keys': 7.17.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
     optionalDependencies:
       typescript: 5.6.2
@@ -15964,7 +15935,7 @@ snapshots:
       '@typescript-eslint/types': 7.17.0
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2)
       '@typescript-eslint/visitor-keys': 7.17.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.8.0
     optionalDependencies:
       typescript: 5.6.2
@@ -15985,7 +15956,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/typescript-estree': 7.1.0(typescript@5.3.3)
       '@typescript-eslint/utils': 7.1.0(eslint@9.11.0)(typescript@5.3.3)
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
       ts-api-utils: 1.0.1(typescript@5.3.3)
     optionalDependencies:
@@ -15997,7 +15968,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4)
       '@typescript-eslint/utils': 7.17.0(eslint@9.11.0)(typescript@5.5.4)
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
       ts-api-utils: 1.3.0(typescript@5.5.4)
     optionalDependencies:
@@ -16009,7 +15980,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2)
       '@typescript-eslint/utils': 7.17.0(eslint@9.11.0)(typescript@5.6.2)
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
       ts-api-utils: 1.3.0(typescript@5.6.2)
     optionalDependencies:
@@ -16021,7 +15992,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.6.2)
       '@typescript-eslint/utils': 7.17.0(eslint@9.8.0)(typescript@5.6.2)
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.8.0
       ts-api-utils: 1.3.0(typescript@5.6.2)
     optionalDependencies:
@@ -16037,7 +16008,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/types': 7.1.0
       '@typescript-eslint/visitor-keys': 7.1.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       globby: 11.1.0
       is-glob: 4.0.3
       minimatch: 9.0.3
@@ -16052,7 +16023,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/types': 7.17.0
       '@typescript-eslint/visitor-keys': 7.17.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       globby: 11.1.0
       is-glob: 4.0.3
       minimatch: 9.0.4
@@ -16067,7 +16038,7 @@ snapshots:
     dependencies:
       '@typescript-eslint/types': 7.17.0
       '@typescript-eslint/visitor-keys': 7.17.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       globby: 11.1.0
       is-glob: 4.0.3
       minimatch: 9.0.4
@@ -16146,7 +16117,7 @@ snapshots:
     dependencies:
       '@ampproject/remapping': 2.2.1
       '@bcoe/v8-coverage': 0.2.3
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       istanbul-lib-coverage: 3.2.2
       istanbul-lib-report: 3.0.1
       istanbul-lib-source-maps: 5.0.4
@@ -16165,7 +16136,7 @@ snapshots:
     dependencies:
       '@ampproject/remapping': 2.2.1
       '@bcoe/v8-coverage': 0.2.3
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       istanbul-lib-coverage: 3.2.2
       istanbul-lib-report: 3.0.1
       istanbul-lib-source-maps: 5.0.4
@@ -16479,14 +16450,14 @@ snapshots:
 
   agent-base@6.0.2:
     dependencies:
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
     optional: true
 
   agent-base@7.1.0:
     dependencies:
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
 
@@ -18814,8 +18785,6 @@ snapshots:
     dependencies:
       strnum: 1.0.5
 
-  fastify-plugin@4.5.0: {}
-
   fastify-plugin@4.5.1: {}
 
   fastify-plugin@5.0.0: {}
@@ -19375,8 +19344,6 @@ snapshots:
 
   hash-sum@2.0.0: {}
 
-  hashlru@2.3.0: {}
-
   hasown@2.0.0:
     dependencies:
       function-bind: 1.1.2
@@ -19461,7 +19428,7 @@ snapshots:
   http-proxy-agent@7.0.2:
     dependencies:
       agent-base: 7.1.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
 
@@ -19500,7 +19467,7 @@ snapshots:
   https-proxy-agent@5.0.1:
     dependencies:
       agent-base: 6.0.2
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
     optional: true
@@ -19508,14 +19475,14 @@ snapshots:
   https-proxy-agent@7.0.2:
     dependencies:
       agent-base: 7.1.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
 
   https-proxy-agent@7.0.5:
     dependencies:
       agent-base: 7.1.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
     transitivePeerDependencies:
       - supports-color
 
@@ -19879,7 +19846,7 @@ snapshots:
 
   istanbul-lib-source-maps@4.0.1:
     dependencies:
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       istanbul-lib-coverage: 3.2.2
       source-map: 0.6.1
     transitivePeerDependencies:
@@ -19888,7 +19855,7 @@ snapshots:
   istanbul-lib-source-maps@5.0.4:
     dependencies:
       '@jridgewell/trace-mapping': 0.3.25
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       istanbul-lib-coverage: 3.2.2
     transitivePeerDependencies:
       - supports-color
@@ -20310,7 +20277,7 @@ snapshots:
       whatwg-encoding: 3.1.1
       whatwg-mimetype: 4.0.0
       whatwg-url: 14.0.0
-      ws: 8.18.0(bufferutil@4.0.7)(utf-8-validate@6.0.3)
+      ws: 8.18.0(bufferutil@4.0.8)(utf-8-validate@6.0.4)
       xml-name-validator: 5.0.0
     transitivePeerDependencies:
       - bufferutil
@@ -22905,7 +22872,7 @@ snapshots:
     dependencies:
       '@hapi/hoek': 11.0.4
       '@hapi/wreck': 18.0.1
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       joi: 17.11.0
     transitivePeerDependencies:
       - supports-color
@@ -23005,7 +22972,7 @@ snapshots:
   socks-proxy-agent@8.0.2:
     dependencies:
       agent-base: 7.1.0
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       socks: 2.7.1
     transitivePeerDependencies:
       - supports-color
@@ -23856,7 +23823,7 @@ snapshots:
   vite-node@1.6.0(@types/node@20.14.12)(sass@1.79.3)(terser@5.33.0):
     dependencies:
       cac: 6.7.14
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       pathe: 1.1.2
       picocolors: 1.0.1
       vite: 5.4.8(@types/node@20.14.12)(sass@1.79.3)(terser@5.33.0)
@@ -24024,7 +23991,7 @@ snapshots:
 
   vue-eslint-parser@9.4.3(eslint@9.11.0):
     dependencies:
-      debug: 4.3.5(supports-color@5.5.0)
+      debug: 4.3.5(supports-color@8.1.1)
       eslint: 9.11.0
       eslint-scope: 7.2.2
       eslint-visitor-keys: 3.4.3