diff --git a/.github/workflows/api-misskey-js.yml b/.github/workflows/api-misskey-js.yml
index e21738c4f4..6f4219b54b 100644
--- a/.github/workflows/api-misskey-js.yml
+++ b/.github/workflows/api-misskey-js.yml
@@ -9,6 +9,10 @@ on:
paths:
- packages/misskey-js/**
- .github/workflows/api-misskey-js.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
report:
diff --git a/.github/workflows/get-api-diff.yml b/.github/workflows/get-api-diff.yml
index 46c726b986..6805e8bc3c 100644
--- a/.github/workflows/get-api-diff.yml
+++ b/.github/workflows/get-api-diff.yml
@@ -9,6 +9,10 @@ on:
paths:
- packages/backend/**
- .github/workflows/get-api-diff.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
get-from-misskey:
runs-on: ubuntu-latest
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
index 9785bb5744..2f6938d2e4 100644
--- a/.github/workflows/lint.yml
+++ b/.github/workflows/lint.yml
@@ -28,6 +28,10 @@ on:
- packages/misskey-reversi/**
- packages/shared/eslint.config.js
- .github/workflows/lint.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
pnpm_install:
runs-on: ubuntu-latest
diff --git a/.github/workflows/locale.yml b/.github/workflows/locale.yml
index 2eb4ca3ad9..95d29bf828 100644
--- a/.github/workflows/locale.yml
+++ b/.github/workflows/locale.yml
@@ -9,6 +9,10 @@ on:
paths:
- locales/**
- .github/workflows/locale.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
locale_verify:
runs-on: ubuntu-latest
diff --git a/.github/workflows/on-release-created.yml b/.github/workflows/on-release-created.yml
index 8ca2ed9efb..fc224a6239 100644
--- a/.github/workflows/on-release-created.yml
+++ b/.github/workflows/on-release-created.yml
@@ -6,6 +6,9 @@ on:
workflow_dispatch:
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
publish-misskey-js:
name: Publish misskey-js
diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml
index dfba46a8c8..be294201f0 100644
--- a/.github/workflows/storybook.yml
+++ b/.github/workflows/storybook.yml
@@ -13,6 +13,9 @@ on:
# This is a waste of chromatic build quota, so we don't run storybook CI on pull requests targets master.
- master
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
build:
# chromatic is not likely to be available for fork repositories, so we disable for fork repositories.
diff --git a/.github/workflows/test-backend.yml b/.github/workflows/test-backend.yml
index debfe24819..99a9f99b75 100644
--- a/.github/workflows/test-backend.yml
+++ b/.github/workflows/test-backend.yml
@@ -18,6 +18,10 @@ on:
- packages/misskey-js/**
- .github/workflows/test-backend.yml
- .github/misskey/test.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
unit:
name: Unit tests (backend)
diff --git a/.github/workflows/test-federation.yml b/.github/workflows/test-federation.yml
index c4546a0590..74cdff80f1 100644
--- a/.github/workflows/test-federation.yml
+++ b/.github/workflows/test-federation.yml
@@ -15,6 +15,9 @@ on:
- packages/misskey-js/**
- .github/workflows/test-federation.yml
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
test:
name: Federation test
diff --git a/.github/workflows/test-frontend.yml b/.github/workflows/test-frontend.yml
index 51e0b0e8b8..6c09896d06 100644
--- a/.github/workflows/test-frontend.yml
+++ b/.github/workflows/test-frontend.yml
@@ -22,6 +22,10 @@ on:
- packages/backend/**
- .github/workflows/test-frontend.yml
- .github/misskey/test.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
vitest:
name: Unit tests (frontend)
diff --git a/.github/workflows/test-misskey-js.yml b/.github/workflows/test-misskey-js.yml
index c72a2470a4..d88dc18bd8 100644
--- a/.github/workflows/test-misskey-js.yml
+++ b/.github/workflows/test-misskey-js.yml
@@ -14,6 +14,10 @@ on:
paths:
- packages/misskey-js/**
- .github/workflows/test-misskey-js.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
test:
name: Unit tests (misskey.js)
diff --git a/.github/workflows/test-production.yml b/.github/workflows/test-production.yml
index 4a55f4803c..5269358e38 100644
--- a/.github/workflows/test-production.yml
+++ b/.github/workflows/test-production.yml
@@ -9,6 +9,7 @@ on:
env:
NODE_ENV: production
+ COREPACK_DEFAULT_TO_LATEST: 0
jobs:
production:
diff --git a/.github/workflows/validate-api-json.yml b/.github/workflows/validate-api-json.yml
index 0d254898f8..65afcd4cd0 100644
--- a/.github/workflows/validate-api-json.yml
+++ b/.github/workflows/validate-api-json.yml
@@ -12,6 +12,10 @@ on:
paths:
- packages/backend/**
- .github/workflows/validate-api-json.yml
+
+env:
+ COREPACK_DEFAULT_TO_LATEST: 0
+
jobs:
validate-api-json:
runs-on: ubuntu-latest
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0ca9e72b7e..7ca405f420 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,24 @@
+## 2025.2.0
+
+### Note
+- ページの「ソースを見る」機能は削除されました
+
+### General
+- Fix: Docker のビルドに失敗する問題を修正
+ (Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/883)
+
+### Client
+- Fix: パスキーでパスワードレスログインが出来ない問題を修正
+- Fix: 一部環境でセンシティブなファイルを含むノートの非表示が効かない問題
+- Fix: データセーバー有効時にもユーザーページの「ファイル」タブで画像が読み込まれてしまう問題を修正
+- Fix: MFMの `sparkle` エフェクトが正しく表示されない問題を修正
+- Fix: ページのURLにスラッシュが含まれている場合にページが正しく表示されない問題を修正
+- ローカライゼーションの更新
+
+### Server
+- Fix: 個別お知らせページのmetaタグ出力の条件が間違っていたのを修正
+
+
## 2025.1.0
### Note
@@ -50,6 +71,7 @@
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/656)
- Fix: URLにはじめから`#pswp`が含まれている場合に画像ビューワーがブラウザの戻るボタンで閉じられない問題を修正
- Fix: ロール作成画面で設定できるアイコンデコレーションの最大取付個数を16に制限
+- Fix: Firefox Nightlyなどでアイコンが読み込めない問題を修正
### Server
- Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように
diff --git a/Dockerfile b/Dockerfile
index 13f6909462..3bc2044396 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,6 +6,8 @@ ARG NODE_VERSION=22.11.0-bookworm
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION} AS native-builder
+ENV COREPACK_DEFAULT_TO_LATEST=0
+
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
rm -f /etc/apt/apt.conf.d/docker-clean \
@@ -44,6 +46,8 @@ RUN rm -rf .git/
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION} AS target-builder
+ENV COREPACK_DEFAULT_TO_LATEST=0
+
RUN apt-get update \
&& apt-get install -yqq --no-install-recommends \
build-essential
@@ -68,6 +72,7 @@ FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-slim AS runner
ARG UID="991"
ARG GID="991"
+ENV COREPACK_DEFAULT_TO_LATEST=0
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
diff --git a/SECURITY.md b/SECURITY.md
index 04567baf07..19f5f2eea2 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -7,6 +7,11 @@ bug report to the GitHub repository.
Thanks for helping make Misskey safe for everyone.
+> [!note]
+> CNA [requires](https://www.cve.org/ResourcesSupport/AllResources/CNARules#section_5-2_Description) that CVEs include a description in English for inclusion in the CVE Catalog.
+>
+> When creating a security advisory, all content must be written in English (it is acceptable to include a non-English description along with the English one).
+
## When create a patch
If you can also create a patch to fix the vulnerability, please create a PR on the private fork.
diff --git a/locales/de-DE.yml b/locales/de-DE.yml
index fc62a1a92f..e99a32a364 100644
--- a/locales/de-DE.yml
+++ b/locales/de-DE.yml
@@ -5,6 +5,7 @@ introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microbl
poweredByMisskeyDescription: "{name} ist einer der durch die Open-Source-Plattform Misskey betriebenen Dienste."
monthAndDay: "{day}.{month}."
search: "Suchen"
+reset: "Zurücksetzen"
notifications: "Benachrichtigungen"
username: "Benutzername"
password: "Passwort"
@@ -48,6 +49,7 @@ pin: "An dein Profil anheften"
unpin: "Von deinem Profil lösen"
copyContent: "Inhalt kopieren"
copyLink: "Link kopieren"
+copyRemoteLink: "Renote-Link kopieren"
copyLinkRenote: "Renote-Link kopieren"
delete: "Löschen"
deleteAndEdit: "Löschen und Bearbeiten"
@@ -517,6 +519,7 @@ emojiStyle: "Emoji-Stil"
native: "Nativ"
menuStyle: "Menü Stil"
style: "Stil"
+drawer: "App-Übersicht"
popup: "Pop-up"
showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen"
showReactionsCount: "Zeige die Anzahl der Reaktionen auf Notizen an"
@@ -691,6 +694,7 @@ regexpError: "Fehler in einem regulären Ausdruck"
regexpErrorDescription: "Im regulären Ausdruck deiner in Zeile {line} von {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
instanceMute: "Instanzstummschaltungen"
userSaysSomething: "{name} hat etwas gesagt"
+userSaysSomethingAbout: "{name} sagt etwas über '{word}'"
makeActive: "Aktivieren"
display: "Anzeigeart"
copy: "Kopieren"
@@ -859,6 +863,7 @@ administration: "Verwaltung"
accounts: "Benutzerkonten"
switch: "Wechseln"
noMaintainerInformationWarning: "Betreiberinformationen sind nicht konfiguriert."
+noInquiryUrlWarning: "Keine gültige URL."
noBotProtectionWarning: "Schutz vor Bots ist nicht konfiguriert."
configure: "Konfigurieren"
postToGallery: "Neuen Galeriebeitrag erstellen"
@@ -1091,6 +1096,7 @@ retryAllQueuesConfirmTitle: "Wirklich erneut versuchen?"
retryAllQueuesConfirmText: "Dies wird zu einer temporären Erhöhung der Serverlast führen."
enableChartsForRemoteUser: "Diagramme für Nutzer fremder Instanzen erstellen"
enableChartsForFederatedInstances: "Diagramme für fremde Instanzen erstellen"
+enableStatsForFederatedInstances: "Abruf von Informationen über förderierte Server"
showClipButtonInNoteFooter: "\"Clip\" zum Notizmenu hinzufügen"
reactionsDisplaySize: "Reaktionsanzeigegröße"
limitWidthOfReaction: "Begrenze die Breite der Reaktion und zeige sie verkleinert an"
@@ -1139,6 +1145,8 @@ preventAiLearningDescription: "Fordert Crawler auf, gepostetes Text- oder Bildma
options: "Optionen"
specifyUser: "Spezifischer Benutzer"
lookupConfirm: "Zustimmen?"
+openTagPageConfirm: "Hashtag Seite wirklich öffnen?"
+specifyHost: "Host"
failedToPreviewUrl: "Vorschau nicht anzeigbar"
update: "Aktualisieren"
rolesThatCanBeUsedThisEmojiAsReaction: "Rollen, die dieses Emoji als Reaktion verwenden können"
@@ -1197,6 +1205,7 @@ showRenotes: "Renotes anzeigen"
edited: "Bearbeitet"
notificationRecieveConfig: "Benachrichtigungseinstellungen"
mutualFollow: "Gegenseitig gefolgt"
+followingOrFollower: "Follow oder Follower"
fileAttachedOnly: "Nur Notizen mit Dateien"
showRepliesToOthersInTimeline: "Antworten in Chronik anzeigen"
hideRepliesToOthersInTimeline: "Antworten nicht in Chronik anzeigen"
diff --git a/locales/en-US.yml b/locales/en-US.yml
index 2a5010390f..fb34dfc829 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -2745,6 +2745,7 @@ _customEmojisManager:
deleteSelectionRanges: "Delete rows in the selection"
searchSettings: "Search settings"
searchSettingCaption: "Set detailed search criteria."
+ searchLimit: ""
sortOrder: "Sort order"
registrationLogs: "Registration log"
registrationLogsCaption: "Logs will be displayed when updating or deleting Emojis. They will disappear after updating or deleting them, moving to a new page, or reloading."
@@ -2769,8 +2770,11 @@ _customEmojisManager:
markAsDeleteTargetRanges: "Mark rows in the selection as a target to delete"
alertUpdateEmojisNothingDescription: "There are no updated Emojis."
alertDeleteEmojisNothingDescription: "There are no Emojis to be deleted."
+ confirmMovePage: ""
+ confirmChangeView: ""
confirmUpdateEmojisDescription: "Update {count} Emoji(s). Are you sure to continue?"
confirmDeleteEmojisDescription: "Delete checked {count} Emoji(s). Are you sure to continue?"
+ confirmResetDescription: ""
dialogSelectRoleTitle: "Search by roll set in Emojis"
_register:
uploadSettingTitle: "Upload settings"
diff --git a/locales/es-ES.yml b/locales/es-ES.yml
index 58331e9664..28cfba1c20 100644
--- a/locales/es-ES.yml
+++ b/locales/es-ES.yml
@@ -5,6 +5,7 @@ introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentra
poweredByMisskeyDescription: "{name} es uno de los servicios (también llamado instancia) que usa la plataforma de código abierto Misskey"
monthAndDay: "{day}/{month}"
search: "Buscar"
+reset: "Reiniciar"
notifications: "Notificaciones"
username: "Nombre de usuario"
password: "Contraseña"
@@ -518,6 +519,7 @@ emojiStyle: "Estilo de emoji"
native: "Nativo"
menuStyle: "Diseño del menú"
style: "Diseño"
+drawer: "Cajón de Aplicaciones"
popup: "Ventana emergente"
showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor"
showReactionsCount: "Mostrar el número de reacciones en las notas"
@@ -683,7 +685,10 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
smtpSecureInfo: "Apagar cuando se use STARTTLS"
testEmail: "Prueba de envío"
wordMute: "Silenciar palabras"
+wordMuteDescription: "Minimiza las notas que contienen la palabra o frase especificada. Las notas minimizadas pueden visualizarse haciendo clic sobre ellas."
hardWordMute: "Filtro de palabra fuerte"
+showMutedWord: "Mostrar palabras silenciadas."
+hardWordMuteDescription: "Oculta las notas que contienen la palabra o frase especificada. A diferencia de Silenciar palabra, la nota quedará completamente oculta a la vista."
regexpError: "Error de la expresión regular"
regexpErrorDescription: "Ocurrió un error en la expresión regular en la linea {line} de las palabras muteadas {tab}"
instanceMute: "Instancias silenciadas"
@@ -1134,6 +1139,7 @@ preventAiLearningDescription: "Pedirle a las arañas (crawlers) no usar los text
options: "Opción"
specifyUser: "Especificar usuario"
lookupConfirm: "¿Quiere informarse?"
+specifyHost: "Especificar Host"
failedToPreviewUrl: "No se pudo generar la vista previa"
update: "Actualizar"
rolesThatCanBeUsedThisEmojiAsReaction: "Roles que pueden usar este emoji como reacción"
diff --git a/locales/it-IT.yml b/locales/it-IT.yml
index 3709676436..d2942c389c 100644
--- a/locales/it-IT.yml
+++ b/locales/it-IT.yml
@@ -107,7 +107,7 @@ makeFollowManuallyApprove: "Approva i follower manualmente"
defaultNoteVisibility: "Privacy predefinita delle note"
follow: "Segui"
followRequest: "Richiesta di follow"
-followRequests: "Richieste di follow"
+followRequests: "Relazioni"
unfollow: "Togli Following"
followRequestPending: "Richiesta in approvazione"
enterEmoji: "Inserisci emoji"
@@ -537,7 +537,7 @@ regenerate: "Generare di nuovo"
fontSize: "Dimensione carattere"
mediaListWithOneImageAppearance: "Altezza dell'elenco media con una sola immagine "
limitTo: "Limita a {x}"
-noFollowRequests: "Non hai alcuna richiesta di follow"
+noFollowRequests: "Non ci sono richieste di relazione"
openImageInNewTab: "Apri le immagini in un nuovo tab"
dashboard: "Pannello di controllo"
local: "Locale"
@@ -1933,7 +1933,7 @@ _serverDisconnectedBehavior:
quiet: "Visualizza avviso in modo discreto"
_channel:
create: "Nuovo canale"
- edit: "Gerisci canale"
+ edit: "Modifica il canale"
setBanner: "Scegli intestazione"
removeBanner: "Rimuovi intestazione"
featured: "Popolari nel canale"
@@ -1961,7 +1961,7 @@ _instanceMute:
_theme:
explore: "Esplora temi"
install: "Installa un tema"
- manage: "Gestione temi"
+ manage: "Gestione dei temi"
code: "Codice tema"
description: "Descrizione"
installed: "{name} è installato"
@@ -2108,12 +2108,12 @@ _permissions:
"read:messaging": "Visualizzare la chat"
"write:messaging": "Gestire la chat"
"read:mutes": "Vedi i profili silenziati"
- "write:mutes": "Gestisci i profili silenziati"
+ "write:mutes": "Gestione dei profili silenziati"
"write:notes": "Creare / Eliminare note"
"read:notifications": "Visualizzare notifiche"
- "write:notifications": "Gestire notifiche"
+ "write:notifications": "Gestione delle notifiche"
"read:reactions": "Vedi reazioni"
- "write:reactions": "Gerisci reazioni"
+ "write:reactions": "Gestione delle reazioni"
"write:votes": "Votare"
"read:pages": "Visualizzare pagine"
"write:pages": "Gestire pagine"
@@ -2122,7 +2122,7 @@ _permissions:
"read:user-groups": "Vedere i gruppi di utenti"
"write:user-groups": "Gestire i gruppi di utenti"
"read:channels": "Visualizza canali"
- "write:channels": "Gerisci canali"
+ "write:channels": "Gestione dei canali"
"read:gallery": "Visualizza la galleria."
"write:gallery": "Gestione della galleria"
"read:gallery-likes": "Visualizza i contenuti della galleria."
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index 93883f31cb..45d7f26075 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -1283,7 +1283,7 @@ confirmWhenRevealingSensitiveMedia: "민감한 미디어를 열 때 두 번 확
sensitiveMediaRevealConfirm: "민감한 미디어입니다. 표시할까요?"
createdLists: "만든 리스트"
createdAntennas: "만든 안테나"
-fromX: "{x}부터"
+fromX: "{x}에서"
genEmbedCode: "임베디드 코드 만들기"
noteOfThisUser: "이 유저의 노트 목록"
clipNoteLimitExceeded: "더 이상 이 클립에 노트를 추가 할 수 없습니다."
diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml
index cb691f3b87..1a14f0bf76 100644
--- a/locales/zh-CN.yml
+++ b/locales/zh-CN.yml
@@ -49,7 +49,7 @@ pin: "置顶"
unpin: "取消置顶"
copyContent: "复制内容"
copyLink: "复制链接"
-copyRemoteLink: "复制远程连接"
+copyRemoteLink: "复制远程链接"
copyLinkRenote: "复制转帖链接"
delete: "删除"
deleteAndEdit: "删除并编辑"
diff --git a/package.json b/package.json
index 3f258f4cb7..05adf49e21 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "misskey",
- "version": "2025.1.0-beta.3",
+ "version": "2025.2.0-beta.0",
"codename": "nasubi",
"repository": {
"type": "git",
diff --git a/packages/backend/src/boot/master.ts b/packages/backend/src/boot/master.ts
index 2b181af675..d1fb3858db 100644
--- a/packages/backend/src/boot/master.ts
+++ b/packages/backend/src/boot/master.ts
@@ -92,7 +92,7 @@ export async function masterMain() {
}
bootLogger.info(
- `mode: [disableClustering: ${envOption.disableClustering}, onlyServer: ${envOption.onlyServer}, onlyQueue: ${envOption.onlyQueue}]`
+ `mode: [disableClustering: ${envOption.disableClustering}, onlyServer: ${envOption.onlyServer}, onlyQueue: ${envOption.onlyQueue}]`,
);
if (!envOption.disableClustering) {
@@ -107,7 +107,6 @@ export async function masterMain() {
await jobQueue();
} else {
await server();
- await jobQueue();
}
await spawnWorkers(config.clusterLimit);
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index 4c884dd314..f8b3843cac 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -817,6 +817,7 @@ export class ClientServerService {
fastify.get<{ Params: { announcementId: string; } }>('/announcements/:announcementId', async (request, reply) => {
const announcement = await this.announcementsRepository.findOneBy({
id: request.params.announcementId,
+ userId: IsNull(),
});
if (announcement) {
diff --git a/packages/backend/test-federation/compose.tpl.yml b/packages/backend/test-federation/compose.tpl.yml
index 8c38f16919..8b270e58f7 100644
--- a/packages/backend/test-federation/compose.tpl.yml
+++ b/packages/backend/test-federation/compose.tpl.yml
@@ -17,6 +17,7 @@ services:
- ./.config/docker.env
environment:
- NODE_ENV=production
+ - COREPACK_DEFAULT_TO_LATEST=0
volumes:
- type: bind
source: ../../../built
diff --git a/packages/backend/test-federation/compose.yml b/packages/backend/test-federation/compose.yml
index 62d7e977c0..a5a7223982 100644
--- a/packages/backend/test-federation/compose.yml
+++ b/packages/backend/test-federation/compose.yml
@@ -25,6 +25,7 @@ services:
environment:
- NODE_ENV=development
- NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/rootCA.crt
+ - COREPACK_DEFAULT_TO_LATEST=0
volumes:
- type: bind
source: ../package.json
@@ -85,6 +86,8 @@ services:
depends_on:
redis.test:
condition: service_healthy
+ environment:
+ - COREPACK_DEFAULT_TO_LATEST=0
volumes:
- type: bind
source: ../package.json
diff --git a/packages/frontend-embed/package.json b/packages/frontend-embed/package.json
index a0353b4c7f..ab5026ab0d 100644
--- a/packages/frontend-embed/package.json
+++ b/packages/frontend-embed/package.json
@@ -14,7 +14,7 @@
"@rollup/plugin-json": "6.1.0",
"@rollup/plugin-replace": "5.0.7",
"@rollup/pluginutils": "5.1.3",
- "@tabler/icons-webfont": "3.3.0",
+ "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.29.0-mi.1913+5921534bc.tar.gz",
"@twemoji/parser": "15.1.1",
"@vitejs/plugin-vue": "5.2.0",
"@vue/compiler-sfc": "3.5.12",
diff --git a/packages/frontend-shared/build.js b/packages/frontend-shared/build.js
index 17b6da8d30..9941114757 100644
--- a/packages/frontend-shared/build.js
+++ b/packages/frontend-shared/build.js
@@ -23,10 +23,14 @@ const options = {
sourcemap: 'linked',
};
-// js-built配下をすべて削除する
-fs.rmSync('./js-built', { recursive: true, force: true });
+const args = process.argv.slice(2).map(arg => arg.toLowerCase());
-if (process.argv.map(arg => arg.toLowerCase()).includes('--watch')) {
+// js-built配下をすべて削除する
+if (!args.includes('--no-clean')) {
+ fs.rmSync('./js-built', { recursive: true, force: true });
+}
+
+if (args.includes('--watch')) {
await watchSrc();
} else {
await buildSrc();
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 9ec8bb0a83..804160baad 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -24,7 +24,7 @@
"@rollup/plugin-replace": "5.0.7",
"@rollup/pluginutils": "5.1.3",
"@syuilo/aiscript": "0.19.0",
- "@tabler/icons-webfont": "3.3.0",
+ "@tabler/icons-webfont": "https://github.com/misskey-dev/tabler-icons/archive/refs/tags/3.29.0-mi.1913+5921534bc.tar.gz",
"@twemoji/parser": "15.1.1",
"@vitejs/plugin-vue": "5.2.0",
"@vue/compiler-sfc": "3.5.12",
diff --git a/packages/frontend/src/account.ts b/packages/frontend/src/account.ts
index 36186ecac1..9006150bc8 100644
--- a/packages/frontend/src/account.ts
+++ b/packages/frontend/src/account.ts
@@ -41,6 +41,12 @@ export async function signout() {
if (!$i) return;
waiting();
+ document.cookie.split(';').forEach((cookie) => {
+ const cookieName = cookie.split('=')[0].trim();
+ if (cookieName === 'token') {
+ document.cookie = `${cookieName}=; max-age=0; path=/`;
+ }
+ });
miLocalStorage.removeItem('account');
await removeAccount($i.id);
const accounts = await getAccounts();
@@ -101,6 +107,9 @@ export async function removeAccount(idOrToken: Account['id']) {
}
function fetchAccount(token: string, id?: string, forceShowDialog?: boolean): Promise {
+ document.cookie = "token=; path=/; max-age=0";
+ document.cookie = `token=${token}; path=/queue; max-age=86400; SameSite=Strict; Secure`; // bull dashboardの認証とかで使う
+
return new Promise((done, fail) => {
window.fetch(`${apiUrl}/i`, {
method: 'POST',
@@ -213,7 +222,6 @@ export async function login(token: Account['token'], redirect?: string) {
throw reason;
});
miLocalStorage.setItem('account', JSON.stringify(me));
- document.cookie = `token=${token}; path=/; max-age=31536000`; // bull dashboardの認証とかで使う
await addAccount(me.id, token);
if (redirect) {
diff --git a/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue b/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
index ecbee864dc..e6ab17417d 100644
--- a/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
+++ b/packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
@@ -57,7 +57,7 @@ SPDX-License-Identifier: AGPL-3.0-only