1
0
mirror of https://github.com/misskey-dev/misskey.git synced 2026-05-13 03:35:31 +02:00

Compare commits

..

1890 Commits

Author SHA1 Message Date
syuilo
e233556700 Update CHANGELOG.md 2026-05-12 21:35:47 +09:00
4ster1sk
6665c398d6 feat: 投稿通知設定したユーザーをリストで見ることができるように (#17385)
* feat: 投稿通知を設定したユーザーをリストで見ることができるように

* test(e2e): 投稿通知のテスト追加

* chore: 不必要なコードの削除
2026-05-12 21:34:45 +09:00
github-actions[bot]
bf3c1f6686 Bump version to 2026.5.2-alpha.0 2026-05-12 10:16:46 +00:00
おさむのひと
f6ea52b1be docs: AI コーディングエージェント共通設定を追加 (#17396)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 17:56:06 +09:00
Acid Chicken
b950f905e5 perf: rsa sign on slacc (#17322)
* perf: rsa sign on slacc

* fix: missing async/await

* fix: threadPoolSize is always number

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* test(backend): init slacc in unit setup and await ap-request signing

* test(backend): move slacc init to unit testEnvironment

* test(backend): delete unused file

* docs: update CHANGELOG

* docs: fix indent

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* chore: migrate to vitest

* fix

* fix: fix changelog

* chore: regenerate lockfile

* docs: changelog

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2026-05-12 17:36:49 +09:00
Copilot
a19da1258d fix(frontend): missing はい/いいえ in base-role 「チャンネルの作成」 header (#17380)
* Initial plan

* fix(frontend): show base-role value text for channel creation policy

Agent-Logs-Url: https://github.com/misskey-dev/misskey/sessions/c4fcb1b7-eb6e-444b-bbdf-9b367bc13544

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Update changelog [ci skip]

* fix

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2026-05-10 14:00:43 +09:00
Sayamame-beans
408d05654c fix(frontend): デッキのカラムから開いたアンテナ・リストの編集ウィンドウを、"ポップアウト"、"新しいタブで表示"、"リンクをコピー"した場合に誤ったリンクが与えられる問題を修正 (#17384)
* fix(frontend): incorrect page link for deck pageWindow

* docs(changelog): update changelog
2026-05-10 13:35:18 +09:00
Sayamame-beans
3074784d4d Fix: リスト編集画面におけるユーザー追加時のユーザー選択ダイアログにおいて、自身のアカウントが検索結果の一覧に表示されない問題を修正 (#17386)
* fix(frontend): cannot add self to list by selectUser dialog

* docs(changelog): update changelog
2026-05-10 07:55:25 +09:00
かっこかり
a09a2c2eee enhance: 絵文字データの参照を自前ライブラリに変更 (#17381)
* wip

* enhance: 絵文字データの参照を自前ライブラリに変更

* fix

* update to v17.0.2

* fix assets handling

* fix

* update mfm-js

* update emoji library

* Update COPYING [ci skip]

* Update Changelog

* Update Changelog

* fix: 端末の絵文字にフォールバックできるように
2026-05-09 18:35:38 +09:00
4ster1sk
717931cfcb fix(frontend): ドライブのファイル更新が即座に反映されない問題の修正 (#17383) 2026-05-09 18:33:16 +09:00
syuilo
9027129b58 enhance(frontend): MkInputでthrottleできるように & delay設定できるように 2026-05-08 18:26:05 +09:00
かっこかり
b73ac26612 Update CHANGELOG.md 2026-05-07 13:37:36 +09:00
かっこかり
b528ff9c59 enhance(frontend): テーマの適用管理を改善 (#17376)
* wip

* add test

* use themeManager.currentCompiledTheme for obtaining theme variables / reduce getComputedStyle usage

* fix

* fix: better error handling on theme installation

* Update Changelog

* chore: remove frontend-shared builds as it is currently working as a stub package

* fix: broken lockfile

* fix

* fix lint

* fix
2026-05-07 11:42:45 +09:00
github-actions[bot]
a82ba0d775 [skip ci] Update CHANGELOG.md (prepend template) 2026-05-06 10:44:25 +00:00
github-actions[bot]
b78e0168b0 Release: 2026.5.1 2026-05-06 10:44:17 +00:00
かっこかり
33f59b3469 Update CHANGELOG.md 2026-05-06 15:08:22 +09:00
syuilo
5b478dda9d New Crowdin updates (#17372)
* New translations ja-jp.yml (Turkish)

[ci skip]

* New translations ja-jp.yml (Thai)

[ci skip]

* New translations ja-jp.yml (Thai)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]
2026-05-06 11:12:51 +09:00
かっこかり
90725d6a8c enhance(frontend): MkNoteDetailedの公開範囲表示を改善 (#17374)
* enhance(frontend): 노트 상세 페이지에서 공개 범위를 자세히 표시하도록 개선됨

* Update Changelog

* fix

---------

Co-authored-by: NoriDev <m1nthing2322@gmail.com>
2026-05-05 20:53:27 +09:00
github-actions[bot]
86542f07d3 Bump version to 2026.5.1-beta.0 2026-05-04 14:22:27 +00:00
syuilo
45022bc766 New Crowdin updates (#17324)
* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Korean)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]

* New translations ja-jp.yml (Chinese Simplified)

[ci skip]
2026-05-04 20:32:06 +09:00
Wonwoo Choi
35711fc8e1 fix(backend): Acquire lock of Announce object in announceNote even if it is from a relay actor (#17356)
fix(backend): Always acquire lock of Announce object in announceNote
2026-05-03 21:03:25 +09:00
かっこかり
45f140aa86 deps: Update dependencies [ci skip] (#17368)
* update deps

* update deps

* rollback got to v14

* Revert "rollback got to v14"

This reverts commit 780abdf7b6.

* rollback rolldown to v1.0.0-rc.15
2026-05-03 18:24:53 +09:00
renovate[bot]
22ce7b58ca chore(deps): update [docker] update dependencies [ci skip] (#17369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 18:22:37 +09:00
renovate[bot]
37107c9818 chore(deps): update [github actions] update dependencies [ci skip] (#17370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 18:22:02 +09:00
renovate[bot]
a5a43c8c06 chore(deps): update [github actions] update dependencies (major) (#17204)
chore(deps): update [github actions] update dependencies

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-03 17:45:12 +09:00
かっこかり
723d8add2f refactor: パスキーまわりのライブラリを更新 (#17354)
* refactor: パスキーまわりのライブラリを更新

* fix
2026-05-03 17:16:06 +09:00
かっこかり
9d20152e05 Update CHANGELOG.md (follow-up of #17121) [ci skip 2026-05-03 17:15:29 +09:00
Copilot
37412f0e1b enhance: Add canCreateChannel role policy (#17121)
* Initial plan

* Add canCreateChannel role policy to control channel creation

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Add canCreateChannel to getUserPolicies return value

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Add canCreateChannel translations for en-US and ja-JP

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Add canCreateChannel to misskey-js rolePolicies array

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Add frontend UI for canCreateChannel policy configuration

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* fix: build autogen files

* 🎨

* migrate

* fix: unnecessary changes to non-Japanese locales

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2026-05-03 17:10:17 +09:00
kami8
712b51c142 Fix(frontend): ロール設定画面でロールをアサイン/アサイン解除した際、リロードしなくても画面に反映されるよう修正 (#17365)
* ロールの付与、剥奪後にPaginatorのリロードを行って表示を更新する処理を追加

* CHANGELOGを更新
2026-05-03 16:15:03 +09:00
github-actions[bot]
2b4bdbfde7 Bump version to 2026.5.1-alpha.0 2026-05-03 06:54:33 +00:00
かっこかり
39032c4b1b fix: update summaly (#17355)
* fix: update summaly

* Update Changelog
2026-05-03 15:48:22 +09:00
かっこかり
f5a3d8996d fix(backend): 公開範囲がフォロワーの投稿が通知されない問題を修正 (#17363)
* fix(backend): 公開範囲がフォロワーの投稿が通知されない問題を修正

* Udpate Changelog
2026-05-03 15:43:39 +09:00
kami8
d55e936653 devcontainer用dbコンテナのvolumeのマウントパスを変更 (#17360)
* `.devcontainer/compose.yml`のvolumeのマウントパスを修正

* CHANGELOGの更新
2026-05-03 09:23:00 +09:00
mq1
6229ac365e fix(backend): ULID使用時にnotificationTimelineへのXADDが失敗し続け、通知が約10秒遅延する問題を修正 (#17358) 2026-05-02 20:23:10 +09:00
github-actions[bot]
6d9412b338 [skip ci] Update CHANGELOG.md (prepend template) 2026-05-02 03:30:59 +00:00
github-actions[bot]
a23a72b015 Release: 2026.5.0 2026-05-02 03:30:51 +00:00
かっこかり
93bd9d551d fix: review fixes for v2026.5.0 release (#17350)
* fix/perf: NotificationManager in NoteCreateService

* fix: treat skip as successful return in InboxProcessorService

* chore: remove comment

* fix: simplify ReactionPicker/EmojiPicker by importing components directly

* refactor: move filename parsing to setup in MkUploaderItems

* refactor
2026-05-02 10:03:34 +09:00
syuilo
35d6c20828 Update CHANGELOG.md 2026-05-01 14:22:54 +09:00
github-actions[bot]
7c9942f014 Bump version to 2026.5.0-alpha.0 2026-05-01 05:21:43 +00:00
github-actions[bot]
665adfccb7 Bump version to 2026.4.0-beta.2 2026-04-30 02:31:32 +00:00
かっこかり
973b5b50a9 fix(frontend): まれにリアクション・絵文字ピッカーが動作しなくなる問題を修正 (#17349)
* Revert "fix(frontend): popupのりアクティビティがチャンクをまたいで切れる事がある問題を修正"

This reverts commit 0a93f526dd.

* fix: iOS PWA でリアクション・絵文字ピッカーが動作しない問題を修正

Agent-Logs-Url: https://github.com/lqvp/misskey-tempura/sessions/44526368-0e6a-4a94-8991-fcdc094d2b96

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

* refactor

* fix

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
2026-04-30 11:29:23 +09:00
renovate[bot]
985de915b3 fix(deps): update dependency sanitize-html to v2.17.3 [security] (#17319)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-27 15:17:25 +09:00
かっこかり
0227148c89 Update CHANGELOG for #17347 2026-04-27 10:40:12 +09:00
github-actions[bot]
7bfd85cdba Bump version to 2026.4.0-beta.1 2026-04-27 01:33:17 +00:00
Copilot
21f51be5b7 fix: redirect beta/alpha/rc "what's new" button to GitHub releases page (#17347)
* Initial plan

* fix: redirect beta/alpha/rc update info button to GitHub releases page

Agent-Logs-Url: https://github.com/misskey-dev/misskey/sessions/4ac22dd9-13dd-4ef2-a6f7-d68cfda4a19f

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-27 10:31:02 +09:00
かっこかり
b45f18cd14 fix(backend): ノート通知で公開範囲を考慮するように (#17335)
* fix(backend): ノート通知で公開範囲を考慮するように

* refactor: remove unused imports

* Update Changelog

* Update Changelog

* fix: フォロワー限定ノートは通知

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
2026-04-27 10:26:13 +09:00
かっこかり
6176cca0a4 fix(frontend): MenuRadioの指定方法変更 (#17345)
* fix(frontend): MenuRadioの指定方法変更

* fix indent

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-27 10:18:03 +09:00
syuilo
9569310adb type: 'radio'なMenuItemが機能しなくなっている問題を修正 (#17344)
* fix

* Update CHANGELOG.md
2026-04-27 10:08:45 +09:00
syuilo
b28338c812 enhance(frontend): 子メニュー表示時のガードがradioでも効くように 2026-04-27 08:42:12 +09:00
かっこかり
0f5da63328 fix(backend): ブロックしたインスタンスのInboxジョブが蓄積し続ける問題を修正 (#17336)
* fix(backend): ブロックしたインスタンスのInboxジョブが蓄積し続ける問題を修正

* refactor

* Upddate changelog

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-26 11:40:55 +09:00
Evan Prodromou
23715c649c fix: change bare activity.actor to getApId(activity.actor) in InboxPr… (#17340)
* fix: change bare activity.actor to getApId(activity.actor) in InboxProcessorService (closes #17338)

* doc: update CHANGELOG.md to note fix for #17338

* fix: additional activity.actor wrappers in ApInboxService

* Update CHANGELOG.md

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-26 11:39:16 +09:00
かっこかり
1dc5c60b2b fix(backend): meilisearchを使用していない場合のnoteSearchableScopeの値が誤っている問題を修正 (#17341)
* fix(backend): meilisearchを使用していない場合のnoteSearchableScopeの値が誤っている問題を修正

* Update Changelog
2026-04-26 11:37:26 +09:00
かっこかり
3a3057a1b1 fix(backend): RoleService.getAdministratorIds でユーザーIDが重複する問題を修正 (#17334)
* fix(backend): adminロールが複数付いてても通知が重複しないように

* add tests

* Update Changelog

* ✌️

Co-Authored-by: lqvp <183242690+lqvp@users.noreply.github.com>

---------

Co-authored-by: lqvp <183242690+lqvp@users.noreply.github.com>
2026-04-24 17:56:52 +09:00
github-actions[bot]
8a85ee1d45 Bump version to 2026.4.0-beta.0 2026-04-23 01:13:02 +00:00
かっこかり
c1b73f947c fix(gh): misskey-jsがpublishされない問題を修正 2026-04-22 19:24:31 +09:00
かっこかり
bda98ba1d9 deps: update security dependencies (#17330)
* deps: update security dependencies

* deps: update some major dependencies

* attempt to fix tsconfig

* attempt to fix tsconfig

* attempt to fix tsconfig

* fix build
2026-04-22 11:46:45 +09:00
かっこかり
351fe2f70a fix(frontend): loosen MkButton props type (#17329) 2026-04-21 16:37:59 +09:00
かっこかり
6d15fe32d0 enhance(backend/test): Migrate tests to vitest (#16935)
* wip

* update fake-timers and migrate

* fix

* remove jest-mock

* fix

* fix

* fix

* fix

* attempt to fix unit tests

* attempt to fix e2e tests

* fix federation test [ci skip]

* attempt to fix e2e tests

* fix typecheck

* fix unit tests

* fix

* attempt to fix e2e

* fix

* Revert "attempt to fix e2e"

This reverts commit b7b7b05d85.

* attempt to fix e2e

* revert attempt to fix e2e

* update deps

* update vitest

* migrate

* attempt to fix e2e

* update

* fix

* remove vite swc plugin as oxc parser can handle decorators

* attempt to fix drive/files/create test

* Revert "attempt to fix drive/files/create test"

This reverts commit 4715153375.

* fix: エンドポイントにまつわるテストをunitからe2eに移動

* attempt to fix e2e

* remove swc

* attempt to fix e2e

* Revert "attempt to fix e2e"

This reverts commit 9fb86a4076.

* add logs for debug

* attempt to fix e2e

* Partially revert "attempt to fix e2e"

This reverts commit fb0008c85a.

* attempt to fix test

* fix: attempt to fix test

* Revert "fix: attempt to fix test"

This reverts commit ed2f5c40e8.

* Revert "attempt to fix test"

This reverts commit d7329c46f1.

* attempt to fix e2e

* fix: surpass eventemitter warning by increasing defaultMaxListeners

* attempt to fix e2e

* fix

* fix e2e not ending properly

* exp: add hanging-process reporter for investigation

* Revert "exp: add hanging-process reporter for investigation"

This reverts commit 26851f8282.

* update changelog
2026-04-20 14:57:29 +09:00
かっこかり
1391269a67 Update CHANGELOG.md 2026-04-18 15:02:27 +09:00
github-actions[bot]
86092f2faf Bump version to 2026.4.0-alpha.6 2026-04-16 07:37:51 +00:00
かっこかり
c640aeb27a deps: update security dependencies (#17318) 2026-04-16 16:32:17 +09:00
かっこかり
0be3142d54 fix(backend): devサーバーの起動に失敗することがある問題を修正 (#17317)
* fix(backend): devサーバーの起動に失敗することがある問題を修正?

* fix
2026-04-16 14:33:36 +09:00
かっこかり
37bfcb604f enhance(backend): bundle backend using Rolldown (#17068)
* enhance(backend): bundle backend using rolldown

* fix

* fix [ci skip]

* remove unused build script

* fix

* enhance: 起動からlistenまでかかる時間を減らす (MisskeyIO#1410)

* ✌️

* fix

* update rolldown

* fix(backend): extract static error classes to avoid rolldown design:paramtypes omission

* update rolldown

* Revert "fix(backend): extract static error classes to avoid rolldown design:paramtypes omission"

This reverts commit e2243c9dc3.

* fix

* perf: avoid generating sourcemap in production

* fix

* fix

* fix

* fix paths

* fix

* fix

* fix

* fix

* fix

* enhance: バックエンドの開発サーバー制御をrolldown側で行うように

* remove nodemon

* Update Changelog

* tweak config

* fix

* fix

* fix

* clean up

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: bab <mashirohira@gmail.com>
2026-04-16 12:44:50 +09:00
github-actions[bot]
024f8bb102 Bump version to 2026.4.0-alpha.5 2026-04-15 14:12:00 +00:00
Jaehong Kang
277a1ef31f fix(backend): handle relay-delivered Announce activities correctly (#17308)
* fix(backend): handle relay-delivered Announce activities correctly

Relay Announce activities now use the target note URI instead of the
Announce URI for federation allowlist checks, dedup locking, and
existence lookups. Notes delivered via relay are published directly to
the notes stream without creating a renote.

Closes #11056

* Update packages/backend/src/core/RelayService.ts

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-15 23:05:36 +09:00
syuilo
8e536eb4b9 Update CHANGELOG.md 2026-04-15 20:30:23 +09:00
るちーか
360e805638 enhance: アバターデコレーションへのカテゴリの導入 (#17034)
* feat(backend): AvatarDecorationにcategoryを追加し、関連APIのプロパティ・戻り値にも反映

* feat(frontend): アバターデコレーションのカテゴリ設定機能

* chore(frontend): 管理画面とユーザー側の画面で、アバターデコレーションのグループ化のコードをある程度統一

* CHANGELOGを更新

* fix: group-avatar-decorations.tsを使用するよう修正

* chore: コーディング規約への準拠

* 型エラーを解消
2026-04-15 20:29:17 +09:00
かっこかり
c95aef7535 refactor(frontend): ロールポリシーエディタを統合 (#17125)
* refactor(frontend): ロールポリシーエディタを統合

* fix

* fix lint

* clean up

* fix

* fix lint
2026-04-15 17:41:40 +09:00
github-actions[bot]
758a085812 Bump version to 2026.4.0-alpha.4 2026-04-15 02:53:54 +00:00
syuilo
a6de986f83 Update CHANGELOG.md 2026-04-15 11:40:36 +09:00
Copilot
12e590a63f fix(backend): Prevent retry of inbox jobs with role-based validation errors (#17167)
* Initial plan

* Handle too many mentions error in inbox without retry

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-15 11:39:49 +09:00
かっこかり
a5b1f839ac fix(backend): fix flaky e2e test on recursive drive folder check (#17311) 2026-04-15 11:38:38 +09:00
かっこかり
d7ceaa9c88 fix(backend): attempt to fix flaky e2e test on home timeline streaming (#17312) 2026-04-15 11:37:20 +09:00
かっこかり
55b0fbd172 fix(backend): robots.txtで返却する内容の調整 (#17165)
* fix(backend): robots.txtで返却する内容の調整

* Update Changelog

* fix: add paths

* Update Changleog
2026-04-15 09:56:07 +09:00
かっこかり
6532cb85e7 Update CHANGELOG.md for #17310 [ci skip] 2026-04-15 09:03:53 +09:00
mq1
5dc508346c fix(backend): ULIDを正しく処理できない問題を修正 (#17310)
fix(backend): fix parseUlidFull to correctly handle Crockford Base32 chars W/X/Y/Z
2026-04-15 09:02:43 +09:00
renovate[bot]
c9c6ef2772 chore(deps): update dependency lodash to v4.18.1 [security] (#17278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-13 23:49:55 +09:00
かっこかり
4d6256e91d deps: Update dependencies (#17304)
* update deps

* update dependencies (major)

* fix: migrate meilisearch

* fix: migrate color-convert types

* fix cypress?

* rollback ts v5 as it is not supported by cypress

* fix fake-timers
2026-04-12 00:57:16 +09:00
github-actions[bot]
cdf0438154 Bump version to 2026.4.0-alpha.3 2026-04-11 05:45:50 +00:00
かっこかり
29cecd750f fix(backend): 存在しないActorに対するDeleteアクティビティは無視するように (#17294)
* fix(backend): 存在しないActorに対するDeleteアクティビティは無視するように

* Update Changelog

* fix

* Revert "fix"

This reverts commit 985feea326.

* fix?

* fix

* fix

* fix

* fix

* refactor: remove unused imports

* fix

* Update CHANGELOG.md [ci skip]
2026-04-11 14:45:11 +09:00
FINEARCHS
68e3476a16 fix(frontend): ドライブへの画像アップロード時にファイル名の変更が無視される不具合を修正 (#17302)
* ドライブの実ファイル名ではなくsuffixを保持するように

* MkUploaderItemsでファイル名が圧縮後の拡張子も含めて表示されるように

* Apply suggestion from @kakkokari-gtyih

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* changelog

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-11 14:23:42 +09:00
かっこかり
3cb003366f fix(frontend): 連合が無効化されたサーバーでInstance Tickerの設定が中途半端に消えている問題を修正 (#17303)
* fix(frontend): 連合が無効化されたサーバーでInstance Tickerの設定が中途半端に消えている問題を修正

* Update Changelog
2026-04-11 13:16:55 +09:00
danominium
787de92c2f fix(frontend): bannerUrl が空の場合に /about ページで /null へのアクセスが発生する問題を修正 (#17299)
fix(frontend): bannerUrl が空の場合に /about ページで /null へのリクエストが発生する問題を修正

bannerUrl が空の場合は 背景画像を設定しない。

about.overview.vue の background-image: url("null"); によって /null へのリクエストが発生してしまうため。
2026-04-11 02:04:39 +09:00
syuilo
22577e2134 perf(frontend): improve about#emojis rendering performance 2026-04-09 14:28:04 +09:00
github-actions[bot]
0355420c81 Bump version to 2026.4.0-alpha.2 2026-04-09 05:23:06 +00:00
かっこかり
4750980cef enhance(frontend): update vite to v8 再 (#17289)
* Revert "Revert "deps: Update vite to v8" (#17283)"

This reverts commit a18c909ba3.

* fix(frontend): popupのりアクティビティがチャンクをまたいで切れる事がある問題を修正

* update vite/rolldown
2026-04-09 14:20:07 +09:00
かっこかり
92e0e8edf7 refactor(frontend): refactor deck events (#17290) 2026-04-08 14:45:30 +09:00
かっこかり
5cb3a91b15 fix(frontend): follow-up of #17282 2026-04-08 10:48:07 +09:00
かっこかり
60018d16da enhance(frontend): niraxにテストを追加 (#17287)
* fix(frontend): follow-up of #13509

* fix: fix use of inappropriate method

* enhance(frontend): niraxにテストを追加
2026-04-07 22:03:08 +09:00
github-actions[bot]
b63984893e Bump version to 2026.4.0-alpha.1 2026-04-07 11:42:38 +00:00
かっこかり
d4a5048aae fix(frontend): routerがmatchAllに入った際に一度 location.href による遷移を試みる挙動に関する修正 (#17281)
* fix(frontend): follow-up of #13509

* fix: fix use of inappropriate method

* Update CHANGELOG.md [ci skip]
2026-04-07 20:35:06 +09:00
syuilo
b9923d0a23 New Crowdin updates (#17260)
* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)
2026-04-07 19:30:26 +09:00
syuilo
38be94b2a3 enhance(frontend): improve nested popup menu ux (#17187)
* wip

* Update MkMenu.vue

* wip

* wip

* Update MkMenu.vue

* wip

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue

* 💢

* Update MkMenu.vue

* Update MkMenu.vue

* Update MkMenu.vue
2026-04-07 16:52:30 +09:00
かっこかり
ae34578c6f refactor(frontend): MkButtonのprops等整理 (#17282)
* refactor(frontend): MkButtonのprops等整理

* fix
2026-04-06 22:28:44 +09:00
github-actions[bot]
367766d864 Bump version to 2026.4.0-alpha.0 2026-04-06 11:16:40 +00:00
かっこかり
a18c909ba3 Revert "deps: Update vite to v8" (#17283)
Revert "deps: Update vite to v8 (#17238)"

This reverts commit e601fcb729.
2026-04-06 20:15:57 +09:00
かっこかり
0b7b59f1e2 enhance(frontend): チャンネル指定リノートでリノート先のチャンネルに移動できるように (#17280)
* enhance(frontend): チャンネル指定リノートでリノート先のチャンネルに移動できるように

* Update Changelog

* fix condition

* refactor
2026-04-05 17:22:17 +09:00
Evan Prodromou
8169c57bd1 fix(backend): handle array or string in alsoKnownAs (#17275)
* fix: handle array or string in alsoKnownAs, closes #17274

* style: use more idiomatic toArray() for UserEntityService handling of alsoKnownAs

* fix: handle array-valued or unwrapped alsoKnownAs in ApPersonService

* doc: note about bugfix for alsoKnownAs
2026-04-05 00:43:37 +09:00
かっこかり
e601fcb729 deps: Update vite to v8 (#17238)
* deps: Update vite to v8

* fix

* migrate some plugins to rolldown-based

* fix broken lockfile

* wip

* update rolldown

* override rolldown version

* perf

* spdx

* fix

* update vite to 8.0.1

* chore: rewrite rollup-plugin-unwind-css-module-class-name with MagicString

* format

* swap type definitions

* replace using MagicString

* provided magicString

* fix code style

* fix

* fix

* fix

* fix

* fix

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>

* fix: lint fixes

* swap sass with sass-embedded

* fix lint

* fix: インライン化されたVue SFC出力に対してCSS Module定義削除が効かないのを修正

* fix

* fix: バックエンドのCSS読み込みの方法が悪いのを修正

* fix: 使用されないpreloadを削除

* fix lint [ci skip]

* Apply suggestion from @syuilo

* Add comment in pnpm-workspace.yaml [ci skip]

* update vite/rolldown

* remove magic-string

---------

Co-authored-by: cm-ayf <cm.ayf2734@gmail.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-04-01 17:05:57 +09:00
Copilot
5361a3819b fix(backend): /api-doc にアクセスできない問題を修正 (#17267)
* Initial plan

* fix: fix /api-doc returning 404 after backend minification (#17266)

Agent-Logs-Url: https://github.com/misskey-dev/misskey/sessions/8d7d0585-55da-412f-a8ee-dde1b6565026

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* enhance: API DocのHTMLをJSXで生成するように

* Update Changelog

* chore: remove unused imports [ci skip]

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2026-04-01 14:43:34 +09:00
かっこかり
dbc5fe2454 deps: update dependencies (#17263)
* deps: update dependencies

* fix?

* fix

* Update AiService.ts

* fix

* update deps
2026-04-01 12:16:36 +09:00
github-actions[bot]
7bd7e5c4db [skip ci] Update CHANGELOG.md (prepend template) 2026-03-31 12:14:45 +00:00
github-actions[bot]
b97683cdb2 Release: 2026.3.2 2026-03-31 12:14:38 +00:00
github-actions[bot]
ece9679cc4 Bump version to 2026.3.2-beta.0 2026-03-23 11:14:32 +00:00
かっこかり
c5fd36094d enhance(frontend): ウィンドウの初期サイズを画面サイズから動的に決めるように (#17257)
* enhance(frontend): ウィンドウの初期サイズを画面サイズから動的に決めるように

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-03-22 13:32:45 +09:00
かっこかり
b5a6e12439 fix(frontend): ウィンドウのタイトルをクリックしても最前面に出ないのを修正 (#17255)
* fix(frontend): ウィンドウのタイトルをクリックしても最前面に出ないのを修正

* Update Changelog
2026-03-22 13:21:14 +09:00
github-actions[bot]
1d171aeb96 Bump version to 2026.3.2-alpha.2 2026-03-21 03:32:26 +00:00
かっこかり
b826a16231 fix(backend): 初期読込時に必要なフロントエンドのアセットがすべて読み込まれていない問題を修正 (#17254)
* fix: バックエンドのCSS読み込みの方法が悪いのを修正

* fix: 使用されないpreloadを削除

* Update Changelog

* add comments
2026-03-21 12:26:50 +09:00
renovate[bot]
9e38288da5 chore(deps): update [github actions] update dependencies (#17253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-20 20:24:58 +09:00
かっこかり
57ed2914d1 deps: update dependencies (#17252) [ci skip] 2026-03-20 20:08:58 +09:00
かっこかり
54e94263a8 fix(backend): チャンネルミュートを有効にしている際にノートの閲覧ができなくなることがある問題を修正 (#17251)
* fix(backend): チャンネルミュート使用時にユーザーのノート一覧読み込みに失敗する問題を修正

* more fix

* Update Changelog
2026-03-20 19:11:56 +09:00
4ster1sk
0e4732180f fix(frontend): Unicode絵文字のリアクションが表示に反映されないことがある問題の修正 (#17250) 2026-03-20 17:15:59 +09:00
github-actions[bot]
df1fa8b90a Bump version to 2026.3.2-alpha.1 2026-03-20 07:36:34 +00:00
syuilo
45df44899a New Crowdin updates (#17234)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)
2026-03-20 16:35:19 +09:00
かっこかり
2904b5a342 fix(backend): fix streaming note hiding logic (#17248)
* fix(backend): fix streaming note hiding logic

* Update Changelog

* refactor: avoid using generator function

---------

Co-authored-by: Acid Chicken <root@acid-chicken.com>
2026-03-20 14:01:27 +09:00
かっこかり
f16ef2ef56 fix(frontend): 絵文字パレットが空の状態でMisskeyについてのページが閲覧できない問題を修正 (#17243)
* fix(frontend): 絵文字パレットが空の状態でMisskeyについてのページが閲覧できない問題を修正

* Update Changelog

* extension

* add comment
2026-03-18 21:34:28 +09:00
かっこかり
a3b0dc91e8 fix(backend): Acceptヘッダを署名の対象に含めないように (#17240)
* fix(backend): Acceptヘッダを署名の対象に含めないように

* Update Changelog
2026-03-16 13:42:51 +09:00
syuilo
07bbc5ab33 enhance(frontend): improve zoomLines effect 2026-03-11 15:59:00 +09:00
syuilo
bbffa563d9 refactor(frontend): refactor blur.glsl 2026-03-11 10:35:59 +09:00
github-actions[bot]
1eefd8d3f0 Bump version to 2026.3.2-alpha.0 2026-03-09 09:32:58 +00:00
かっこかり
589a3e229b Update CHANGELOG.md 2026-03-09 18:25:04 +09:00
renovate[bot]
9377e94072 chore(deps): update [docker] update dependencies (#17203)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-09 18:22:09 +09:00
かっこかり
bc19359876 fix(backend): follow-up of 47db963 (#17231)
fix(backend): follow-up of 47db963d8d
2026-03-09 18:21:25 +09:00
syuilo
47db963d8d chore(backend): 非ログイン状態のケア 2026-03-09 13:57:59 +09:00
syuilo
277716bc49 fix(backend): 自分の行ったフォロワー限定投稿または指名投稿に自分自身でリアクションなど行った場合のイベントが流れない問題を修正 2026-03-09 13:51:56 +09:00
syuilo
db5cc6c058 Revert "fix(backend): 自分の行ったフォロワー限定投稿または指名投稿に自分自身でリアクションなど行った場合のイベントが流れない問題を修正"
This reverts commit 06f8dd39ca.
2026-03-09 13:51:18 +09:00
syuilo
06f8dd39ca fix(backend): 自分の行ったフォロワー限定投稿または指名投稿に自分自身でリアクションなど行った場合のイベントが流れない問題を修正 2026-03-09 13:50:10 +09:00
syuilo
307e90427a format 2026-03-09 13:48:32 +09:00
github-actions[bot]
d083855f7f [skip ci] Update CHANGELOG.md (prepend template) 2026-03-09 01:03:01 +00:00
github-actions[bot]
4ec56ba9f6 Release: 2026.3.1 2026-03-09 01:02:56 +00:00
かっこかり
5e62ad160e Update CHANGELOG.md 2026-03-09 09:36:02 +09:00
github-actions[bot]
e554e72b55 Bump version to 2026.3.1-alpha.0 2026-03-09 00:34:23 +00:00
かっこかり
25783425e1 deps: update dependencies (#17229)
* deps: update dependencies

* update lockfile
2026-03-09 09:09:09 +09:00
かっこかり
582ebe422c Update CHANGELOG.md 2026-03-09 08:24:52 +09:00
かっこかり
06e74508a2 Merge commit from fork
* Tighten security on channels

* Fix main channel

* add comments, improve typing

* fix indent

* fix: missing membership checks in chat-room

* remove unnecessary check in chat-user

* fix

* refactor: use exists

* fix

---------

Co-authored-by: Julia Johannesen <julia@insertdomain.name>
2026-03-09 08:18:14 +09:00
かっこかり
b361a10c48 Merge commit from fork
* Tighten security in `HashtagChannel`

* Add isNoteVisibleForMe in stream channel

Co-Authored-By: Julia Johannesen <julia@insertdomain.name>

* Tighten note visibility checks in WebSocket (No.1)

* refactor

* Fix main channel

Co-Authored-By: Julia Johannesen <julia@insertdomain.name>

* fix typo

* fix missing lockdown (requireSigninToViewContents) checks

* fix(backend): streamingでのロックダウン挙動修正

* fix: 引用リノートを無条件で隠していた問題を修正

* fix: 引用リノートを単純にリノート場合に内容が見えることがある問題を修正

* refac

* fix

* fix

* fix

* Update docs

---------

Co-authored-by: Julia Johannesen <julia@insertdomain.name>
Co-authored-by: KanariKanaru <93921745+kanarikanaru@users.noreply.github.com>
2026-03-09 08:15:31 +09:00
syuilo
a07dc589e7 Merge commit from fork
Co-authored-by: Julia Johannesen <197614925+juliajohannesen@users.noreply.github.com>
2026-03-09 08:14:12 +09:00
かっこかり
b5d399674a Merge commit from fork
Co-authored-by: Julia Johannesen <julia@insertdomain.name>
2026-03-09 08:12:20 +09:00
かっこかり
e074a91189 Merge commit from fork 2026-03-09 08:11:25 +09:00
renovate[bot]
29c357a988 chore(deps): update [github actions] update dependencies (#17202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-07 14:39:40 +09:00
かっこかり
ac45781ef9 deps: security dependency updates [ci skip] (#17225) 2026-03-07 14:35:10 +09:00
anatawa12
5d78b320de chore(backend): delete unused ChannelsService (#17218) 2026-03-05 21:57:07 +09:00
syuilo
a025209602 fix(frontend): 意図せず参照渡しになり得る箇所をdeepCloneするように修正 (#17207)
現状は(おそらく)問題は起きていないが今後問題が発現するシチュエーションが出てくる可能性がある
2026-03-05 20:38:42 +09:00
github-actions[bot]
d5b86a8b49 [skip ci] Update CHANGELOG.md (prepend template) 2026-03-05 10:56:52 +00:00
github-actions[bot]
1a62318bcc Release: 2026.3.0 2026-03-05 10:56:46 +00:00
syuilo
9c30c0915a Update CHANGELOG.md 2026-03-05 19:35:06 +09:00
github-actions[bot]
53b9abd098 Bump version to 2026.3.0-alpha.0 2026-03-05 10:28:23 +00:00
かっこかり
3980b2ca55 fix: review fixes (#17208)
* fix: OAuthのContent-Typeを正しく判定するように

* fix(frontend): fix outdated comments

* fix: storagePersistenceのtop-level awaitを解消

* fix

* fix(frontend): add comment

Co-Authored-By: anatawa12 <anatawa12@icloud.com>

* fix

* fix: rename `users/get-following-users-by-birthday`

* fix: fix types

* Update MkForm.vue

* refactor utility/storage.ts

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-03-05 19:24:30 +09:00
syuilo
810faa8e5d New Crowdin updates (#17097)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)
2026-02-28 15:48:03 +09:00
果物リン
ae1304d645 perf: MFM MkA, MkLink, MkSparkle の slot 指定方法を修正 (#17156) 2026-02-28 15:47:29 +09:00
かっこかり
676e164634 deps: Security dependency updates (#17198)
* update deps

* update security deps
2026-02-28 13:56:34 +09:00
かっこかり
71f50d3280 fix(frontend): secure contextではない場合はストレージ永続化を確認しないように (#17189)
* fix(frontend): secure contextではない場合はストレージ永続化を確認しないように

* Update Changelog
2026-02-23 16:53:41 +09:00
github-actions[bot]
d4cd47f455 Bump version to 2026.2.0-beta.0 2026-02-22 10:11:10 +00:00
かっこかり
22a6935468 deps: update dependencies (#17184)
* update deps

* fix
2026-02-22 19:06:33 +09:00
syuilo
264068c58b chore(frontend): getHexで不正な値が返される可能性があるのを修正 2026-02-22 13:56:20 +09:00
かっこかり
97f7659bac fix(frontend): ウィジェットの表示更新がおかしくなる問題を修正 (#17175)
* fix(frontend): ウィジェットの表示更新がおかしくなる問題を修正

* fix: keyがついていない箇所全てを修正

* Revert "fix: keyがついていない箇所全てを修正"

This reverts commit 7f4d90feea.

* Revert "fix(frontend): ウィジェットの表示更新がおかしくなる問題を修正"

This reverts commit 38a000c904.

* fix
2026-02-16 19:56:48 +09:00
かっこかり
41620600cc fix(frontend): ウィンドウのドラッグ・サイズ変更のポインターをキャプチャするように (#17159)
* fix(frontend): ウィンドウのドラッグ・サイズ変更のポインターをキャプチャするように

* Update Changelog

* fix
2026-02-16 19:23:30 +09:00
かっこかり
b5121dc70e deps: update dependencies (#17174)
* deps: update dependencies

* update

* run pnpm dedupe

* update tsgo

* rollback tsgo
2026-02-16 12:02:36 +09:00
かっこかり
bd992661f4 Update CHANGELOG.md 2026-02-15 15:50:42 +09:00
かっこかり
799f5ab504 enhance(frontend): いくつかのtodoの解消 (#17154) 2026-02-15 12:08:10 +09:00
github-actions[bot]
d4bc753e72 Bump version to 2026.2.0-alpha.0 2026-02-15 03:04:38 +00:00
かっこかり
af40eb4d31 fix: user-tagページでユーザーが重複して読み込まれるのを修正 (#17163)
* fix: user-tagをページネーションに対応させる

* update changelog
2026-02-15 11:50:23 +09:00
かっこかり
a22b82c414 fix(frontend): フォロー承認通知でフォローされた際のメッセージ内の絵文字が表示されない問題を修正 (#17164)
* fix(frontend): フォロー承認通知でフォローされた際のメッセージ内の絵文字が表示されない問題を修正

* update changelog
2026-02-15 11:49:37 +09:00
かっこかり
28f5b2f173 fix(frontend): ぼかし・塗りつぶし・モザイクの画像エフェクトを修正 (#17155)
* fix(frontend): ぼかし・塗りつぶし・モザイクの画像エフェクトを修正

* Update Changelog

* fix changelog [ci skip]

* fix changelog [ci skip]

* tweak

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-02-08 09:48:04 +09:00
果物リン
c86cbfcfba worker-multi-dispatch のコメントを抑制 (#17157) 2026-02-07 17:46:17 +09:00
かっこかり
00cbd1e6db fix(frontend): ノートの詳細表示でリアクション一覧が全件表示されない問題を修正 (#17137)
* fix(frontend): ノートの詳細表示でリアクション一覧が全件表示されない問題を修正

* Update Changelog
2026-02-02 22:37:24 +09:00
かっこかり
65e51463c8 fix(frontend): CSSの指定が誤っている問題を修正 (#17135) 2026-01-31 22:38:16 +09:00
Ken_Cir
39362f78a6 fix(backend): inconsistent permissions for /admin/get-user-ips (#17136)
* fix(backend): inconsistent permissions for /admin/get-user-ips

* Update Changelog
2026-01-31 22:37:48 +09:00
renovate[bot]
d2154214ba fix(deps): update dependency tar to v7.5.7 [security] (#17104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 18:18:34 +09:00
renovate[bot]
97312b97f8 chore(deps): update pnpm to v10.28.2 [security] (#17133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-29 10:53:08 +09:00
poppingmoon
5e2b041f84 fix(frontend): remove ensureSignin from reversi game page (#17130) 2026-01-28 20:44:58 +09:00
syuilo
ec97f49919 Create copilot-instructions.md 2026-01-28 19:42:43 +09:00
かっこかり
4910fff7fb fix(frontend): mCaptchaが動作しない問題を修正 (#17127)
* fix(frontend): mCaptchaが動作しない問題を修正

* Update Changelog

* remove mcaptcha vanila glue
2026-01-28 11:55:35 +09:00
かっこかり
fc7655c808 deps: update dependencies [ci skip] (#17126)
* deps: update dependencies

* update vunerable packages as well
2026-01-24 02:41:10 +09:00
syuilo
ae2ac9d50f fix(frontend): 投稿フォームのアップロードファイルを右クリックしたときの挙動がおかしいのを修正 2026-01-22 20:31:42 +09:00
syuilo
8932492fd3 enhance(frontend): 添付画像のメニューを右クリックでも呼び出せるように 2026-01-22 20:29:11 +09:00
syuilo
a168e7b648 enhance(dev): Improve mem report (#17119)
* wip

* Update report-backend-memory.yml

* Update report-backend-memory.yml

* Update measure-memory.mjs

* Update report-backend-memory.yml
2026-01-22 18:53:53 +09:00
syuilo
1adcb03b93 Update report-backend-memory.yml 2026-01-22 15:01:38 +09:00
syuilo
b6e737dc76 Update report-backend-memory.yml 2026-01-22 14:47:05 +09:00
syuilo
2fa6ecc7ef enhance(dev): improve mem report (#17118)
* wip

* wip

* Update report-backend-memory.yml

* Update report-backend-memory.yml

* Update .github/workflows/report-backend-memory.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-22 14:32:57 +09:00
syuilo
f744b5711f enhance(dev): improve mem report (#17117)
* wip

* Update report-backend-memory.yml
2026-01-22 13:14:05 +09:00
syuilo
2b3d72bb73 Update measure-memory.mjs (#17116) 2026-01-22 12:16:38 +09:00
syuilo
3205eb6925 lint 2026-01-22 12:14:51 +09:00
syuilo
d4fcc694a6 enhance(backend): remove redis-info dep 2026-01-22 10:28:03 +09:00
かっこかり
389861f1da refactor(frontend): fix invalid self-closing tags (#17103)
* fix(frontend): fix invalid self-closing tags

* apply eslint rules

* fix

* fix
2026-01-16 22:42:08 +09:00
syuilo
ec683f04d1 enhance(dev): メモリ使用量比較のActionsでGCしてから取得する
Resolve #16961
2026-01-14 16:12:44 +09:00
かっこかり
bd81a6c8ad refactor(frontend): anyを除去2 (#17092)
* wip

* fix types

* fix
2026-01-14 14:45:45 +09:00
syuilo
d8318c02a1 refactor(frontend): MkRadioをMkRadiosに統合 2026-01-14 14:21:51 +09:00
かっこかり
b941c896aa refactor(frontend): MkRadiosの指定をpropsから行うように (#16597)
* refactor(frontend): MkRadiosの指定をpropsから行うように

* spdx

* fix lint

* fix: mkradiosを動的slotsに対応させる

* fix: remove comment [ci skip]

* fix lint

* fix lint

* migrate

* rename

* fix

* fix

* fix types

* remove unused imports

* fix

* wip

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-01-14 14:02:50 +09:00
github-actions[bot]
153ebd4392 Bump version to 2026.1.0-beta.0 2026-01-13 06:30:05 +00:00
かっこかり
bc5aef846b enhance(frontend): 画面幅が広いときはメディアを横並びで表示できるようにするオプションを追加 (#16946)
* enhance(frontend): 画面幅が広いときはメディアを横並びで表示できるようにするオプションを追加

* Update Changelog

* Update CHANGELOG.md
2026-01-13 15:28:54 +09:00
poppingmoon
4a0edf348a fix(frontend): use logical OR for fallback of file comment (#17089) 2026-01-13 15:04:23 +09:00
かっこかり
f3aa5081ed fix(frontend): MkFormで入力に不備がある場合は完了ボタンを押して続行できないように (#17096)
* fix(frontend): MkFormで入力に不備がある場合は完了ボタンを押して続行できないように

* fix lint
2026-01-13 15:02:50 +09:00
poppingmoon
c0d5c0df69 fix(frontend): add "px" suffix to borderWidth of Ui:C:container (#17088)
* fix: add "px" suffix to borderWidth of Ui:C:container

* docs: update changelog
2026-01-13 15:00:46 +09:00
おさむのひと
0b383efa5a Refactor FileServerService: Extract file handling logic into dedicated handlers (#17090)
- Introduced FileServerDriveHandler to manage drive file requests.
- Created FileServerFileResolver for resolving file access keys and downloading files.
- Added FileServerProxyHandler to handle proxy requests and image processing.
- Moved utility functions to FileServerUtils for better organization.
- Removed redundant methods from FileServerService, improving readability and maintainability.
2026-01-13 15:00:11 +09:00
かっこかり
abe745ec87 fix(frontend/widget): AiscriptAppのスクリプト適用を手動に変更 (#17095) 2026-01-11 21:56:58 +09:00
syuilo
2168395b71 New Crowdin updates (#16982)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2026-01-11 19:37:00 +09:00
renovate[bot]
7a9c4591c2 chore(deps): update [docker] update dependencies (#16082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-11 19:33:48 +09:00
かっこかり
4bc0026900 deps(frontend): update vue-tsc to v3.2.1 (#17091) 2026-01-11 15:00:00 +09:00
syuilo
faf2399e31 enhance(frontend): 連合なしが指定されているときに公開範囲を指名にできるように
Resolve #14760
2026-01-11 13:58:58 +09:00
おさむのひと
106fffdcfe chore(backend): FileServerServiceのunit-testを追加 (#17086)
* add test

* fix

* fix type error
2026-01-11 11:34:29 +09:00
github-actions[bot]
141964e57c Bump version to 2026.1.0-alpha.4 2026-01-09 14:19:30 +00:00
syuilo
41592eafb3 refactor: make noImplicitAny true (#17083)
* wip

* Update emojis.emoji.vue

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update manager.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update analytics.ts
2026-01-09 22:06:40 +09:00
かっこかり
2a14025c29 fix(frontend): popupのemit型が正しく利用できるように修正 (#16826)
* fix(frontend): popupのemit型が正しく利用できるように修正

* fix: revert unnecessary code (for testing purpose)

* fix lint

* fix type errors

* fix types

* add comment

* fix

* fix

* fix: OverloadToUnionの仕組みを変更

* add comments, clean up

* fix lint

* fix types

* clean up [ci skip]

* fix

* add comments [ci skip]
2026-01-09 12:21:08 +09:00
github-actions[bot]
75b5dc1cd8 Bump version to 2026.1.0-alpha.3 2026-01-08 12:35:31 +00:00
syuilo
ee0eeb052f 🎨 2026-01-08 21:31:44 +09:00
かっこかり
ece4efcefe fix(frontend): mfmFunctionPickerを使用して挿入する際のハンドリングを改善 (#17018)
* fix(frontend): mfmFunctionPickerを使用して絵文字を挿入する際のハンドリングを改善

* fix

* Update MkPostForm.vue

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-01-08 21:08:27 +09:00
かっこかり
cd973b252a fix(frontend): 2月29日を誕生日に設定している場合、平年は3月1日を誕生日として扱うように (#17072)
* fix(frontend): 2月29日を誕生日に設定している場合、平年は3月1日を誕生日として扱うように

* Update Changelog

* add tests

* spdx
2026-01-08 12:16:33 +09:00
anatawa12
666f78e676 enable and fix no-unused-vars and no-async-promise-executor (#17070)
* dev: set --no-bail for lint task

* lint: enable no-async-promise-executor lint and fix them

* lint: enable no-unused-vars with allowing _ prefix

* lint: fix semi
2026-01-08 11:49:12 +09:00
renovate[bot]
cf89c4e363 chore(deps): update pnpm to v10.27.0 [security] (#17082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-08 09:00:30 +09:00
github-actions[bot]
bf41e9edd1 Bump version to 2026.1.0-alpha.2 2026-01-07 13:02:33 +00:00
syuilo
f92c187e2b make __VUE_OPTIONS_API__ false (#17077) 2026-01-07 21:59:22 +09:00
syuilo
8c5572dd3b enhance(frontend): remove vuedraggable (#17073)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update page-editor.blocks.vue

* Update MkDraggable.vue

* refactor

* refactor

* ✌️

* refactor

* Update MkDraggable.vue

* ios

* 🎨

* 🎨
2026-01-07 21:46:03 +09:00
syuilo
e18b92823f Update README.md 2026-01-07 21:43:31 +09:00
anatawa12
2d709ceeb4 fix: typo in import specifier (#17076) 2026-01-07 20:40:14 +09:00
anatawa12
38b3eecc8c migrate build scripts to esmodules (#17071)
* chore: migrate build scripts to esmodules

* chore: do not use export default in build script
2026-01-06 19:23:59 +09:00
おさむのひと
f6fc78f578 refactor: DriveFileEntityServiceとDriveFolderEntityServiceの複数件取得をリファクタ (#17064)
* refactor: DriveFileEntityServiceとDriveFolderEntityServiceの複数件取得をリファクタ

* add test

* fix

* Update packages/backend/src/core/entities/DriveFolderEntityService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/test/unit/entities/DriveFolderEntityService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/entities/DriveFileEntityService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Revert "Update packages/backend/src/core/entities/DriveFileEntityService.ts"

This reverts commit 83bb9564cf.

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-06 13:13:06 +09:00
syuilo
6e99acf7a7 update clean scripts 2026-01-05 21:49:45 +09:00
github-actions[bot]
553a147396 Bump version to 2026.1.0-alpha.1 2026-01-05 12:03:42 +00:00
syuilo
7bcfeba7e5 Minify backend (#17054)
* wip

* Update build.js

* Update build.js

* [minify-backend用] フィジビリティ検証 (#16878)

* fix: minify-backend

* 間違えて入れちゃったのを戻す

* 追従

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* test

* use node 24

* Revert "use node 24"

This reverts commit 7ae2debf23.

* Revert "test"

This reverts commit d919879091.

* Update package.json

* wip

* Update compile_config.js

* Revert "Update compile_config.js"

This reverts commit 0ee286f02b.

* Update config.ts

* wip

* Update .swcrc

* Update ClientServerService.ts

* [ci skip] update CHANGELOG

---------

Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
2026-01-05 20:56:52 +09:00
renovate[bot]
4f65c1529b chore(deps): update [misskey-js] update dependencies [ci skip] (#17025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-03 18:35:10 +09:00
かっこかり
589ae8d4c6 fix(deps): update [frontend] update dependencies (#17062)
* fix(deps): update [frontend] update dependencies

* rollback tsgo to fix type error

* Revert "rollback tsgo to fix type error"

This reverts commit 3a0b94e5b2.

* rollback vue-tsc to fix type errors (test)

* update vue-tsc to 3.2.0

* update vue-tsc stack to v3.2.1

* rollback vue-tsc to v3.1.8
2026-01-03 18:15:34 +09:00
かっこかり
0be4405a79 fix(deps): run pnpm dedupe (#17063) 2026-01-03 15:30:04 +09:00
renovate[bot]
2fba2e7049 fix(deps): update [root] update dependencies [ci skip] (#17023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-03 12:28:57 +09:00
github-actions[bot]
96b03a7179 Bump version to 2026.1.0-alpha.0 2026-01-02 12:51:50 +00:00
かっこかり
cdb958cdf0 fix(frontend): 管理画面でアーカイブ済のお知らせを表示した際にアクティブなお知らせが多い旨の警告が出る問題を修正 (#17059)
* fix(frontend): 管理画面でアーカイブ済のお知らせを表示した際にアクティブなお知らせが多い旨の警告が出る問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2026-01-02 21:50:25 +09:00
syuilo
245775ea87 [skip ci] Update CHANGELOG.md 2026-01-02 21:48:39 +09:00
renovate[bot]
40d55fc6a3 fix(deps): update [backend] update dependencies (#17026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 21:47:23 +09:00
かっこかり
9c22538454 fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正 (#17019)
* fix(frontend): ファイルタブのセンシティブメディアを開く際に確認ダイアログを出す設定が適用されない問題を修正

* Update Changelog

* refactor

* Update Changelog
2026-01-02 21:41:32 +09:00
かっこかり
a1ba403f9a fix(frontend): ログインダイアログが表示されたあとの処理がおかしくなる問題を修正 (#17038)
* fix(frontend): ログインダイアログが表示されたあとの処理がおかしくなる問題を修正

* Update Changelog
2026-01-02 21:38:53 +09:00
かっこかり
443e1ed29e refactor(frontend): prefer.model, store.modelではcustomRefを使用するように (#17058)
* refactor(frontend): prefer.model, store.modelではcustomRefを使用するように

* fix: watchの解除に失敗してもエラーで落ちないように

* Update packages/frontend/src/lib/pizzax.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-02 21:34:43 +09:00
かっこかり
b5454cb2c4 fix(frontend): 登録日によるソートの場合はpaginator側のソートを使用するように (#17048)
* fix(frontend): 登録日によるソートの場合はpaginator側のソートを使用するように

* Update Changelog

* fix lint

* refactor
2026-01-01 10:32:38 +09:00
かっこかり
8577f10456 2026 (#17052) 2026-01-01 00:00:00 +09:00
かっこかり
16ffd88ecc enhance: 誕生日のユーザーウィジェットで、今日だけに限らず、直近の誕生日ユーザーを表示できるように (#13637)
* enhance(frontend): 「今日誕生日のフォロー中ユーザー」ウィジェットをリファクタリング

(cherry picked from commit 24652b9364)

* fix(backend): 年越しの時期で誕生日検索クエリーが誤動作する問題を修正 (MisskeyIO#577)

(cherry picked from commit 38581006be)

* fix

* spdx

* delete birthday param on users/following api

* 名称を一本化

* Update Changelog

* Update Changelog

* fix(frontend/WidgetBirthdayFollowings): ユーザーの名前が長いと投稿ボタンがはみ出てしまう問題を修正 (MisskeyIO#582)

(cherry picked from commit fa47a545b1)

* use module css

* default 3day

* Revert "delete birthday param on users/following api"

This reverts commit a47456c1c4.

* Update Changelog

* 日付が1ヶ月ズレている問題を修正?

* fix: 日付関連のバグを修正

Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>

* build misskey-js types

* add comment

* Update CHANGELOG.md

* migrate

* change migration

* UPdate Changelog

* fix: revert unnecessary changes

* 🎨

* i18n

* fix

* update changelog

* 🎨

* fix lint

* refactor: remove unnecessary classes

* fix

* fix

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
2025-12-31 22:33:26 +09:00
かっこかり
866e675134 fix(frontend): ウィジェットの設定画面のプレビューが利用できない問題を修正 (#17056) 2025-12-31 18:06:22 +09:00
かっこかり
01aa56c602 enhance(backend/oauth): Support client information discovery in the IndieAuth 11 July 2024 spec (#17030)
* enhance(backend): Support client information discovery in the IndieAuth 11 July 2024 spec

* add tests

* Update Changelog

* Update Changelog

* fix tests

* fix test describe to align with the other describe format
2025-12-31 14:50:01 +09:00
かっこかり
ff7d2c1083 refactor(frontend): remove undefined css rules (#17051) 2025-12-31 13:42:59 +09:00
かっこかり
404fca6c2d fix(frontend): fix build error (#17050) 2025-12-30 17:55:52 +09:00
かっこかり
3fe0477cac fix(frontend): ディレクティブの型が当たらない問題を修正 (#17049) 2025-12-30 16:39:07 +09:00
かっこかり
97d485bdd2 enhance(frontend): ウィジェットの設定項目の多言語対応 (#17032)
* enhance(frontend): ウィジェットの設定項目の多言語対応

* Update Changelog

* refactor: move options locale key to root for optimizing artifacts for locale inlining

* fix

* fix

* ✌️

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-30 15:59:18 +09:00
かっこかり
4285303c81 fix(frontend): follow-up of #17033 (#17047)
* wip

* fix

* ref -> reactive

* tweak throttle threshold

* tweak throttle threshold

* rss設定にはmanualSaveを使用するように

* Update MkWidgetSettingsDialog.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-30 14:32:40 +09:00
かっこかり
14f58255ee enhance(frontend): ウィジェットの設定画面を改良 (#17033)
* enhance(frontend): ウィジェットの設定画面を改良

* Update Changelog

* fix lint
2025-12-28 20:50:11 +09:00
おさむのひと
b69b0acf59 chore: SearchServiceのunit-test追加 (#17035)
* add serach service test

* add meili test

* CIの修正が足りなかった

* テストの追加

* fix
2025-12-28 19:57:18 +09:00
かっこかり
7a5430199f enhance(frontend): MkDriveで自動でもっと見るを有効化 (#17037)
* enhance(frontend): MkDriveで自動でもっと見るを有効化

* Update Changelog
2025-12-28 19:53:08 +09:00
syuilo
c32307dca4 Update README.md 2025-12-27 14:30:36 +09:00
kami8
bc78bb9b8e Fix(frontend): ドライブクリーナーから画像を削除した際、リロードしなくても画面に反映されるよう修正 (#16888)
* ドライブクリーナーでファイル削除後、リロードなしで画面に反映されるように修正

* CHANGELOG.mdを修正

* CHANGELOGがおかしかったので修正
2025-12-26 09:19:32 +09:00
renovate[bot]
a33b003282 chore(deps): update [tools] update dependencies [ci skip] (#17024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-23 19:32:38 +09:00
anatawa12
74e847a04d refactor: use TRANSIENT scope to avoid service bucket relay (#16985)
* refactor: use TRANSIENT scope to avoid service bucket relay

* lint: fix lints

* refactor: use transient for apResolver

* Update packages/backend/src/core/activitypub/models/ApImageService.ts

* fix
2025-12-22 17:01:10 +09:00
anatawa12
06657c81d3 feat: use tsgo where capable (#16984) 2025-12-22 16:52:05 +09:00
おさむのひと
5c5e965151 fix(ci): dockleのciをより安定して動かせるようにする (#16987) 2025-12-22 16:51:38 +09:00
github-actions[bot]
b07a1e692f [skip ci] Update CHANGELOG.md (prepend template) 2025-12-22 05:30:46 +00:00
github-actions[bot]
78348007ed Release: 2025.12.2 2025-12-22 05:30:41 +00:00
かっこかり
92f1e599db Update CHANGELOG.md [ci skip] 2025-12-22 12:05:25 +09:00
github-actions[bot]
26b5979c76 Bump version to 2025.12.2-beta.4 2025-12-20 12:30:29 +00:00
かっこかり
b1048525d2 fix(frontend): 一部のUnicode絵文字がリアクションボタンにならない問題を修正 (#17017)
* fix(frontend): 一部のUnicode絵文字がリアクションボタンにならない問題を修正

* Update Changelog

* fix
2025-12-20 21:23:39 +09:00
かっこかり
4c31eb409c fix(frontend): ストレージが消去される事がある問題を軽減 (#16704)
* fix(frontend): ストレージが消去される事がある問題を軽減

* add comment

* add catch to continue request permissions

* Update Changelog

* update changelog

* fix

通知権限の許可取得はボタン押下時に移動

* fix

* wip

* Update main-boot.ts

* wip

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-20 21:22:31 +09:00
おさむのひと
f739cb6270 fix: admin/queue/deliver-delayedとadmin/queue/inbox-delayedの応答速度を改善 (#17009) 2025-12-20 19:15:05 +09:00
github-actions[bot]
81bacb6203 Bump version to 2025.12.2-beta.3 2025-12-20 10:07:41 +00:00
かっこかり
ee8dccea2f fix(backend): fix #16994 by approach 6 (#17005)
* fix(backend): narrow down trustproxy default value and enhance documentation on how to configure it

* Update Changelog

* indent [ci skip]

* Update CHANGELOG.md [ci skip]

* add cloudflare specific example

* Update .config/example.yml

Co-authored-by: anatawa12 <anatawa12@icloud.com>

* fix: productionでIPレートリミットされる際にlocalhostからリクエストが来たらログを残すように

* fix: wrong condition

* fix: use own logger for signin api

* flip configuration

* fix

* fix [ci skip]

* fix: wrong message [ci skip]

* fix: どこがおかしいか明記 [ci skip]

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2025-12-20 19:07:05 +09:00
syuilo
6d00645bc7 fix(frontend): iPadOSのPWAでアプリを切り替えた際にウィジェット表示ボタンが消滅する問題を修正 2025-12-18 20:27:12 +09:00
syuilo
baeed4bc80 perf(backend): lazy load systeminformation
systeminformationを必要とする機能を有効にしていないサーバーで無駄に読み込まれることが無いように
2025-12-18 20:05:20 +09:00
syuilo
dba44daf9c 🎨 and refactor 2025-12-18 15:40:40 +09:00
syuilo
46e6dd99d1 chore: remove beta label from some features 2025-12-18 15:15:07 +09:00
syuilo
f48af7f73b 🎨 2025-12-18 14:55:19 +09:00
syuilo
834e8b4c24 fix(frontend): デッキUIでメニュー位置を下にしているとプロファイル削除ボタンが表示されないのを修正 2025-12-18 14:55:16 +09:00
github-actions[bot]
7ef0c96758 Bump version to 2025.12.2-beta.2 2025-12-17 03:31:55 +00:00
syuilo
b10074e939 enhance(frontend): add deck tour 2025-12-17 12:27:55 +09:00
renovate[bot]
260dbd150b fix(deps): update dependency systeminformation to v5.27.14 [security] [ci skip] (#17003)
* fix(deps): update dependency systeminformation to v5.27.14 [security]

* update whitelist to force update systeminformation package

* bump other dependencies to fix dep error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-17 09:36:15 +09:00
syuilo
79cbbcfe0f Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-12-17 09:08:25 +09:00
syuilo
c893f85864 Update example.yml 2025-12-17 09:08:22 +09:00
syuilo
24d4ffa2ec Update CHANGELOG.md
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-17 09:07:51 +09:00
github-actions[bot]
0b931daefd Bump version to 2025.12.2-beta.1 2025-12-16 14:00:25 +00:00
かっこかり
cc05d93194 fix(frontend): まれに設定変更のタブ間同期に失敗する問題を修正 (#16991) 2025-12-16 22:56:57 +09:00
かっこかり
90345591bb fix(frontend): 無限スクロールできる箇所の調整 (#17000) 2025-12-16 22:50:26 +09:00
github-actions[bot]
730227f353 Bump version to 2025.12.2-beta.0 2025-12-16 12:31:04 +00:00
syuilo
4acb37ee9d Update CHANGELOG.md 2025-12-16 21:23:51 +09:00
syuilo
7025769c69 fix(frontend): バージョン表記のないPlayが正しく動作しない問題を修正
Fix #16996
2025-12-16 21:23:23 +09:00
syuilo
1a4ef8769f Update CHANGELOG.md 2025-12-16 20:08:01 +09:00
github-actions[bot]
055cd0c250 Bump version to 2025.12.2-alpha.0 2025-12-16 11:00:42 +00:00
syuilo
d35ddc77d2 enhance(backend): request ip が localhost だった場合、レートリミットをスキップ & 警告を出すように 2025-12-16 19:56:44 +09:00
syuilo
8d871a58e3 Update CHANGELOG.md 2025-12-16 19:55:31 +09:00
syuilo
99b0b436e0 Update example.yml 2025-12-16 19:55:16 +09:00
syuilo
e3d5b95672 Revert "Merge commit from fork"
This reverts commit 5512898463.

see https://github.com/misskey-dev/misskey/issues/16994
2025-12-16 14:21:39 +09:00
かっこかり
0d52145b2b deps: update deps [ci skip] (#16997)
* update deps

* update chokidar to v5

* fix type error

* rollback serviceworker types to r74

* fix [ci skip]
2025-12-16 11:42:06 +09:00
かっこかり
467404d5bb fix(gh): thollander/actions-comment-pull-request@v3 の breaking change 対応漏れ 2025-12-16 09:45:26 +09:00
renovate[bot]
99e25784ad chore(deps): update [github actions] update dependencies (major) (#16869)
* chore(deps): update [github actions] update dependencies

* migrate

* bump download-artifact to v7

* bump upload-artifact to v6

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-16 09:26:10 +09:00
github-actions[bot]
9e1e40d35a [skip ci] Update CHANGELOG.md (prepend template) 2025-12-14 07:27:11 +00:00
github-actions[bot]
8eb6e29d2c Release: 2025.12.1 2025-12-14 07:27:06 +00:00
Copilot
2d198a711b Update PostgreSQL volume mount paths for PostgreSQL 18 (#16986)
* Initial plan

* Update PostgreSQL volume mount paths for PostgreSQL 18 compatibility

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-14 11:32:42 +09:00
syuilo
e0b872dc09 Update CHANGELOG for version 2025.12.1
Removed empty section under General and retained fixes under Client.
2025-12-13 21:16:12 +09:00
github-actions[bot]
711b86ab7d Bump version to 2025.12.1-alpha.1 2025-12-13 10:14:03 +00:00
syuilo
e8b4dae553 New Crowdin updates (#16939)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2025-12-13 19:08:25 +09:00
かっこかり
36d404818d fix(frontend/aiscript): nullを返すnote_view_intrruptorが動作しない問題を修正 (#16977)
* fix(frontend/aiscript): nullを返すnote_view_intrruptorが動作しない問題を修正

* Update Changelog
2025-12-13 19:08:02 +09:00
かっこかり
cb03f3f013 fix(frontend): follow-up of 16970 (#16975) 2025-12-13 18:22:40 +09:00
かっこかり
c109bec013 fix(frontend): ドライブファイルを日付以外で並び替える場合は月でグループ化して表示しないように (#16978)
* fix(frontend): ドライブファイルを日付以外で並び替える場合は月でグループ化して表示しないように

* Update Changelog
2025-12-13 18:17:09 +09:00
かっこかり
6fa4eb8c4f fix(frontend): 無限スクロールできる箇所の調整 (#16979) 2025-12-13 18:16:15 +09:00
github-actions[bot]
5fb4caa14b Bump version to 2025.12.1-alpha.0 2025-12-12 08:09:12 +00:00
まっちゃてぃー。
bc1f83664f fix(sw): Service Worker Auto Preloadをオプトアウトするように (#16971)
* Service Worker Auto Preloadをオプトアウトするように

* TypeErrorを修正

* コメントを追記
2025-12-12 17:08:15 +09:00
anatawa12
78435dc8d4 Fix: deckのタイムラインセレクタのデフォルトの値が現在のタイムラインではない問題 (#16008)
* fix: os.selectの型定義の上で default が文字列である問題を修正

* fix: deckのタイムライン選択画面で今指定されているタイムラインがデフォルトで選択されない問題

* fix lint

* fix: type error
2025-12-12 12:53:59 +09:00
かっこかり
d74aded35f fix: remove unused dependencies (#16969)
* fix(frontend): remove unused dependencies

* fix(backend): remove unused dependencies
2025-12-12 10:45:45 +09:00
FINEARCHS
d605680524 fix(frontend): オーナー不在のチャンネルをミュートできないのを修正 (#16906)
* オーナー不在のチャンネルをミュートできないのを修正

* update changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-11 23:15:57 +09:00
かっこかり
1096ce8e4a fix(frontend): 削除されたノートのリノートが正しく表示されない問題を修正 (#16970)
* fix(frontend): 削除されたノートのリノートが正しく表示されない問題を修正

* Update Changelog

* 🎨

* fix
2025-12-11 23:10:23 +09:00
syuilo
8e6fffee68 enhance: use native glob (#16965)
* enhance: use native glob

* remove tiny-glob

* remove fast-glob

* refactor

* fix: use async glob if possible

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-11 23:08:26 +09:00
まっちゃてぃー。
2cffd9f0fb fix(sw): オフライン時のfetch timeout処理を実装 (#16952)
* fix(sw): implement fetch timeout handling for navigation and offline content

* fix(sw): increase fetch timeout

* fix(sw): improve fetch timeout handling for i18n content

* fix(sw): 結局、fetchを通るかCacheがhitするはずなので、i18nのところはいらない

* fix(sw): 400番台のエラーを無条件でオフラインページにしていたのを修正

* 間違えた

* i18nもtimeoutが必要

* import sortingを修正

* import sortingを修正

* Fix: Frontend のsharedにはアクセスできないじゃん...

* SPDX

* Update CHANGELOG.md

* Update packages/sw/src/scripts/lang.ts

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* Update packages/sw/src/sw.ts

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* Update CHANGELOG.md

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-10 17:26:30 +09:00
syuilo
988f5ab69f fix(backend): ジョブキューでSentryが有効にならない問題を修正 2025-12-08 15:44:37 +09:00
かっこかり
3afe7c5348 Update CHANGELOG.md [ci skip] 2025-12-08 10:20:07 +09:00
かっこかり
73cc30f50f fix(frontend): ロード時の言語判定結果が保存されない問題を修正 (#16956)
* fix(frontend): ロード時の言語判定結果が保存されない問題を修正

* Update Changelog
2025-12-08 10:17:13 +09:00
github-actions[bot]
da3b3af984 [skip ci] Update CHANGELOG.md (prepend template) 2025-12-06 12:23:00 +00:00
github-actions[bot]
3273ca7512 Release: 2025.12.0 2025-12-06 12:22:55 +00:00
syuilo
b67bfe0763 Update CHANGELOG.md
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-06 21:03:06 +09:00
かっこかり
63d2870755 fix(backend): fix tests (#16947)
* fix(backend): shouldHideNoteByTimeのロジックの誤りを修正

* fix tests
2025-12-06 19:32:13 +09:00
syuilo
61f9c148f0 🎨 2025-12-06 18:46:13 +09:00
syuilo
8927a9e98a Update CHANGELOG.md 2025-12-06 18:27:57 +09:00
おさむのひと
dc77d59f87 Merge commit from fork 2025-12-06 18:25:20 +09:00
github-actions[bot]
2d0dae236f Bump version to 2025.12.0-beta.0 2025-12-06 08:41:10 +00:00
syuilo
a1f0ca4b8f use node 22.15.0 by default
#16944
2025-12-06 17:39:17 +09:00
syuilo
2a996287e3 update pnpm to 10.24.0 2025-12-06 16:44:23 +09:00
renovate[bot]
65dd917bfb fix(deps): update [backend] update dependencies [ci skip] (#16941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 23:55:00 +09:00
renovate[bot]
b0bffd3842 fix(deps): update [frontend] update dependencies [ci skip] (#16942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 23:10:04 +09:00
renovate[bot]
4ee6f90ab2 chore(deps): update [tools] update dependencies to v4.0.14 [ci skip] (#16940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 21:31:04 +09:00
renovate[bot]
50379e52db fix(deps): update dependency nodemailer to v7.0.11 [security] [ci skip] (#16919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-05 20:57:47 +09:00
renovate[bot]
6bb29ab5c3 fix(deps): update dependency @sentry/node to v10.27.0 [security] [ci skip] (#16860)
* fix(deps): update dependency @sentry/node to v10.27.0 [security]

* fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-12-05 20:42:36 +09:00
syuilo
fc1e2229e5 fix(frontend): stacking router viewで連続して戻る操作を行うと何も表示されなくなる問題を修正 2025-12-04 19:03:41 +09:00
syuilo
daf2a57b3c Revert "fix(frontend): stacking router viewで連続して戻る操作を行うと何も表示されなくなる問題を修正"
This reverts commit a3c3052d0f.
2025-12-04 19:01:45 +09:00
renovate[bot]
6716950d7f fix(deps): update dependency body-parser to v2.2.1 [security] (#16899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 17:39:33 +09:00
github-actions[bot]
29a0750eef Bump version to 2025.12.0-alpha.2 2025-12-04 07:51:39 +00:00
syuilo
24bd150967 refactor(backend): 変換後.config.jsonに統一するように+修正など (#16929)
* wip

* Update config.ts

* wip

* convertは元ファイルを変更するようなニュアンスを若干感じるのでcompileに改名

* wip

* Update package.json

* Revert "Update package.json"

This reverts commit e5c2802316.

* wip

* wip

* 謎

* clean up

* wip

* wip

* Revert "wip"

This reverts commit 3aa25ac7cf.

* wip

* wip

* Update dummy.yml

* wip

* Update compile_config.js

* Update compile_config.js

* wip

* Revert "wip"

This reverts commit fd78e097c6.

* Update dummy.yml

* Update compile_config.js
2025-12-04 16:49:25 +09:00
syuilo
a3c3052d0f fix(frontend): stacking router viewで連続して戻る操作を行うと何も表示されなくなる問題を修正 2025-12-04 15:19:15 +09:00
かっこかり
a6f57d99f9 fix(gh): fix federation test (#16936) 2025-12-04 13:36:30 +09:00
syuilo
55ef4c5faa tweak convert_config 2025-12-03 18:20:41 +09:00
syuilo
6293a57de8 fix action 2025-12-03 18:10:08 +09:00
Kagami Sascha Rosylight
5512898463 Merge commit from fork
* Change trustProxy default value to false

* Update trustProxy default value in example.yml

* Update trustProxy default description in example.yml
2025-12-03 16:08:45 +09:00
Copilot
0b77dc8c48 Add backend memory usage comparison action for PRs (#16926)
* Initial plan

* Add backend memory usage comparison action

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Fix deprecated serverProcess.killed usage

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Add explicit permissions to save-pr-number job

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Change PR comment text from Japanese to English

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Inline memory measurement script to fix base ref compatibility

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Revert "Inline memory measurement script to fix base ref compatibility"

This reverts commit 6f76a121ef.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-12-03 16:02:49 +09:00
syuilo
9900b3492a add DeepWiki badge to enable auto-refresh 2025-12-03 12:02:18 +09:00
github-actions[bot]
d9c9b95fc0 Bump version to 2025.12.0-alpha.1 2025-12-03 00:15:47 +00:00
syuilo
613900598a New Crowdin updates (#16911)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)
2025-12-03 09:01:19 +09:00
おさむのひと
1facca1ac5 enhance(backend): 起動前にconfigをjson化 (#16923)
* enhance(backend): 起動前にconfigをjson化

* fix

* fix

* fix

* fix

* fix

* fix CHANGELOG.md

* fix

* Update CHANGELOG.md

* get original
2025-12-03 09:00:37 +09:00
かっこかり
8d66cc006a Update CHANGELOG.md 2025-12-01 19:04:21 +09:00
github-actions[bot]
72cdaff810 Bump version to 2025.12.0-alpha.0 2025-12-01 09:58:16 +00:00
かっこかり
7b9e83a6b8 enhance(backend): バックエンドで言語リストのみを参照するように (#16915) 2025-12-01 18:51:36 +09:00
github-actions[bot]
483483bc44 Bump version to 2025.11.2-alpha.4 2025-12-01 09:37:48 +00:00
かっこかり
f222d7e24d enhance(backend): pugをやめ、JSXベースのテンプレートに変更 (#16908)
* enhance(backend): pugをやめ、JSXベースのテンプレートに変更 (to misskey-dev dev branch) (#16889)

* wip

* wip

* wip

* wip

* fix lint

* attempt to fix test

* fix

* fix

* fix: oauthページの描画がおかしい問題を修正

* typo [ci skip]

* fix

* fix

* fix

* fix

* fix

* refactor

* fix

* fix

* fix broken lockfile

* fix: expose supported languages as global variable

* remove i18n package from root as it is no longer required [ci skip]

* fix

* fix: add i18n package.json to Docker target-builder stage for federation tests (#16909)

* Initial plan

* fix: add i18n package.json to Docker target-builder stage for federation tests

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* fix: followup-test-federation for enh-remove-pug (#16910)

* fix: followup-test-federation for enh-remove-pug

* Revert "fix: add i18n package.json to Docker target-builder stage for federation tests (#16909)"

This reverts commit 14313468d3.

* fix: CSSが読み込まれない場合がある問題を修正

* fix [ci skip]

* fix: propsのデフォルト値をnull合体演算子から論理和演算子に変更(空文字に対処するため)

* remove @types/pug

* enhance: bootloaderを埋め込むように

* fix possible race condition

* remove esbuild

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
2025-12-01 18:36:55 +09:00
syuilo
e1b6e9d4b6 fix(frontend): visibilityStateがhiddenな状態でstartViewTransitionしないように 2025-12-01 08:21:30 +09:00
renovate[bot]
128fe6d644 chore(deps): update [misskey-js] update dependencies [ci skip] (#16900)
* chore(deps): update [misskey-js] update dependencies

* run pnpm dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-30 22:09:10 +09:00
github-actions[bot]
aa905a74cf Bump version to 2025.11.2-alpha.3 2025-11-30 09:49:21 +00:00
syuilo
5e2a6021ae perf(backend): use node-html-parser instead of microformats-parser (#16907)
* perf(backend): use node-html-parser instead of microformats-parser

microformats-parser は内部的に parse5 に依存していて無駄

* Update OAuth2ProviderService.ts

* Add 'id' parameter to parseMicroformats function

* Update OAuth2ProviderService.ts

* Update OAuth2ProviderService.ts
2025-11-30 18:45:56 +09:00
syuilo
dfd479bec5 perf(backend): lazy load summaly 2025-11-30 16:17:34 +09:00
github-actions[bot]
0933aa4d92 Bump version to 2025.11.2-alpha.2 2025-11-30 05:53:54 +00:00
renovate[bot]
fbd11c1eec chore(deps): update [root] update dependencies (#16902)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 14:19:23 +09:00
renovate[bot]
768e1dd016 chore(deps): update [tools] update dependencies [ci skip] (#16903)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 14:16:57 +09:00
syuilo
d55f51a69b perf(backend): lazy load sentry 2025-11-30 14:04:41 +09:00
おさむのひと
fe01a5a28f refactor: localesをworkspace管理下のパッケージに (#16895)
* refactor: localesをworkspace管理下のパッケージに

* fix copilot review

* move

* move

* rename

* fix ci

* revert unwanted indent changes

* fix

* fix

* fix

* fix

* 間違えてコミットしていたのを戻す

* 不要

* 追加漏れ

* ymlの場所だけ戻す

* localesの位置を戻したのでこの差分は不要

* 内容的にlocalesにある方が正しい

* i18nパッケージ用のREADME.mdを用意

* fix locale.yml

* fix locale.yml

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-30 13:27:44 +09:00
renovate[bot]
32b5583432 fix(deps): update [frontend] update dependencies [ci skip] (#16901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-30 11:38:11 +09:00
renovate[bot]
5fbe801d35 fix(deps): update [frontend] update dependencies (major) [ci skip] (#16866)
* fix(deps): update [frontend] update dependencies

* attempt to fix test

* rollback twemoji parser to v16 [ci skip]

* fix [ci skip]

* rollback twemoji parser to v16

* attempt to fix test

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-30 11:14:34 +09:00
github-actions[bot]
3c11797c6d Bump version to 2025.11.2-alpha.1 2025-11-30 01:02:00 +00:00
syuilo
10242d5f14 New Crowdin updates (#16877)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)
2025-11-30 10:00:28 +09:00
renovate[bot]
0455187a68 fix(deps): update [backend] update dependencies (major) (#16099)
* fix(deps): update [backend] update dependencies

* update approve builds

* update minimum node version for testing

* remove types/bcryptjs

* fix(backend): remove removed type previously exported from file-type

* migrate webauthnservice

* Update Changelog

* update deps (MisskeyIO#889)

- メンテナンスされないredis-lockを自前実装に変更
- 既にロックされている場合のリトライ間隔を調整

* use main redis for lock

* spdx

* tweak max retries

* [ci skip] dedupe

* attempt to fix test

* attempt to fix test

* Revert "attempt to fix test"

This reverts commit c508318627.

* temporarily roll back simonjs/fake-timers to v11.3.1

* Revert "temporarily roll back simonjs/fake-timers to v11.3.1"

This reverts commit 54f1fc3d79.

* migrate sinonjs/fake-timers

* update deps / migrate jest 30

* fix test

* fix: update node.js min version to 20.18.1

* fix: rollback nsfwjs to 4.2.0

* fix

* attempt to fix test

* attempt to fix test

* attempt to fix test

* attempt to fix test

* revert jest 30 related changes

* update deps

* fix test

* fix: rollback nsfwjs to 4.2.0

* fix: rollback sharp to 0.33

* update deps

* fix: rollback sharp-read-bmp to 1.2.0

* fix: rollback nsfwjs to 4.2.0

* recreate lockfile

* update deps

* fix: rollback sharp-read-bmp to 1.2.0

* fix: rollback jsdom, parse5

* fix: rollback jsdom types

* fix [ci skip]

* run pnpm dedupe

* update deps

* run pnpm dedupe [ci skip]

* Update Changelog [ci skip]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-30 09:58:06 +09:00
github-actions[bot]
1ae8e7900d Bump version to 2025.11.2-alpha.0 2025-11-29 13:06:20 +00:00
syuilo
81635d9f1c chore(backend): remove jsdom completely (#16893)
* wip

* Update utils.ts

* Update fetch-resource.ts

* Update exports.ts

* Update oauth.ts
2025-11-29 21:55:13 +09:00
syuilo
4bdbe794a6 perf(backend): parse5をやめて軽量な実装にし、メモリ削減・高速化 (#16892)
* wip

* test

* Revert "test"

This reverts commit b7c5ae7214.

* Update MfmService.ts
2025-11-29 21:19:55 +09:00
syuilo
cad93071da Revert "chore(backend): remove jsdom"
This reverts commit 2effd9da6e.
2025-11-29 20:11:38 +09:00
syuilo
2effd9da6e chore(backend): remove jsdom 2025-11-29 19:55:52 +09:00
syuilo
2732034447 perf(backend): jsdom、happy-domをやめて軽量な実装にし、メモリ削減・高速化 (#16885)
* wip

* Update packages/backend/src/server/api/endpoints/i/update.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/FetchInstanceMetadataService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* remove some packages

* コミット漏れ

* clean up

* fix

* Update MfmService.ts

* fix

* fix

* Update MfmService.ts

* wip

* rename

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/activitypub/ApRendererService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update packages/backend/src/core/MfmService.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update MfmService.ts

* Update CHANGELOG.md

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-29 19:16:05 +09:00
github-actions[bot]
17a4d4fad9 [skip ci] Update CHANGELOG.md (prepend template) 2025-11-28 10:04:12 +00:00
github-actions[bot]
f01ceb0b7c Release: 2025.11.1 2025-11-28 10:04:05 +00:00
syuilo
0b3efa47a2 Update CHANGELOG.md 2025-11-28 17:06:29 +09:00
Copilot
e44f14115e enhance(backend): Improve error handling for scheduled post validation (#16642)
* Initial plan

* Add error definitions and handling for scheduling validation errors

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* ✌️

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-28 17:06:04 +09:00
かっこかり
bcd9e106e3 fix(deps): fix broken lockfile (#16880) 2025-11-28 16:55:43 +09:00
renovate[bot]
82b577a2f4 chore(deps): update dependency glob to v13 [ci skip] (#16864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-28 16:53:08 +09:00
renovate[bot]
8d8504103c fix(deps): update dependency glob to v13 (#16870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-27 18:48:55 +09:00
github-actions[bot]
7a8c4817a8 Bump version to 2025.11.1-beta.3 2025-11-27 09:48:35 +00:00
かっこかり
825dcf7e3e Update CHANGELOG.md [ci skip] 2025-11-27 18:47:44 +09:00
syuilo
53e2be747d New Crowdin updates (#16846)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)
2025-11-27 18:43:16 +09:00
かっこかり
f10496645c fix(frontend/aiscript): 各種関数の引数で明示的にnullが指定されている場合のハンドリングを修正 (#16838)
* fix(frontend/aiscript): MkDialogのtitle, textでnull値を許容するように

* fix

* update aiscript and use new api

* fix

* fix
2025-11-27 18:43:00 +09:00
かっこかり
666e046399 Revert "fix(backend): clips/my-favorites APIをページネーションに対応させる (#16835)" (#16874)
* Revert "fix(backend): `clips/my-favorites` APIをページネーションに対応させる (#16835)"

This reverts commit 70fa621e22.

* fix
2025-11-27 18:40:54 +09:00
renovate[bot]
f13a34bda4 fix(deps): update dependency js-yaml to v4.1.1 [security] [ci skip] (#16788)
* fix(deps): update dependency js-yaml to v4.1.1 [security]

* ✌️ [ci skip]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-27 16:24:01 +09:00
renovate[bot]
643fd0f22a fix(deps): update [backend] update dependencies [ci skip] (#16867)
* fix(deps): update [backend] update dependencies

* fix(deps): update [backend] update dependencies

* bump sentry node to fix type errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-27 13:48:08 +09:00
github-actions[bot]
d3aba01db2 Bump version to 2025.11.1-beta.2 2025-11-27 04:22:23 +00:00
syuilo
8fec44d0e9 refactor
Fix #16872
2025-11-27 13:00:11 +09:00
renovate[bot]
105cc4b50a fix(deps): update [frontend] update dependencies [ci skip] (#16868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 21:40:24 +09:00
syuilo
1590a73d3d perf(backend): 必要になるまでnsfwjsを読み込まないように 2025-11-26 20:40:20 +09:00
renovate[bot]
18caa20969 fix(deps): update dependency glob to v11.1.0 [security] [ci skip] (#16861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 20:35:29 +09:00
syuilo
1bb8447c73 enhance(frontend): Change default animatedMfm based on reduced motion preference
3f539916d9 (commitcomment-171408344)
2025-11-26 20:17:59 +09:00
github-actions[bot]
df54bd92d0 Bump version to 2025.11.1-beta.1 2025-11-26 10:45:40 +00:00
syuilo
8cb37792c9 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-11-26 19:39:46 +09:00
syuilo
3f539916d9 enhance(frontend): GIF画像を再生するか・動くMFMを表示するかの設定でOSのアクセシビリティ設定を参照しないように
・OSのUIのアニメーション設定がMisskey内のGIFなどにまで連動して適用されるのは分かりにくい・期待しない動作との声が多いため
・動きのあるカスタム絵文字などのコンテンツはMisskeyの主要部分であり、それを止める設定は、本来の挙動に影響しない範囲でアニメーションを減らすアクセシビリティ設定とは趣旨が異なるため(OSでアニメーションを減らす設定を有効にしたからといってOSで動画の再生がされなくなるわけではないのと同じ)
2025-11-26 19:39:36 +09:00
renovate[bot]
415339b30b chore(deps): update [misskey-js] update dependencies [ci skip] (#16863)
* chore(deps): update [misskey-js] update dependencies

* update deps

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-26 19:37:20 +09:00
syuilo
de7cbb376e fix(frontend): 初回読み込み時にエラーになることがある問題を修正
Fix #16562
2025-11-26 19:26:27 +09:00
syuilo
6cb6f794e5 clean up 2025-11-26 19:14:40 +09:00
syuilo
236c235115 enhance(frontend): viewportの属性を起動後に変化させないことにより処理を簡略化+安定性向上 2025-11-26 19:12:03 +09:00
renovate[bot]
71808d3cc0 chore(deps): update [tools] update dependencies [ci skip] (#16865)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 19:00:05 +09:00
renovate[bot]
989c1b351a fix(deps): update [root] update dependencies [ci skip] (#16862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-26 18:59:34 +09:00
かっこかり
0c5f61721a fix(frontend): フォロー申請のキャンセル時に確認ダイアログを出すように (#16834)
* fix(frontend): フォロー申請のキャンセル時に確認ダイアログを出すように

* Update Changelog

* fix: 注釈は書かない
2025-11-26 13:07:28 +09:00
github-actions[bot]
e0e17a78f1 Bump version to 2025.11.1-beta.0 2025-11-26 01:01:54 +00:00
syuilo
2ad393ea45 fix(backend): ワードミュートの文字数計算を修正 2025-11-26 09:55:02 +09:00
syuilo
cdf059cc11 chore(dev): use postgresql 18 (#16850) 2025-11-25 19:38:57 +09:00
renovate[bot]
0fdd88f38e fix(deps): update [frontend] update dependencies [ci skip] (#16802)
* fix(deps): update [frontend] update dependencies

* run pnpm dedupe

* [ci skip] run dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-25 10:45:36 +09:00
github-actions[bot]
4679b2b34d Bump version to 2025.11.1-alpha.2 2025-11-25 01:33:05 +00:00
syuilo
052b1a6c76 Update CHANGELOG.md 2025-11-25 10:27:53 +09:00
syuilo
fd15a7fc23 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-11-25 10:20:46 +09:00
syuilo
b895088546 🎨 2025-11-25 10:20:36 +09:00
renovate[bot]
1e5592a5bd fix(deps): update [backend] update dependencies [ci skip] (#16801)
* fix(deps): update [backend] update dependencies

* fix types

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-25 10:20:06 +09:00
syuilo
c3ad46ad6f fix(frontend): ナビゲーションバーを下に表示しているときに、項目数が多いと表示が崩れる問題を修正 2025-11-25 09:46:07 +09:00
syuilo
8c7e1bd287 chore(backend): tweak message 2025-11-25 09:26:22 +09:00
かっこかり
043b9b3d26 fix(frontend): MkRadiosのslotでv-ifを使用すると空白のoptionが生成される問題を修正 (#16832)
* fix: MkRadiosのslotでv-ifを使用すると空白のoptionが生成される問題を修正 (MisskeyIO#1105)

* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2025-11-25 08:56:30 +09:00
かっこかり
91dafc26a7 refactor(frontend/aiscript): AiScriptバージョン取得・判定ロジックを統一 (#16845)
* refactor(frontend): AiScriptバージョン取得・判定ロジックを統一

* fix
2025-11-25 07:23:21 +09:00
github-actions[bot]
4edd6a68e6 Bump version to 2025.11.1-alpha.1 2025-11-24 12:06:01 +00:00
かっこかり
f801d1cf0b fix(backend): DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (#16842)
* fix: DBレプリケーションを利用する環境でクエリーが失敗する問題を修正 (MisskeyIO#1123)

* Update Changelog

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2025-11-24 20:59:25 +09:00
かっこかり
42706970f2 fix(frontend): PlayのAiScriptバージョン判定が正しく動作しない問題を修正 (#16843)
* fix: aiscript 1.0.0 以外が全部レガシー扱いになる問題を修正 (MisskeyIO#1129)

* Update Changelog

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2025-11-24 20:53:39 +09:00
syuilo
14730e429a New Crowdin updates (#16797)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)
2025-11-24 17:40:29 +09:00
かっこかり
2ee04860fb enhance(frontend): preferenceのタブ間同期にBroadcast Channelを使用するように (#16819)
* enhance(frontend): preferenceのタブ間同期にBroadcast Channelを使用するように

* fix

* refactor: EventEmitterをextendする形に変更
2025-11-24 16:52:46 +09:00
github-actions[bot]
25afb5d279 Bump version to 2025.11.1-alpha.0 2025-11-24 03:05:55 +00:00
かっこかり
c4f53aba3f fix(frontend): 一部のシチュエーションで投稿フォームのツアーが表示されない問題を修正 (#16837)
* fix(frontend): 一部のシチュエーションで投稿フォームのツアーが表示されない問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-24 11:18:01 +09:00
かっこかり
86e4f15e95 fix(frontend): リセットボタンでCWがリセットされない問題を修正 (#16820)
* fix(frontend): リセットボタンでCWがリセットされない問題を修正

* update changelog
2025-11-24 11:13:36 +09:00
かっこかり
6c190e7a5d fix(backend): チャンネルのリアルタイム更新で非ログイン時非表示設定が考慮されていない問題を修正 (#16833)
* fix(backend): チャンネルのリアルタイム更新でロックダウン設定が考慮されていない問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-24 11:11:59 +09:00
zyoshoka
1b46813e7a chore(dev): correct entrypoint path for embed on dev build (#16836) 2025-11-24 11:08:44 +09:00
syuilo
0ea0e05e61 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-11-24 11:01:19 +09:00
syuilo
015e680133 chore(backend/dev): remove cli-highlight dependency to reduce memory usage 2025-11-24 11:01:00 +09:00
かっこかり
ea40a0756f fix(backend): DeepL翻訳のAPIキー指定方式変更に対応 (#16839)
* spec: DeepL Deprecation of query parameter and request body authentication (MisskeyIO#1096)

https://developers.deepl.com/docs/resources/breaking-changes-change-notices/november-2025-deprecation-of-legacy-auth-methods

* Update Changelog

* Update Changelog

* ✌️ [ci skip]

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2025-11-24 10:59:50 +09:00
かっこかり
70fa621e22 fix(backend): clips/my-favorites APIをページネーションに対応させる (#16835)
* fix(backend): `clips/my-favorites` APIをページネーションに対応させる

* fix

* fix test

* fix
2025-11-23 22:41:14 +09:00
syuilo
c741aa5d7d chore(dev): add start:inspect command for debugging 2025-11-21 10:04:16 +09:00
かっこかり
7afe0d44d1 fix(frontend): pageheaderの型を修正 (#16803) 2025-11-20 15:40:52 +09:00
果物リン
e588615ea9 fix: ヘッダーメニューのチャンネルからチャンネルを新規作成の遷移先修正 (#16816)
* fix: ヘッダーメニューのチャンネルからチャンネルを新規作成の遷移先修正

* add changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-20 15:39:50 +09:00
かっこかり
7e56fed164 fix(frontend): ページのコンテンツがはみ出る問題を修正 (#16817)
* fix(frontend): ページのコンテンツがはみ出る問題を修正

* Update Changelog
2025-11-20 15:38:25 +09:00
kami8
9f810d701d enhance(frontend): リアクションの受け入れ設定にキャプションを追加 (#16807)
* enhance(frontend): リアクションの受け入れ設定にキャプションを追加

* Update Changelog

* CHANGELOG.mdを修正

* CHANGELOG.mdのコンフリクトを解消し、再度変更内容を記載

* 条件分岐をswitch文に変更

* chore: trigger CI re-run
2025-11-19 19:17:43 +09:00
おさむのひと
2f3421645a fix(devcontainer): devcontainerのバージョンアップ+Renovateでbump出来るように設定を追加 (#16793)
* fix(devcontainer): devcontainerのバージョンアップ+Renovateでbump出来るように設定を追加

* Update renovate.json5

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update renovate.json5

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* fix matchFileNames

* using trixie

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-19 12:34:27 +09:00
syuilo
4c0f215fc5 refactor 2025-11-18 16:23:57 +09:00
github-actions[bot]
449b00c934 [skip ci] Update CHANGELOG.md (prepend template) 2025-11-16 08:23:49 +00:00
github-actions[bot]
cdcff3ede8 Release: 2025.11.0 2025-11-16 08:23:43 +00:00
syuilo
9d1c3f053c New Crowdin updates (#16781)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)
2025-11-16 09:12:02 +09:00
github-actions[bot]
8c5d571975 Bump version to 2025.11.0-rc.0 2025-11-15 12:20:55 +00:00
おさむのひと
c5e9f7add4 fix(ci): DockleのCIが落ちるのを修正 (#16794)
* fix(ci): DockleのCIが落ちるのを修正

* fix

* fix

* fix

* fix

* fix

* downgrade dockle

* fix
2025-11-15 21:04:45 +09:00
おさむのひと
e15fdd05b7 fix(frontend): カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正 (#16785)
* fix(frontend): カスタム絵文字(β)画面で変更行が正しくハイライトされない問題を修正

* rollback

* 詳細度->!important
2025-11-15 12:13:50 +09:00
おさむのひと
41e945b0ef fix(frontend): 投稿フォームのアバター画像が縮むのを修正 (#16790)
* fix(frontend): 投稿フォームのアバター画像が縮むのを修正

* fix CHANGELOG.md

* fix
2025-11-15 11:33:37 +09:00
syuilo
f89faae0ab chore(frontend): add tip for preference restore 2025-11-13 14:11:38 +09:00
github-actions[bot]
67ca3d7e71 Bump version to 2025.11.0-beta.0 2025-11-12 10:51:11 +00:00
claustra01
2ac2e9e849 チャンネルの説明欄の最小文字数制約を除去する (#16782)
* chore: channelのdescriptionを空欄にできるようにする

* update: CHANGELOG.md

* update: CHANGELOG.md

* fix: CHANGELOG.md

* fix: CHANGELOG.md
2025-11-12 18:16:05 +09:00
claustra01
746269c4b1 RoleService.testがPostgreSQLのdeadlockでrandom failする問題を修正 (#16784)
* fix: 並列deleteによるpostgresqlのdeadlock

* chore: update comment
2025-11-12 18:15:08 +09:00
syuilo
c059256bd6 Update ROADMAP with completed tasks 2025-11-11 09:30:13 +09:00
github-actions[bot]
2e17979abc Bump version to 2025.11.0-alpha.4 2025-11-10 10:08:33 +00:00
syuilo
c2d95ebdcb New Crowdin updates (#16711)
* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Kabyle)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)
2025-11-10 19:06:39 +09:00
かっこかり
cb5de83bad Update lint.yml 2025-11-10 18:46:13 +09:00
syuilo
30d87d5532 Update lint.yml
https://github.com/misskey-dev/misskey/issues/16255
2025-11-10 18:43:03 +09:00
かっこかり
5c212c996a enhance(frontend): アンテナ・リストの設定画面・タイムラインの動線を改善 (#16739)
* enhance(frontend): アンテナ・リストの設定画面からタイムラインへの動線を追加

* Update Changelog

* fix
2025-11-10 17:22:13 +09:00
かっこかり
39e01b1dfe refactor(frontend): フロントエンドの型エラー解消 (#16779) 2025-11-10 16:52:42 +09:00
かっこかり
fd2fe34270 refactor8frontend9: anyを除去 (#16778) 2025-11-10 15:33:54 +09:00
syuilo
73bcd330f7 fix(backend): improve isFederationAllowedHost 2025-11-10 14:09:15 +09:00
syuilo
23d2d191a0 chore(frontend): アニメーション画像設定をパフォーマンスセクションにも追加 2025-11-10 13:23:23 +09:00
おさむのひと
ca1bf21dcf chore: RoleServiceのunit-test追加 (#16777) 2025-11-10 10:31:49 +09:00
syuilo
1ffc53f596 use esnext to avoid type error 2025-11-09 19:49:27 +09:00
syuilo
4e38f218ec fix type 2025-11-09 19:44:07 +09:00
syuilo
a0d34940ff fix type 2025-11-09 19:43:19 +09:00
syuilo
bdddd623b6 🎨 2025-11-09 19:31:41 +09:00
かっこかり
29bfc9a91a fix(frontend): postform tourをスキップできるように (#16767)
* fix(frontend): postform tourをスキップできるように

* use closable option
2025-11-09 16:23:58 +09:00
かっこかり
2e596607f8 Update CHANGELOG.md [ci skip] 2025-11-08 19:20:45 +09:00
renovate[bot]
cf89280fc5 fix(deps): update dependency vite to v7.1.11 [security] (#16678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 19:19:58 +09:00
かっこかり
c0f4c47c53 fix(misskey-js): misskey-js autogen が動作しない問題を修正 (#16773)
* fix(misskey-js): misskey-js autogen が動作しない問題を修正

* rollback eslint-plugin to eliminate unwanted side-effects
2025-11-08 18:45:54 +09:00
renovate[bot]
58995e6b97 fix(deps): update [backend] update dependencies (#16771)
* fix(deps): update [backend] update dependencies

* run pnpm dedupe [ci skip]

* run pnpm dedupe [ci skip]

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-08 17:53:12 +09:00
renovate[bot]
d00ca499a3 chore(deps): update [misskey-js] update dependencies [ci skip] (#16768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 17:49:05 +09:00
かっこかり
ec1120bdaa fix(deps): update @typescript-eslint/* dependencies [ci skip] (#16772)
* fix(deps): update `@typescript-eslint/*` dependencies

* fix lint
2025-11-08 17:30:58 +09:00
renovate[bot]
3a65728fb4 fix(deps): update [frontend] update dependencies [ci skip] (#16769)
* fix(deps): update [frontend] update dependencies

* run ci

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-08 16:22:38 +09:00
renovate[bot]
e4c03b9f4e fix(deps): update dependency tar to v7.5.2 [security] [ci skip] (#16728)
* fix(deps): update dependency tar to v7.5.2 [security]

* regenerate lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-08 16:17:53 +09:00
renovate[bot]
b82533c4b8 fix(deps): update [root] update dependencies [ci skip] (#16770)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 16:14:17 +09:00
syuilo
ef1cdca6f9 refactor(frontend): specify global object 2025-11-07 20:20:13 +09:00
Copilot
46d30f454b Fix postMessage type error in Web Worker files by adding triple-slash directives (#16761)
* Initial plan

* Add triple-slash directives to worker files to fix postMessage type error

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-07 20:18:33 +09:00
syuilo
b300b5b94a fix type 2025-11-07 13:56:41 +09:00
github-actions[bot]
39d6aecc57 Bump version to 2025.11.0-alpha.3 2025-11-07 04:27:23 +00:00
syuilo
edbe30a3df fix tuype 2025-11-07 13:02:46 +09:00
syuilo
ad4751918b fix type 2025-11-07 12:56:28 +09:00
syuilo
bd9041bd8f fix type 2025-11-07 12:55:01 +09:00
syuilo
4dcff123df fix type 2025-11-07 12:53:28 +09:00
syuilo
990be44d98 fix type 2025-11-07 12:45:47 +09:00
syuilo
78d65ef3dd fix type 2025-11-07 12:39:25 +09:00
果物リン
0a67d6f1a0 fix(frontend): 一部のページでもっと見るが自動で行われないバグの修正 (#16754)
* 一部のページでもっと見るが自動で行われないバグの修正

* fix(frontend): MkPagination で UI アニメーションオフ時に自動ロードが動作しない問題を修正

Transition コンポーネントの mode="out-in" が、アニメーション無効時でも
適用されており、IntersectionObserver の検出に干渉していた問題を修正。
アニメーション有効時のみ mode="out-in" を適用するように変更。

Co-authored-by: 果物リン <fruitriin@users.noreply.github.com>

* enhance: ユーザーの設定値にかかわらず無限スクロールをオフにできるオプションを追加

* Update Changelog

* MkNotesTimeline.vueにforceDisableInfiniteScrollを追加、 note.vueの前方向の読み込みでこれを有効

* fix lint

* refactor

---------

Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: 果物リン <fruitriin@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-11-07 11:27:08 +09:00
syuilo
e312283ea0 enhance(frontend): 投稿フォームのヒントを追加 (#16712)
* wip

* wip

* Update MkSpot.vue

* Update MkPostForm.vue

* wip

* wip

* Update CHANGELOG.md
2025-11-07 11:03:33 +09:00
syuilo
e8c78e12d5 Update package.json 2025-11-07 11:03:23 +09:00
github-actions[bot]
37fe7a9634 Bump version to 2025.11.0-alpha.2 2025-11-06 23:43:26 +00:00
おさむのひと
729abbef62 feat: チャンネルミュートの実装 (#14105)
* add channel_muting table and entities

* add channel_muting services

* タイムライン取得処理への組み込み

* misskey-jsの型とインターフェース生成

* Channelスキーマにミュート情報を追加

* フロントエンドの実装

* 条件が逆だったのを修正

* 期限切れミュートを掃除する機能を実装

* TLの抽出条件調節

* 名前の変更と変更不要の差分をロールバック

* 修正漏れ

* isChannelRelatedの条件に誤りがあった

* [wip] テスト追加

* テストの追加と検出した不備の修正

* fix test

* fix CHANGELOG.md

* 通常はFTTにしておく

* 実装忘れ対応

* fix merge

* fix merge

* add channel tl test

* fix CHANGELOG.md

* remove unused import

* fix lint

* fix test

* fix favorite -> favorited

* exclude -> include

* fix CHANGELOG.md

* fix CHANGELOG.md

* maintenance

* fix CHANGELOG.md

* fix

* fix ci

* regenerate

* fix

* Revert "fix"

This reverts commit 699d50c6ec.

* fixed

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-07 08:39:21 +09:00
github-actions[bot]
e74ab35de3 Bump version to 2025.11.0-alpha.1 2025-11-06 11:33:32 +00:00
syuilo
4ba18690d7 feat(frontend): EXIFフレーム機能 (#16725)
* wip

* wip

* Update ImageEffector.ts

* Update image-label-renderer.ts

* Update image-label-renderer.ts

* wip

* Update image-label-renderer.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update use-uploader.ts

* Update watermark.ts

* wip

* wu

* wip

* Update image-frame-renderer.ts

* wip

* wip

* Update image-frame-renderer.ts

* Create ImageCompositor.ts

* Update ImageCompositor.ts

* wip

* wip

* Update ImageEffector.ts

* wip

* Update use-uploader.ts

* wip

* wip

* wip

* wip

* Update fxs.ts

* wip

* wip

* wip

* Update CHANGELOG.md

* wip

* wip

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.vue

* Update MkImageFrameEditorDialog.vue

* Update use-uploader.ts

* improve error handling

* Update use-uploader.ts

* 🎨

* wip

* wip

* lazy load

* lazy load

* wip

* wip

* wip
2025-11-06 20:25:17 +09:00
syuilo
26c8914a26 fix(frontend): improve startViewTransition handling 2025-11-06 18:07:03 +09:00
Souma
119423e3ae enhance(frontend): Extend links to profile pages (#16417)
* feat(frontend): Add a link to profile to banner and avatar

Increase the area of links to click easily.

* chore(frontend): Change the link of notes count

Move to the notes tab for better userbility.

* feat(frontend): Add links to notes, followers and following

For easy transition to the shown information.

* docs(changelog): Add a description about this change

Users can notice what's changed by this PR.

* style(frontend): Fix the linter error

Remove the duplicated space.

* refactor(frontend): Don't surround the banners with links

It may conflict with the follow buttons.

* docs(changelog): Move the changes to the latest version

This feature is not merged and will be released in the latest version.

Signed-off-by: Souma <101255979+5ouma@users.noreply.github.com>

---------

Signed-off-by: Souma <101255979+5ouma@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-11-06 13:42:52 +09:00
github-actions[bot]
3de1ce63cd Bump version to 2025.11.0-alpha.0 2025-11-06 03:43:51 +00:00
かっこかり
18fbc9bb05 fix(frontend): 存在しない翻訳キーを追加 (#16757) 2025-11-06 12:39:48 +09:00
饺子w (Yumechi)
37a21cf54e enhance: Remote Notes Cleaning timeout bailout logic (#16752)
* enhance: Remote Notes Cleaning timeout bailout logic

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* fix: dynamic limit did not propagate

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* enhance: reload parameters each batch

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-11-06 12:38:56 +09:00
かっこかり
290fd8c7cc enhance(frontend): ブラウザの通知権限をより確実に取得できるように (#16758)
* enhance(frontend): ブラウザの通知権限をより確実に取得できるように

* Update Changelog
2025-11-06 12:36:36 +09:00
かっこかり
0edb0133fc enhance(frontend): チャンネル周りのUIの整理 (#16743)
* enhance(frontend): チャンネル周りのUIの整理

* fix: 共通要素間の一貫性を保つ

* Update Changelog

* fix: チャンネル新規作成を管理タブに移動・上部ボタン削除
2025-11-06 10:15:59 +09:00
かっこかり
0abe021640 fix(frontend): PageHeaderのタイトルがはみ出る問題を修正 (#16744)
* fix(frontend): PageHeaderのタイトルがはみ出る問題を修正

* Update Changelog

* fix: remove duplicated scoped class to avoid confusion
2025-11-06 09:31:55 +09:00
かっこかり
344f50d538 enhance(frontend): 絵文字パレット設定に説明文を追加 (#16750)
* enhance(frontend): 絵文字パレット設定に説明文を追加

* tweak message
2025-11-05 11:35:48 +09:00
かっこかり
1cebad0ddb fix(frontend): navbarのリアルタイムモードのオンオフ状態の表示をわかりやすく (#16748)
* fix(frontend): navbarのリアルタイムモードのオンオフをわかりやすく

* Update Changelog

* remove unused imports
2025-11-05 09:45:42 +09:00
かっこかり
3e34e87a59 fix(i18n): 表記ゆれを修正 (#16749) 2025-11-05 09:45:06 +09:00
かっこかり
b9713259a7 fix(frontend): 表示するものがないときにはMkResultを使用するように (#16740) 2025-11-04 15:16:58 +09:00
かっこかり
e15b8b7fa3 fix(frontend): formlinkのスタイル修正 (#16741) 2025-11-04 15:13:24 +09:00
かっこかり
ca89c86426 fix(frontend): 自分に割り当てられたロール一覧の余白を調整 (#16747) 2025-11-04 15:12:20 +09:00
かっこかり
6bce19655b fix(frontend): ドライブのtipのスタイル修正 (#16742) 2025-11-04 11:58:29 +09:00
かっこかり
78ed024b0b refactor(frontend): EmojiPickerの冗長なCSSを一部簡略化 (#16717) 2025-11-02 12:12:33 +09:00
かっこかり
6f76b598a1 fix: follow-up of #16719 [ci skip] (#16732) 2025-11-01 13:58:35 +09:00
syuilo
a888f2863b Node.js 24 support (#16723)
* Revert "テストが動かないためnodejs 24サポートを取り消し"

This reverts commit a892bbcce5.

* fix jest.js

* ファイルの添付方法を変更

---------

Co-authored-by: samunohito <46447427+samunohito@users.noreply.github.com>
2025-10-30 21:47:04 +09:00
syuilo
a892bbcce5 テストが動かないためnodejs 24サポートを取り消し 2025-10-29 09:58:44 +09:00
かっこかり
6571c87e14 fix: attempt to fix test (#16719)
* fix(backend): attempt to fix test

* fix

* Revert "fix(backend): attempt to fix test"

This reverts commit 67dff577c9.

* attempt to fix test

* Revert "fix"

This reverts commit cec3d2f5c6.

* fix
2025-10-28 11:35:23 +09:00
かっこかり
9e0f18a705 deps: update @types/node to v24 [ci skip] (#16718)
* update `@types/node` to v24

* fix
2025-10-28 11:34:42 +09:00
syuilo
3dfca2d61f lint 2025-10-28 11:05:14 +09:00
syuilo
f1578c282e update deps 2025-10-28 10:43:59 +09:00
syuilo
231a6877be enhance: Node.js v24がActive LTSに移行されたことに伴いv24を標準に 2025-10-28 10:27:11 +09:00
かっこかり
d0a5ccc1ec fix(frontend): コンポーネントのインポート忘れ (#16715) 2025-10-27 18:41:17 +09:00
かっこかり
4e16e23acd fix(frontend): confettiの実行がアニメーション設定を考慮していない問題を修正 (#16714)
* fix(frontend): confettiの実行がアニメーション設定を考慮していない問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-27 18:41:03 +09:00
github-actions[bot]
17da44078b [skip ci] Update CHANGELOG.md (prepend template) 2025-10-27 04:19:47 +00:00
github-actions[bot]
1f29fb4e40 Release: 2025.10.2 2025-10-27 04:19:42 +00:00
syuilo
0343b4e689 Update CHANGELOG.md 2025-10-27 09:50:27 +09:00
syuilo
a76a1a6305 Add permissions for pull-requests in workflow 2025-10-26 21:16:43 +09:00
github-actions[bot]
1f934ada5d Bump version to 2025.10.2-beta.0 2025-10-26 10:34:10 +00:00
syuilo
cd77404006 fix tooltip text 2025-10-26 19:29:37 +09:00
github-actions[bot]
351386c8ff Bump version to 2025.10.2-alpha.0 2025-10-26 01:35:02 +00:00
syuilo
298f8802d4 fix(frontend): 期限が無期限のアンケートに投票できない問題を修正
Fix #16708
2025-10-26 10:32:12 +09:00
syuilo
6e614ff061 Revert "Fix touch position offset in image masking on iOS devices (#16702)"
This reverts commit 456504cf82.
2025-10-25 19:32:00 +09:00
syuilo
ca76ba1871 Update CHANGELOG.md 2025-10-25 08:47:51 +09:00
syuilo
9f768b8022 fix(frontend): キャッシュをクリアするとテーマ再適用するまでレンダリングが正しく行われない問題を修正 2025-10-25 08:22:47 +09:00
github-actions[bot]
4ff826eb3d [skip ci] Update CHANGELOG.md (prepend template) 2025-10-24 06:31:38 +00:00
github-actions[bot]
60bcb9c6a9 Release: 2025.10.1 2025-10-24 06:31:32 +00:00
github-actions[bot]
0c85bfd56f Bump version to 2025.10.1-beta.4 2025-10-24 02:28:37 +00:00
syuilo
9d37f696b4 New Crowdin updates (#16692)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)
2025-10-24 11:15:30 +09:00
syuilo
2734ff6af7 Update CHANGELOG.md 2025-10-24 11:15:11 +09:00
Copilot
456504cf82 Fix touch position offset in image masking on iOS devices (#16702)
* Initial plan

* Fix iOS touch position offset in image masking feature

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-24 11:14:12 +09:00
syuilo
81cea6aed5 Update MkImageEffectorDialog.vue
related? #16703
2025-10-24 11:01:20 +09:00
syuilo
2d1b7c957a Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-10-24 10:41:55 +09:00
syuilo
5b6aa1496a Update about-misskey.vue 2025-10-24 10:40:11 +09:00
github-actions[bot]
259dd34b26 Bump version to 2025.10.1-beta.3 2025-10-23 10:25:35 +00:00
syuilo
cf81406fae Fix audio track loss during video compression on iOS
修正: iOSで動画の圧縮を行うと音声トラックが失われる問題を修正
2025-10-23 19:00:28 +09:00
Copilot
42f230f223 Fix video audio loss during compression by preserving audio stream (#16696)
* Initial plan

* Fix video audio loss during compression by specifying AAC codec

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Fix audio by avoiding transcoding - copy audio stream directly

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-23 18:59:12 +09:00
かっこかり
2e07e50bb4 refactor(frontend): 既存のGLSLを単独のファイルに移行 (#16677)
* refactor(frontend): 既存のGLSLを単独のファイルに移行

* fix: glslファイルを参照元ファイルと同じ場所に移動
2025-10-23 11:05:21 +09:00
かっこかり
d203e1a446 refactor(frontend): フロントエンドの型エラー解消 (#16694) 2025-10-23 11:04:27 +09:00
github-actions[bot]
4988719a2e Bump version to 2025.10.1-beta.2 2025-10-22 02:13:11 +00:00
syuilo
f0380f2d1c enhance(frontend): improve theme apply handling 2025-10-22 11:11:30 +09:00
github-actions[bot]
130d065d0c Bump version to 2025.10.1-beta.1 2025-10-22 00:18:40 +00:00
syuilo
7b41fddf54 New Crowdin updates (#16686)
* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (English)
2025-10-22 09:12:22 +09:00
syuilo
aafd8b6bf7 fix(frontend): ダークモードの同期が機能しない場合がある問題を修正
Fix #16688
2025-10-22 09:11:15 +09:00
github-actions[bot]
7a82c1a912 Bump version to 2025.10.1-beta.0 2025-10-21 11:08:40 +00:00
syuilo
3c97c12e7f enhance(frontend): 下書き/予約投稿一覧は投稿フォームのアカウントメニュー内に移動し、下書き保存は「...」メニュー内に移動 2025-10-21 20:03:57 +09:00
syuilo
5b5a1f08e1 enhance(backend): 管理者/モデレーターはファイルのアップロード制限をバイパスするように
Resolve #16687
2025-10-21 19:24:43 +09:00
syuilo
c4ee95a40a Add workflow to request release review via comment
This workflow triggers a comment reply when an issue comment with '/request-release-review' is created, providing guidance for the release review process.
2025-10-21 14:25:55 +09:00
syuilo
8ea7fe0ba1 Update CHANGELOG for version 2025.10.0 2025-10-21 12:55:31 +09:00
かっこかり
187b6477da fix(deps): fix broken lockfile (#16685) 2025-10-21 11:37:52 +09:00
renovate[bot]
09896fdc12 chore(deps): update [misskey-js] update dependencies to v8.46.1 [ci skip] (#16681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 11:36:03 +09:00
renovate[bot]
d4cda989a2 chore(deps): update [root] update dependencies to v8.46.1 [ci skip] (#16682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 11:35:47 +09:00
renovate[bot]
f93043e170 fix(deps): update [backend] update dependencies [ci skip] (#16683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 11:28:34 +09:00
renovate[bot]
1c2e57d60c fix(deps): update [frontend] update dependencies [ci skip] (#16684)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 11:06:25 +09:00
github-actions[bot]
67c853104c Bump version to 2025.10.1-alpha.6 2025-10-21 00:58:02 +00:00
syuilo
986d783940 New Crowdin updates (#16673)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)
2025-10-21 09:22:27 +09:00
かっこかり
61cfccff37 fix(deps): fix broken lockfile (#16679) 2025-10-21 09:06:25 +09:00
renovate[bot]
b161fe7adc fix(deps): update dependency nodemailer to v7 [security] [ci skip] (#16611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 08:56:01 +09:00
renovate[bot]
c3b1c8a8ff chore(deps): update dependency @types/node to v22.18.10 [ci skip] (#16674)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 20:41:08 +09:00
renovate[bot]
bc2b512be6 chore(deps): update [misskey-js] update dependencies [ci skip] (#16612)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 20:40:38 +09:00
renovate[bot]
7fe9574897 chore(deps): update pnpm/action-setup action to v4.2.0 [ci skip] (#16675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 19:37:10 +09:00
renovate[bot]
8549f71656 fix(deps): update [backend] update dependencies [ci skip] (#16676)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 19:36:43 +09:00
github-actions[bot]
ae4487fa69 Bump version to 2025.10.1-alpha.5 2025-10-20 09:37:00 +00:00
renovate[bot]
0a75d6fcf1 fix(deps): update [frontend] update dependencies [ci skip] (#16613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 16:44:58 +09:00
renovate[bot]
d3bb24d851 chore(deps): update [root] update dependencies [ci skip] (#16614)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-20 16:27:38 +09:00
果物リン
9aea7363ce fix(frontend): MkPollの集計完了後の挙動がおかしいのを修正 (#16646)
* MkPollの集計完了後の挙動がおかしいのを修正

* fix lint

* watchを削除できるように修正

* fix

* Update Changelog

* fix lint

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-10-20 16:11:01 +09:00
github-actions[bot]
f0889f4b3c Bump version to 2025.10.1-alpha.4 2025-10-20 06:36:00 +00:00
かっこかり
b8433b2413 enhance(frontend): glslを単独のファイルに分離 (#16665) 2025-10-20 15:23:19 +09:00
syuilo
4e9070a4c5 update happy-dom 2025-10-20 15:19:19 +09:00
syuilo
bff194f648 Update pnpm-workspace.yaml 2025-10-20 15:18:18 +09:00
かっこかり
8714945ec9 fix(frontend): ウォーターマーク配置のエフェクトが壊れている問題を修正 (#16662)
* fix(frontend): ウォーターマーク配置のエフェクトが壊れている問題を修正

* enhance: add settings for noBoundingBoxExpansion

* Update Changelog

* fix

* perf: ウォーターマークのrepeatをWRAP属性で制御するように

* fix: ウォーターマークをrepeatした際に回転や拡大縮小の中心が「位置」設定を考慮しないのを修正

* fix: ウォーターマークをrepeatした際にマージンが各ウォーターマークごとのマージンとなっていない問題を修正

* fix: リピートモード時の拡大縮小の原点が、アライメントの設定にかかわらず左上になる問題を修正

* enhance: preserveBoundingRect の翻訳文字を変更

* fix: remove description

* fix

* fix: 回転の向きが逆になっているのを修正

* fix: マージンは元画像の大きさに対する割合で算出するように

* Update watermarkPlacement.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-20 15:05:23 +09:00
syuilo
aadc7bf61a Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-10-20 14:48:16 +09:00
syuilo
acd35ef96c add note 2025-10-20 14:48:14 +09:00
かっこかり
43919a3fe3 Update CHANGELOG.md (follow-up of #16672) 2025-10-20 00:22:25 +09:00
かっこかり
8a21202281 fix(frontend): リモートユーザーのロールバッジ表示の文言をわかりやすく (#16672) 2025-10-19 23:04:57 +09:00
github-actions[bot]
579499a7df Bump version to 2025.10.1-alpha.3 2025-10-19 04:22:23 +00:00
syuilo
b48233eb4c New Crowdin updates (#16657)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)
2025-10-19 13:19:56 +09:00
かっこかり
d98bf012b5 refactor(frontend): カスタムディレクティブの型付け (#16659)
* refactor(frontend): カスタムディレクティブの型付け

* fix
2025-10-19 11:36:00 +09:00
anatawa12
44930342a8 Revert typeorm patches (#16664)
* chore: remove patches

* chore: remove unnecessary 'DEFAULT NULL's

* chore: add patches with .gitkeep
2025-10-19 11:34:34 +09:00
かっこかり
29892d2a01 enhance: リモートユーザーのロールバッジを表示するかどうかをサーバー管理者が設定できるように (#16661)
* enhance: リモートユーザーのロールバッジを表示するかどうかをサーバー管理者が設定できるように

* Update Changelog

* build misskey-js with types
2025-10-16 22:45:37 +09:00
かっこかり
b6bf3cfcb7 fix(frontend): バナー画像の画面上でのクロップが以前の挙動と同一になるように (#16658)
* fix(frontend): バナー画像の画面上でのクロップが以前の挙動と同一になるように

* fix
2025-10-16 18:04:08 +09:00
かっこかり
a132a1d3e1 fix(frontend): 外部アプリ設定のアプリアイコンに変な余白が入っているのを修正 (#16660) 2025-10-16 18:01:25 +09:00
かっこかり
8cfd147555 fix(frontend): ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善 (#16656)
* fix(frontend): ロールポリシーによりダイレクトメッセージが無効化されている際のデッキのダイレクトメッセージカラムの挙動を改善

* Update Changelog
2025-10-16 11:17:47 +09:00
syuilo
a405575cd6 chore(frontend): add tips 2025-10-16 09:44:58 +09:00
github-actions[bot]
56885cceed Bump version to 2025.10.1-alpha.2 2025-10-15 04:11:32 +00:00
syuilo
3c64281696 Revert "fix(deps): update dependency happy-dom to v20 [security] (#16644)"
This reverts commit 45b3afa70d.
2025-10-15 13:05:37 +09:00
renovate[bot]
45b3afa70d fix(deps): update dependency happy-dom to v20 [security] (#16644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-15 13:00:29 +09:00
syuilo
beabe84354 New Crowdin updates (#16645)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)
2025-10-15 12:59:49 +09:00
かっこかり
42008d1377 fix(frontend): デッキのメインカラムのヘッダをクリックしてもページ上部/下部にスクロールしない問題を修正 (#16653)
* fix(frontend): デッキのメインカラムのヘッダをクリックしても上部にスクロールしない問題を修正

* fix

* Update Changelog

* fix lint

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-15 12:59:26 +09:00
かっこかり
3df81931ec fix(frontend): ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正 (#16652)
* fix(frontend): ナビゲーションバーの設定で削除した項目をその場で再追加できない問題を修正

* Update Changelog
2025-10-15 12:14:03 +09:00
github-actions[bot]
4c536630d4 Bump version to 2025.10.1-alpha.1 2025-10-10 10:01:31 +00:00
syuilo
92cc55f0f1 New translations ja-jp.yml (English) (#16633) 2025-10-10 18:59:42 +09:00
かっこかり
f8c6273acc fix(frontend): scroll-driven animation非対応環境でバナー画像が上下中央に表示されない問題を修正 (#16632)
* fix(frontend): scroll-driven animation非対応環境でバナー画像が上下中央に表示されない問題を修正

* Update Changelog
2025-10-10 09:33:35 +09:00
かっこかり
edf7beff23 fix(frontend/aiscript): Mk:toastを同期関数に変更 (#16480) 2025-10-09 11:30:34 +09:00
かっこかり
3804028b6e chore(deps): update dependency @types/node to v22.18.8 (#16630)
* chore(deps): update dependency @types/node to v22.18.8

* run pnpm dedupe

* Update Changelog
2025-10-09 10:35:39 +09:00
renovate[bot]
70473c66e9 fix(deps): update [backend] update dependencies [ci skip] (#16615)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 10:19:43 +09:00
renovate[bot]
a87a3c6693 chore(deps): update [tools] update dependencies [ci skip] (#16546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-09 10:06:14 +09:00
かっこかり
72a5daeb9a update deps [ci skip] (#16628) 2025-10-09 09:57:49 +09:00
github-actions[bot]
54efe1b4c5 Bump version to 2025.10.1-alpha.0 2025-10-09 00:32:10 +00:00
syuilo
24129efe97 New translations ja-jp.yml (Italian) (#16625) 2025-10-09 09:30:01 +09:00
果物リン
41aa0c8efe [カスタム絵文字beta]MacのCmdキー対応とCtrl/Cmd+Arrowキー対応 (#16621)
* [カスタム絵文字beta]MacのCmdキー対応とCtrl/Cmd+Arrowキー対応

* Update packages/frontend/src/components/grid/MkGrid.vue

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-10-09 09:29:47 +09:00
おさむのひと
37526de323 fix: aliasesの区切り文字が一致していないのを修正 (#16622)
* fix: aliasesの区切り文字が一致していないのを修正

* fix CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-09 09:29:09 +09:00
かっこかり
21ed2e3002 fix(frontend): バナー画像のサイズがおかしい問題を修正 (#16627)
* fix(frontend): バナー画像のサイズがおかしい問題を修正

* Update Changelog
2025-10-09 09:28:27 +09:00
github-actions[bot]
917def4e13 [skip ci] Update CHANGELOG.md (prepend template) 2025-10-08 13:18:11 +00:00
github-actions[bot]
d1eb1cad42 Release: 2025.10.0 2025-10-08 13:18:04 +00:00
syuilo
994690eebf Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-10-08 17:50:14 +09:00
syuilo
b25810e091 fix(backend): improve NoteDraftService validation 2025-10-08 17:50:04 +09:00
github-actions[bot]
03544dfd9d Bump version to 2025.10.0-rc.0 2025-10-08 08:49:44 +00:00
果物リン
d4df749f4f 絵文字の追加辞書をインストールすると絵文字ピッカーダイアログでユニコード絵文字が出てこないのを修正 (#16618)
* Fix: ユニコード絵文字の追加辞書をインストールするとユニコード絵文字が出てこなくなる

* add change log

* Update CHANGELOG.md

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-10-08 17:40:19 +09:00
syuilo
04e2d44d28 add note 2025-10-08 17:37:44 +09:00
syuilo
6d2e582eaf fix(backend): improve NoteDraftService validation 2025-10-08 17:36:32 +09:00
syuilo
9eb975e71d enhance(frontend): text/*をデフォルトでアップロード可能に 2025-10-08 17:30:37 +09:00
syuilo
ced687117f Update CHANGELOG.md 2025-10-08 17:27:53 +09:00
syuilo
7cc0483b47 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-10-08 17:19:59 +09:00
syuilo
a8a0c1c1b6 add notes 2025-10-08 17:19:57 +09:00
syuilo
6b438f2ce0 New Crowdin updates (#16605)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)
2025-10-08 11:48:30 +09:00
かっこかり
188b37b33f fix(gh): aiscript 0.19.0 の更新を固定 (renovate) 2025-10-08 10:46:15 +09:00
syuilo
0b642cf446 chore(frontend): add caption for maxFileSize 2025-10-07 09:47:26 +09:00
syuilo
fe38115883 lint 2025-10-06 20:01:19 +09:00
syuilo
6fba73ca13 Update pnpm-lock.yaml 2025-10-06 19:21:21 +09:00
syuilo
0d33e1f839 fix notes\drafts\create param defs 2025-10-06 19:21:17 +09:00
syuilo
74f33157a3 New Crowdin updates (#16601)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)
2025-10-06 15:39:18 +09:00
syuilo
ae10cad9a7 perf(frontend): improve about#emojis performancce 2025-10-06 10:21:46 +09:00
syuilo
ba9924abdb refactor(frontend): use useTemplateRef 2025-10-06 10:18:14 +09:00
github-actions[bot]
99686801a0 Bump version to 2025.10.0-beta.2 2025-10-06 01:12:30 +00:00
かっこかり
f3e0713501 enhance(frontend): お問い合わせページからデバイス情報を出力できるように (#16598)
* enhance(frontend): デバイス情報を出力できるように

* fix lint

* Update Changelog

* enhance: getHighEntropyValuesが使用できなかった場合のフォールバックを追加

* fix lint

* fix: getHighEntropyValuesが使用できない場合は生のUAを返すように

* enhance: getHighEntropyValuesが使用できる場合でも生のUAを含めるように

* ✌️

* onHeaderClicked -> onOpened
2025-10-06 10:06:53 +09:00
かっこかり
7fcbf57a9d fix(frontend): 存在しない翻訳を修正 (#16604) 2025-10-06 10:06:20 +09:00
github-actions[bot]
7cd55c31da Bump version to 2025.10.0-beta.1 2025-10-05 23:59:45 +00:00
かっこかり
d03cf4d7f9 fix(frontend): 通知の設定画面で予約投稿関連の翻訳が当たっていない問題の修正 (#16603)
* fix(frontend): 予約投稿通知の設定画面に不足している翻訳を追加

* fix(misskey-js): 廃止された通知が定義に残っているのを修正

* fix(frontend): 予約投稿の完了/失敗通知はオンオフのみ
2025-10-06 08:55:22 +09:00
かっこかり
a8fcdb79ab fix(frontend): 画面左のナビゲーションバーでウィジェットアイコンにtooltipがつかない問題を修正 (#16602) 2025-10-05 18:53:57 +09:00
かっこかり
eae9af73c2 enhance(frontend): MkTabs, MkPageHeader.tabsにてタブハイライトのCSS Anchor Positioningに対応 (#16595)
* fix(frontend): modalの中でtabsを使用する際にハイライトが変な位置に出る問題を修正

* fix lint

* Revert "fix(frontend): modalの中でtabsを使用する際にハイライトが変な位置に出る問題を修正"

This reverts commit 3b0ec46990.

* fix

* fix

* enhance(frontend): MkTabsのタブハイライト切り替えをCSS anchor positioningに対応させる

* enhance(frontend): MkPageHeader.tabsのタブハイライト切り替えをCSS anchor positioningに対応させる

* 🎨
2025-10-05 18:53:28 +09:00
かっこかり
c0dc156df7 enhance(frontend): プロフィールバナー画像のparallaxをscroll-driven animationに置き換え (#16241)
* enhance(frontend): プロフィールバナー画像のparallaxをscroll-driven animationに置き換え

* lint

* revert unrelated changes

* Update packages/frontend/src/pages/user/home.vue

* remove inset shadow

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-10-05 16:49:33 +09:00
かっこかり
720c6519cd refactor(frontend): MkTabの指定をpropsから行うように (#16596)
* refactor(frontend): MkTabの指定をpropsから行うように

* Update explore.featured.vue
2025-10-05 15:48:11 +09:00
syuilo
f89b4cdc12 Update CHANGELOG with new features and enhancements 2025-10-05 15:45:11 +09:00
かっこかり
46b0e8115a enhance(frontend): 実験的機能としてTranslator APIを用いた翻訳を実装 (#16600)
* enhance(frontend): 実験的機能としてTranslator APIを用いた翻訳を実装

* remove unused imports

* remove unnecessary console.log

* fix 表記揺れ

* fix lint
2025-10-05 15:43:13 +09:00
syuilo
7796fce779 New Crowdin updates (#16532)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2025-10-05 13:28:23 +09:00
renovate[bot]
3954837cfa fix(deps): update [root] update dependencies [skip ci] (#16576)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 15:58:30 +09:00
renovate[bot]
7ea4cad12e chore(deps): update [misskey-js] update dependencies [skip ci] (#16543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 15:44:08 +09:00
github-actions[bot]
d864e9a269 Bump version to 2025.10.0-beta.0 2025-10-04 06:40:01 +00:00
syuilo
4e0434c275 Update CHANGELOG with new features and enhancements 2025-10-04 15:38:05 +09:00
renovate[bot]
e2f939080a fix(deps): update [frontend] update dependencies [ci skip] (#16548)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 15:26:26 +09:00
renovate[bot]
6956f44d1f chore(deps): update [github actions] update dependencies (#16545)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 15:18:21 +09:00
renovate[bot]
a393d5a87e fix(deps): update [backend] update dependencies (#16547)
* fix(deps): update [backend] update dependencies

* chore: update typeorm.patch

* fix: handle socket creation failure in HttpRequestServiceAgent

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-10-04 15:04:28 +09:00
syuilo
6c634de482 Bump version to 2025.10.0 in CHANGELOG
Updated version number and note for pnpm requirement.
2025-10-04 09:50:58 +09:00
syuilo
fc02e0d34d chore(frontend): make enableFolderPageView false by default
see #16553
2025-10-04 08:54:49 +09:00
syuilo
cb1a90ddad chore(frontend): improve usability 2025-10-04 08:53:19 +09:00
github-actions[bot]
f0fb3a56a8 Bump version to 2025.10.0-alpha.0 2025-10-01 04:57:00 +00:00
かっこかり
b8ae7edcec fix(gh): add minimumReleaseAge settings to renovate [ci skip] 2025-09-28 18:28:37 +09:00
syuilo
e24233c1c7 add ideas 2025-09-27 20:53:21 +09:00
syuilo
225154d76d enhance(frontend): improve zoomLines image effect 2025-09-27 18:46:26 +09:00
syuilo
c5f9c0ce5c enhance(frontend): add pixelate mask effect 2025-09-26 18:27:53 +09:00
github-actions[bot]
cce302ae4f Bump version to 2025.9.1-alpha.2 2025-09-26 06:44:58 +00:00
かっこかり
e0d210e15b fix(frontend): アクティビティウィジェットのグラフモードが動作しない問題を修正 (#16579)
* fix(frontend): アクティビティウィジェットのグラフモードが動作しない問題を修正

* 🎨

* Update Changelog

* fix
2025-09-26 15:36:50 +09:00
syuilo
0b7634b126 enhance(frontend): テーマをドラッグ&ドロップできるように 2025-09-26 15:36:25 +09:00
syuilo
d1446d195a feat: scheduled post (#16577)
* Update NoteDraft.ts

* Update NoteDraft.ts

* wip

* Update CHANGELOG.md

* wip

* Update PostScheduledNoteProcessorService.ts

* Update PostScheduledNoteProcessorService.ts

* Update Notification.ts

* wip

* Update NoteDraftService.ts

* Update NoteDraftService.ts

* Update NoteDraftService.ts

* wip

* Create 1758677617888-scheduled-post.js

* Update index.d.ts

* Update stats.ts

* wip

* wip

* wip

* wip

* wip

* Update MkNotification.vue

* wip

* wip

* wip

* Update NoteDraftService.ts

* Update NoteDraftService.ts

* wip

* wip

* Update NoteDraftEntityService.ts

* wip

* Update index.d.ts

* Update MkPostForm.vue

* wip

* wip

* wip

* Update NoteCreateService.ts

* wip

* wip

* wip

* Update NoteDraftEntityService.ts

* Update NoteCreateService.ts

* Update NoteDraftService.ts

* wip

* Update NoteDraftService.ts

* wip

* wip

* Update MkPostForm.vue

* wip

* Update MkPostForm.vue

* Update os.ts

* wip

* Update MkNoteDraftsDialog.vue
2025-09-26 15:29:52 +09:00
かっこかり
218070eb13 fix(frontend): ビルド成果物のファイル名にlocalesのhashを含めるように (#16580) 2025-09-24 17:01:48 +09:00
syuilo
0f8c068e84 feat(frontend): Video compression (#16574)
* wip

* Update CHANGELOG.md

* wip

* wip

* wip

* wip

* Update use-uploader.ts

* Update use-uploader.ts
2025-09-24 09:01:06 +09:00
github-actions[bot]
69d66b89f2 Bump version to 2025.9.1-alpha.1 2025-09-22 10:52:25 +00:00
饺子w (Yumechi)
211365de64 enhance(backend): 設定ファイルにFastifyOptions.trustProxyを追加 (#16567)
* enhance(backend): 設定ファイルにFastifyOptions.trustProxyを追加

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* try harder

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-09-22 19:45:01 +09:00
syuilo
966127c63e enhance(frontend): 絵文字ピッカーのサイズをより大きくできるように 2025-09-22 19:43:31 +09:00
果物リン
54800971eb プロフィールの「ユーザーのノートを検索」でローカルのユーザーを検索できないのを修正 (#16570)
* プロフィールの「ユーザーのノートを検索」でローカルのユーザーを検索できないのを修正

* fix lint
2025-09-22 19:21:01 +09:00
syuilo
13d5c6d2b2 refactor MkAnimBg 2025-09-22 19:00:47 +09:00
syuilo
2cff00eedd update pnpm 2025-09-22 18:27:39 +09:00
syuilo
3fc2261041 dev(pnpm): set minimumReleaseAge to 7days
to mitigate supply-chain attack
Resolve #16572
2025-09-22 18:23:43 +09:00
syuilo
18d66c0233 Update CHANGELOG.md 2025-09-20 14:21:51 +09:00
Copilot
2f52c20150 Implement professional-grade Gaussian-approximated blur effect with resolution independence and configurable quality for image effector system (#16571)
* Initial plan

* Implement blur effect for image effector system

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Improve blur quality with configurable sample count

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Revert to simpler blur implementation with configurable sample count

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Fix blur size independence from sample count

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Make blur radius resolution-independent

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Update blur.ts

* Enhance blur quality with explicit diagonal sampling and fix parameter configuration

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Implement Gaussian-approximated blur with distance-based weighting for superior quality

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* Revert "Implement Gaussian-approximated blur with distance-based weighting for superior quality"

This reverts commit c739e9f55b.

* Revert "Enhance blur quality with explicit diagonal sampling and fix parameter configuration"

This reverts commit ffbc6eeba7.

* wip

* tweak

* ellipse

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-09-20 14:19:35 +09:00
github-actions[bot]
9d70c9ad78 Bump version to 2025.9.1-alpha.0 2025-09-19 13:51:21 +00:00
tamaina
42b2aea533 feat(frontend): 自分のプロフィールページの二次元コード(QRコード)を表示し、他の人のコードを読み取りするページを追加 (#16456)
* wip (qr.show.vue)

* added to navbar

* qr.show.vue

* fix

* added to navbar

* fix size

* 🎨

* 🎨

* fix div warn

* fix

* use * 0.25

* fix??

* fix lint

* clean up

* ???

* ?

* fix

* 🎨

* 🎨

* refactor

* 🎨

* 🎨

* :ar:t

* 🎨

* iphone flip

* no lazy import

* 🎨

* 🎨

* 🎨

* ユーザー全部flipでいいや

* ✌️

* fix

* fix

* fix lint

* 🎨

* fix type

* fix: local user profile url cannot be resolved with ap/show

* fix: local user url with hostname could not be resolved

* chore: use common utility for checking self host

* wip

* 🎨

* 🎨

* fix imports

* fix

* fix

* fix

* 🎨

* fix...

* set spacer-w

* ✌️

* 全画面でQRを読むように

* fix

* 🎨

* modify navbar.ts

* start/stop on vue activation

* display raw content read from qr

* 端末のQRをスキャンするボタンを追加

* chore

* やっぱりmfmを先に表示する

* 🎨

* fix 18n

* QRの内容は/users/:userIdにする

* add spdx

* use cqh

* `defineProps` is a compiler macro and no longer needs to be imported.

* use MkUserName

* 🎨

* 🎨

* refactor

* clean up

* refactor

* 🎨

* Update qr.show.vue

* Misskeyロゴにdrop-shadowを追加

* clean up: do not use empty css

* fix os.select usage

* Update qr.vue

* Update qr.show.vue

* Update qr.show.vue

* Update get-user-menu.ts

* ✌️

* Update show.ts

* Update ja-JP.yml

* watermark

* Update CHANGELOG.md

* Update qr.read.vue

* Update qr.read.vue

* wip

* Update MkWatermarkEditorDialog.Layer.vue

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-09-19 21:02:30 +09:00
syuilo
97adf6f2cc 🎨 2025-09-19 14:23:34 +09:00
tamaina
93ff209c51 enhance(frontend): bootでonunhandledrejectionでrenderErrorする場合、PromiseRejectionEvent.reasonを渡すように (#16563) 2025-09-18 19:35:23 +09:00
syuilo
5fe08d0bbb fix(frontend): iOSで、デバイスがダークモードだと初回読み込み時にエラーになる問題を修正
Fix #16562
2025-09-18 19:18:31 +09:00
syuilo
8c413d01e6 enhance(frontend): マスクエフェクト (#16556)
* wip

* wip

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.vue

* Update fillSquare.ts

* Update CHANGELOG.md

* Update fillSquare.ts
2025-09-17 18:38:56 +09:00
syuilo
b231da7c7c enhance(frontend): チャットの日本語名称をダイレクトメッセージに & ベータを外す 2025-09-16 16:24:10 +09:00
syuilo
df3e44f62e enhance(backend): allow upload csv by default
Related #16541
2025-09-16 12:16:18 +09:00
かっこかり
e504560477 fix: サーバー設定によりコンテンツの閲覧が制限されている場合のメッセージを区別するように (#16527) 2025-09-16 11:53:20 +09:00
syuilo
bcb2073715 enhance(backend): 初期設定をスキップした場合の初期状態ポリシーでインポート系をオプトインに
Resolve #16540
2025-09-16 11:26:35 +09:00
syuilo
6a80c23a50 chore(frontend): enable enableFolderPageView by default 2025-09-15 14:33:32 +09:00
syuilo
2621f468ff enhance: 広告ごとにセンシティブフラグを設定できるように 2025-09-14 15:25:22 +09:00
かっこかり
d4654dd7bd refactor(frontend): os.select, MkSelectのitem指定をオブジェクトによる定義に統一し、型を狭める (#16475)
* refactor(frontend): MkSelectのitem指定をオブジェクトによる定義に統一

* fix

* spdx

* fix

* fix os.select

* fix lint

* add comment

* fix

* fix: os.select対応漏れを修正

* fix

* fix

* fix: MkSelectのmodelに対する型チェックを厳格化

* fix

* fix

* fix

* Update packages/frontend/src/components/MkEmbedCodeGenDialog.vue

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* fix

* fix types

* fix

* fix

* Update packages/frontend/src/pages/admin/roles.editor.vue

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

* fix: MkSelectに直接配列を指定している場合に正常に型が解決されるように

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-09-13 21:00:33 +09:00
renovate[bot]
b7da6cad87 fix(deps): update dependency vite [security] (#16535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 10:32:49 +09:00
かっこかり
5b4115e21a refactor(frontend): フロントエンドの型エラー解消(途中まで) (#16539)
* fix(frontend): FormLinkをボタンとして使用した際にエラーが出る問題を修正

* refactor(frontend): フロントエンドの型エラー解消

* remove unused ts-expect-error

* migrate

* remove unrelated changes

* fix lint

* more type fixes
2025-09-13 08:33:14 +09:00
syuilo
c174c5c144 Update CHANGELOG.md 2025-09-12 17:13:13 +09:00
かっこかり
aebc3f781e perf(frontend): 低精度な現在時刻を一か所で管理するように (#16479)
* perf(frontend): 低精度な現在時刻を一か所で管理するように

* lint

* fix

* remove unused imports

* fix

* Update Changelog

* [ci skip] typo

* enhance: カレンダーウィジェットの日付変更は時間通りに行うように

* [ci skip] fix
2025-09-12 17:12:50 +09:00
かっこかり
f60b6291d7 chore(gh): add frontend-builder to renovate 2025-09-10 10:01:25 +09:00
taiy
7673874675 fix(eslint): add window prefix rules to frontend-embed & frontend-shared (#16531) 2025-09-10 09:22:12 +09:00
github-actions[bot]
6e3354f95d [skip ci] Update CHANGELOG.md (prepend template) 2025-09-08 12:29:30 +00:00
github-actions[bot]
b9df928097 Release: 2025.9.0 2025-09-08 12:29:25 +00:00
github-actions[bot]
0754678144 Bump version to 2025.9.0-rc.0 2025-09-08 11:33:58 +00:00
tamaina
a8cc51dc77 fix(frontend): Safari 26でモバイルUIが崩れる問題に対するhotfix (#16528) 2025-09-08 20:32:19 +09:00
github-actions[bot]
690edcef16 Bump version to 2025.9.0-beta.1 2025-09-08 11:21:12 +00:00
renovate[bot]
2ea784f345 fix(deps): update [backend] update dependencies (#16491)
* fix(deps): update [backend] update dependencies

* fix type error

* run pnpm dedupe

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-09-08 17:11:18 +09:00
renovate[bot]
20d257b562 chore(deps): update [misskey-js] update dependencies (#16489)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 16:14:23 +09:00
renovate[bot]
c215415613 fix(deps): update [root] update dependencies (#16490)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 16:08:15 +09:00
github-actions[bot]
726c03d96a Bump version to 2025.9.0-beta.0 2025-09-08 06:32:15 +00:00
syuilo
e65ddb546c New Crowdin updates (#16526)
* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Russian)
2025-09-08 15:20:07 +09:00
renovate[bot]
85aea9077f fix(deps): update [frontend] update dependencies (#16492)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-08 15:16:22 +09:00
syuilo
f3fffce6a9 fix type 2025-09-08 14:57:53 +09:00
syuilo
eb7db5a3aa Update MkSuspense.vue 2025-09-08 14:56:58 +09:00
syuilo
e33eb26863 Update CHANGELOG.md 2025-09-07 19:41:40 +09:00
かっこかり
430310f306 fix(frontend): ctrlキーを押しながらリンクをクリックしても新しいタブで開かない問題を修正 (#16453)
* fix(frontend): ctrlキーを押しながらクリックしても新しいタブで開かない問題を修正

* Update Changelog

* fix: 制御キーの場合を個別ハンドリングするのではなくブラウザ既定の挙動に任せるように

* fix
2025-09-07 09:32:32 +09:00
syuilo
1e1eea521e chore(frontend): add force cloud backup button for debugging 2025-09-07 09:16:25 +09:00
syuilo
86ad771221 New Crowdin updates (#16525)
* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)
2025-09-07 09:01:12 +09:00
syuilo
057acf471e New Crowdin updates (#16493)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)
2025-09-06 20:53:36 +09:00
github-actions[bot]
2bfe257879 Bump version to 2025.9.0-alpha.2 2025-09-06 08:54:34 +00:00
syuilo
6d75624aa8 Update CHANGELOG.md 2025-09-06 17:49:53 +09:00
tamaina
369f0ec88a fix(backend): webpなどの画像に対してセンシティブなメディアの検出が適用されていなかった問題を修正 (#16523)
画像をnsfwjsにかける前にsharpで均一にするようにした
2025-09-06 17:48:53 +09:00
かっこかり
788c5660ba enhance(frontend): フロントエンドのキャッシュクリア操作でブラウザの内部キャッシュも削除するように (#16522)
* enhance(frontend): フロントエンドのキャッシュクリア操作でブラウザの内部キャッシュも削除するように

* 削除するキャッシュを増やす

* Update Changelog

* fix: 何らかのエラーがあっても無視するように
2025-09-06 14:46:24 +09:00
github-actions[bot]
6cf1f86636 Bump version to 2025.9.0-alpha.1 2025-09-06 03:42:29 +00:00
syuilo
5b994b3e03 fix(frontend): プロファイルを復元後アカウントの切り替えができない問題を修正
Fix #16508
2025-09-06 12:41:27 +09:00
syuilo
7b2abb7577 enhance(frontend): クリップ/リスト/アンテナ/ロール追加系メニュー項目において、表示件数を拡張
#16510
2025-09-06 11:18:08 +09:00
github-actions[bot]
b681788315 Bump version to 2025.9.0-alpha.0 2025-09-06 02:11:36 +00:00
syuilo
279af1d72f Update CHANGELOG.md 2025-09-06 11:10:41 +09:00
syuilo
9e188ca3fa Revert "refactor"
This reverts commit aa85d701b9.
2025-09-06 11:09:24 +09:00
syuilo
de1b2223ff enhance(frontend): AiScriptAppウィジェットで構文エラーを検知してもダイアログではなくウィジェット内にエラーを表示するように 2025-09-05 19:44:11 +09:00
なっかあ
9b565728e7 fix #16494 (#16509) 2025-09-05 15:26:39 +09:00
饺子w (Yumechi)
a92fd8856a feat(backend): Send Clear-Site-Data header on /flush (#16517)
* feat(backend): Send Clear-Site-Data header on /flush

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* simplify check on flush.pug

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-09-05 13:55:37 +09:00
takaion
047773341d fix(frontend): エラー画像が横に引き伸ばされてしまう問題に対応 (#16502)
* fix(frontend): エラー画像が横に引き伸ばされてしまう問題に対応

Fix misskey-dev#15982

* Update CHANGELOG.md
2025-09-02 16:40:57 +09:00
yukineko
842670e100 fix(frontend): RSSティッカーウィジェットが正しく動作しない問題を修正 (#16498)
* fix: RSSティッカーウィジェットが正しく機能しない問題を修正

* chore: update CHANGELOG.md
2025-09-02 10:29:25 +09:00
anatawa12
ffc481a994 fix: 「自動でもっと見る」の設定ができない問題 (#16500) 2025-09-02 10:11:50 +09:00
syuilo
2ccf4f94cb refactor 2025-09-01 16:51:58 +09:00
syuilo
3566bc207f refactor 2025-09-01 16:36:15 +09:00
syuilo
4a0e968662 refactor 2025-09-01 16:23:05 +09:00
syuilo
b1479ab1d8 Update misskey-js.api.md 2025-09-01 14:07:24 +09:00
syuilo
18a9ccf7af pnpm dedupe 2025-09-01 14:07:14 +09:00
syuilo
959e72b2b3 refactor 2025-09-01 14:02:14 +09:00
syuilo
a3d78b2f08 refactor 2025-09-01 13:41:40 +09:00
syuilo
3c998e1f48 refactor 2025-09-01 12:59:53 +09:00
syuilo
782c9f9852 refactor 2025-09-01 12:33:44 +09:00
syuilo
d27c740ab0 refactor 2025-09-01 12:31:27 +09:00
syuilo
08ecf7ca79 refactor 2025-09-01 10:19:14 +09:00
syuilo
bdec4bf87a refactor 2025-09-01 10:16:33 +09:00
syuilo
7000095b44 refactor 2025-09-01 10:01:03 +09:00
syuilo
18e42cc83d refactoe 2025-09-01 09:53:38 +09:00
syuilo
11204eeb43 refactor 2025-09-01 09:50:36 +09:00
かっこかり
c95092903a refactor(frontend): フロントエンドの型エラー解消(途中まで) (#16477)
* refactor(frontend): フロントエンドの型エラー解消

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-08-31 19:53:38 +09:00
github-actions[bot]
21b2b9e5f8 [skip ci] Update CHANGELOG.md (prepend template) 2025-08-31 08:42:45 +00:00
github-actions[bot]
665ec2c43c Release: 2025.8.0 2025-08-31 08:42:39 +00:00
syuilo
34bd840525 Update CHANGELOG.md 2025-08-31 15:56:07 +09:00
syuilo
3d1cbcf094 Update CHANGELOG.md 2025-08-31 15:29:22 +09:00
github-actions[bot]
5f5d88036f Bump version to 2025.8.0-rc.0 2025-08-31 01:32:06 +00:00
syuilo
24739cd040 New Crowdin updates (#16483)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)
2025-08-31 10:24:41 +09:00
syuilo
b491432daa fix(frontend): タッチ操作時にマウスホバー時のユーザープレビューが開くことがある問題を修正
Fix #16464
2025-08-31 10:23:29 +09:00
syuilo
ebe029458e enhance(frontend): アイコンのスクロール追従を無効化する際の適用範囲を強化
Resolve #16485
2025-08-31 10:18:48 +09:00
syuilo
d127d82c5b Update CHANGELOG.md 2025-08-30 19:17:11 +09:00
syuilo
aabda5a956 clean up 2025-08-30 19:15:52 +09:00
syuilo
bd5b38c9d9 Update CHANGELOG.md 2025-08-30 19:12:53 +09:00
syuilo
647e03bf34 update locale 2025-08-30 19:10:19 +09:00
syuilo
d16db7f311 New translations ja-jp.yml (English) (#16472) 2025-08-30 16:11:27 +09:00
github-actions[bot]
ec4731dee4 Bump version to 2025.8.0-beta.6 2025-08-29 07:38:45 +00:00
syuilo
65a4d77a7f fix(backend): タイムラインAPIの withRenotes: false 時のレスポンスを修正 2025-08-29 16:03:03 +09:00
かっこかり
328301ffc2 fix(misskey-js): run api extractor (#16476) 2025-08-29 13:37:17 +09:00
syuilo
def148d7a6 refactor 2025-08-28 20:02:28 +09:00
syuilo
aa85d701b9 refactor 2025-08-28 19:53:10 +09:00
syuilo
f0833cffe9 refactor 2025-08-28 19:47:58 +09:00
github-actions[bot]
9cd918f12b Bump version to 2025.8.0-beta.5 2025-08-28 05:33:23 +00:00
syuilo
195a80622b New Crowdin updates (#16457)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (English)
2025-08-28 13:31:05 +09:00
syuilo
8b347e23e3 refactor 2025-08-28 13:30:52 +09:00
syuilo
bca3602da2 refactor 2025-08-28 13:24:25 +09:00
syuilo
cfd4d7c57b refactor 2025-08-28 13:20:11 +09:00
tamaina
084ccf5c9a build-misskey-js-with-types (#16471)
* build-misskey-js-with-types

* build-misskey-js-with-types
2025-08-28 11:45:46 +09:00
syuilo
fc1693f768 そもそもnullになることはあり得なかった 2025-08-28 11:39:54 +09:00
syuilo
ff6f115976 refactor 2025-08-28 11:30:03 +09:00
syuilo
8c2b96ad37 lint 2025-08-28 11:16:40 +09:00
syuilo
3e24419981 refactor 2025-08-28 11:15:17 +09:00
tamaina
25c2007f59 build-misskey-js-with-types (#16470) 2025-08-28 10:39:39 +09:00
syuilo
2e4c4dd555 refactor 2025-08-28 08:59:13 +09:00
taiy
653cb116ea fix(build): run build-misskey-js-with-types (#16468) 2025-08-27 19:11:05 +09:00
syuilo
c9f363b215 fix i/apps schema 2025-08-27 17:21:24 +09:00
syuilo
e72da587e4 型の漏れを修正 2025-08-27 17:05:29 +09:00
syuilo
439337a108 json schemaに誤りがあるのを修正 2025-08-27 17:01:02 +09:00
syuilo
5fef2332f4 refactor 2025-08-27 17:00:58 +09:00
syuilo
40a325cbe7 userのjson schemaに誤りがあるのを修正 2025-08-27 16:55:07 +09:00
syuilo
5eff31383f refactor 2025-08-27 16:52:58 +09:00
syuilo
575379a683 refactor 2025-08-27 16:48:32 +09:00
syuilo
bf82b49633 refactor 2025-08-27 16:27:16 +09:00
syuilo
87d09f255d refactor 2025-08-27 15:59:39 +09:00
syuilo
98e07c3bd1 perf(frontend): use WeakMap 2025-08-27 12:41:24 +09:00
syuilo
c5bb881438 refactor 2025-08-27 12:40:11 +09:00
syuilo
ee96f77ef2 refactor 2025-08-27 12:09:19 +09:00
syuilo
55eb18f5a6 Update CHANGELOG.md 2025-08-27 10:29:45 +09:00
syuilo
aa8daca914 chore(frontend): skip typecheck for auto-generated files 2025-08-27 10:23:41 +09:00
syuilo
3e9118af3d fix(frontend): lookupページでリモートURLを指定した際に正しく動作しない問題を修正 2025-08-27 10:15:11 +09:00
syuilo
25df56dfd0 refactor 2025-08-27 10:14:17 +09:00
syuilo
231ccae006 tweak locale 2025-08-27 09:57:33 +09:00
syuilo
2e0a34300a refactor 2025-08-27 09:46:31 +09:00
syuilo
d2fd7460ed Update CHANGELOG.md
#16465
2025-08-27 00:41:11 +09:00
syuilo
5e3d8fc9b8 refactor 2025-08-26 20:17:25 +09:00
syuilo
b186c67767 refactor 2025-08-26 20:04:59 +09:00
syuilo
ac7c60d102 refactor and fix 2025-08-26 19:06:15 +09:00
syuilo
b9dbd58a1c refactor 2025-08-26 18:54:54 +09:00
syuilo
69bbac013a refactor 2025-08-26 17:31:36 +09:00
syuilo
203296b9cb chore(frontend): tweak MkServerSetupWizard 2025-08-26 15:02:12 +09:00
syuilo
689d70ffae refactor 2025-08-26 14:38:42 +09:00
syuilo
d5475d1ff6 refactor 2025-08-26 14:22:53 +09:00
syuilo
05cc8047fa refactor 2025-08-26 13:58:57 +09:00
syuilo
d6a1046361 refactor 2025-08-26 13:34:41 +09:00
syuilo
eb9915baf8 refactor and fix 2025-08-26 10:56:09 +09:00
syuilo
dbb6c71c5c refactor 2025-08-26 09:39:23 +09:00
syuilo
9e5c8d94bf refactor 2025-08-26 09:08:00 +09:00
syuilo
120af977a9 refactoe 2025-08-26 08:57:36 +09:00
syuilo
506c8a259b refactor 2025-08-26 08:50:34 +09:00
syuilo
0c8545ec1c Update CHANGELOG.md 2025-08-26 07:44:26 +09:00
tamaina
7e7dc03796 fix(frontend): ap/showでローカルユーザーを解決した際@username@nullに飛ばされる問題を修正 (#16460) 2025-08-26 07:43:59 +09:00
syuilo
a874def344 remove unused file 2025-08-25 20:32:07 +09:00
syuilo
44ac51f64f refactor: ReloadSuggest -> ReloadSuggestion 2025-08-25 20:31:22 +09:00
syuilo
3b65be8b91 clean up 2025-08-25 20:29:26 +09:00
syuilo
76beac41d2 refactor 2025-08-25 20:07:33 +09:00
syuilo
69cdc73f5a refactor 2025-08-25 19:55:42 +09:00
syuilo
1c966db324 refactor 2025-08-25 17:12:11 +09:00
syuilo
692284886b refactor 2025-08-25 17:04:49 +09:00
syuilo
0121d19645 refactor 2025-08-25 16:56:10 +09:00
syuilo
bf8636e516 refactor 2025-08-25 16:56:05 +09:00
syuilo
d336a1fb1c refactor 2025-08-25 13:51:52 +09:00
syuilo
7c761e7017 refactor 2025-08-25 13:48:09 +09:00
syuilo
7924daf7f8 refactor 2025-08-25 13:46:22 +09:00
syuilo
2b9706a68b refactor 2025-08-25 13:40:41 +09:00
syuilo
f2d15f9240 refactor 2025-08-25 13:36:38 +09:00
syuilo
caf6a3ab81 refactor 2025-08-25 13:34:17 +09:00
syuilo
f4baa973bf refactor 2025-08-25 13:26:41 +09:00
syuilo
3741fa4b49 refactor 2025-08-25 13:25:05 +09:00
syuilo
27df7f643e fix typo
Fix #16452
2025-08-25 10:07:42 +09:00
syuilo
30987b6f1f Update CHANGELOG.md 2025-08-25 10:05:15 +09:00
anatawa12
41b5677f01 fix: Pages will be deleted when eye-catching image is moved (#16455) 2025-08-25 10:04:35 +09:00
github-actions[bot]
47d83e8930 Bump version to 2025.8.0-beta.4 2025-08-24 09:29:08 +00:00
renovate[bot]
61ff1f313b fix(deps): update [backend] update dependencies (#16450)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 18:27:14 +09:00
renovate[bot]
637ad3d479 chore(deps): update [misskey-js] update dependencies (#16448)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 16:05:06 +09:00
syuilo
2dd8c2a355 New Crowdin updates (#16442)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Turkish)
2025-08-24 12:02:36 +09:00
renovate[bot]
857a87d4b6 chore(deps): update [github actions] update dependencies (#16447)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 11:53:23 +09:00
renovate[bot]
8b4cea5c86 fix(deps): update [root] update dependencies (#16449)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-24 11:53:10 +09:00
renovate[bot]
9f25d96ec3 fix(deps): update [frontend] update dependencies (#16387)
* fix(deps): update [frontend] update dependencies

* fix build error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-08-24 09:13:04 +09:00
syuilo
bd0730e5e8 fix(backend): 削除されたユーザーがチャットメッセージにリアクションしている場合chat/historyなどでエラーになる問題を修正
Fix #16445
2025-08-23 17:37:15 +09:00
syuilo
07ccb82691 Update CHANGELOG with recent feature and fix entries 2025-08-22 19:40:15 +09:00
github-actions[bot]
16030c6381 Bump version to 2025.8.0-beta.3 2025-08-22 10:39:14 +00:00
syuilo
1f6716d69b New Crowdin updates (#16436)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)
2025-08-22 19:37:20 +09:00
かっこかり
ade603ff7a fix(frontend): ページネーションの進行方向を指定できるように (#16433)
* fix(frontend): ページネーションの進行方向を指定できるように

* Update Changelog

* fix lint

* fix: directionをMkPaginationに移動

* fix

* fix

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-08-22 19:34:20 +09:00
かっこかり
4d215bde10 fix(frontend): follow-up of #16380 2025-08-22 19:31:27 +09:00
かっこかり
20d81696e1 fix(backend): fix test (#16441)
* fix(backend): fix test

* fix

* fix
2025-08-22 18:26:19 +09:00
syuilo
8cbbb80e3f fix(backend): notes/mentions で場合によっては並び順が正しく返されない問題を修正
Fix #16398
2025-08-21 19:10:16 +09:00
かっこかり
1eabb21d69 fix(backend): クリップ一覧APIをページネーションに対応させる (#16434)
* fix(backend): クリップ一覧APIをページネーションに対応させる

* Update Changelog
2025-08-21 19:02:21 +09:00
かっこかり
7f6ba2e501 enhance: verify-emailにフロントエンドUIを実装 (#16431)
* enhance: メールのverifyをAPIに変更

* enhance(frontend): メールのVerifyページを追加

* fix

* 🎨

* 🎨

* Update Changelog

* lint
2025-08-21 16:52:30 +09:00
github-actions[bot]
8c433d2706 Bump version to 2025.8.0-beta.2 2025-08-20 07:41:12 +00:00
syuilo
3a856b785d New Crowdin updates (#16416)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)
2025-08-20 16:35:50 +09:00
syuilo
b07bf838e3 サーバー管理コマンド (#15882)
* wip

* Update cli.ts

* Update cli.ts

* wip

* Update CHANGELOG.md

* Delete cli.mjs
2025-08-20 16:35:26 +09:00
syuilo
bdfe709319 fix(frontend): 読み込み直後にプラグインによるノートの書き換えが行われない問題を修正
ブート時にプラグインがロードされるまで待機
Fix #16428
2025-08-20 15:57:20 +09:00
github-actions[bot]
4190c6cb8e Bump version to 2025.8.0-beta.1 2025-08-19 05:24:14 +00:00
renovate[bot]
44a2d531b3 fix(deps): update dependency tmp to v0.2.4 [security] (#16374)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 14:20:53 +09:00
syuilo
a17271a5c4 Update CHANGELOG.md 2025-08-19 14:19:54 +09:00
syuilo
3980172243 feat: 非ログイン時に表示されるトップページのスタイルを選択できるように 2025-08-19 14:15:19 +09:00
syuilo
3b4879133c 🎨 2025-08-18 18:06:32 +09:00
syuilo
a1232cbae3 Update CHANGELOG.md 2025-08-18 14:47:35 +09:00
github-actions[bot]
ebb014da4c Bump version to 2025.8.0-beta.0 2025-08-18 05:41:44 +00:00
syuilo
7786761d76 chore(frontend): more haptic 2025-08-18 14:24:14 +09:00
Souma
ff334fe9d7 enhance(frontend): Add an option to customize Lockdown duration (#16405)
* chore(locales): Add "setManually" and "_time.month"

Add Japanese locales to auto-generate other languages.

* feat(frontend): Add text fields to set lockdown duration manually

Choose from presets or set it manually.

* refactor(frontend): Make objects contains option's values and labels

When adding a new option, it needed to write two times.

* docs(changelog): Add a description about this change

Users can notice what's changed by this PR.

* refactor(frontend): Manage state by MkSelect

The functions only initialize the values.

* refactor(frontend): Make the custom input as writable computed

Clean up the MkInput components.

* chore(locales): Switch to "custom"

A single word is better than sentence on this situation.

* refactor(frontend): Insert the custom button to presets

Users don't need to click multiple times to use prests.
2025-08-18 14:11:48 +09:00
syuilo
ba40cb750b Update about-misskey.vue 2025-08-18 10:59:31 +09:00
syuilo
fcde6789ff feat(frontend): introduce haptic feedback as experimental feature
#16410
2025-08-18 10:49:27 +09:00
github-actions[bot]
14cc42e305 Bump version to 2025.8.0-alpha.13 2025-08-18 01:22:39 +00:00
syuilo
e481205342 enhance(frontend): update aiscript to 1.1.0 2025-08-18 10:18:34 +09:00
anatawa12
fea9f27fd6 chore: preserve notes with local reactions (#16412) 2025-08-17 17:08:38 +09:00
github-actions[bot]
9ea7340da6 Bump version to 2025.8.0-alpha.12 2025-08-15 13:44:57 +00:00
anatawa12
60f7278aff fix: Remote Note Cleaning will delete notes embedded in a page (#16408)
* feat: preserve number of pages referencing the note

* chore: delete pages on account delete

* fix: notes on the pages are removed by CleanRemoteNotes

* test: add the simplest test for page embedded notes

* fix: section block is not considered

* fix: section block is not considered in migration

* chore: remove comments from columns

* revert unnecessary change

* add pageCount to webhook test

* fix type error on backend
2025-08-15 22:39:55 +09:00
syuilo
bae92a944d enhance(frontend): improve enableInfiniteScroll stability
Close #16318
2025-08-15 12:40:37 +09:00
syuilo
7d30768769 fix(frontend): Botプロテクションの設定の変更検知が正しくない問題を修正 2025-08-15 12:10:14 +09:00
github-actions[bot]
e444942c4e Bump version to 2025.8.0-alpha.11 2025-08-14 08:02:14 +00:00
饺子w (Yumechi)
90b9609341 enhance: performance for CleanRemoteNotesProcessorService (#16404)
* enhance: performance for CleanRemoteNotesProcessorService

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* suggestions

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* docs

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* change initial limit to 100

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* robustness for transient race conditions

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* handle cursors in postgres

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* robustness: transient errors and timeout handling

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* use '0' as initial cursor

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-08-14 16:54:28 +09:00
syuilo
c25a922928 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-08-14 16:50:59 +09:00
syuilo
d26169ea32 Update about-misskey.vue 2025-08-14 16:50:56 +09:00
github-actions[bot]
8839d8d679 Bump version to 2025.8.0-alpha.10 2025-08-13 02:01:57 +00:00
syuilo
ad6af74eef New Crowdin updates (#16394)
* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Simplified)
2025-08-13 10:59:40 +09:00
Sayamame-beans
7bb43329bb fix(frontend): メンション補完のためのサジェストが正しく表示されない問題を修正 (#16401)
* fix(frontend): mention-syntax detection for autocomplete doesn't work properly

* docs(changelog): update changelog
2025-08-13 10:51:23 +09:00
syuilo
4c41930554 Update CHANGELOG.md 2025-08-11 15:54:18 +09:00
syuilo
295f42b986 New Crowdin updates (#16386)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Italian)
2025-08-11 12:25:59 +09:00
syuilo
299f9e3115 fix test 2025-08-11 12:09:25 +09:00
syuilo
1d8e183883 fix test 2025-08-11 12:01:32 +09:00
zyoshoka
f242892382 fix(workflow): correct references to built image's ID (#16391) 2025-08-10 23:54:06 +09:00
syuilo
ecc033f101 fix(backend): fix type errors caused by dependency update
https: //github.com/misskey-dev/misskey/pull/16308
Co-Authored-By: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-08-09 17:41:01 +09:00
renovate[bot]
684dbfd626 fix(deps): update [backend] update dependencies (#16201)
* fix(deps): update [backend] update dependencies

* Update HttpRequestService.ts

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-08-09 17:00:59 +09:00
github-actions[bot]
aa5c42997f Bump version to 2025.8.0-alpha.9 2025-08-09 07:45:10 +00:00
github-actions[bot]
e7b666f567 Bump version to 2025.8.0-alpha.8 2025-08-09 06:04:17 +00:00
renovate[bot]
0f7c0ed053 chore(deps): update [misskey-js] update dependencies (#16346)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 14:48:02 +09:00
syuilo
1e92bb4a0a chore(backend): remove unused codes 2025-08-09 14:44:36 +09:00
かっこかり
b5b7914073 enhance: ユーザー検索を制限できるように (#16380)
* enhance: ユーザー検索を制限できるように

* Update Changelog
2025-08-09 14:41:11 +09:00
syuilo
7595bff43b fix(backend): prevent run repeatable job immediately
Fix #16357
2025-08-09 14:37:09 +09:00
github-actions[bot]
72864fcbd0 Bump version to 2025.8.0-alpha.7 2025-08-09 05:27:57 +00:00
syuilo
1b0de39f92 Update CHANGELOG.md 2025-08-09 14:27:48 +09:00
renovate[bot]
d8a137cb6c chore(deps): update [tools] update dependencies (#16348)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 14:26:52 +09:00
かっこかり
ddac2fb7a1 fix(frontend-builder): 言語バンドルの作成状況がログに残るように (#16385) 2025-08-09 14:26:03 +09:00
かっこかり
b1b335d55a fix: チャットの利用可否ポリシーの考慮漏れを修正 (#16259)
* fix: チャットの利用可否ポリシーの考慮漏れを修正

* 🎨
2025-08-09 14:25:31 +09:00
かっこかり
0586dd98cb fix(deps): regenerate lockfile (#16384) 2025-08-09 14:20:18 +09:00
syuilo
504f886065 Update CHANGELOG.md 2025-08-09 14:14:16 +09:00
Sayamame-beans
2931eb0aad Fix: チャンネルのハイライトページにノートが表示されない問題を修正 (#16364)
* fix(frontend): unable to see channel's featured notes

* docs(changelog): update changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-08-09 14:13:37 +09:00
anatawa12
103d5a4b44 fix frontend tests broken with aiscript 1.0.0 (#16377)
* test: update test for aiscript 1.0: line info in error

* test: update test for aiscript 1.0: keyword in object literal
2025-08-09 14:12:17 +09:00
かっこかり
785b85ee46 enhance(frontend): 画像エフェクトのUI改善 (#16191)
* enhance(frontend): 画像エフェクトの改善

* enhance: i18n colorClampAdvanced

* fix: missing translation

* enhance: i18n blockNoise

* fix lint

* fix: narrow down fx defs types

* fix

* fix: watermark用エフェクトは別で定義し直す

* fix lint

* ImageEffectorをwatermarkに隠蔽

* watermark関連の定義を完全に分離

* refactor

* fix

* ぼかし効果 -> スムージング

* refactor: remove unnecessary `as const`

* Update Changelog
2025-08-09 14:11:19 +09:00
anatawa12
8bd84a0ec4 fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題 (#15987)
* fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題

* changelog Fix: カラムの名前が正しくリスト/チャンネルの名前にならない問題を修正

* reduce requests to retrieve timeline name
2025-08-09 10:43:07 +09:00
renovate[bot]
9539995458 fix(deps): update [root] update dependencies (#16349)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-09 10:34:12 +09:00
syuilo
e67ff36e57 enhance(frontend): AiScriptのcode-splittingが正しく行われるように 2025-08-08 21:50:05 +09:00
github-actions[bot]
96a165d729 Bump version to 2025.8.0-alpha.6 2025-08-08 12:36:36 +00:00
Sayamame-beans
215725a3ac Fix: SystemWebhook設定でsecretを空に出来ない問題を修正 (#16371)
* fix(backend): allow system-webhook secret to be empty

* docs(changelog): update changelog

* chore: run build-misskey-js-with-types
2025-08-08 21:35:02 +09:00
syuilo
3da04fcae4 New Crowdin updates (#16360)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Spanish)
2025-08-08 21:31:59 +09:00
tamaina
85e3e49688 fix(backend): Fix and create unit test of CleanRemoteNotesProcessorService (#16368)
* wip

* test(backend): CleanRemoteNotesProcessorService (basic)

* test(backend): CleanRemoteNotesProcessorService (advanced)

* ✌️

* a

* split initiator query

* no order by

* ???

* old → older
2025-08-08 21:31:31 +09:00
syuilo
076a83466e 🎨 2025-08-08 21:26:53 +09:00
syuilo
aaf3f343ea Update about-misskey.vue 2025-08-08 21:20:23 +09:00
github-actions[bot]
4a5751416a Bump version to 2025.8.0-alpha.5 2025-08-08 09:50:54 +00:00
anatawa12
adb3ad6b7f Follow up per locale bundle (#16381)
* fix docker build

* enable check spdx license id in frontend-builder

* fix eslint config

* run eslint for frontend-builder in ci

* fix eslint

* add license headers

* fix unnecessary comments

* update changelog

* fix generateDts

* fix tsx
2025-08-08 18:47:35 +09:00
anatawa12
8598f3912e per-locale bundle & inline locale (#16369)
* feat: split entry file by locale name

* chore: とりあえず transform hook で雑に分割

* chore: とりあえず transform 結果をいい感じに

* chore: concurrent buildで高速化

* chore: vite ではローケルのないものをビルドして後処理でどうにかするように

* chore: 後処理のためにi18n.jを単体になるように切り出す

* chore: use typescript

* chore: remove unref(i18n) in vite build process

* chore: inline variable

* fix: build error

* fix: i18n.ts.something.replaceAll() become error

* chore: ignore export specifier from error

* chore: support i18n.tsx as object

* chore: process literal for all files

* chore: split config and locale

* chore: inline locale name

* chore: remove updating locale in boot common

* chore: use top-level await to load locales

* chore: inline locale

* chore: remove loading locale from boot.js

* chore: remove loading locale from boot.js

* コメント追加

* fix test; fetchに失敗する

* import削除ログをdebugレベルに

* fix: watch pug

* chore: use hash for entry files

* chore: remove es-module-lexer from dependencies

* chore: move to frontend-builder

* chore: use inline locale in embed

* chore: refetch json on hot reload

* feat: store localization related to boot.js in backend in bootloaderLocales localstorage

* 応急処置を戻す

* fix spex

* fix `Using i18n identifier "e" directly. Skipping inlining.` warning

* refactor: use scriptsDir parameter

* chore: remove i18n from depmap

* chore: make build crash if errors

* error -> warn few conditions

* use inline object

* update localstorage keys

* remove accessing locale localstorage

* fix: failed to process i18n.tsx.aaa({x:i18n.bbb})
2025-08-08 11:26:18 +09:00
syuilo
f86239ab2f Update CONTRIBUTING.md 2025-08-07 17:21:43 +09:00
syuilo
ee9dc94063 enhance(frontend): タイムラインページのメニューから投稿フォームの表示有無を切り替えられるように 2025-08-06 14:22:21 +09:00
syuilo
998beeae59 feat(frontend): AiScriptを1.0に更新
Close #16277
2025-08-06 13:32:59 +09:00
syuilo
9931fff35b 🎨 2025-08-05 09:44:59 +09:00
syuilo
b4a0fdfaa1 fix type errors 2025-08-05 09:35:42 +09:00
syuilo
d979cd2c07 fix(frontend): 投稿フォームでファイルのアップロードが中止または失敗した際のハンドリングを修正 2025-08-05 09:15:02 +09:00
syuilo
bb56b3b4f1 feat(frontend): ページのタブバーを下部に表示できるように 2025-08-04 20:03:34 +09:00
anatawa12
2f13f923a8 chore: リモートノートの削除条件をデータベース上で確認するように (#16351) 2025-08-04 18:39:08 +09:00
syuilo
93fefc58c7 New translations ja-jp.yml (Turkish) (#16359) 2025-08-04 15:00:53 +09:00
かっこかり
bd7339c397 enhance(i18n): トルコ語を追加 (#16358) 2025-08-04 14:53:26 +09:00
syuilo
941625fd08 New Crowdin updates (#16336)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Kannada)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Turkish)
2025-08-04 14:47:51 +09:00
syuilo
b6765edffe clean up 2025-08-04 10:31:26 +09:00
anatawa12
9273b21516 fix: /:initialTab? is shown on the URL when opening note with some ways (#16353) 2025-08-03 22:12:35 +09:00
renovate[bot]
aa10e537a5 fix(deps): update [frontend] update dependencies (#16350)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-03 13:33:27 +09:00
renovate[bot]
c79fe6dc33 fix(deps): update [frontend] update dependencies (#16347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-03 12:53:17 +09:00
github-actions[bot]
fbf8db618c Bump version to 2025.8.0-alpha.4 2025-08-03 02:05:40 +00:00
syuilo
6f3cc2cdf7 コントロールパネルの検索 (#16343)
* Update settings.vue

* Update settings.vue

* Update settings.vue

* Update settings.vue

* Update settings.vue

* Update performance.vue

* Update performance.vue

* Update performance.vue

* Update external-services.vue

* wip

* wip

* Update security.vue

* Update settings.vue

* Update CHANGELOG.md

* wip

* Update moderation.vue

* wip

* Update branding.vue

* wip

* Update email-settings.vue

* Update system-webhook.vue

* Update MkSuperMenu.vue

* Update index.vue
2025-08-03 11:02:20 +09:00
syuilo
7c1f4c9037 perf(frontend): tweak css performance 2025-08-03 10:01:25 +09:00
かっこかり
2da20bf3e8 fix(misskey-js): fix misskey-js autogen (#16345) 2025-08-02 17:16:24 +09:00
renovate[bot]
6d54370f01 chore(deps): update [misskey-js] update dependencies (major) (#16177)
* chore(deps): update [misskey-js] update dependencies

* enhance(misskey-js): テストスイートをVitestに置き換え (#16340)

* enhance(misskey-js): テストスイートをVitestに置き換え

* fix: 変なものが混入

* fix test, lint

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-08-02 16:20:08 +09:00
かっこかり
905d3c87f1 Update CHANGELOG.md 2025-08-02 14:01:57 +09:00
syuilo
fc244067e0 enhnace(frontend): リロードのサジェストをダイアログではなくバナー表示に 2025-08-02 12:10:51 +09:00
syuilo
8449354887 fix e2e 2025-08-02 11:47:24 +09:00
syuilo
57e0f1b4ef fix e2e 2025-08-02 11:03:41 +09:00
github-actions[bot]
a1e170e065 Bump version to 2025.8.0-alpha.3 2025-08-01 13:35:41 +00:00
poppingmoon
73de40b81e enhance: support emojis added in Unicode 16.0 or earlier (#16329)
* add missing emojis to emojilist.json

* reorder family emojis

* reorder harp

* reorder symbols

* correct emoji genders

* add missing emojis to unicode-emoji-indexes

* add Japanese annotations for Sark flag

* correct kana notations

* add square colors

* upgrade @twemoji/parser to 16.0.0

* correct emoji genders

* upgrade mfm.js to 0.25.0
2025-08-01 22:26:29 +09:00
syuilo
2c836e3c24 fix migration
Fix #16341
2025-08-01 21:55:56 +09:00
syuilo
c2c5898221 refactor 2025-08-01 19:55:55 +09:00
果物リン
99adf12355 ノート検索のホスト指定オプションの速度改善 (#16339)
Co-authored-by: misskey-release-bot[bot] <157398866+misskey-release-bot[bot]@users.noreply.github.com>
2025-08-01 17:48:26 +09:00
github-actions[bot]
7df0a6c55f Bump version to 2025.8.0-alpha.2 2025-08-01 08:23:40 +00:00
かっこかり
e092008dc5 feat(frontend): セーフモード (#16245)
* feat(frontend): セーフモード

* Update Changelog

* Update Changelog

* fix

* fix

* Update Changelog

* Update Changelog

* PWAのショートカット経由でもセーフモードで起動できるように

* Update ClientServerService.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-08-01 17:20:40 +09:00
syuilo
0cfc910cdc enhance(frontend): いくつかの翻訳を調整 2025-08-01 16:18:47 +09:00
かっこかり
62f68de800 fix(frontend); Playのボタンがはみ出している問題を修正 (#16303) 2025-08-01 14:31:49 +09:00
syuilo
5bf13c4cc2 Update CHANGELOG.md 2025-08-01 13:44:06 +09:00
syuilo
16f47adcc6 Update CHANGELOG.md 2025-08-01 13:43:09 +09:00
github-actions[bot]
8eba8c7218 Bump version to 2025.8.0-alpha.1 2025-08-01 04:06:20 +00:00
syuilo
b214a19d5f New Crowdin updates (#16300)
* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)
2025-08-01 13:04:32 +09:00
syuilo
1082145c74 enhance: ジョブのログを表示できるように 2025-08-01 12:54:33 +09:00
syuilo
2a836047e3 Update CHANGELOG.md 2025-08-01 12:38:50 +09:00
syuilo
b2b07e5f21 enhance(backend): 連合関係のサーバー設定のデフォルト値をウィザード側に移動
- サーバー初期設定ウィザードでデフォルト値を設定できるため、データベース上のデフォルト値でオンにしておく必要がない
- 連合は初期設定が終わるまで閉じられている方が安全
2025-08-01 12:36:25 +09:00
github-actions[bot]
da06f75455 Bump version to 2025.8.0-alpha.0 2025-08-01 02:50:01 +00:00
syuilo
d624da9c1a feat: remote notes cleaning (#16292)
* Create CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* wip

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update CleanRemoteNotesProcessorService.ts

* Update job-queue.job.vue

* wip

* Update CleanRemoteNotesProcessorService.ts

* wip

* wip

* wip

* Update CleanRemoteNotesProcessorService.ts

* wip

* Update CHANGELOG.md

* Revert "wip"

This reverts commit 89d455d302.

* wip

* woip

* Update QueueService.ts

* Update QueueService.ts

* ピン留め考慮

* Update CleanRemoteNotesProcessorService.ts

* Update QueueService.ts

* Update CleanRemoteNotesProcessorService.ts

* add log

* Update CHANGELOG.md

* wip

* Update MkServerSetupWizard.vue
2025-08-01 11:49:12 +09:00
syuilo
4c520fa693 enhance(frontend): サーバーの初期設定ウィザードをやり直せるように 2025-08-01 11:07:09 +09:00
syuilo
a7d1c94f48 enhance(backend): tweak system job log 2025-08-01 09:51:43 +09:00
かっこかり
4f5d3f6f7d fix(frontend): MkNotesTimelineの日付dividerのスタイル修正 (#16306) 2025-07-31 21:45:34 +09:00
syuilo
4be0045826 update minimum nodejs version 2025-07-31 21:21:44 +09:00
syuilo
18daf43f70 clean up
ワイルドカードセレクタはexpensive
2025-07-31 21:12:07 +09:00
syuilo
862a6fae79 enhance(backend): 古いバージョンで作成され現在使われなくなったrepeatableジョブをクリーンアップするように 2025-07-31 20:57:36 +09:00
かっこかり
a45e89c300 fix(frontend): 適用中のテーマを保持する際にリアクティビティも保持される問題を修正 (#16304)
* fix(frontend): 現在のテーマを保持する際にリアクティビティが保持される問題を修正

* Update Changelog

* Update theme.ts
2025-07-31 18:47:22 +09:00
syuilo
35888eb8f4 enhance(backend): BullMQの廃止されたRepeatableからJob Schedulersに移行 2025-07-31 18:16:21 +09:00
syuilo
f2a23fb55e ノートの脱CASCADE削除 (#16332)
* wip

* Update CHANGELOG.md

* Update QueryService.ts

* Update QueryService.ts

* wip

* Update MkNoteDetailed.vue

* Update NoteEntityService.ts

* wip

* Update antennas.ts

* Update create.ts

* Update NoteEntityService.ts

* wip

* Update CHANGELOG.md

* Update NoteEntityService.ts

* Update NoteCreateService.ts

* Update note.test.ts

* Update note.test.ts

* Update ClientServerService.ts

* Update ClientServerService.ts

* add error handling

* Update NoteDeleteService.ts

* Update CHANGELOG.md

* Update entities.ts

* Update entities.ts

* Update misskey-js.api.md
2025-07-31 14:40:51 +09:00
tamaina
414d5958c1 fix(test): Fix name of a test in e2e/timelines.ts (#16334) 2025-07-31 14:22:32 +09:00
tamaina
8c65d8d020 test(backend): e2e/timelines.ts: 非FTT時のテストを追加, 凍結のテストを追加, これにかかる幾つかのバグ修正 (#16284)
* test(backend): 非FTT時のテストを追加

* clean up

* skip test about reply

* Fix #16289

* clean up

* cherry pick

* add renote test

* Fix https://github.com/misskey-dev/misskey/issues/16293

* remove debug log
2025-07-30 21:41:46 +09:00
かっこかり
927aa9dc3d fix(frontend): inline な SearchMarker のパスが正しくない問題を修正 (#16301)
* replace URL path for inlined SearchMarkers

The search index looks like:

```ts
[
 {
   id: 'foo', label: 'security',
   path: '/settings/security', inlining: ['2fa'],
 },
 {
   id: '2fa',
   label: 'two-factor auth',
   path: '/settings/2fa', // guessed wrong by the index generation
 },
 {
   id: 'aaaa',
   parentId: '2fa',
   label: 'totp',
 },
 …
]
```

This file post-processes that index and re-parents the inlined
sections. Problem was, it left the (wrong) `path` untouched.

Replacing the `path` makes the search work fine.

* Update Changelog

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2025-07-30 14:39:55 +09:00
かっこかり
1dec8b2329 fix(frontend/test): Cypressが失敗する問題を修正 (#16307)
* attempt to fix test

* fix(frontend/test): Cypressが失敗する問題を修正
2025-07-30 14:12:59 +09:00
zyoshoka
b0493abe93 chore: continue backend E2E test even if fail with minimum Node.js version (#16324)
* chore: continue backend E2E test even if fail with minimum Node.js version

* chore: disable `fail-fast`
2025-07-30 12:32:24 +09:00
かっこかり
4f653f2fbc enhance(frontend): typed nirax (#16309)
* enhance(frontend): typed nirax

* migrate router.replace

* fix
2025-07-30 12:30:35 +09:00
tamaina
b660769288 perf(frontend): draw-blurhash workerの結果をpostMessageする際にImageBitmapを移譲する (#16330) 2025-07-30 09:30:07 +09:00
かっこかり
48246bd166 fix(deps): regenerate lockfile (#16302) 2025-07-19 14:00:19 +09:00
github-actions[bot]
73419e8a61 [skip ci] Update CHANGELOG.md (prepend template) 2025-07-18 00:28:02 +00:00
github-actions[bot]
9852196ddc Release: 2025.7.0 2025-07-18 00:27:57 +00:00
github-actions[bot]
598641de48 Bump version to 2025.7.0-rc.1 2025-07-17 11:07:00 +00:00
syuilo
4d643c77c5 New Crowdin updates (#16274)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (English)
2025-07-17 20:03:13 +09:00
syuilo
a686592734 enhance(frontend): disable InfiniteScroll to improve stability
#16229
2025-07-17 20:02:55 +09:00
syuilo
0619dba04d remove unused code 2025-07-17 20:00:05 +09:00
github-actions[bot]
fbd6b67f1f Bump version to 2025.7.0-rc.0 2025-07-17 08:33:52 +00:00
かっこかり
e5c2be15f7 fix(deps): Node.jsの最小バージョンを引き上げ (#16296)
* Update package.json

* Update min.node-version

* Update CHANGELOG.md
2025-07-17 13:20:43 +09:00
renovate[bot]
1b791258ce fix(deps): update [frontend] update dependencies (#16202)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 12:14:19 +09:00
renovate[bot]
49cac2f72b fix(deps): update [root] update dependencies (#16200)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 11:56:55 +09:00
renovate[bot]
5d5aa09459 chore(deps): update [misskey-js] update dependencies (#16199)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-17 11:42:34 +09:00
github-actions[bot]
e1834beae8 Bump version to 2025.7.0-beta.2 2025-07-16 06:52:02 +00:00
anatawa12
6f6fdfe28e Migration cleanup (#16288)
* chore: apply several @Index and @ManyToOne to match actual migration code

* chore: several decorator updates with typeorm bug workaround with patches

* feat: add final cleanup migration

* dev: add .editorconfig settings for generated migrations

* chore: update dockerfile to build package with patches

* chore: update federation test compose to include patches

* chore: revert few dependency update

* chore: don't check disableRegistration on test env

* test: add test for checking migration script

* chore: set proxyRemoteFiles true in test config

* chore: enter invitation code in signup test

* fix: register send button is not disabled when invitationCode is not input
2025-07-16 15:49:05 +09:00
tamaina
ad7bf096e1 enhance(backend): usernameに対してもprohibitedWordsForNameOfUserを適用 (#16282)
* enhance(backend): usernameに対してもprohibitedWordsForNameOfUserを適用
Resolve #16281

* fix locales/index/d.ts
2025-07-15 09:32:46 +09:00
anatawa12
08cc5a99bb Don't remove notes when reply / renote is removed (#16287)
* chore: make NO ACTION on channel/reply/renote removal

* chore(docs): add description to show a possibility of reply null with replyId non-null

* fix: packing NoteDraft fails when reply / renote is removed

* feat: show drafts targeting removed renote / reply as "削除された投稿への投稿"
2025-07-15 09:20:48 +09:00
github-actions[bot]
f954b1e276 Bump version to 2025.7.0-beta.1 2025-07-12 06:17:58 +00:00
syuilo
5ecaf5095e enhance: ウォーターマーク機能をロールで制御可能に 2025-07-12 15:13:35 +09:00
syuilo
d2c4f79886 New Crowdin updates (#16258)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)
2025-07-12 15:00:30 +09:00
anatawa12
e26369ed48 fix: unable to horizontally scroll when pull to refresh is enabled (#16273) 2025-07-12 15:00:06 +09:00
syuilo
c165749a29 chore(frontend): fix type errors 2025-07-06 20:54:02 +09:00
syuilo
c4fdf5a47c chore(frontend): fix type errors 2025-07-06 20:47:31 +09:00
syuilo
288f0abeac chore(frontend): fix type errors 2025-07-06 20:37:09 +09:00
かっこかり
89ed8be8ff fix(frontend): MkRange/MkSelectでdisabledが効かなくなっている問題を修正 (#16263)
* fix(frontend): MkRange/MkSelectでdisabledが効かなくなっている問題を修正

* Update Changelog

* 誤字
2025-07-06 19:38:09 +09:00
かっこかり
a8abb03d17 refactor(frontend): Formまわりの型強化 (#16260)
* refactor(frontend): Formまわりの型強化

* fix

* avoid non-null assertion and add null check for safety

* refactor

* avoid non-null assertion and add null check for safety

* Update clip.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-07-06 19:36:11 +09:00
syuilo
c2a01551a7 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-07-06 19:32:33 +09:00
syuilo
553ccff77c chore(frontend): tweak selector to improve rendering performance 2025-07-06 19:32:31 +09:00
かっこかり
9dddc84750 refactor(frontend): menuの型定義の可読性向上 (#16261) 2025-07-06 17:24:34 +09:00
syuilo
004cfd5e4b clean up 2025-07-06 15:57:21 +09:00
syuilo
40a35968f0 clean up 2025-07-06 15:54:33 +09:00
syuilo
e6ec15e397 feat: 特定のドライブファイルを添付しているチャットメッセージを一覧できるように 2025-07-06 09:54:49 +09:00
syuilo
8430256f22 clean up 2025-07-05 19:29:18 +09:00
Souma
abde15979b enhance(backend): Add display name to email (#16256)
* feat(backend): Add display name to email

Make it clear who sent emails.

* docs(changelog): Add a description about this change

Users can notice what's changed by this PR.
2025-07-05 18:22:08 +09:00
syuilo
f128682200 fix type errors 2025-07-05 17:13:29 +09:00
syuilo
cc4cdd1ec0 clean up 2025-07-05 12:13:08 +09:00
syuilo
075df75afa Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-07-05 11:56:22 +09:00
syuilo
64eb338d65 🎨 2025-07-05 11:56:20 +09:00
tamaina
d986da745b ノートのサーバー情報(InstanceTicker)のデザイン/パフォーマンス改善(-webkit-text-stroke ver) (#16225)
* Revert "enhance(frontend): Instance Tickerのデザイン改善 (#15946)"

This reverts commit 04928ba7d1.

* enhance(frontend): Instance Tickerのデザイン改善(-webkit-text-stroke)

* 🎨

* use theme fg/bg

* use panel
2025-07-05 09:59:48 +09:00
syuilo
50f5b29290 New Crowdin updates (#16237)
* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Indonesian)
2025-07-05 09:07:25 +09:00
syuilo
a460bb7913 perf(frontend): improve rendering performance 2025-07-05 09:05:47 +09:00
syuilo
7cf1eccd04 clean up 2025-07-05 08:31:20 +09:00
syuilo
73397e1b7e Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-07-05 08:18:56 +09:00
tamaina
bf17092b41 test: VS Code上で複数のjestテストを表示できるように (#16251) 2025-07-05 08:18:15 +09:00
github-actions[bot]
6d1018f42b Bump version to 2025.7.0-beta.0 2025-07-04 09:52:01 +00:00
かっこかり
7667011266 fix(frontend): ウェルカムタイムラインのメディア表示がCWを考慮していない問題を修正 (#16247)
* fix(frontend): ウェルカムタイムラインのメディア表示がCWを考慮していない問題を修正

* Update Changelog
2025-07-04 18:49:21 +09:00
syuilo
a45ccc18b4 refactor 2025-07-04 18:33:41 +09:00
syuilo
c29a4d9503 fix(test): Play検索機能でBackend Unit Testが壊れている 2025-07-04 18:31:34 +09:00
syuilo
5caf2b27cf fix(test): Play検索機能でBackend Unit Testが壊れている
Fix #16248
2025-07-04 16:32:56 +09:00
syuilo
dd87d26bdc feat: Playを検索できるように
#13115
2025-07-04 10:20:00 +09:00
かっこかり
b7a6301c2e fix(frontend): プラグインのアンインストール時にローカルのセーブデータを削除するように (#16246)
* fix(frontend): プラグインのアンインストール時にローカルのセーブデータを削除するように

* Update Changelog

* remove unused import

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-07-04 07:40:00 +09:00
syuilo
73e8d950df enhance(frontend): 投稿フォームにファイルをペースト/ドロップした際のUXを改善
Resolve #16205
2025-07-03 19:11:46 +09:00
syuilo
45033974f7 Update CHANGELOG.md 2025-07-03 19:03:34 +09:00
github-actions[bot]
7acfbc23d6 Bump version to 2025.7.0-alpha.0 2025-07-03 09:57:13 +00:00
github-actions[bot]
a9a746edce Bump version to 2025.6.4-alpha.4 2025-07-03 09:55:33 +00:00
かっこかり
179d990c39 fix(frontend): タブが不可視なあいだのpaginationのアップデートを停止するように (#16243)
* fix(frontend): タブが不可視なあいだのpaginationのアップデートを停止するように

* fix lint

* 待たない
2025-07-03 18:52:16 +09:00
4ster1sk
7c44881ca8 enhance(backend): avatarUrlの上限文字数の引き上げ (#16235) 2025-07-03 18:03:02 +09:00
tamaina
ccbc4cffaa enhance(frontend): 共有ページで、titleとtextに同じ内容が入っていた際の削除ロジックを強化 (#16226)
* enhance(frontend): 共有ページで、titleとtextに同じ内容が入っていた際の削除ロジックを強化
Fix #16224

* fix

* +→*

* fix

* use RegExp.test

* Update packages/frontend/src/pages/share.vue

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>

---------

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2025-07-03 18:00:43 +09:00
tamaina
706244925d fix(frontend): 条件により保存できない場合のメッセージを汎用的なものへ (#16238)
Fix #16228
2025-07-03 17:59:55 +09:00
かっこかり
09a5e4b10a fix(frontend): Paginatorの型エラー解消 (#16230)
* fix(frontend): fix paginator type error

* fix

* refactor

* fix

* fix

* fix(paginator): remove readonly type

* fix

* typo

* fix: R -> E

* remove any

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-07-03 11:20:26 +09:00
syuilo
c48acad04b 🎨 2025-06-29 17:21:43 +09:00
github-actions[bot]
5d3bb02f4b Bump version to 2025.6.4-alpha.3 2025-06-29 06:47:43 +00:00
syuilo
933e252687 fix of f1deb89e34 2025-06-29 15:36:39 +09:00
syuilo
f1deb89e34 refactor(frontend): improve pagination implementation 2025-06-29 15:11:25 +09:00
syuilo
8bc822d829 feat(backend): クリップ内でノートを検索できるように 2025-06-29 15:10:51 +09:00
syuilo
c215cccf1d enhance(frontend): ファイルアップロード時にセンシティブ設定されているか表示するように 2025-06-29 08:50:55 +09:00
github-actions[bot]
0685bdf05c Bump version to 2025.6.4-alpha.2 2025-06-28 12:52:32 +00:00
syuilo
3394ed2122 New Crowdin updates (#16207)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (English)
2025-06-28 21:43:22 +09:00
syuilo
c5a440cf22 Update types.ts 2025-06-28 21:43:14 +09:00
syuilo
3c6f07fc8c feat: モデログを検索できるように 2025-06-28 21:38:54 +09:00
syuilo
3c5ed0ffbb enhance(frontend): improve modlog pagination 2025-06-28 21:18:36 +09:00
syuilo
b8e8f3ad25 enhance: ページネーション(一覧表示)の基準日時を指定できるように sinceId/untilIdが指定可能なエンドポイントにおいて、sinceDate/untilDateも指定可能に 2025-06-28 20:21:21 +09:00
syuilo
012b2a9764 enhance(frontend): improve MkTl rendering 2025-06-28 19:24:55 +09:00
syuilo
dfbc40f868 lint 2025-06-28 19:20:02 +09:00
syuilo
32ddaa0cf8 Update about-misskey.vue 2025-06-28 12:02:16 +09:00
syuilo
bf6e218355 refactor 2025-06-28 12:00:15 +09:00
syuilo
19ef6c0b14 Update about-misskey.vue 2025-06-27 20:10:17 +09:00
syuilo
535b86f05e lint 2025-06-27 10:02:49 +09:00
taichan
01a94eaecb chore(CI): cache ffmpeg (#16223)
* ci: use daily cache for ffmpeg

* fix(ci): input type

* Fix current date

* Just use Daily cache

* fix condition
2025-06-26 19:08:47 +09:00
syuilo
9a28fa0534 refactor(frontend/pref): refactor preferences manager
Refactored preferences manager to decouple account context and storage provider, improving normalization and loading of profiles. Replaced static profile creation/normalization with instance-based logic, and updated usage in preferences.ts to pass account context explicitly. This enhances maintainability and prepares for better guest account handling.
2025-06-26 16:25:43 +09:00
github-actions[bot]
899273554a Bump version to 2025.6.4-alpha.1 2025-06-26 04:38:12 +00:00
syuilo
bf57557ba3 refactor(frontend): refactor uploader image editing features and menu
Replaces separate 'effect' and 'crop' features with a unified 'imageEditing' feature in the uploader. Groups crop and effect actions under a new parent 'editImage' menu item, adds localization for 'editImage', and updates supported types accordingly.
2025-06-26 12:10:15 +09:00
syuilo
8fda4fefaf refactor 2025-06-26 12:06:53 +09:00
syuilo
f1983d1aa5 Update type from UploaderDialogFeatures to UploaderFeatures
Replaces the UploaderDialogFeatures type with UploaderFeatures in the select function and SelectFileOptions type to ensure consistency and correct type usage.
2025-06-26 12:02:25 +09:00
syuilo
60649f4d66 add note 2025-06-26 12:01:56 +09:00
syuilo
525a330637 tweak eslint config 2025-06-26 10:49:41 +09:00
taichan
b455e63da7 chore(frontend): 開発モード時に言語ファイルの変更を自動で反映するように (#16215)
* chore(frontend): 開発モード時に言語ファイルの変更を自動で反映するように

* fix message

* naming

* SPDX
2025-06-26 08:26:44 +09:00
syuilo
5626677e86 Update CHANGELOG.md 2025-06-25 20:30:49 +09:00
keito
c424554d4a ジョブキューのProgressの値を正しく計算する (#16218)
* fix: ジョブキューのProgressの値の範囲を 0~100 に統一

* fix(backend): ジョブキューのProgressの計算に用いる総数を最初に一度だけ取得する
2025-06-25 20:30:17 +09:00
syuilo
eee9a5f853 enhance(frontend): ページネーションの並び順を逆にできるように 2025-06-25 20:26:20 +09:00
github-actions[bot]
4d72d6caf4 Bump version to 2025.6.4-alpha.0 2025-06-25 08:50:37 +00:00
taichan
b752dc72e5 feat: ノートの下書き(draft of note) (#15298)
* WIp (backend)

* Remove unused

* 下書きbackend 続き

* fix(backedn): visibilityが下書きに反映されない

* Update packages/backend/src/postgres.ts

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

* Fix : import order

* fix(backend) : createでcwが効かない

* FIX FOREGIN KEY

* wip: frontend(既存の下書きを挿入)

まだ:チャンネル表示、下書きの作成、削除

* WIP: ノート選択ダイアログ
投稿時に下書きを削除

* Promiseに変更

* 連合なし、チャンネルも表示

* Hashtagの値抜け漏れ

* hasthagを0文字でも作成可能に

* 下書きの保存機構

* chore(misskey-js): build types

* localOnly抜け漏れ

* チャンネル情報の書き換え

* enhance(frontend): ヘッダ部の表示改善

* fix(frontend): ファイル添付できない

* fix: no file

* fix(frontend): 投票が反映されない

* ハッシュタグの展開(コメントアウト外し忘れ)

* fix: visibleUserIdsが反映されない

* enhance: APIの型を整備

* refactor: 型が整備できたのでasを削除

* Add userhost

* fix

* enhance: paginationを使う

* fix

* fix: 自分のアカウントでの投稿でしか下書きを利用できないように

完全に塞ぐことはできないが一応

* 🎨

* APIのエラーIDを追加

* enhance: スタイル調整

* remove unused code

* 🎨

* fix: ロールポリシーの型

* ロールの編集画面

* ダイアログの挙動改善

* 下書き機能が利用できない場合は表示しないように

* refactor

* fix: ダブルクリックが効かない問題を修正

* add comments

* fix

* fix: 保存時のエラーの種別にかかわらずmodalを閉じないように

* fix()backend: NoteDraftのreply, renoteの型が間違ってたので修正 (migtrationはあってた)

* fix: 投稿フォームを空白にして通常リノートできるやつは下書きとしては弾くように

* fix(backend): テキストが0文字でも下書きは保存できるように

* Fix(backend): replyIdの型定義がミスっているのを修正

* chore(misskey-js): update types

* Add CHANGELOG

* lint

* 常にサーバー下書きに保存し、上限を超えた場合のみ尋ねるように

* NoteDraftServiceにcreate, updateの処理を移譲

* Fix typeerror

* remove tooltip

* Remove Mkbutton:short and use iconOnly

* 不要なコメントの削除

* Remove Short Completely

* wip

* escキーまわりの挙動を改善

* 下書き選択時に下書き可能数と現在の量が分かるように

* cleanUp

* wip

* wi

* wip

* Update MkPostForm.vue

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-06-25 17:09:23 +09:00
syuilo
06d31c0b78 fix(frontend): ファイルがドライブの既定アップロード先に指定したフォルダにアップロードされない問題を修正
Fix #16206
2025-06-25 10:55:30 +09:00
syuilo
32d4c312ef enhance(frontend): ファイルアップロード前にキャプション設定を行えるように
Resolve #16210
2025-06-25 10:49:58 +09:00
syuilo
36fde67992 enhance(frontend): improve theme settings 2025-06-25 10:23:39 +09:00
syuilo
43abbce2af enhance(frontend): 全てのページネーションにおいてコンテキストメニューからリロードできるように 2025-06-25 10:08:44 +09:00
syuilo
684424f26a enhance(frontend): improve useScrollPositionKeeper 2025-06-24 20:30:32 +09:00
syuilo
36989e0cd3 Update about-misskey.vue 2025-06-24 20:24:34 +09:00
syuilo
d518682e73 add note 2025-06-24 11:44:16 +09:00
syuilo
0ada970337 enhance(frontend): 設定の自動バックアップをオンにした直後に自動バックアップするように 2025-06-23 17:12:25 +09:00
github-actions[bot]
a812dfe853 [skip ci] Update CHANGELOG.md (prepend template) 2025-06-16 11:13:27 +00:00
github-actions[bot]
2baec208f5 Release: 2025.6.3 2025-06-16 11:13:22 +00:00
github-actions[bot]
4093616e23 Bump version to 2025.6.3-alpha.0 2025-06-16 10:52:09 +00:00
syuilo
062d5170df fix(frontend): キャッシュを削除しないとクライアントが使用できないことがある問題を修正
Fix #16196
2025-06-16 19:51:26 +09:00
github-actions[bot]
a279bd4d49 [skip ci] Update CHANGELOG.md (prepend template) 2025-06-16 08:58:37 +00:00
github-actions[bot]
978ae706eb Release: 2025.6.2 2025-06-16 08:58:31 +00:00
syuilo
824643a44e [skip ci] Update CHANGELOG.md 2025-06-16 17:57:09 +09:00
github-actions[bot]
213c569242 Bump version to 2025.6.2-alpha.0 2025-06-16 05:08:24 +00:00
syuilo
a1cf2d3074 New Crowdin updates (#16192)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)
2025-06-16 14:07:48 +09:00
syuilo
4ea7c76c02 fix(frontend): キャッシュを削除しないとクライアントが使用できないことがある問題を修正 2025-06-16 13:55:27 +09:00
github-actions[bot]
1782a353d3 [skip ci] Update CHANGELOG.md (prepend template) 2025-06-16 02:33:19 +00:00
github-actions[bot]
c69a13b592 Release: 2025.6.1 2025-06-16 02:33:14 +00:00
syuilo
40e35c051a Update CHANGELOG.md 2025-06-15 11:10:03 +09:00
syuilo
b93717be33 Update CHANGELOG.md
Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
2025-06-15 11:08:53 +09:00
syuilo
fe805fb7f0 enhance(frontend/image-effector): tweak fxs 2025-06-15 11:06:46 +09:00
syuilo
e9af9d4451 enhance(frontend/image-effector): tweak fxs 2025-06-15 10:57:29 +09:00
syuilo
ce90fee586 enhance(frontend/image-effector): add blockNoise fx 2025-06-15 10:55:11 +09:00
syuilo
5bec8ba6b0 enhance(frontend/image-effector): tweak fxs 2025-06-15 10:19:42 +09:00
syuilo
3dbfd80d65 enhance(frontend/image-effector): tweak colorAdjust fx 2025-06-15 09:25:57 +09:00
syuilo
b33eeb1366 enhance(frontend/image-effector): tweak distort fx 2025-06-15 08:47:59 +09:00
syuilo
420756d744 Update CHANGELOG.md 2025-06-14 19:50:56 +09:00
かっこかり
32d721abf1 refactor(frontend): checkWordMuteの返り値が誤っている問題を修正 (#16188)
* refactor(frontend): checkWordMuteの返り値が誤っている問題を修正

* fix lint
2025-06-14 16:08:14 +09:00
github-actions[bot]
8ea6aa2ef3 Bump version to 2025.6.1-rc.0 2025-06-14 03:16:12 +00:00
syuilo
bc07b79a23 fix(frontend): デッキのタイムラインカラムで新着ノート時のサウンドが再生されない問題を修正
Fix #16164
2025-06-14 11:36:42 +09:00
syuilo
aae7961540 New Crowdin updates (#16187)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2025-06-13 10:31:14 +09:00
github-actions[bot]
1ad32990cb Bump version to 2025.6.1-beta.2 2025-06-12 10:07:07 +00:00
zyoshoka
89db7b3fa8 fix(frontend): display reactions correctly in welcome timeline (#16186) 2025-06-12 19:05:24 +09:00
syuilo
151121a567 New Crowdin updates (#16183)
* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Italian)
2025-06-12 17:34:12 +09:00
mochi33i
966e0812f5 fix(misskey-js) : misskey-jsの drive/file/create でファイルアップロードができない問題を修正 (#16028)
* fix(misskey-js): drive/file/createが動かない問題を修正

* CHANGELOG.mdに修正内容を追加
2025-06-12 16:54:59 +09:00
syuilo
d378156212 Update CHANGELOG.md 2025-06-12 16:08:07 +09:00
renovate[bot]
568021498f fix(deps): update [root] update dependencies (#16142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 14:39:49 +09:00
github-actions[bot]
8f66ffc14d Bump version to 2025.6.1-beta.1 2025-06-11 03:45:02 +00:00
syuilo
63e8935c86 fix(frontend): disable note_view_interruptor temporary to prevent rendering glitch 2025-06-11 12:42:49 +09:00
renovate[bot]
b16a05b9a7 fix(deps): update [backend] update dependencies (#16143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 09:56:29 +09:00
おさむのひと
090262f3c6 fix: pnpm-lock.yamlの再生成 (#16182) 2025-06-11 08:57:42 +09:00
renovate[bot]
bc5a33d87f chore(deps): update [misskey-js] update dependencies (#16140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 16:08:04 +09:00
renovate[bot]
0ffd9e267a fix(deps): update [frontend] update dependencies (#16144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 16:07:34 +09:00
renovate[bot]
81bc27d804 chore(deps): update [tools] update dependencies (#16141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-10 15:53:04 +09:00
github-actions[bot]
f50abed98d Bump version to 2025.6.1-beta.0 2025-06-10 04:43:58 +00:00
syuilo
8ab574a31a New Crowdin updates (#16163)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)
2025-06-10 13:42:09 +09:00
syuilo
9a3219f12e fix(frontend): Plugin:register_note_view_interruptor()によるノートの書き換えが機能しない問題を修正
Fix #16180
2025-06-10 09:51:45 +09:00
zyoshoka
b5767c315a fix(backend): correct outbox pagination (#16176) 2025-06-08 09:12:59 +09:00
github-actions[bot]
ac9206f192 Bump version to 2025.6.1-alpha.4 2025-06-07 10:52:03 +00:00
かっこかり
e2b38edb3a deps(misskey-js): Update openapi-typescript to v7 (#15491)
* deps(misskey-js): Update openapi-typescript to v7

* update openapi-typescript to v7.7.3

* generate misskey-js types

* bump openapi-typescript

* enhance: 生成物からnever型を除去するように

* regenerate api types

* refactor: 処理共通化

---------

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2025-06-07 19:36:00 +09:00
syuilo
c5dc0fd51b Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-06-07 09:26:51 +09:00
syuilo
dda2ad6bcd fix(frontend): support non-image files 2025-06-07 09:26:49 +09:00
github-actions[bot]
a5429ebeee Bump version to 2025.6.1-alpha.3 2025-06-06 23:36:20 +00:00
syuilo
1c3604c7fb 🎨 2025-06-07 08:15:31 +09:00
syuilo
4906f1f45c 🎨 2025-06-07 08:07:23 +09:00
syuilo
6506429f09 enhance(frontend): アップローダー内でセンシティブフラグを設定可能に 2025-06-07 07:57:23 +09:00
syuilo
9bd5f887de enhance(frontend): 投稿フォームにアップローダーを埋め込み (#16173)
* wip

* Update MkPostForm.vue

* wip

* wip

* Update MkPostForm.vue

* wip

* wip

* add tip

* Update tips.ts

* Update MkPostForm.vue
2025-06-07 07:47:43 +09:00
syuilo
be35fe468b refactor(frontend): refactor tips 2025-06-06 21:03:35 +09:00
syuilo
4b9b3ced01 enhance(frontend): improve MkTip usability 2025-06-06 20:59:01 +09:00
syuilo
20b8148ddf chore(frontend): tweak ui 2025-06-06 09:02:47 +09:00
github-actions[bot]
019dfbdc1c Bump version to 2025.6.1-alpha.2 2025-06-05 13:27:28 +00:00
かっこかり
95ea62f222 enhance(frontend): 画像エフェクトの操作でRangeをダブルクリックしたらデフォルトの値に戻るように (#16171)
* enhance(frontend): エフェクトの操作でRangeをダブルクリックしたらデフォルトの値に戻るように

* fix: trackの計算方法を修正

* remove unnecessary async
2025-06-05 22:25:49 +09:00
syuilo
fde67dca74 enhance(frontend): tweak server setup wizard 2025-06-05 21:05:11 +09:00
かっこかり
a603a4970e enhance(frontend): 画像エフェクト「色調補正」を追加 (#16170) 2025-06-05 20:29:02 +09:00
zyoshoka
f37a1e84bd chore: fix failure to publish misskey-js to npm registry (#16169) 2025-06-05 19:21:15 +09:00
syuilo
6c9e055aae add note 2025-06-05 15:05:00 +09:00
syuilo
a971e44cee refactor(frontend): refactor ImageEffector 2025-06-05 15:00:17 +09:00
syuilo
c6808f1eb6 refactor(frontend): refactor ImageEffector 2025-06-05 12:58:32 +09:00
syuilo
2a78360588 refactor(frontend): refactor ImageEffector 2025-06-05 12:25:22 +09:00
zyoshoka
65ba33867b fix(backend): avoid deadlock when deleting account (#16162) 2025-06-04 19:14:11 +09:00
syuilo
b55cc03621 New Crowdin updates (#16155)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)
2025-06-04 18:25:39 +09:00
かっこかり
80f73c6712 enhance(gh): renovateのicons-subsetterをfrontendグループに統合 (#16161) 2025-06-04 16:39:06 +09:00
syuilo
60fc9a5195 🎨 2025-06-04 16:33:55 +09:00
かっこかり
b43dfa260b fix/refactor(frontend): 画像編集機能の修正・型強化 (#16156)
* enhance: refine uploadFile

* fix: missing locale

* refactor: harden types

* refactor: シェーダーファイルをlazy-loadingできるように

* fix(frontend): omit console.log in production environment

* fix: glslのバージョン表記は最初の行になければならない

* fix: シェーダーの読み込みが完了してからレンダリングを行うように

* fix merge failure

* fix: ウォーターマークのプリセットがない場合にdividerが2重に表示される問題を修正

* fix: アップローダーダイアログの機能設定でウォーターマークが無効な場合でもデフォルトのプリセットが適用されてしまう問題を修正

* fix lint

* Revert "fix: シェーダーの読み込みが完了してからレンダリングを行うように"

This reverts commit e06f37a7d4.

* Revert "fix: glslのバージョン表記は最初の行になければならない"

This reverts commit afcc37d886.

* Revert "refactor: シェーダーファイルをlazy-loadingできるように"

This reverts commit a1ab2fa38c.

* fix: ウォーターマークのFX定義を分ける

* Update packages/frontend/src/components/MkWatermarkEditorDialog.vue

* Update packages/frontend/src/components/MkWatermarkEditorDialog.vue

* Update packages/frontend/src/components/MkWatermarkEditorDialog.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-06-04 16:22:09 +09:00
syuilo
e3b57a118d 🎨 2025-06-04 16:15:06 +09:00
syuilo
fdcb6a09a9 fix(frontend): タッチ操作時にチャートのツールチップが消えなくなる場合がある問題を修正 2025-06-04 16:10:57 +09:00
syuilo
218df19d9c enhance(frontend): スマホでのMkModalWindowの表示を最適化 2025-06-04 12:28:50 +09:00
syuilo
b766589c00 enhance(frontend): ミュートした絵文字をデバイス間で同期できるように
Resolve #16158
2025-06-04 12:01:33 +09:00
かっこかり
d94bdff639 fix(misskey-js): build misskey-js with types (#16159) 2025-06-04 11:49:29 +09:00
github-actions[bot]
3a4288fe24 Bump version to 2025.6.1-alpha.1 2025-06-03 12:13:26 +00:00
syuilo
12c71de4c7 New Crowdin updates (#16153)
* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean (Gyeongsang))
2025-06-03 21:07:02 +09:00
syuilo
b7aa013a41 feat: 全てのチャットメッセージを既読にできるように 2025-06-03 21:06:37 +09:00
github-actions[bot]
3ff2e6b299 Bump version to 2025.6.1-alpha.0 2025-06-03 10:19:12 +00:00
syuilo
cd9322a824 feat(frontend): 画像編集機能 (#16121)
* wip

* wip

* wip

* wip

* Update watermarker.ts

* wip

* wip

* Update watermarker.ts

* Update MkUploaderDialog.vue

* wip

* Update ImageEffector.ts

* Update ImageEffector.ts

* wip

* wip

* wip

* wip

* wip

* wip

* Update MkRange.vue

* Update MkRange.vue

* wip

* wip

* Update MkImageEffectorDialog.vue

* Update MkImageEffectorDialog.Layer.vue

* wip

* Update zoomLines.ts

* Update zoomLines.ts

* wip

* wip

* Update ImageEffector.ts

* wip

* Update ImageEffector.ts

* wip

* Update ImageEffector.ts

* swip

* wip

* Update ImageEffector.ts

* wop

* Update MkUploaderDialog.vue

* Update ImageEffector.ts

* wip

* wip

* wip

* Update def.ts

* Update def.ts

* test

* test

* Update manager.ts

* Update manager.ts

* Update manager.ts

* Update manager.ts

* Update MkImageEffectorDialog.vue

* wip

* use WEBGL_lose_context

* wip

* Update MkUploaderDialog.vue

* Update drive.vue

* wip

* Update MkUploaderDialog.vue

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip
2025-06-03 19:18:29 +09:00
syuilo
9fdc3c5def chore(frontend): remove duplicate declarations 2025-06-03 18:44:51 +09:00
かっこかり
4af8c7f8b0 enhance(frontend): リアクションビューワーで使用可能なリアクションを優先して表示するオプション (#16149)
* enhance(frontend): リアクションビューワーで使用可能なリアクションを優先して表示するオプション

* Update Changelog

* tweak

* fix

* enhance: リアクティブじゃなくする

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-06-03 18:44:01 +09:00
syuilo
ed29a3613b fix(frontend): fix user search pagination 2025-06-03 17:57:51 +09:00
かっこかり
810a609df4 fix(frontend): 一部のグリッドのページネーションが正しく表示されない問題を修正 (#16147)
* fix(frontend): 一部のグリッドのページネーションが正しく表示されない問題を修正

* update changelog

* fix
2025-06-03 17:20:11 +09:00
かっこかり
5537558fa7 fix(frontend): ドライブのファイル選択が不安定な問題を修正 (#16148)
* fix(frontend): ドライブのファイル選択が不安定になっているのを修正

* Update Changelog
2025-06-03 15:45:26 +09:00
syuilo
26215b7466 🎨 2025-06-03 10:35:02 +09:00
syuilo
0a0247a678 enhance(frontend): add config button to emoji picker to improve usability 2025-06-03 08:04:15 +09:00
syuilo
93d17aff6c refactor(frontend): ID生成処理を統一 2025-06-03 07:37:08 +09:00
syuilo
3bc81522c6 enhance(frontend): IDにUUIDを使うのをやめる (#16138)
* wip

* Update flash-edit.vue
2025-06-03 07:31:19 +09:00
github-actions[bot]
2a077de148 [skip ci] Update CHANGELOG.md (prepend template) 2025-06-02 00:58:35 +00:00
github-actions[bot]
3eb64ccf7a Release: 2025.6.0 2025-06-02 00:58:25 +00:00
syuilo
47fede5e5c Update CHANGELOG.md 2025-06-02 09:43:27 +09:00
renovate[bot]
b48a25ea77 fix(deps): update [frontend] update dependencies (#16086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-02 09:13:06 +09:00
github-actions[bot]
51e7081c9d Bump version to 2025.6.0-beta.1 2025-06-01 23:49:28 +00:00
syuilo
982ae9238d New Crowdin updates (#16136)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)
2025-06-02 08:43:56 +09:00
syuilo
d40c083233 enhance(frontend): 非同期的なコンポーネントの読み込み時のハンドリングを強化 2025-06-02 08:43:04 +09:00
syuilo
8f025c447b fix(backend): ログインできなくなるため、ugcVisibilityForVisitorがnoneでもusers/showは許可するように 2025-06-02 08:37:22 +09:00
syuilo
9dc423afd4 fix(frontend): tweak MkFolderPage z-index 2025-06-02 08:32:22 +09:00
github-actions[bot]
5893a95c99 Bump version to 2025.6.0-beta.0 2025-06-01 01:49:22 +00:00
syuilo
f4167ae7f1 enhance(frontend): 非同期的なコンポーネントの読み込み時のハンドリングを強化 2025-06-01 10:44:45 +09:00
syuilo
63db879bcc fix(frontend): remove unused text 2025-06-01 10:22:32 +09:00
syuilo
bd17b465c3 New Crowdin updates (#16129)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)
2025-06-01 09:34:08 +09:00
syuilo
6b1fbf6819 Update about-misskey.vue 2025-06-01 09:24:49 +09:00
github-actions[bot]
021c332097 Bump version to 2025.6.0-alpha.0 2025-06-01 00:22:01 +00:00
syuilo
5bdbff19ae fix(frontend): リアクションの一部の絵文字が重複して表示されることがある問題を修正
Fix #16130
2025-06-01 08:10:49 +09:00
syuilo
070a4516fc 🎨 2025-06-01 07:57:22 +09:00
syuilo
c5d33661b2 chore(frontend): improve type def 2025-06-01 07:57:18 +09:00
github-actions[bot]
777ca15083 [skip ci] Update CHANGELOG.md (prepend template) 2025-05-31 12:37:08 +00:00
github-actions[bot]
21344f7695 Release: 2025.5.1 2025-05-31 12:37:02 +00:00
syuilo
4254f52ced New Crowdin updates (#16126)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)
2025-05-31 18:06:59 +09:00
syuilo
f14787bd10 fix(frontend): ベースロールの、「アップロード可能なファイル種別」を変更しても正しく保存されない
Fix #16128
2025-05-31 18:04:00 +09:00
syuilo
14cbc78031 Update packages/frontend/src/pages/admin/custom-emojis-manager.register.vue
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2025-05-31 17:41:04 +09:00
github-actions[bot]
62e333191d Bump version to 2025.5.1-beta.6 2025-05-31 07:38:56 +00:00
おさむのひと
0c2d799acd fix(backend): ジョブキュー画面のPausedタブをアクティブにすると400エラーが返ってくるのを修正 (#16124)
* fix(backend): ジョブキュー画面のPausedタブをアクティブにすると400エラーが返ってくるのを修正

* fix CHANGELOG.md
2025-05-31 16:34:25 +09:00
syuilo
aa4c7a1313 fix(frontend): アカウント依存かつ初期状態である設定値をサーバー同期しようとした際に正しくコンフリクト検出されない問題を修正 2025-05-31 16:33:03 +09:00
syuilo
743995e469 enhance(frontend): make pref sync more smart 2025-05-31 14:15:40 +09:00
syuilo
0254570fbf enhance(frontend): 設定の同期をオンにするときに競合したときに値をマージできるように 2025-05-31 12:49:10 +09:00
syuilo
9f196bbf75 New Crowdin updates (#16116)
* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)
2025-05-30 16:28:49 +09:00
github-actions[bot]
4c77f3e597 Bump version to 2025.5.1-beta.5 2025-05-29 08:49:19 +00:00
syuilo
85d339ee91 fix(frontend): チャットに動画ファイルを送付すると、動画の表示が崩れてしまい視聴出来ない問題を修正
Fix #15854
2025-05-29 17:44:30 +09:00
syuilo
0f6b28f970 enhance(backend): tweak default maxFileSizeMb value
ref: #15988
2025-05-29 17:35:10 +09:00
syuilo
75dcebc341 enhance(frontend): デバイスのダークモードと同期するオプションが有効なときにテーマを手動で切り替えようとした際の警告を表示 2025-05-29 17:32:10 +09:00
syuilo
85c28d5cb7 enhance(backend): 外部サイトのOGPのキャッシュ期間を調整 2025-05-29 13:53:33 +09:00
github-actions[bot]
c1ff6feeda Bump version to 2025.5.1-beta.4 2025-05-29 04:24:41 +00:00
anatawa12
1214d1d8fc Export/Import withReplies (#15986)
* feat: export withReplies of UserList

* feat: export withReplies of following

* import following時のwithRepliesがデフォルト値であることを明示する

* changelog

* update index.d.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-05-29 13:15:41 +09:00
anatawa12
367dac4edd Fix: ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題 (#16009)
* chore: change 3rd parameter of generateMutedUserQueryForNotes to options

* chore: allow specifying note column for note/block query

* chore: check for mute / block for renote of note with DB query

* chore: check for mute / block for renote of note with FTT

* refactor: ミュート・ブロックのためのクエリ呼び出しを一つの関数にまとめる

* docs(changelog): ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正

* fix missing default parameter

* Update is-user-related.ts

* test: add tests for mutes

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-05-29 13:13:07 +09:00
syuilo
e4b7a1f4e1 fix tests
* test

* Update activitypub.ts

* Update activitypub.ts

* Update create.ts

* Update create.ts

* Update endpoints.ts
2025-05-29 12:41:27 +09:00
github-actions[bot]
e786ff4bf1 Bump version to 2025.5.1-beta.3 2025-05-29 02:50:18 +00:00
syuilo
e4a2d1658b New Crowdin updates (#16085)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)
2025-05-29 11:43:28 +09:00
Soli
ed8a95f5bc fix(frontend): Twitch クリップの埋め込みが開けない問題を修正 (#16102) 2025-05-29 11:43:08 +09:00
syuilo
825c337cf4 improve log 2025-05-28 19:01:21 +09:00
おさむのひと
9bbc2028ad feat: URLプレビューのリダイレクトを受け入れるかどうかを設定できるようにする (#16112)
* feat: URLプレビューのリダイレクトを受け入れるかどうかを設定できるようにする

* fix CHANGELOG.md

* fix lang
2025-05-27 20:46:22 +09:00
zyoshoka
97e916c912 refactor(frontend): revoke weakening endpoint param type of API caller for type safety (#16100) 2025-05-27 20:45:05 +09:00
anatawa12
e954060f3b chore(dev): update vite configuration (#16110) 2025-05-27 15:18:37 +09:00
anatawa12
e078cd9296 fix: jest.js exits with zero value even if underlying jest exited with non-zero value (#16111) 2025-05-27 15:07:47 +09:00
かっこかり
1276e65049 fix(backend): follow-up of #16105 (#16109) 2025-05-27 14:42:48 +09:00
かっこかり
07c2de3749 fix(backend): typeormのbreaking changeに対応 (#16105)
* fix(backend): typeormのbreaking changeに対応

* attempt to fix test
2025-05-27 13:50:45 +09:00
renovate[bot]
47f4f11e3e fix(deps): update [backend] update dependencies (#16087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-27 13:18:59 +09:00
zyoshoka
d27075c5f5 fix(backend): correct invalid schema format specifying only required for anyOf (#16089)
* fix(backend): correct invalid schema format specifying only `required` for `anyOf`

* refactor(backend): make types derived from `allOf` or `anyOf` more strong
2025-05-27 08:57:09 +09:00
zyoshoka
ed3a844f5d fix(backend): add response schema for notes/show-partial-bulk endpoint (#16093) 2025-05-25 08:38:45 +09:00
かっこかり
0504d4399c fix(frontend): リアクション削除イベントのコンディションが誤っていたのを修正 (#16097) 2025-05-25 08:38:29 +09:00
かっこかり
fab9db405c fix(frontend): タブ間同期が行われるとテーマが切り替わり続ける問題を修正 (#16094) 2025-05-25 08:37:39 +09:00
github-actions[bot]
02b37b7adf Bump version to 2025.5.1-beta.2 2025-05-24 09:42:21 +00:00
かっこかり
02041344bd fix(frontend); カスタム絵文字のリアクションが二重で表示されることがある問題を修正 (#16092)
* fix(frontend): カスタム絵文字のリアクションが二重で表示されることがある問題を修正

* fix: improve event locking mechanism

* fix: remove unused console log

* fix: unused import

* fix: その場で書き換えることで再レンダリングを最小限に抑える(かも)

* refactor: reactive note data を composable内で生成するように
2025-05-24 18:31:55 +09:00
github-actions[bot]
fe1b2b00f5 Bump version to 2025.5.1-beta.1 2025-05-24 05:32:52 +00:00
syuilo
4fcb80bcf2 enhance(backend): ファイル種別が判定できない場合、拡張子を参照するように 2025-05-24 14:28:49 +09:00
syuilo
836ed98c54 Update CHANGELOG.md 2025-05-24 14:06:54 +09:00
syuilo
64791a7160 fix(frontend): ユーザに表示されるファイル種別と、実際のファイル種別が異なり、ファイルをアップロードすることに失敗することがある問題を修正
Fix #16091
2025-05-24 13:59:26 +09:00
syuilo
90e39d22d2 fix(backend): unallowedFileTypeエラーがハンドリングされていない問題を修正 2025-05-24 13:55:34 +09:00
zyoshoka
9c98c13743 fix(backend): better nullable ref schema representation (#16088)
* fix(backend): better nullable ref schema representation

* refactor
2025-05-23 20:27:16 +09:00
syuilo
bbbc68a772 enhance(frontend): tweak default preferences 2025-05-23 20:26:12 +09:00
syuilo
554623e5a8 🎨 2025-05-23 15:59:41 +09:00
syuilo
6c4b055921 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-05-23 14:02:57 +09:00
syuilo
227ca69704 🎨 2025-05-23 14:02:55 +09:00
github-actions[bot]
a1b5786939 Bump version to 2025.5.1-beta.0 2025-05-23 03:55:52 +00:00
syuilo
2a6bc2154c fix(frontend): エラー画像が横長になる
Fix #15982
2025-05-23 12:33:09 +09:00
syuilo
4ad8b59b49 enhance(frontend): アップロード前のリネームを可能に 2025-05-23 12:28:30 +09:00
かっこかり
b6ade8315a fix(frontend): 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように (#16073)
* fix(frontend): 一定時間操作がなかったら動画プレイヤーのコントロールを隠すように

* Update Changelog
2025-05-23 11:55:48 +09:00
果物リン
2352d50e99 MkTooltipが画面左端を突き抜けないようにする (#15890) 2025-05-23 11:54:34 +09:00
syuilo
2bfbbbf16a enhance(frontend): improve tips 2025-05-23 10:46:42 +09:00
かっこかり
9d36d36fc4 fix(backend): admin側のエンドポイントで作成した招待コードに作成者の情報が記録されない問題を修正 (#16076)
* fix(backend): admin側のエンドポイントで作成した招待コードに作成者の情報が記録されない問題を修正

* Update Changelog
2025-05-23 09:49:21 +09:00
github-actions[bot]
479d7a58a4 Bump version to 2025.5.1-alpha.5 2025-05-22 14:21:07 +00:00
かっこかり
2fb9a16a02 enhance(gh): do lint check on icons-subsetter in github actions 2025-05-22 23:04:30 +09:00
syuilo
20d56ccb89 New Crowdin updates (#16006)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Sinhala)

* New translations ja-jp.yml (Sinhala)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)
2025-05-22 23:01:53 +09:00
syuilo
e750c9171e feat: ロールでアップロード可能なファイル種別を設定可能に (#16081)
* wip

* Update RoleService.ts

* wip

* Update RoleService.ts

* Update CHANGELOG.md
2025-05-22 23:01:31 +09:00
かっこかり
aaee0a788d enhance(frontend): シンタックスハイライトのエンジンをJavaScriptベースのものに変更 (#16084)
* refactor(frontend): シンタックスハイライトのエンジンをJavaScriptベースのものに変更

* Update Changelog
2025-05-22 22:57:04 +09:00
かっこかり
e6e8bfa591 feat(frontend): tabler-iconsのサブセット化 (#15340)
* feat(frontend): tabler-iconsの使用されていないアイコンを削除するように

* fix

* fix

* fix

* fix

* fix

* Update Changelog

* enhance: tablerのCSSを使用されているクラスのみに限定

* 使用するアイコンパッケージをそろえる

* Update CONTRIBUTING.md

* Update CONTRIBUTING.md

* spdx

* typo

* fix: サブセットから除外される書き方をしている部分を修正

* fix: 同じunicodeに複数のアイコンclassが割り当てられている場合に対応

* remove debug code

* Update CHANGELOG.md

* fix merge error

* setup renovate

* fix: woff2ではなくwoffに変換していたのを修正

* update deps

* update changelog
2025-05-22 22:56:38 +09:00
renovate[bot]
c2478e5877 fix(deps): update [backend] update dependencies (#15911)
* fix(deps): update [backend] update dependencies

* run pnpm dedupe to fix type errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-05-22 19:31:38 +09:00
renovate[bot]
fb69efd97c chore(deps): update [misskey-js] update dependencies (#15907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 19:20:54 +09:00
renovate[bot]
d072dfaede fix(deps): update [frontend] update dependencies (#15910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 19:16:10 +09:00
renovate[bot]
4e78c22979 chore(deps): update [tools] update dependencies (#15909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 18:47:33 +09:00
renovate[bot]
f4630589cf fix(deps): update [root] update dependencies (#15908)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-22 18:47:21 +09:00
syuilo
23542530e1 feat(frontend): モバイルデバイスで折りたたまれたUIの展開表示に全画面ページを使用できるように 2025-05-22 14:57:35 +09:00
syuilo
65c2adee36 clean up 2025-05-22 13:06:49 +09:00
syuilo
e4db9b64df refactor(frontend): better type defs 2025-05-22 13:05:28 +09:00
syuilo
74c857e23d refactor(frontend): src -> anchorElement 2025-05-22 12:24:52 +09:00
github-actions[bot]
aa55663ef7 Bump version to 2025.5.1-alpha.4 2025-05-22 03:06:08 +00:00
かっこかり
000ed1f51f fix(frontend): ジョブキューインスペクタの型エラー解消 (#16020)
* fix(frontend): ジョブキューインスペクタの型エラー解消

* fix

* fix

* fix

* fix
2025-05-22 12:06:07 +09:00
かっこかり
c7318f5803 fix(backend): 連合モードが「なし」の場合はactivity jsonへのリンクタグを省略するように (#16074)
* fix(backend): 連合モードが「なし」の場合はactivity jsonへのリンクタグを省略するように

* Update Changelog

* flip condition
2025-05-22 12:02:01 +09:00
syuilo
8ad6ffc2b3 fix(frontend): UIのアニメーションをオフにするとページネーションが表示されない問題を修正
Fix #16078
2025-05-22 09:35:42 +09:00
かっこかり
8c8cea024a enhance(frontend): 通知設定ページにサウンド設定ページへのリンクを追加 (#16072) 2025-05-21 21:13:45 +09:00
かっこかり
ccf5bd337e enhance(frontend): ファイルのアップロードを中止できるように (#16069)
* enhance(frontend): ファイルのアップロードを中止できるように

* Update Changelog

* fix: ダイアログを閉じたり、中断ボタンが押されたりしたときはその後のアップロードをすべて中止するように

* fix
2025-05-21 21:13:19 +09:00
かっこかり
e61b5abb05 fix(frontend): 誤植を修正 (#16075) 2025-05-21 14:20:51 +09:00
かっこかり
2619f69238 enhance(frontend): テーマ切り替えのアニメーションをView Transitionに変更 (#15974)
* enhance(frontend): テーマ切り替えのアニメーションをView Transitionに変更

* fix lint

* fix: 切り替え時間を0.5sに
2025-05-21 14:19:34 +09:00
かっこかり
bd7633c70e enhance(frontend/aiscript): AiScriptからtoastを発行できるように (#16071)
* enhance(frontend/aiscript): AiScriptからtoastを発行できるように

* Update Changelog
2025-05-21 10:23:12 +09:00
かっこかり
95093fc927 🎨 (#16070) 2025-05-21 10:16:30 +09:00
github-actions[bot]
ce4269a50c Bump version to 2025.5.1-alpha.3 2025-05-20 23:25:18 +00:00
syuilo
9480120eba Feat: ドライブ周りのUIの強化 (#16011)
* wip

* wip

* Update MkDrive.vue

* wip

* Update MkDrive.vue

* Update MkDrive.vue

* wip

* Update MkDrive.vue

* Update MkDrive.vue

* wip

* Update MkDrive.vue

* wip

* wip

* wip

* wip

* Update MkDrive.vue

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* feat(frontend): upload dialog (#16032)

* wip

* wip

* Update MkUploadDialog.vue

* wip

* wip

* wip

* wip

* wip

* Update MkUploadDialog.vue

* wip

* wip

* Update MkDrive.vue

* wip

* wip

* Update MkPostForm.vue

* wip

* Update room.form.vue

* Update os.ts

* wiop

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update select-file.ts

* wip

* wip

* Update MkDrive.vue

* Update drag-and-drop.ts

* wip

* wip

* wop

* wip

* wip

* Update MkDrive.vue

* Update CHANGELOG.md

* wipo

* Update MkDrive.folder.vue

* wip

* Update MkUploaderDialog.vue

* wip

* wip

* Update MkUploaderDialog.vue

* wip

* Update MkDrive.vue

* Update MkDrive.vue

* wip

* wip
2025-05-21 07:31:24 +09:00
かっこかり
f74c38f313 enhance(frontend): URLプレビューをユーザーサイドで無効化できるように (#16064)
* enhance(frontend): URLプレビューをユーザーサイドで無効化できるように

* fix lint

* Update Changelog

* fix: 設定項目をデータセーバーに移動
2025-05-20 13:42:30 +09:00
かっこかり
7888f771c3 fix(frontend): ユーザー概要ページのファイルの項目のデザイン改良 (#16063) 2025-05-19 15:03:52 +09:00
zyoshoka
3adcce4a31 chore(deps): fix Renovate package lookup failure
Follow-up to #16055
2025-05-16 18:49:13 +09:00
zyoshoka
5169b1adc0 chore(deps): fix Renovate config for Node.js (#16055) 2025-05-16 18:39:25 +09:00
syuilo
e72ce6085a fix(frontend): tweak use-pagination behaviour 2025-05-14 09:17:40 +09:00
syuilo
59fc18f2cd enhance(frontend): add performance tip 2025-05-14 08:26:30 +09:00
syuilo
26506677c2 enhance: いくつかの設定ファイルの項目をコントロールパネルで設定するように (#16026)
* wip

* Update CHANGELOG.md

* feat: migrate to existing config value (#16030)

* wip

* Update CHANGELOG.md

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2025-05-12 16:55:01 +09:00
syuilo
51b5d740f6 🎨
Fix #16018
2025-05-12 12:17:14 +09:00
github-actions[bot]
fe7b2298f6 Bump version to 2025.5.1-alpha.2 2025-05-12 01:02:03 +00:00
taichan
5bc52b6743 feat(frontend): 絵文字をミュート可能にする機能 (#15966)
* wip ( 絵文字ミュートの基礎実装, PoC )

* refactor: 絵文字のmute/unmute処理の共通化

* SPDX

* リアクションからも絵文字ミュート可能に

* emojiMute/emojiUnmute

* replace resource of emojiMute

* add vitest preferstate for mutedEmojis

* add vitest to preferReactive

* 混入削除

* Fix typo (mutedEmojis -> mutingEmojis)

* reactiveやめる

* add時の判定ミスを修正

* Add CHANGELOG

* Revert "reactiveやめる"

This reverts commit 442742c371.

* Update Changelog
2025-05-12 10:00:06 +09:00
syuilo
b18d6b4cef lint 2025-05-11 17:17:07 +09:00
syuilo
a78f654322 🎨 2025-05-11 16:28:04 +09:00
syuilo
3d60d18e80 tweak MkMediaImage.vue 2025-05-11 16:25:49 +09:00
かっこかり
c793038a8b fix(frontend): ノート購読の挙動改善 (#16023)
* fix(frontend): ノート購読の挙動改善

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-05-11 15:53:02 +09:00
かっこかり
3df421da1a refactor(frontend): MkMarquee のコードの可読性の向上 (#16017)
* fix(frontend/MkMarquee): Composition API に移行

* move animation to scoped environment

* refactor

---------

Co-authored-by: taiyme <53635909+taiyme@users.noreply.github.com>
2025-05-11 15:43:16 +09:00
syuilo
2ead6b8adc 🎨 2025-05-11 15:40:58 +09:00
syuilo
5465dccda9 Update CHANGELOG.md 2025-05-11 15:39:39 +09:00
anatawa12
cbc53de823 fix: RateLimiterService (#13997)
* fix rate limit check never ends

* fix: long term / short term limitがないときでもそれぞれ用のnew Limiterとlimiter.getが呼ばれる問題

* refactor: wrap ratelimiter with promise

* refactor: reimplement max/min with async

* refactor: reimplement limit with async

* refactor: do not check long term limit inside min

* refactor: check if there is rate limit inside min/max function

* refactor: remove unnecessary return in min/max function

* refactor: remove unnecessary max/min function

* refactor: return rate limit instead of throwing an object

* fix: レートリミットのfactorが二回適用されて二乗の効果がある問題を修正

* fix lint error

---------

Co-authored-by: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
2025-05-11 15:37:46 +09:00
syuilo
2c96f7f258 enhance(backend): increase MAX_ROOM_MEMBERS to 50 2025-05-11 15:32:36 +09:00
syuilo
8793176be1 Update about-misskey.vue 2025-05-11 14:26:03 +09:00
syuilo
3100caadda 🎨 2025-05-11 14:23:58 +09:00
syuilo
4d08c0a82b enhance(frontend): blurhash無効化オプションを追加 2025-05-11 14:17:08 +09:00
syuilo
039aacb31f refactor(frontend): better type def of usePagination 2025-05-10 14:42:18 +09:00
github-actions[bot]
92aca4498b Bump version to 2025.5.1-alpha.1 2025-05-10 03:58:55 +00:00
かっこかり
0133dbfe7e fix(frontend): サウンドのフォールバックが効かなくなっていた問題を修正 (#16012) 2025-05-10 12:34:59 +09:00
syuilo
0a0d42bb48 enhance: 招待されているが参加していないルームを開いたときに、招待を承認するかどうか尋ねるように 2025-05-10 11:25:00 +09:00
かっこかり
e1cd7c94fb refactor(frontend): use* 関数の格納場所のフォルダ名を composables に変更 (#16004)
* refactor(frontend): use* 関数の格納場所を正式名称(composables)に変更

* migrate

* move useLoading
2025-05-10 07:58:26 +09:00
github-actions[bot]
c803f842ba Bump version to 2025.5.1-alpha.0 2025-05-09 12:18:54 +00:00
syuilo
b3f8ce60c6 New Crowdin updates (#16003)
* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Korean (Gyeongsang))
2025-05-09 21:16:40 +09:00
かっこかり
04928ba7d1 enhance(frontend): Instance Tickerのデザイン改善 (#15946)
* feat(tms): インスタンス情報の表示位置 (taiyme#198)

* migrate

* fix(InstanceTicker): リモートサーバーのアイコンが初期画像になる問題 (taiyme#211)

* refactor(InstanceTicker): 参照の構造を変更

Co-Authored-By: taiy <53635909+taiyme@users.noreply.github.com>

* perf(TmsInstanceTicker): color関数に変更 (taiyme#283)

* 🎨

* Update Changelog

* remove unused property

* revert unrelated changes

* fix

* 実装を簡略化

* 🎨

* Update CHANGELOG.md

* 色の計算をコンポーネント内に移動

---------

Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
2025-05-09 21:16:21 +09:00
syuilo
1b3a8cd97d fix(frontend): "時計"ウィジェット(Clock)において、Transparent設定が有効でも、その背景が透過されない
Fix #15994
2025-05-09 20:41:50 +09:00
syuilo
bbe26607eb enhance: リプライ元にアンケートがあることが表示されるように
Resolve #15998
2025-05-09 20:36:14 +09:00
syuilo
6a2dc2d2d2 follow up of 8c2ab25e5f 2025-05-09 20:27:11 +09:00
syuilo
1febae7128 fix(backend): チャットルームが削除された場合・チャットルームから抜けた場合に、未読状態が残り続けることがあるのを修正 2025-05-09 20:12:33 +09:00
syuilo
2c63ab6fe3 New Crowdin updates (#15969)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)
2025-05-09 19:42:04 +09:00
syuilo
96bc042d67 Feat: サーバー初期設定ウィザード (#15954)
* wip

* wip

* Update welcome.setup.vue

* wip

* wip

* wip

* wip

* Update MkServerSetupWizard.vue

* Update MkServerSetupWizard.vue

* wip

* wip

* wip

* Update types.ts

* wip

* wip

* Update CHANGELOG.md
2025-05-09 19:41:54 +09:00
anatawa12
0bd44bca6d fix: exported antenna data cannot be imported in some cases (#15985)
* chore: add ExportedAntenna type

* chore: use ExportedAntenna on export and fix schema

* fix: excludeNotesInSensitiveChannel is not included

* chore: revert unnecessary changes

* chore: add doc for future developer

* docs: update changelog
2025-05-09 17:48:01 +09:00
syuilo
ebf291084f Feat: UGCの公開範囲設定機能 (#15938)
* wip

* Update CHANGELOG.md

* wip

* wip

* Update show.ts
2025-05-09 17:44:35 +09:00
syuilo
8c2ab25e5f Feat: No websocket mode (#15851)
* wip

* wip

* wip

* wip

* Update MkTimeline.vue

* wip

* wip

* wip

* Update MkTimeline.vue

* Update use-pagination.ts

* wip

* wip

* Update MkTimeline.vue

* Update MkTimeline.vue

* wip

* wip

* Update MkTimeline.vue

* Update MkTimeline.vue

* Update MkTimeline.vue

* wip

* Update use-pagination.ts

* wip

* Update use-pagination.ts

* Update MkNotifications.vue

* Update MkNotifications.vue

* wip

* wip

* wip

* Update use-note-capture.ts

* Update use-note-capture.ts

* Update use-note-capture.ts

* wip

* wip

* wip

* wip

* Update MkNoteDetailed.vue

* wip

* wip

* Update MkTimeline.vue

* wip

* fix

* Update MkTimeline.vue

* wip

* test

* Revert "test"

This reverts commit 3375619396.

* Update use-pagination.ts

* test

* Revert "test"

This reverts commit 42c53c830e.

* test

* Revert "test"

This reverts commit c4f8cda4aa.

* Update style.scss

* Update MkTimeline.vue

* Update MkTimeline.vue

* Update MkTimeline.vue

* ✌️

* Update MkTimeline.vue

* wip

* wip

* test

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* Update MkTimeline.vue

* wip

* tweak navbar

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update home.vue

* wip

* refactor

* wip

* wip

* Update note.vue

* Update navbar.vue

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* wip

* Update MkStreamingNotificationsTimeline.vue

* Update use-pagination.ts

* wip

* improve perf

* wip

* Update MkNotesTimeline.vue

* wip

* megre

* Update use-pagination.ts

* Update use-pagination.ts

* Update MkStreamingNotesTimeline.vue

* Update use-pagination.ts

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md
2025-05-09 17:40:08 +09:00
syuilo
5603cb7e22 refactor 2025-05-07 16:10:43 +09:00
syuilo
86996d9563 🎨 2025-05-07 13:41:51 +09:00
github-actions[bot]
978289535b [skip ci] Update CHANGELOG.md (prepend template) 2025-05-07 02:46:44 +00:00
github-actions[bot]
aa938164f2 Release: 2025.5.0 2025-05-07 02:46:39 +00:00
syuilo
5c38589d03 Update CHANGELOG.md 2025-05-07 11:21:24 +09:00
syuilo
351d91b1c3 enhance(frontend): add debug room 2025-05-07 10:45:01 +09:00
syuilo
181f68e14e 🎨 2025-05-07 10:44:43 +09:00
syuilo
cdd131d542 🎨 2025-05-07 08:55:42 +09:00
syuilo
921b13c26f 🎨 2025-05-06 21:49:10 +09:00
syuilo
5d787e5bb9 enhance(frontend): バックアップされた設定のプロファイルを削除できるように 2025-05-06 20:57:55 +09:00
syuilo
95a1d17cf6 🎨 2025-05-06 20:41:51 +09:00
github-actions[bot]
14955fa01f Bump version to 2025.5.0-rc.0 2025-05-06 11:28:09 +00:00
syuilo
0f922cda54 New Crowdin updates (#15949)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)
2025-05-06 20:15:42 +09:00
anatawa12
406406328c Fix 1745378064470-composite-note-index.js (#15968) 2025-05-06 20:15:26 +09:00
おさむのひと
29f9580143 fix: developのtypecheckエラーを修正 (#15967) 2025-05-06 19:59:24 +09:00
zyoshoka
3b676f39df fix(backend): enumerate achievement types in some response schema (#15953)
* fix(backend): enumerate achievement types in some response schema

* refactor: use `ref`
2025-05-06 19:52:30 +09:00
syuilo
09317150e1 add icon project file 2025-05-06 16:53:06 +09:00
syuilo
925dd76f00 🎨 2025-05-06 16:51:01 +09:00
syuilo
1d79fc9092 🎨 2025-05-06 16:16:22 +09:00
syuilo
8959bfa1c0 refactor(frontend): 空/エラー結果表示をコンポーネント化 (#15963)
* wip

* wip

* wip

* wip

* wip

* Update MkResult.vue

* Add storybook story for MkResult (#15964)

* Update MkResult.vue

---------

Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com>
2025-05-06 14:41:31 +09:00
Kisaragi
d476f7ff50 chore(deps): sharpを固定 (#15957)
cf. misskey-dev#15920
2025-05-05 20:00:42 +09:00
github-actions[bot]
f251ca8303 Bump version to 2025.5.0-beta.0 2025-05-05 09:31:57 +00:00
syuilo
f6158abb68 use sharp 0.33.5
Fix #15920
2025-05-05 18:23:25 +09:00
syuilo
fc2e128fad tweak ui style 2025-05-05 18:20:55 +09:00
github-actions[bot]
45d6c090f2 Bump version to 2025.5.0-alpha.2 2025-05-05 05:41:19 +00:00
かっこかり
57a1ac3dd0 fix(frontend): 横スワイプの挙動改善 (#15952) 2025-05-05 14:28:54 +09:00
syuilo
6bbda4d67c fix(frontend): make enableHorizontalSwipe default false 2025-05-05 07:28:15 +09:00
zyoshoka
32d2206832 fix(frontend): handle error in user popup (#15948) 2025-05-05 06:04:20 +09:00
Sayamame-beans
d522d1bf26 docs(changelog): add information for #15924 (#15947) 2025-05-04 20:59:24 +09:00
github-actions[bot]
080276e3e7 Bump version to 2025.5.0-alpha.1 2025-05-04 10:07:59 +00:00
syuilo
619bb2214e New Crowdin updates (#15935)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)
2025-05-04 19:00:56 +09:00
renovate[bot]
c23f2ff900 chore(deps): update node.js to v22.15.0 (#15606)
* chore(deps): update node.js to v22.15.0

* chore: determine Jest args from Node.js version

* fix

* fix: `import.meta.dirname` is not supported in v20.10.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2025-05-04 19:00:36 +09:00
syuilo
14d6734cb1 Fix MkPullToRefresh behaviour (#15944)
* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue

* Update MkPullToRefresh.vue
2025-05-04 18:51:30 +09:00
syuilo
3bdb1dd558 🎨 2025-05-04 17:32:09 +09:00
かっこかり
e75d749784 fix(frontend): ダイアログのお知らせが画面からはみ出ることがある問題を修正 (#15878)
* fix(frontend): ダイアログのお知らせが画面からはみ出ることがある問題を修正

* Update Changelog

* 🎨

* 🎨

* enhance: スクロールしないと閉じられないように

* Update CHANGELOG.md
2025-05-04 15:50:05 +09:00
renovate[bot]
42a2ed8b67 fix(deps): update dependency vite to v6.3.4 [security] (#15918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-04 14:54:35 +09:00
zyoshoka
a5fa9a2cef chore(workflow): use node-version-file instead of hardcoded node-version (#15658)
* chore(workflow): use `node-version-file` instead of hardcoded `node-version`

* chore: test min version
2025-05-04 14:14:09 +09:00
かっこかり
0884605b62 fix(frontend): MkFolderのアニメーションにフォールバックを追加 (#15937)
* fix(frontend): Chrome系以外のブラウザでMkFolderがアニメーションしない問題を修正

* fix

* Update Changelog

* fix
2025-05-04 14:06:43 +09:00
かっこかり
8dbd8ff4cf enhance(frontend): タイムラインpush時のアニメーションを調整 (#15936)
* fix(frontend): タイムラインpush時のアニメーションを復元

* 🎨

* enhance: 消える際のアニメーションも追加

* better support for non-supported browsers

* fix: Skip Note Rendering有効時、TransitionGroupでnoteを追加するときに一瞬がくっとなる問題を修正

* 🎨

* fix
2025-05-04 13:52:01 +09:00
syuilo
5aeedf59ff enhance(frontend): 中クリックでPullToRefreshするように
Close #15931
2025-05-04 11:04:51 +09:00
github-actions[bot]
3eaa05a5d9 Bump version to 2025.5.0-alpha.0 2025-05-04 00:41:28 +00:00
syuilo
b0b6962661 New Crowdin updates (#15922)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)
2025-05-04 09:40:06 +09:00
おさむのひと
8c0c503c6c refactor: ファイルアップロード時のテストを追加 (#15928)
* refactor: ファイルアップロード時のテストを追加

* なぜかsemverが消えてた
2025-05-04 09:38:35 +09:00
syuilo
590cb5f4dd perf(frontend): improve MkInstanceTicker rendering performance 2025-05-04 06:43:53 +09:00
syuilo
90e69f4d10 add note 2025-05-03 21:51:58 +09:00
syuilo
e76e2534d7 perf(frontend): improve MkPullToRefresh render performance 2025-05-03 21:40:18 +09:00
syuilo
27682b980c tweak MkPullToRefresh.vue 2025-05-03 21:14:59 +09:00
syuilo
ef79cc290f perf(frontend): tweak PageWithHeader 2025-05-03 20:15:18 +09:00
syuilo
e7c170cf0c tweak MkPullToRefresh 2025-05-03 18:35:43 +09:00
syuilo
f0544ede87 tweak MkPullToRefresh 2025-05-03 16:51:23 +09:00
syuilo
00008d3763 Update CHANGELOG.md 2025-05-03 16:25:09 +09:00
おさむのひと
526057cc61 Revert "fix: 添付ファイルのあるリクエストを受けたときの初動を改善 (#15896)" (#15927)
* Revert "fix: 添付ファイルのあるリクエストを受けたときの初動を改善 (#15896)"

This reverts commit 7e8cc4d7c0.

* fix CHANGELOG.md
2025-05-03 16:23:06 +09:00
おさむのひと
c13aa0c224 fix(backend): チャンネルフォロー一覧のsinceId/untilIdによる絞り込みが上手く動いていないのを修正 (#13698)
* fix(backend): チャンネルフォロー一覧のsinceId/untilIdによる絞り込みが上手く動いていないのを修正

* fix CHANGELOG.md

* docs(changelog): fix mistaken changelog insertion (restore newline)

* docs(changelog): update insertion position

---------

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
2025-05-03 15:40:57 +09:00
anatawa12
1af98b690b feat: CREATE INDEX CONCURRENTLY for "userId" "id" composite note index if admin wish. (#15915)
* chore: CREATE INDEX CONCURRENTLY for "userId" "id" composite note index

* chore: remove { concurrent: true } and comment why

* update comment

* feat: add MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY option

* fix: spdx license header

* alter comment

* chore: improve behavior when migration failure

* docs(changelog): 2025.4.1 で追加されたインデックスの再生成をノートの追加しながら行えるようになりました

* ちょっと表現を変更

---------

Co-authored-by: 饺子w (Yumechi) <35571479+eternal-flame-ad@users.noreply.github.com>
2025-05-03 12:57:50 +09:00
syuilo
d25af911cf fix(frontend): tweak universal ui rendering 2025-05-03 11:19:55 +09:00
syuilo
df1a3742dd feat(frontend): マウスでもタイムラインを引っ張って更新できるように & MkPullToRefreshのパフォーマンス向上 2025-05-03 10:26:40 +09:00
syuilo
c5235a7b2f perf(frontend): improve timeline page performance 2025-05-02 20:25:51 +09:00
anatawa12
795b8366b5 Block deliver by software (#15727)
* feat(backend): suspend instance by software

* feat(frontend): suspend instance by software

* docs(chaangelog): 連合先のソフトウェア及びバージョン名により配信停止を行えるようになりました

* chore: 例で使うバージョン名を変える

* fix: broken lockfile

* fix: broken lock file

* fix broken lock file

* update changelog

* fix dependencies

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-05-01 17:58:34 +09:00
anatawa12
2fcb50273d Exclude suspended users note from most timelines (#15775)
* feat: exclude notes by suspended user from FTT timeline endpoint

* feat: exclude notes by suspended user from DB based timelines

* chore: fix types

* chore: fix types

* chore: fix non-reply / renote

* chore: fix non-reply / renote

* test: update test

* docs(changelog): 凍結されたユーザのノートが各種タイムラインで表示されないように

* Exclude suspended users note from featured

* fix: join user

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-05-01 17:56:24 +09:00
github-actions[bot]
70232d3d73 [skip ci] Update CHANGELOG.md (prepend template) 2025-04-30 09:01:49 +00:00
github-actions[bot]
979cfc1bcd Release: 2025.4.1 2025-04-30 09:01:43 +00:00
github-actions[bot]
2bd4faafbc Bump version to 2025.4.1-rc.0 2025-04-30 00:15:24 +00:00
zyoshoka
81739b1f82 chore: follow up on fixing Chromatic CI diff strategy (#15912) 2025-04-29 21:22:01 +09:00
Julia
583df3ec63 Merge commit from fork
none of our endpoints will ever contain `..` (they might, maybe, at
some point, contain `.`, as in `something/get.html`?), so every
`Mk:api()` call to an endpoint that contains `..` can't work: let's
reject it outright

Co-authored-by: dakkar <dakkar@thenautilus.net>
2025-04-29 18:06:39 +09:00
github-actions[bot]
2cd3fbf1a3 Bump version to 2025.4.1-beta.9 2025-04-29 08:58:11 +00:00
かっこかり
f8b0863b8e fix(frontend): fix lint (#15906)
* fix(frontend): attempt to fix lint

* fix lint
2025-04-29 15:54:57 +09:00
zyoshoka
41f09fa272 Update CHANGELOG.md 2025-04-29 13:17:01 +09:00
syuilo
813b57bbab fix style 2025-04-29 11:20:43 +09:00
syuilo
d6ae4c980b feat(frontend): タイトルバーを表示できるように 2025-04-29 09:43:15 +09:00
github-actions[bot]
2e91cd6d45 Bump version to 2025.4.1-beta.8 2025-04-28 23:26:26 +00:00
syuilo
4408d070df Update CHANGELOG.md 2025-04-29 08:20:48 +09:00
Julia
d10fdfe973 Merge commit from fork
* SP-2025-03.1 always wrap icon&thumbnail URLs

if they're not HTTP URLs, the frontend won't be able to display them
anyway (`<img src="mailto:…">` or '<div stile="background-image:
url(nntp:…)">` aren't going to work!), so let's always run them through the
media proxy, which will fail harder (fetching a `javascript:` URL
won't do anything in the backend, might do something in the frontend)
and will always protect the client's address in cases like `gemini:`
where the browser could try to fetch

* SP-2025-03.2 use object binding for more styles

interpolating a random (remote-controlled!) string into a `style`
attribute is a bad idea; using VueJS object binding, we should get
proper quoting and therefore safe parse failures instead of CSS
injections / XSS

* SP-2025-03.3 slightly more robust "self" URL handling

parse URLs instead of treating them as strings; this is still not
perfect, but the `URL` class only handles full URLs, not relative
ones, so there's so way to ask it "give me a URL object that
represents this resource relative to this base URL"

notice that passing very weird URLs to `MkUrl` and `MkUrlPreview` will
break the frontend (in dev mode) because there's an untrapped `new
URL(…)` that may explode; production builds seem to safely ignore the
error, though

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2025-04-29 08:15:54 +09:00
syuilo
7407d51df8 New Crowdin updates (#15897)
* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Chinese Simplified)
2025-04-29 08:15:29 +09:00
おさむのひと
7e8cc4d7c0 fix: 添付ファイルのあるリクエストを受けたときの初動を改善 (#15896)
* wip

* ロールポリシーの値も参照するように

* エンドポイントのテストを追加

* fix review

* add spdx

* fix CHANGELOG.md

* fix test

* regenerate

* add log

* Revert "add log"

This reverts commit 4b2bf59a60.

* add log

* fix

* Revert "add log"

This reverts commit c5a73d57da.
2025-04-29 08:15:09 +09:00
syuilo
e5fcb5b53f enhance(frontend): disable router view transition
Fix #15723
2025-04-28 21:25:47 +09:00
zyoshoka
aaa31c9d64 fix(backend): correct response schema of chat endpoints (#15904) 2025-04-28 18:58:08 +09:00
zyoshoka
c3b9a5346f chore(ci): change the Test step to terminate with error in the federation test (#15903)
* chore(ci): change the Test step to terminate with error in the federation test

* chore(ci): always stop servers in the federation test
2025-04-28 18:31:13 +09:00
github-actions[bot]
01230f6990 Bump version to 2025.4.1-beta.7 2025-04-28 04:08:47 +00:00
renovate[bot]
b09bf25e14 chore(deps): update actions/setup-node action to v4.4.0 (#15901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 13:03:36 +09:00
zyoshoka
7041a3de2a chore: fix Chromatic CI diff strategy (#15902) 2025-04-28 12:57:47 +09:00
syuilo
cf07e1e4b9 perf(frontend): improve timeline performance 2025-04-28 12:53:58 +09:00
renovate[bot]
e8eb4e1965 fix(deps): update [frontend] update dependencies (#15809)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 11:41:23 +09:00
かっこかり
b5268fa240 fix(test): fix federation test (#15900) 2025-04-28 11:24:26 +09:00
renovate[bot]
359af232fc fix(deps): update [root] update dependencies (#15691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 11:24:18 +09:00
github-actions[bot]
5d71a5bc23 Bump version to 2025.4.1-beta.6 2025-04-28 01:17:27 +00:00
かっこかり
6acb743e5e deps: update pnpm to v10.10.0 (#15899)
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-28 10:12:04 +09:00
syuilo
4054f1a0c4 🎨 2025-04-28 10:07:23 +09:00
syuilo
76bd33f4c8 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-28 09:46:43 +09:00
syuilo
c99f4dc4ce enhance(frontend): add drive tip 2025-04-28 09:46:41 +09:00
renovate[bot]
0c06e5bef5 chore(deps): update [misskey-js] update dependencies (#15791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 09:35:37 +09:00
renovate[bot]
d9ff6011e3 chore(deps): update [tools] update dependencies (#15810)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 09:31:34 +09:00
renovate[bot]
b94ff3590b fix(deps): update [backend] update dependencies (#15811)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-28 09:29:52 +09:00
syuilo
7c23e53034 refactor 2025-04-28 09:28:23 +09:00
syuilo
e0fd1c8f48 tweak custom-emojis-manager 2025-04-28 08:49:37 +09:00
syuilo
8718d1c271 Update CHANGELOG.md 2025-04-28 07:21:52 +09:00
anatawa12
ec92bf47f1 Exclude blocked instance note from most timelines (#15792)
* Exclude blocked instance note from most timelines

* Exclude blocked instance note from FTT timelines

* Exclude blocked instance note from featured

* fix type
2025-04-28 07:21:00 +09:00
syuilo
7581331713 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-27 21:29:36 +09:00
syuilo
2fbb2e9a9f Update CHANGELOG.md 2025-04-27 21:29:15 +09:00
github-actions[bot]
7bc536c948 Bump version to 2025.4.1-beta.5 2025-04-27 12:27:19 +00:00
syuilo
3f08e41818 🎨 2025-04-27 21:14:59 +09:00
syuilo
04b7dd0948 fix(frontend): tweak spacer style 2025-04-27 20:51:57 +09:00
syuilo
ddb41ba821 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-27 20:42:43 +09:00
syuilo
ee49c42410 fix lint 2025-04-27 20:42:41 +09:00
github-actions[bot]
8670ddaffd Bump version to 2025.4.1-beta.4 2025-04-27 11:08:50 +00:00
syuilo
d9bff2cd15 New Crowdin updates (#15849)
* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Vietnamese)
2025-04-27 20:04:42 +09:00
syuilo
cb2948bf94 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-27 20:04:15 +09:00
syuilo
83893ce52f fix syntax errors 2025-04-27 20:04:13 +09:00
github-actions[bot]
0083386882 Bump version to 2025.4.1-beta.3 2025-04-27 10:58:53 +00:00
syuilo
03e5502d63 add todo 2025-04-27 19:57:19 +09:00
syuilo
0a1ff77f23 perf(frontend): use css-native implementation for spacer rather than vue component 2025-04-27 19:55:56 +09:00
syuilo
c4f13a0472 Update CHANGELOG.md 2025-04-27 17:50:08 +09:00
github-actions[bot]
5e294f4c65 Bump version to 2025.4.1-beta.2 2025-04-27 08:44:59 +00:00
syuilo
0f9dff0521 enhance(frontend): improve usability 2025-04-27 17:43:30 +09:00
syuilo
14d3439a42 enhance(frontend): タイムラインをスワイプで切り替えられるように
Resolve #15722
2025-04-27 17:38:48 +09:00
syuilo
889295d621 fix(frontend): スワイプが効かないなど、不具合の元になるmarginをgapに置き換え 2025-04-27 17:29:17 +09:00
syuilo
5b5756d4eb Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-27 17:16:54 +09:00
syuilo
e24a2362fd refactor(frontend): PageWithHeaderにMkSwiperを持たせるように 2025-04-27 17:16:51 +09:00
github-actions[bot]
2e03c0f425 Bump version to 2025.4.1-beta.1 2025-04-27 05:59:23 +00:00
syuilo
66187174d4 🎨 2025-04-27 13:41:41 +09:00
syuilo
73b86d9276 enhance(frontend): improve new emojis manager 2025-04-27 13:31:07 +09:00
zyoshoka
d91a4e3dec fix(ci): change Chromatic build to be triggered when frontend package.json is edited instead of lockfile (#15793)
* fix(ci): correct invalid condition for skipping Chromatic build

* fix: change to be triggered when frontend `package.json` is edited instead of lockfile

* chore: disable automatic rebase of frontend Renovate PRs
2025-04-27 10:49:23 +09:00
かっこかり
6a69e4180b fix(frontend): PageWithHeaderからPageHeaderに全Propsが伝わっていなかった問題を修正 (#15858) 2025-04-27 10:46:55 +09:00
syuilo
3b3bb36c49 enhance(frontend): 通知ページをスワイプで切り替えられるように 2025-04-27 10:14:41 +09:00
syuilo
69cfd34545 Update CHANGELOG.md 2025-04-27 10:01:44 +09:00
syuilo
9481b5a6e8 feat: アップロード可能な最大ファイルサイズをロールごとに設定可能に 2025-04-27 09:35:44 +09:00
github-actions[bot]
effc84b9cc Bump version to 2025.4.1-beta.0 2025-04-27 00:22:13 +00:00
なっかあ
de073d6d69 Fix #15876 絵文字がアニメーションしない問題を修正 (#15881) 2025-04-27 09:16:41 +09:00
syuilo
5042a0aa8f fix(frontend): タイムラインでノートが重複して表示されることがあるのを修正
Fix #15870
Close #15874
2025-04-27 09:16:17 +09:00
饺子w (Yumechi)
7a41cfe28b enhance(backend): DB note (userId) インデクス -> (userId, id) 複合インデクスにする (#15879)
* enhance(backend): use composite index for ordering notes by user

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* fixup! enhance(backend): use composite index for ordering notes by user

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-04-23 14:29:42 +09:00
renovate[bot]
0a604285a0 fix(deps): update dependency fastify to v5.3.2 [security] (#15866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-19 21:07:10 +09:00
syuilo
c99723b59e fix html 2025-04-19 21:01:51 +09:00
syuilo
96bb36f77e 🎨 2025-04-19 14:42:54 +09:00
syuilo
388ef3de08 🎨 2025-04-19 14:42:09 +09:00
syuilo
ff85eff209 🎨 2025-04-19 14:32:19 +09:00
github-actions[bot]
a0b9f456e7 Bump version to 2025.4.1-alpha.2 2025-04-19 05:10:26 +00:00
syuilo
7b38806413 feat: Job queue inspector (#15856)
* wip

* wip

* Update job-queue.vue

* wip

* wip

* Update job-queue.vue

* wip

* Update job-queue.vue

* wip

* Update QueueService.ts

* Update QueueService.ts

* Update QueueService.ts

* Update job-queue.vue

* wip

* wip

* wip

* Update job-queue.vue

* wip

* Update MkTl.vue

* wip

* Update index.vue

* wip

* wip

* Update MkTl.vue

* 🎨

* jobs search

* wip

* Update job-queue.vue

* wip

* wip

* Update job-queue.vue

* Update job-queue.vue

* Update job-queue.vue

* Update job-queue.vue

* wip

* Update job-queue.job.vue

* wip

* wip

* wip

* Update MkCode.vue

* wip

* Update job-queue.job.vue

* wip

* Update job-queue.job.vue

* Update misskey-js.api.md

* Update CHANGELOG.md

* Update job-queue.job.vue
2025-04-19 14:00:38 +09:00
zyoshoka
978ab2f848 fix(storybook): implement missing stories (#15862) 2025-04-18 18:56:46 +09:00
syuilo
74d9cc4e38 🎨 2025-04-18 17:11:35 +09:00
syuilo
7a29aed17c enhance(frontend): improve usability 2025-04-17 20:25:59 +09:00
syuilo
fd61ac5221 refactor(frontend): refactor styles 2025-04-17 20:23:27 +09:00
かっこかり
96de18b096 fix(deps): update vite to v6.3.1 (#15857) 2025-04-17 02:57:53 +00:00
syuilo
eda2f587a3 enhance: コントロールパネルでジョブキューをクリアできるように 2025-04-16 16:47:03 +09:00
github-actions[bot]
f2aeafaddb Bump version to 2025.4.1-alpha.1 2025-04-16 02:27:40 +00:00
anatawa12
5a9f54a07a Complete unicode emoji after last colon (#13384)
* chore: add types on MkAutocomplete

* feat: complete `:emoji:` to unicode emoji

* chore: do not use fuzzy match for emojiComplete

* docs(changelog): Unicode絵文字をslugから入力する際に`🆗`のように最後の`:`を入力したあとにUnicode絵文字に変換できるように

* docs(changelog): update changelog insertion position

* chore: improve indent

---------

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-16 11:25:21 +09:00
anatawa12
0257d54add fix: ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正 (#15841)
* fix: 特定のノート直前のノートを表示する機能で表示が逆順になっていた問題を修正

* docs(changelog): ノートの直後のノートを表示する機能で表示が逆順になっていた問題を修正

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-16 11:16:14 +09:00
syuilo
d18bb1dda0 add todo 2025-04-16 11:06:37 +09:00
syuilo
81c24ddcc5 Update CHANGELOG.md 2025-04-16 11:00:38 +09:00
syuilo
17e7340933 enhance(frontend): テーマでページヘッダーの色を変更できるように 2025-04-16 10:59:05 +09:00
syuilo
29f475b17a 🎨 2025-04-16 10:42:25 +09:00
syuilo
6d90e09a58 enhance(frontend): タイムライン以外でもスクロール位置の保持を試みるように 2025-04-16 10:35:05 +09:00
syuilo
35d4b43c95 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-16 10:15:20 +09:00
syuilo
ef477ce1b5 🎨 2025-04-16 10:15:18 +09:00
anatawa12
4bd23c4c8c feat: migrate antenna on account move (#15843)
* feat: migrate antenna on account move

* docs(changelog): アカウントの移行時にアンテナのフィルターのユーザが更新されない問題を修正

* refactor: move to AntennaService
2025-04-16 09:49:27 +09:00
syuilo
46a5aa9ede Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-16 09:25:17 +09:00
syuilo
75267f87d5 refactor(frontend): アカウント情報はstore管理に 2025-04-16 09:25:13 +09:00
anatawa12
c5f1ce60fa fix(sw): type error in sw (#15844) 2025-04-16 07:51:41 +09:00
anatawa12
86774ad753 fix: improve flaky federation test (#15845) 2025-04-16 07:51:21 +09:00
syuilo
de19d9a4d4 refactor(frontend): MkHorizontalSwipe -> MkSwiper 2025-04-15 20:48:25 +09:00
syuilo
165830d6c8 コミット忘れ 2025-04-15 20:34:00 +09:00
syuilo
ee29f31324 fix(frontend): make keep scroll pos of timeline 2025-04-15 20:33:04 +09:00
github-actions[bot]
f5a89c2533 Bump version to 2025.4.1-alpha.0 2025-04-15 09:32:12 +00:00
syuilo
45d65ffbba New Crowdin updates (#15786)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)
2025-04-15 18:29:22 +09:00
syuilo
fc6037af46 enhance(backend): push notification for chat message
Resolve #15831
2025-04-15 18:27:45 +09:00
Kisaragi
fff2783c1b docs: バックアップとログアウトの設定クリアについて書き方を変える (#15808)
1. 「新しいクライアントからログインしたとき」がすでにログインしたことのあるクライアントだとバックアップが必要ないと読めるので「新しい」を外す
2. ログアウトしてから設定データをブラウザから削除したあとで復元できるのはバックアップをとっているときのみであることを強調

cc 1312fe34c1
2025-04-15 16:15:56 +09:00
anatawa12
b2e3e65896 fix: use ftt for outbox (#15819)
* fix: use ftt for outbox

* chore: check for enableFanoutTimeline

* lint: fix lint
2025-04-15 16:15:27 +09:00
anatawa12
f454e820bd feat: render quote note with quote-inline class for ap compatibility (#15818) 2025-04-15 16:14:52 +09:00
anatawa12
d5fe6e36ae fix: avatarId が null のときにも avatarUrl が non null 担ってることがある問題 (#15833) 2025-04-15 16:10:17 +09:00
anatawa12
6bd45a27b1 fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題 (#15836)
* fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題

* docs(changelog): Fix: フォルダを開いた状態でメニューからアップロードしてもルートフォルダにアップロードされる問題を修正 #15836
2025-04-15 16:09:04 +09:00
syuilo
525b6a7677 feat(frontend): chat widget 2025-04-15 15:37:29 +09:00
syuilo
7c0806f208 feat(frontend): chat column
Resolve #15830
2025-04-15 15:36:53 +09:00
おさむのひと
0d4feed6d3 enhance(backend): フォローしているユーザーならフォロワー限定投稿のノートでもアンテナで検知できるように (#15264)
* フォローしているユーザーなら鍵ノートでもアンテナにひっかかるように

Co-authored-by: kozakura913 <98575220+kozakura913@users.noreply.github.com>
Co-authored-by: mai <74494945+chan-mai@users.noreply.github.com>

* Eliminate build errors by resolving conflicts

* 低コストな判定文を前にもってきて重い判定文に入る可能性を少しでも下げる

* fix CHANGELOG.md

* fix CHANGELOG.md

* fix diff

* removed comment

* fix CHANGELOG.md

---------

Co-authored-by: kozakura913 <98575220+kozakura913@users.noreply.github.com>
Co-authored-by: mai <74494945+chan-mai@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-13 20:48:18 +09:00
おさむのひと
1f0621b085 レプリケーション設定時におけるinsertOne()の挙動を調整 (#15109)
* returningを含むクエリをmasterで動かす

* wip

* wip

* fix CHANGELOG.md

* 調整

* fix

* fix import
2025-04-13 20:44:44 +09:00
anatawa12
4c473eb76d fix: resolve with non-lowercased acct is broken (#15813)
* fix: resolve with non-lowercased acct is broken

* docs(changelog): Fix: 大文字を含むユーザの URL で紹介された場合に 404 エラーを返す問題
2025-04-13 18:34:33 +09:00
かっこかり
f7195d54d0 fix(frontend): 自動バックアップが設定されていない環境では設定が消滅する旨の警告を出すように (#15802)
* fix(frontend): 自動バックアップが設定されていない環境ではローカルの設定を削除しないように

* Update Changelog

* fix lint

* fix: 警告を出すだけのみにする

* fix

* apply suggestion
2025-04-13 16:59:01 +09:00
かっこかり
8edf1bc208 fix(backend): サーバー名の変更をシステムアカウントの名前に反映するように (#15806)
* fix(backend): サーバー名の変更をシステムアカウントの名前に反映するように

* Update Changelog
2025-04-13 16:21:18 +09:00
かっこかり
dd5dd6184a fix(frontend): keyval-storeの値が削除できずに処理が止まる問題を修正 (#15803)
* fix(frontend): keyval-storeの値が削除できずに処理が止まる問題を修正

* Update Changelog

* implement abortcontroller

* fix lint
2025-04-13 15:48:43 +09:00
renovate[bot]
81bf139e3e fix(deps): update dependency @nestjs/common to v11.0.16 [security] (#15800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-12 16:04:20 +09:00
renovate[bot]
a0e9895764 fix(deps): update [backend] update dependencies (#15690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 19:50:25 +09:00
かっこかり
413324a278 refactor(frontend): frontendの検索インデックス作成のスタンドアロンコマンド実装を完全に削除 (#15790)
This reverts commit e594fb0037.
2025-04-10 18:48:40 +09:00
renovate[bot]
e2b68aabae fix(deps): update [frontend] update dependencies (#15736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-10 18:26:01 +09:00
github-actions[bot]
0aaeb6d136 [skip ci] Update CHANGELOG.md (prepend template) 2025-04-09 02:17:33 +00:00
github-actions[bot]
fb277501a0 Release: 2025.4.0 2025-04-09 02:17:29 +00:00
syuilo
718138509f Update CHANGELOG.md 2025-04-09 10:56:57 +09:00
github-actions[bot]
a1ef38a606 Bump version to 2025.4.0-rc.5 2025-04-08 23:21:42 +00:00
zyoshoka
4a8b7ef23e fix(ci): correct condition for skipping Chromatic build (#15783) 2025-04-09 08:10:17 +09:00
anatawa12
1f17161dfb feat: show file name for warning / errors of [create-search-index] (#15785) 2025-04-09 08:10:04 +09:00
syuilo
2488708934 New Crowdin updates (#15781)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)
2025-04-09 08:09:43 +09:00
anatawa12
628a0c71a9 fix: direct does not work in nested route (#15784) 2025-04-09 08:09:08 +09:00
syuilo
b40f5b9021 fix typo 2025-04-09 08:08:28 +09:00
syuilo
0f79db6a4d refactor 2025-04-09 08:05:27 +09:00
syuilo
910e097480 add missing SearchMarker 2025-04-09 08:04:00 +09:00
syuilo
a8acbd6e68 refactor 2025-04-09 08:01:10 +09:00
syuilo
c19f51a2ab resolve promise
https://github.com/misskey-dev/misskey/pull/15735#discussion_r2033387035
2025-04-09 07:56:20 +09:00
syuilo
1cf370882e add missing SearchMarker 2025-04-09 07:51:24 +09:00
syuilo
58cb7cf179 update i18n 2025-04-08 20:58:56 +09:00
syuilo
a51192bac5 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-08 20:50:41 +09:00
syuilo
c500e4392a hideNotesInSensitiveChannel -> excludeNotesInSensitiveChannel 2025-04-08 20:50:38 +09:00
syuilo
799226412f Update CHANGELOG.md
Co-authored-by: anatawa12 <anatawa12@icloud.com>
2025-04-08 20:44:15 +09:00
syuilo
0d18c0169f New Crowdin updates (#15776)
* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)
2025-04-08 18:18:02 +09:00
syuilo
863fb5dd7f Update CHANGELOG.md 2025-04-08 15:20:36 +09:00
syuilo
177943b06a Update CHANGELOG.md 2025-04-08 15:19:33 +09:00
syuilo
2aa7630466 🎨 2025-04-08 15:10:51 +09:00
syuilo
c96f345f01 fix(frontend): fix control panel style 2025-04-08 10:56:52 +09:00
syuilo
baf04a1e25 fix(frontend): Fix #15764 2025-04-08 10:38:04 +09:00
syuilo
40097d4aac clean up 2025-04-08 10:37:44 +09:00
github-actions[bot]
01cd398799 Bump version to 2025.4.0-rc.4 2025-04-07 23:44:45 +00:00
syuilo
3d206d2a0f enhance(frontend): 設定検索時に対象が含まれるMkFolderを自動で開いておくように 2025-04-08 08:43:56 +09:00
syuilo
e8758bf77d Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-08 08:31:54 +09:00
syuilo
278629046a 🎨 2025-04-08 08:31:52 +09:00
syuilo
3374a587a1 refactor 2025-04-08 08:28:17 +09:00
syuilo
ce721a8066 New Crowdin updates (#15773)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)
2025-04-08 08:19:44 +09:00
syuilo
547d6361b7 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-08 08:18:51 +09:00
syuilo
f765b374c7 refactor 2025-04-08 08:18:48 +09:00
github-actions[bot]
b0c0d1b294 Bump version to 2025.4.0-rc.3 2025-04-07 10:49:27 +00:00
syuilo
7f1cd614db Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-07 19:45:31 +09:00
syuilo
33e6ebb2ee enhance(frontend): improve and refactor mobile nav footer 2025-04-07 19:45:28 +09:00
syuilo
65b4458474 fix(frontend): fix drawer menu style 2025-04-07 19:31:15 +09:00
かっこかり
9d3f3264fd enhance: チャットの閲覧を無効化できるように (#15765)
* enhance: チャットの閲覧を無効化できるように

* fix

* fix

* fix

* readonlyの説明を追加

* enhance: チャットが無効な場合はチャット関連の設定も隠すように

* fix

* refactor: ChatServiceからApiに関するドメイン知識を排除
2025-04-07 19:09:11 +09:00
syuilo
6c27ab12eb Update CHANGELOG.md 2025-04-07 17:30:44 +09:00
github-actions[bot]
1ca8d227df Bump version to 2025.4.0-rc.2 2025-04-07 08:17:46 +00:00
syuilo
154b89f07a 🎨 2025-04-07 17:16:08 +09:00
syuilo
3a8d015194 enhance(frontend): improve search index 2025-04-07 17:03:43 +09:00
syuilo
fa52922331 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-07 16:39:08 +09:00
syuilo
5b0f594f15 fix(backend): 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 2025-04-07 16:39:03 +09:00
syuilo
297d5e3001 New Crowdin updates (#15761)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)
2025-04-07 16:31:28 +09:00
anatawa12
85a7b10fcd refactor serach index generator code (#15772)
* refactor: flatten search index

* chore: use Function() to simplify parsing attribute

* chore: remove comment handling

* chore: simplify processing SearchLabel and SearchKeyword element

* chore: use SearchLabel in mutedUsers

* chore: small improvements

* chore: remove a fallback path and simplify the entire code

* fix: result path is not correct

* chore: inline function
2025-04-07 14:35:32 +09:00
syuilo
2349a5d20e 🎨
Fix #15753
2025-04-07 10:29:51 +09:00
syuilo
6ef5c8bb92 enhance(frontend): improve migration of old settings 2025-04-07 10:21:49 +09:00
zyoshoka
1ede45c8fb fix(ci): fix Chromatic CI not being skipped for dependency update branches (#15766) 2025-04-07 09:55:18 +09:00
syuilo
f9a3db2ac3 refactor(frontend): refactor styles 2025-04-05 19:49:29 +09:00
syuilo
1626e8038b Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-05 19:45:14 +09:00
syuilo
f71843a7d3 refactor(frontend): refactor divider of panel style 2025-04-05 19:45:11 +09:00
zyoshoka
91416527c2 fix(ci): quote branches-ignore pattern in Storybook workflow (#15762) 2025-04-05 19:32:48 +09:00
anatawa12
e24d799c0a chore: set ignorePatchFailures to false (#15763) 2025-04-05 19:32:35 +09:00
github-actions[bot]
d54153f24e Bump version to 2025.4.0-rc.1 2025-04-05 01:28:52 +00:00
syuilo
bc60411f91 New Crowdin updates (#15752)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (English)
2025-04-05 10:27:43 +09:00
syuilo
db48b320f5 enhance(frontend): 設定移行時にナビゲーションバーにチャットを追加するように
チャットがどこにあるか分かりにくいという意見が多いため
2025-04-05 09:32:57 +09:00
anatawa12
22f874c81d fix: chromatic failure (#15757) 2025-04-05 08:46:48 +09:00
anatawa12
5949bb6c7f fix: unnecesary HMR when we opened setting page (#15756)
* refactor: add MarkerIdAssigner instead of processVueFile and remove transformedCodeCache object

* chore: add minimatch, a glob matcher

* chore: expose MarkerIdAssigner from plugin

* Revert "chore: expose MarkerIdAssigner from plugin"

This reverts commit 88c6d820f8.

* chore: add plugin to generate virtual module

* chore: parse inlining earlier

* chore: use virtual module in search

* chore: use remove old generation

* chore: fix type errors

* chore: add patch to workaround vitejs/vite#19792

* chore: improve filtering files to process

* chore: rename plugin

* docs: add comment for plugin ordering

* fix: unnecessary log

* fix: spdx license header
2025-04-05 08:46:17 +09:00
syuilo
ea9d85a0cc New Crowdin updates (#15740)
* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)
2025-04-03 21:29:45 +09:00
github-actions[bot]
96b21484db Bump version to 2025.4.0-rc.0 2025-04-03 10:28:38 +00:00
anatawa12
cab82452ec Copy role on move (#15745)
* feat(backend): copyOnMoveAccount

* feat(endpoints): copyOnMoveAccount

* feat(frontend): copyOnMoveAccount

* docs(changelog): アカウントのマイグレーション時に古いアカウントからロールをコピーできるようになりました。

* fix: spdx header for migration

* Update locales/ja-JP.yml

* copyOnMoveAccount -> preserveAssignmentOnMoveAccount

* fix: check for preserveAssignmentOnMoveAccount

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-03 19:22:49 +09:00
syuilo
440a4a4d8b refactor(frontend): refactor MkDateSeparatedList 2025-04-03 15:42:25 +09:00
syuilo
4be9b25185 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-03 15:34:15 +09:00
syuilo
8b7cba1ede 🎨 2025-04-03 15:34:13 +09:00
github-actions[bot]
1188ec458d Bump version to 2025.4.0-beta.2 2025-04-03 06:32:20 +00:00
かっこかり
e07bb1dcbc fix: チャット周りの修正 (#15741)
* fix(misskey-js): チャットのChannel型定義を追加

* fix(backend); canChatで塞いでいない書き込み系のAPIを塞ぐ

* fix(frontend): チャット周りのフロントエンド型修正

* lint fix

* fix broken lockfile

* fix

* refactor

* wip

* wip

* wip

* clean up

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-03 15:28:10 +09:00
syuilo
7cecaa5c54 perf(frontend): avoid main thread scroll repaint 2025-04-03 14:32:42 +09:00
syuilo
1779a23e25 🎨 2025-04-03 13:31:13 +09:00
zyoshoka
d7365eb126 fix(storybook): update obsolete method for preferences (#15750) 2025-04-03 12:54:08 +09:00
syuilo
455be80b4f fix(backend): 非ログインでタイムラインのストリームに接続した際、表示にログイン必須のノートが流れる場合がある問題を修正 2025-04-03 11:32:55 +09:00
syuilo
1a3866c4f6 fix(backend/chat): 自分が作ったチャットルームに他人がメッセージを送ったときに未読にならない
Fix #15748
2025-04-03 11:15:16 +09:00
syuilo
d07552424c 🎨 2025-04-02 19:48:32 +09:00
syuilo
e4ceab5f6c Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-04-02 19:16:18 +09:00
syuilo
e1dc1e5111 🎨 2025-04-02 19:16:16 +09:00
syuilo
3a16af4b4b Update CHANGELOG.md 2025-04-02 16:01:48 +09:00
Nanashi.
98eadd7093 feat: アンテナでセンシティブなチャンネルからのノートを除外できるように (#15346)
* feat(db): マイグレーションを追加

* feat(backend): カラムの定義を追加

* wip

* feat: フラグを設定出来るように

* feat: /notesエンドポイントを対応

* feat: websocketを対応

* test: テストを追加

* docs: CHANGELOGを更新

* docs: CHANGELOGの追加場所を修正

* chore: api.jsonを更新

* docs(CHANGELOG): General欄に移動

* docs: フォーマットを揃える

* chore: クエリを削除

* revert: 英訳を消す

* chore: note.channelを追加するところを変える

* docs: CHANGELOGを更新する

* docs(CHANGELOG): 2025.3.2に移動

* chore: changelogを下に移動

* ci: CI再実行用の空コミット

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-02 16:01:24 +09:00
zyoshoka
0bf49818c4 enhance: implement sentryForFrontend (#15433)
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-04-02 15:44:04 +09:00
syuilo
d0a98f6e6c fix(frontend): Fix #15744 2025-04-02 13:04:03 +09:00
anatawa12
102578712b fix: iPadでdeck uiでマウスホイールでスクロールできない (#15244)
* fix: ipadでdeck uiでスクロールできない

* docs(changelog): iPadOSでdeck uiをマウスカーソルによってスクロールできない問題を修正

* chore: remove pointermove listener

* lint: use window.document

* chore: use passive pointerdown event
2025-04-02 10:48:57 +09:00
github-actions[bot]
2e0c80bc21 Bump version to 2025.4.0-beta.1 2025-04-02 01:47:33 +00:00
syuilo
d44fd87b69 Update CHANGELOG.md 2025-04-02 10:37:48 +09:00
anatawa12
55d835ad51 Fix: 通知のページネーションで2つ以上読み込めなくなることがある問題 (#15277)
* fix: notifications-groupedのinclude/exclude typesに:groupedを指定できてしまう問題

* refactor: 通知の取得処理を Notification Service に移動

* feat: add function to parse additional part of id

* fix: 通知のページネーションが正しく動かない問題

Redisにのページネーションで使用する時間及びidとRedis上のものが混同されていたので、Misskeyが生成するものに寄せました。

* pnpm run build-misskey-js-with-types

* chore: XADDをretryするように

* fix: notifications-groupedでxrevrangeしているのを消し忘れていた
2025-04-02 10:37:16 +09:00
syuilo
3ec5bf114b 🎨 2025-04-02 10:25:53 +09:00
syuilo
a5f9eba974 enhance(frontend): インストールしたテーマをデバイス間で同期できるように 2025-04-02 10:09:25 +09:00
github-actions[bot]
bd8162c2bd Bump version to 2025.4.0-beta.0 2025-04-01 08:19:26 +00:00
かっこかり
4f206eea9f refactor(frontend): intl-stringの処理のパフォーマンス向上 (#15737)
* refactor(frontend): intl-stringの処理のパフォーマンス向上

* ✌️
2025-04-01 17:15:22 +09:00
syuilo
f4f9832f8b 🎨 2025-04-01 17:13:58 +09:00
syuilo
70133a88f2 🎨 2025-04-01 16:52:59 +09:00
renovate[bot]
20bc80728c chore(deps): update [misskey-js] update dependencies (#15692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 16:20:52 +09:00
renovate[bot]
1d9810627e chore(deps): update [tools] update dependencies (#15689)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 15:51:46 +09:00
renovate[bot]
eb5061db29 chore(deps): update [github actions] update dependencies (#15688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 15:49:36 +09:00
renovate[bot]
b0c3ec3267 fix(deps): update dependency vite to v6.2.4 [security] (#15733)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-01 15:48:48 +09:00
syuilo
3a6de462bb Update CHANGELOG.md 2025-04-01 14:04:46 +09:00
github-actions[bot]
b0cdf2feff Bump version to 2025.4.0-alpha.0 2025-04-01 04:52:38 +00:00
github-actions[bot]
4e1e8ff238 Bump version to 2025.3.2-beta.21 2025-04-01 04:33:36 +00:00
syuilo
d04acf04a6 New Crowdin updates (#15725)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)
2025-04-01 13:29:28 +09:00
syuilo
165c7993e6 fix(frontend): fix PageWithAnimBg style 2025-04-01 13:28:13 +09:00
syuilo
500a5615f0 enhance(frontend): 壁紙をデッキ設定の一部に 2025-04-01 13:18:49 +09:00
syuilo
5aca91251a fix missing import 2025-03-31 20:48:16 +09:00
syuilo
1c683c3fcc fix(frontend): インストールしたテーマがテーマ一覧にすぐ反映されない 2025-03-31 20:36:49 +09:00
syuilo
08072e294b 🎨 2025-03-31 20:17:48 +09:00
github-actions[bot]
f637d0dff9 Bump version to 2025.3.2-beta.20 2025-03-31 08:34:36 +00:00
かっこかり
15a5bb17e3 fix(frontend): チャットのデザイン調整 (#15708)
* fix(frontend): チャットのデザイン調整

* remove unused locales

* 🎨

* Update XMessage.vue

* Update XMessage.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-31 17:33:00 +09:00
syuilo
888e04ce82 fix(frontend): tweak deck onboarding 2025-03-31 16:40:44 +09:00
github-actions[bot]
3a028abea5 Bump version to 2025.3.2-beta.19 2025-03-31 04:26:53 +00:00
syuilo
ff59089ad9 🎨 2025-03-31 13:24:20 +09:00
syuilo
93214862b1 🎨 2025-03-31 13:18:50 +09:00
syuilo
ea722b8360 🎨 2025-03-31 13:00:34 +09:00
syuilo
49f1f7194d 🎨 2025-03-31 11:13:02 +09:00
syuilo
8baf54e629 fix(frontend): fix ad rendering of timeline 2025-03-31 11:01:32 +09:00
syuilo
393f893a2c 🎨 2025-03-30 20:51:27 +09:00
syuilo
87a7238976 enhance(frontend): デッキのオプションを追加 2025-03-30 20:44:00 +09:00
syuilo
e0d8702839 perf(frontend): tweak MkRange 2025-03-30 18:13:39 +09:00
syuilo
6e929ece6f fix(frontend): suppress inject warn 2025-03-30 18:13:08 +09:00
syuilo
303b62aff3 New Crowdin updates (#15721)
* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)
2025-03-30 14:34:32 +09:00
syuilo
45b8423429 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-30 14:34:14 +09:00
syuilo
0655c8a29b clean up 2025-03-30 14:33:52 +09:00
syuilo
17f3113b92 🎨 2025-03-30 14:30:04 +09:00
syuilo
4f4cb6738c fix(frontend): drop classic ui 2025-03-30 14:25:56 +09:00
github-actions[bot]
591175b42e Bump version to 2025.3.2-beta.18 2025-03-30 02:54:21 +00:00
syuilo
c03f9bff0a 🎨 2025-03-30 11:52:51 +09:00
syuilo
88c743aa33 chore(frontend): remove unused style 2025-03-30 11:45:41 +09:00
syuilo
c06d0b9b42 enhance(frontend): organize settings page 2025-03-30 11:27:35 +09:00
syuilo
4af49e8385 enhance(frontend): organize settings page 2025-03-30 11:16:38 +09:00
syuilo
aeda34e5e7 fix(frontend): 広告が無い場合の表示を修正 2025-03-30 09:11:59 +09:00
syuilo
7d842c1a95 fix(frontend): avoid naming confliction of MkAd 2025-03-30 09:07:15 +09:00
syuilo
93fc2456b3 refactor(frontend): refactor base styles 2025-03-30 08:59:18 +09:00
syuilo
a420a95fae perf(frontend): アニメーション無効時のパフォーマンスを向上 2025-03-30 08:49:14 +09:00
renovate[bot]
2618585a25 fix(deps): update dependency vite to v6.2.3 [security] (#15710)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-30 08:39:40 +09:00
syuilo
61846a04b2 Update CHANGELOG.md 2025-03-29 23:07:46 +09:00
syuilo
cce88c904b Update CHANGELOG.md 2025-03-29 22:16:22 +09:00
syuilo
d866ab12e9 perf(frontend): reduce stacking context in deck 2025-03-29 22:00:01 +09:00
github-actions[bot]
df75715d29 Bump version to 2025.3.2-beta.17 2025-03-29 12:23:35 +00:00
syuilo
02da241ec9 Revert "(test)"
This reverts commit eb4062cf63.
2025-03-29 21:16:25 +09:00
syuilo
eb4062cf63 (test) 2025-03-29 21:02:31 +09:00
syuilo
d9012740a1 enhance(frontend): アイコンのスクロール追従を無効化してパフォーマンス向上できるように 2025-03-29 20:56:59 +09:00
syuilo
1b776a7e7e perf(frontend): reduce stack contexts 2025-03-29 20:02:51 +09:00
syuilo
e0b7c56458 Revert "test"
This reverts commit 2787158a04.
2025-03-29 19:23:30 +09:00
syuilo
2787158a04 test 2025-03-29 18:41:52 +09:00
syuilo
2bbc0878e7 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-29 18:03:34 +09:00
syuilo
fb1542429f 🎨 2025-03-29 18:03:31 +09:00
github-actions[bot]
05b23eda59 Bump version to 2025.3.2-beta.16 2025-03-29 09:01:05 +00:00
syuilo
ddd6d72dd7 New Crowdin updates (#15716)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)
2025-03-29 17:59:40 +09:00
syuilo
25db8c2fa9 🎨 2025-03-29 17:59:09 +09:00
syuilo
2ad7b010e4 🎨 2025-03-29 17:57:03 +09:00
syuilo
7c06ffc422 refactor 2025-03-29 17:28:20 +09:00
syuilo
df3ed93f84 clean up 2025-03-29 17:15:47 +09:00
syuilo
b030e33856 perf(frontend): improve performance of timeline page 2025-03-29 17:15:31 +09:00
syuilo
7fd3adedee fix tests 2025-03-29 17:00:01 +09:00
syuilo
ae59578115 refactor 2025-03-29 16:55:12 +09:00
syuilo
609a37742c clean up 2025-03-29 16:11:15 +09:00
syuilo
d9d796b204 lint fixes 2025-03-29 16:09:27 +09:00
syuilo
6c2c3f08be refactor(frontend): use symbol for di 2025-03-29 16:04:01 +09:00
syuilo
e5e4390494 fix(frontend): suppress inject warn 2025-03-29 16:01:51 +09:00
syuilo
5a09e7a8b4 lint 2025-03-29 15:57:34 +09:00
syuilo
88e6bd1533 Update eslint.config.js 2025-03-29 15:55:22 +09:00
syuilo
7d8c98767a lint 2025-03-29 15:53:44 +09:00
syuilo
490222fb78 perf(frontend): avoid needless AsyncComponentWrapper 2025-03-29 15:33:19 +09:00
syuilo
1af4081090 enhance(frontend): disable horizontal swipe for timeline/notifications to improve ux 2025-03-29 15:00:29 +09:00
syuilo
33e76f9dfc Revert "🎨"
This reverts commit 3451c9a0de.
2025-03-29 13:55:05 +09:00
syuilo
8dd8f636dc 🎨 2025-03-29 13:52:15 +09:00
syuilo
3451c9a0de 🎨 2025-03-29 13:39:44 +09:00
syuilo
fc88410c0d refactor(frontend): tweak MkNotes and MkNotifications 2025-03-29 13:34:53 +09:00
syuilo
3682c0069c Revert "test"
This reverts commit 2b42e8f171.
2025-03-29 12:27:13 +09:00
syuilo
2b42e8f171 test 2025-03-29 11:18:49 +09:00
github-actions[bot]
e990831a09 Bump version to 2025.3.2-beta.15 2025-03-28 07:39:15 +00:00
syuilo
18355a0838 perf(frontend): avoid main thread scroll repaint 2025-03-28 16:34:21 +09:00
syuilo
811077ca66 perf(frontend): avoid main thread scroll repaint 2025-03-28 15:26:15 +09:00
syuilo
1c26dae39f enhance(frontend): リモートアカウントでチャットが使えるかどうか知る術がないため表示を改善 2025-03-28 11:00:45 +09:00
syuilo
c37f9d38a3 enhance(frontend): チャットが開放されていない場合のUIを改善 2025-03-28 10:48:13 +09:00
syuilo
dec3e86e5e enhance(backend): アカウントでチャットが有効になっているかどうかをユーザーのレスポンスに含めるように 2025-03-28 10:48:03 +09:00
syuilo
0c14250678 enhance(frontend): チャットが開放されていない場合のUIを改善 2025-03-28 10:34:25 +09:00
github-actions[bot]
30e0259062 Bump version to 2025.3.2-beta.14 2025-03-28 00:53:31 +00:00
syuilo
26aa7c6ca1 New Crowdin updates (#15707)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)
2025-03-28 09:49:59 +09:00
syuilo
29f5e5ca32 fix(frontend): classic uiが表示できない
Fix #15715
2025-03-28 09:49:47 +09:00
syuilo
a25fa62d64 enhance(frontend): ファイルアップロード処理のリファクタと設定の簡略化 2025-03-28 09:47:34 +09:00
syuilo
61e09d483e refactor 2025-03-28 09:22:37 +09:00
syuilo
e40846c46b fix e2e test 2025-03-27 19:50:03 +09:00
syuilo
a78db27a3c Update CHANGELOG.md 2025-03-27 17:30:06 +09:00
syuilo
f7e901deb2 test fixes 2025-03-27 17:30:04 +09:00
syuilo
b95da9c9a4 enhance(backend): ミュートしているユーザーをユーザー検索の結果から除外するように 2025-03-27 17:12:23 +09:00
syuilo
c29a5764d3 refactor(backend): better method name 2025-03-27 16:51:08 +09:00
Acid Chicken
ed86b1706d ci(storybook): prevent running for bots 2025-03-26 12:17:56 +09:00
syuilo
36865a5771 enhance(frontend): improve chat ux 2025-03-26 10:49:36 +09:00
syuilo
5e90679916 lint 2025-03-26 10:26:48 +09:00
syuilo
ac49a3e992 typo 2025-03-26 09:06:34 +09:00
syuilo
f0ac0aa84d Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-25 20:06:49 +09:00
syuilo
97fddf2a80 🎨 2025-03-25 20:06:46 +09:00
かっこかり
2a5922836c fix(frontend): コントロールパネルのナビゲーションバーが画面に張り付かない問題を修正 (#15706) 2025-03-25 19:50:40 +09:00
github-actions[bot]
0e417e51ac Bump version to 2025.3.2-beta.13 2025-03-25 09:40:08 +00:00
syuilo
c5cd3dd373 New Crowdin updates (#15685)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Korean (Gyeongsang))

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)
2025-03-25 18:35:28 +09:00
syuilo
fc576ebc64 fix(backend): 承認したチャットルームへの招待の通知が存在するとエラーになる問題を修正 2025-03-25 18:34:25 +09:00
syuilo
22f99b42f6 enhance(frontend): refactor and improve ux 2025-03-25 18:30:28 +09:00
syuilo
de76a66c03 enhance(frontend): タブレットでの表示時にウィジェットボタンでページ下部が隠れないように 2025-03-25 18:15:54 +09:00
syuilo
185f290373 🎨 2025-03-25 18:03:50 +09:00
syuilo
88b48b1d8e fix(backend): チャットのページネーションが機能しない問題を修正 2025-03-25 17:57:34 +09:00
syuilo
ef0b97b2dc fix(frontend): コンパネ>通報 の各通報のユーザー詳細が表示できない問題を修正
Fix #15704
2025-03-25 16:17:10 +09:00
syuilo
98554579ea enhance: チャットのリアクションを削除できるように 2025-03-25 16:09:19 +09:00
syuilo
8e72c68205 follow up of a01ae38a07 2025-03-25 15:55:09 +09:00
syuilo
a01ae38a07 enhance: モデレーターがチャットルームの内容を確認・削除できるように 2025-03-25 15:51:45 +09:00
syuilo
304d0eb83b enhance: チャットルームに招待されたときの通知を追加 2025-03-25 15:25:43 +09:00
github-actions[bot]
2fc3baa988 Bump version to 2025.3.2-beta.12 2025-03-25 04:45:07 +00:00
syuilo
c51e862b7d enhance: 送信したチャットルームへの招待を確認できるように 2025-03-25 13:41:12 +09:00
syuilo
1736955694 fix(backend): 自分がオーナーではない参加中のルームにメッセージを送信すると不必要な通知が発生するのを修正 2025-03-25 13:29:03 +09:00
syuilo
2272eceffa enhance(frontend): Enterでチャットのメッセージを送信できるように 2025-03-25 13:19:54 +09:00
syuilo
8c1fc85d00 enhance(frontend): チャットの送信者名を表示できるように 2025-03-25 12:36:21 +09:00
syuilo
9f4fa6d3f5 enhance(frontend): チャットのホームの表示を定期的に更新するように 2025-03-25 12:19:59 +09:00
syuilo
023ab02e59 🎨 2025-03-25 12:08:17 +09:00
syuilo
1318a10af8 🎨 2025-03-25 11:37:38 +09:00
syuilo
18bb831777 🎨 2025-03-25 11:33:40 +09:00
github-actions[bot]
e6bc887d6c Bump version to 2025.3.2-beta.11 2025-03-25 02:19:28 +00:00
syuilo
8cbcbd462c enhance(frontend): チャット画面で確実に最下部へスクロール追従するように 2025-03-25 11:11:24 +09:00
syuilo
600bb34172 enhance(frontend): 設定のインデックス更新 2025-03-25 09:54:23 +09:00
syuilo
26b2cfe518 enhance(frontend): ナビゲーションバーの副ボタンを非表示にできるように 2025-03-25 09:50:59 +09:00
syuilo
72734fe365 enhance(frontend): バックグラウンドでチャットメッセージが届いたときにサウンドを再生できるように 2025-03-25 09:36:59 +09:00
syuilo
2370b55a27 enhance(frontend): チャットルームを削除できるように 2025-03-25 09:30:14 +09:00
syuilo
5d3e8253c4 fix(frontend): チャットを全員に許可している場合に誰も許可していないと表示されるのを修正 2025-03-25 09:24:01 +09:00
syuilo
8d6573fbec enhance(frontend): 設定の移行を手動でトリガーできるように 2025-03-25 08:38:53 +09:00
syuilo
8da1368a0b fix(backend): 既存のルームメンバーを改めて招待できないように 2025-03-25 08:05:59 +09:00
かっこかり
5513337198 fix(frontend): 本番環境で不必要なconsole.logを出さないように (#15702) 2025-03-25 08:02:06 +09:00
github-actions[bot]
3f7a2bf5b5 Bump version to 2025.3.2-beta.10 2025-03-24 12:34:25 +00:00
syuilo
f1f24e39d2 Feat: Chat (#15686)
* wip

* wip

* wip

* wip

* wip

* wip

* Update types.ts

* Create 1742203321812-chat.js

* wip

* wip

* Update room.vue

* Update home.vue

* Update home.vue

* Update ja-JP.yml

* Update index.d.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update CHANGELOG.md

* wip

* Update home.vue

* clean up

* Update misskey-js.api.md

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* lint fixes

* lint

* Update UserEntityService.ts

* search

* wip

* 🎨

* wip

* Update home.ownedRooms.vue

* wip

* Update CHANGELOG.md

* Update style.scss

* wip

* improve performance

* improve performance

* Update timeline.test.ts
2025-03-24 21:32:46 +09:00
syuilo
0471e457fe fix(frontend): fix broken styles 2025-03-23 21:23:52 +09:00
syuilo
260d35e2f0 Update CHANGELOG.md 2025-03-22 18:37:41 +09:00
syuilo
3ff9d9f4fd Update CHANGELOG.md 2025-03-22 18:34:56 +09:00
syuilo
27991a3bc8 Update CHANGELOG.md 2025-03-22 18:28:51 +09:00
syuilo
b5f86e5210 refactor(frontend): refactor page styles 2025-03-22 18:25:45 +09:00
syuilo
16cde5568d Update CHANGELOG.md 2025-03-22 15:12:24 +09:00
syuilo
bf07796b6b Update CHANGELOG.md 2025-03-22 15:08:19 +09:00
syuilo
08b131ec33 refactor(backend): better prop name 2025-03-22 08:16:15 +09:00
syuilo
1312fe34c1 Update CHANGELOG.md 2025-03-22 08:12:32 +09:00
github-actions[bot]
97563910fa Bump version to 2025.3.2-beta.9 2025-03-21 12:05:52 +00:00
syuilo
96a7c4a568 fix(frontend): チャンネルのフッターが表示されない問題を修正 2025-03-21 21:04:38 +09:00
syuilo
fee6f9fcc2 Update def.ts 2025-03-21 21:04:17 +09:00
renovate[bot]
50724b6ab8 fix(deps): update [frontend] update dependencies (#15625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-21 19:41:26 +09:00
renovate[bot]
e61263cff0 fix(deps): update [backend] update dependencies (#15596)
* fix(deps): update [backend] update dependencies

* fix(backend/types): ensure to use nodejs-provided stream api

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-03-21 19:38:11 +09:00
github-actions[bot]
d073fe6b02 Bump version to 2025.3.2-beta.8 2025-03-20 12:18:50 +00:00
syuilo
ce858a676b refactor(frontend): use PageWithHeader instead of MkStickyContainer+MkPageHeader combination 2025-03-20 21:04:37 +09:00
syuilo
733a391d86 follow up of 1fd87bd2e4
コミットし忘れ
2025-03-20 20:29:46 +09:00
syuilo
0e25a0fb81 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-20 20:28:29 +09:00
syuilo
1fd87bd2e4 fix(frontend): prevent transition glitch of MkHorizontalSwipe 2025-03-20 20:28:16 +09:00
github-actions[bot]
ebc54b1f82 Bump version to 2025.3.2-beta.7 2025-03-20 10:07:37 +00:00
syuilo
6015254e59 lint fixes 2025-03-20 19:00:09 +09:00
syuilo
c02f0b3b33 Update eslint.config.js 2025-03-20 18:59:10 +09:00
syuilo
abddd40c09 enhance(frontend): 通常のRouterViewにTransitionを追加 2025-03-20 18:55:32 +09:00
かっこかり
a865a949b5 fix(frontend): MkRoleSelectDialogでのpopupの使い方が誤っているのを修正 (#15683) 2025-03-20 16:36:37 +09:00
syuilo
0007723405 fix lint 2025-03-20 16:34:50 +09:00
syuilo
71188b3463 fix lint 2025-03-20 16:10:38 +09:00
syuilo
7f534a41a6 fix lint 2025-03-20 16:07:52 +09:00
syuilo
f25963e2c2 Update eslint.config.js 2025-03-20 16:06:32 +09:00
syuilo
dfab6b1b8d lint(frontend): force window prefix 2025-03-20 15:44:06 +09:00
syuilo
fac59d75e2 lint(frontend): relax id-denylist rule 2025-03-20 15:43:35 +09:00
syuilo
fd3e28812e clean up console 2025-03-20 15:15:46 +09:00
syuilo
6a90b7e04b add todo 2025-03-20 15:09:50 +09:00
syuilo
8d8414687a enhance(frontend): improve preference manager stability 2025-03-20 14:57:14 +09:00
syuilo
0c682dd027 🎨 2025-03-20 13:34:57 +09:00
syuilo
3399c786a8 refactor(frontend): refactor components 2025-03-20 13:33:01 +09:00
syuilo
64cf101fe7 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-20 13:16:23 +09:00
syuilo
8b6d90b7a4 🎨 2025-03-20 13:16:08 +09:00
github-actions[bot]
070749bdc8 Bump version to 2025.3.2-beta.6 2025-03-20 04:03:25 +00:00
syuilo
161706c5e2 New Crowdin updates (#15680)
* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Lao)

* New translations ja-jp.yml (Korean (Gyeongsang))
2025-03-20 13:01:20 +09:00
syuilo
596e517f77 fix(frontend): minimum uiが表示できない 2025-03-20 12:58:18 +09:00
syuilo
91670caca0 enhance(frontend): tweak install-extensions behaviour 2025-03-20 12:58:01 +09:00
syuilo
fccaadacf0 lint(frontend): improve id-denylist rule 2025-03-20 12:47:51 +09:00
syuilo
282caa0b7e 🎨 for install-extensions 2025-03-20 12:36:48 +09:00
syuilo
9529867630 fix(frontend): dev buildでpreferencesのタブ同期が不必要に行われるのを修正 2025-03-20 12:02:50 +09:00
github-actions[bot]
d06fadd095 Bump version to 2025.3.2-beta.5 2025-03-20 00:06:04 +00:00
zyoshoka
9dd13f364b fix(backend): mismatch in emojis param of test WebHook payload (#15675)
* fix(backend): mismatch in `emojis` param of test WebHook payload

* fix: test

* fix: type
2025-03-20 09:00:58 +09:00
syuilo
b067d4dcd6 follow up of 7b323031b7 2025-03-20 08:59:54 +09:00
syuilo
acac759d87 fix(frontend): モバイルレイアウト時にホームを押しても最上部へスクロールされない
Fix #15679
2025-03-20 08:35:45 +09:00
syuilo
b37622fa64 🎨 2025-03-19 20:54:07 +09:00
syuilo
c17a104de6 fix(frontend): router view stacking有効時にinstall-extensionsが動かない 2025-03-19 20:53:48 +09:00
syuilo
4ab9f66356 Update deep-equal.ts 2025-03-19 20:32:15 +09:00
zyoshoka
aed95a765d chore(storybook): fix storybook build (#15678) 2025-03-19 10:52:05 +00:00
Sayamame-beans
71841e365e Enhance: 2段階認証時のリカバリーコードのファイル名にサーバーURLを含めるように (#15677)
* enhance(frontend): include server hostname and port in 2fa recovery code filename

* chore(frontend): fix mistake(use `@` for indicate server hostname)

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-19 19:34:57 +09:00
github-actions[bot]
3b20279e20 Bump version to 2025.3.2-beta.4 2025-03-19 10:27:14 +00:00
Yuri Lee
21dc7aebe7 Fix: Don't delete remote emoji when import zip (#15674)
* Fix: Don't delete remote emoji when import zip

* Update packages/backend/src/queue/processors/ImportCustomEmojisProcessorService.ts

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>

---------

Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2025-03-19 10:23:50 +00:00
syuilo
aff03708a7 New Crowdin updates (#15667)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)
2025-03-19 19:18:14 +09:00
syuilo
69ad3cf89b Update CHANGELOG.md 2025-03-19 19:17:33 +09:00
syuilo
7b323031b7 refactor(frontend): use useTemplateRef for DOM referencing 2025-03-19 18:46:03 +09:00
syuilo
81ac71f7e5 refactor(frontend): router refactoring 2025-03-19 18:06:22 +09:00
syuilo
2c76018b7f better import paths 2025-03-19 17:27:18 +09:00
syuilo
2dc2d2e4fe refactor 2025-03-19 16:04:01 +09:00
syuilo
409cd4fbd3 refactor(frontend): router refactoring 2025-03-19 15:54:30 +09:00
syuilo
7d4045e8b4 refactor(frontend): router refactoring 2025-03-19 15:24:56 +09:00
syuilo
bdc72e5817 clean up 2025-03-19 15:17:41 +09:00
syuilo
11378b17c5 🎨 2025-03-19 09:31:01 +09:00
syuilo
62bf0d53d3 🎨 2025-03-18 22:21:28 +09:00
syuilo
05391f59a5 enhance(frontend): improve StackingRouterView 2025-03-18 20:55:19 +09:00
syuilo
d609f41f61 🎨 2025-03-18 17:31:25 +09:00
syuilo
0a295e1bb0 🎨 2025-03-18 15:23:50 +09:00
syuilo
474155b677 follow up of 6c8f21b608 2025-03-17 13:27:47 +09:00
syuilo
6c8f21b608 fix(backend): 連合無しモードでも外部から照会可能だった問題を修正 2025-03-17 13:21:09 +09:00
ikasoba
7d5daa4b00 fix (#15671) 2025-03-17 03:40:10 +00:00
syuilo
1ce81f243e Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-16 19:04:16 +09:00
syuilo
a773f2976d refactor(frontend): signinRequired -> ensureSignin 2025-03-16 19:04:14 +09:00
github-actions[bot]
467c68fb98 Bump version to 2025.3.2-beta.3 2025-03-16 08:51:58 +00:00
syuilo
22b0ace8b4 enhance(frontend): 投稿フォームの設定メニューを改良 (改)
This reverts commit a814395127.
2025-03-16 17:48:16 +09:00
syuilo
a814395127 Revert "enhance(frontend): 投稿フォームの設定メニューを改良 (#14804)"
This reverts commit ce6b2448ce.
2025-03-16 17:21:20 +09:00
syuilo
81a0cbd294 chore(frontend): use toast to show message when call copyToClipboard 2025-03-16 15:04:38 +09:00
syuilo
32844e4775 🎨 2025-03-16 14:56:27 +09:00
github-actions[bot]
fbd9f47182 Bump version to 2025.3.2-beta.2 2025-03-16 05:18:29 +00:00
syuilo
1c9e25470a refactor 2025-03-16 14:15:09 +09:00
かっこかり
ce6b2448ce enhance(frontend): 投稿フォームの設定メニューを改良 (#14804)
* enhance(frontend): 投稿フォームの設定メニューを改良

* Update Changelog

* indent

* MkMenuのitemを切り出して共通化

* remove unused expose

* fix: ドロワーなどのOptionが当たらない問題を修正

* 他のpopupMenuの項目選択時と挙動をあわせる

* チュートリアルで詰む問題を修正

* Revert "MkMenuのitemを切り出して共通化"

This reverts commit ce3679798c.

* enhance: slotで共通化

* Update MkPostFormOtherMenu.vue

* remove duplicated locale key

* refactor: メニューの定義をMkPostForm側で行うように

* Update CHANGELOG.md

* [ci skip] Update MkPostFormOtherMenu.vue

* Update MkPostForm.vue

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-16 05:05:58 +00:00
syuilo
7d44b47fdf New Crowdin updates (#15662)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2025-03-16 13:59:22 +09:00
syuilo
dca42fd6e6 enhance(frontend): improve ux for touch devices 2025-03-16 13:59:08 +09:00
syuilo
43153311c6 🎨 2025-03-16 13:43:47 +09:00
syuilo
2b23c7e7f5 chore(frontend): remove duplicated warn 2025-03-16 13:30:08 +09:00
syuilo
2d4e85b466 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-16 13:03:04 +09:00
syuilo
7bfada9792 enhance: remove bull-board support 2025-03-16 13:03:02 +09:00
lqvp
4fef9c670a fix(i18n): 通知タイプのcreateTokenが抜けていたのを修正 (#15663) 2025-03-16 02:27:41 +00:00
syuilo
9599261fc3 fix(frontend): fix settings-search-index of webhook 2025-03-16 11:02:54 +09:00
syuilo
c2940fd77c enhance(frontend): improve usability on touch device 2025-03-16 10:58:06 +09:00
syuilo
2ddedd0ce6 refactor 2025-03-14 19:54:30 +09:00
syuilo
c88f5f5195 Update CHANGELOG.md 2025-03-14 17:00:02 +09:00
github-actions[bot]
30de6d80bb Bump version to 2025.3.2-beta.1 2025-03-14 07:39:14 +00:00
syuilo
63993dace6 fix(frontend): fix pref migration
Fix #15661
2025-03-14 16:37:25 +09:00
syuilo
0929410d36 enhance(frontend): improve pref manager 2025-03-14 15:43:56 +09:00
github-actions[bot]
96866d37cd Bump version to 2025.3.2-beta.0 2025-03-14 03:49:32 +00:00
syuilo
35b66276ff New Crowdin updates (#15621)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Japanese, Kansai)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Traditional)
2025-03-14 12:09:38 +09:00
syuilo
daa16d184f 🎨 2025-03-14 11:58:41 +09:00
syuilo
833a232262 enhance(frontend): clear all client data when logout 2025-03-14 11:55:42 +09:00
github-actions[bot]
bcb891e4fd Bump version to 2025.3.2-alpha.11 2025-03-14 01:29:38 +00:00
syuilo
152660fcf2 enhance(frontend): re-organize settings page 2025-03-14 09:53:44 +09:00
syuilo
a1204f5e3e 🎨 2025-03-14 09:42:53 +09:00
かっこかり
7acd3d1a88 fix(frontend): fix test 2025-03-13 22:32:26 +09:00
syuilo
8c9ec5827f enhance(frontend): improve accounts management 2025-03-13 22:12:23 +09:00
syuilo
44073736de enhance(frontend): improve preferences 2025-03-13 19:44:23 +09:00
syuilo
0126dba475 enhance(frontend): re-organize settings page 2025-03-13 19:30:35 +09:00
github-actions[bot]
3280a3d661 Bump version to 2025.3.2-alpha.10 2025-03-13 09:07:37 +00:00
syuilo
bdf80c49d8 fix(frontend): better migration detection
Fix #15656
2025-03-13 18:05:44 +09:00
syuilo
59169a6450 🎨 2025-03-13 17:42:35 +09:00
syuilo
5d228fb0f3 enhance(frontend): re-organize settings page 2025-03-13 17:39:53 +09:00
syuilo
10b67e1b3a enhance(frontend): improve emoji picker settings 2025-03-13 16:56:47 +09:00
syuilo
3ced310f77 refactor(frontend): organize use functions 2025-03-13 14:05:04 +09:00
syuilo
010ec113c2 refactor(frontend): cond -> scope 2025-03-13 13:45:23 +09:00
syuilo
30005ba959 enhance(frontend): tweak search index 2025-03-13 09:26:04 +09:00
syuilo
6b69588c03 enhance(frontend): improve deck setting page 2025-03-13 09:24:15 +09:00
syuilo
8593aa1418 refactor 2025-03-13 09:10:09 +09:00
syuilo
9876ff9a7a Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-13 09:07:25 +09:00
syuilo
ce6eba77d9 🎨 2025-03-13 09:07:22 +09:00
syuilo
9b2af53025 enhance(frontend): improve pref manager 2025-03-13 09:02:38 +09:00
syuilo
7b6ff19ea3 Update CHANGELOG.md 2025-03-12 21:49:23 +09:00
github-actions[bot]
c9fa95429a Bump version to 2025.3.2-alpha.9 2025-03-12 12:45:35 +00:00
饺子w (Yumechi)
e5d117dc98 fix(backend): tighten an overly relaxed criteria and remove capability of matching multiple final URLs in URL authority checking (#15655)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-03-12 12:39:24 +00:00
syuilo
4a73feb041 enhance(frontend): make deck profiles syncable 2025-03-12 21:12:08 +09:00
syuilo
a06b9eefaa enhance(frontend): suppress needless confirmation when turn on pref sync 2025-03-12 21:05:39 +09:00
syuilo
3129fcf164 fix(frontend): fix type errors 2025-03-12 20:17:54 +09:00
syuilo
35a4544477 add todo 2025-03-12 18:54:36 +09:00
zyoshoka
aa1cc2f817 fix(storybook): use type-only imports in generated stories (#15654) 2025-03-12 16:51:10 +09:00
github-actions[bot]
15685be4cc Bump version to 2025.3.2-alpha.8 2025-03-12 06:10:35 +00:00
syuilo
8508c4dadc refactor 2025-03-12 15:07:45 +09:00
かっこかり
e594fb0037 enhance(dev): frontendの検索インデックス作成を単独のコマンドで行えるように (#15653) 2025-03-12 14:37:57 +09:00
syuilo
a369721791 remove todo 2025-03-12 14:35:22 +09:00
syuilo
f8e244f48d enhance(frontend): アカウントオーバーライド設定とデバイス間同期の併用に対応 2025-03-12 14:34:10 +09:00
syuilo
8410611512 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-12 13:04:44 +09:00
syuilo
caab1ec7c3 🎨 2025-03-12 13:04:41 +09:00
github-actions[bot]
ffade9740e Bump version to 2025.3.2-alpha.7 2025-03-12 03:03:37 +00:00
syuilo
b03bcf26cd enhance(frontend): 設定値の同期を実装(実験的) 2025-03-12 11:39:05 +09:00
syuilo
ddbc83b2e4 chore(frontend): tweak settings page 2025-03-11 20:42:06 +09:00
syuilo
d185785f20 enhance(frontend): improve settings page 2025-03-11 14:52:04 +09:00
syuilo
02d7fbefc4 🎨 2025-03-11 12:08:15 +09:00
syuilo
f7ea92c68c chore: remove unused files 2025-03-11 12:02:41 +09:00
syuilo
e891d5c5d3 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-11 11:44:34 +09:00
syuilo
57a6b630b7 chore: add note 2025-03-11 11:44:25 +09:00
github-actions[bot]
eda768a08c Bump version to 2025.3.2-alpha.6 2025-03-11 02:43:27 +00:00
syuilo
1f345eb839 enhance(frontend): deckをpreferences管理に 2025-03-11 11:14:55 +09:00
syuilo
1f2801af02 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-10 21:42:30 +09:00
syuilo
a4ba096e2a chore(frontend): improve preference store stability 2025-03-10 21:42:17 +09:00
ろむねこ
6841cdfa76 enhance(frontend): CWの注釈テキストが入力されていない場合はPostボタンを非アクティブに (#15639)
* add condition to disable post button when CW text is empty

* standardize condition by using 1<= inserted of 0<

* unify CW text length condition to improve readability

* add missing CW state check

* fix state check, add empty/null check, improve max length validation

* simplify CW validation by removing minimum length check

* Update CHANGELOG

* remove CW text validation in post()

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-10 10:35:37 +00:00
github-actions[bot]
794f360bc2 Bump version to 2025.3.2-alpha.5 2025-03-10 09:40:41 +00:00
かっこかり
f797765b1d enhance(frontend): テーマ設定で簡易プレビューを表示するように (#15643)
* enhance(frontend): テーマ設定で簡易プレビューを表示するように

* Update Changelog

* fix lint

* 🎨

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-10 09:35:51 +00:00
syuilo
9dce512fbb enhance(frontend): add navbar transition animation 2025-03-10 15:47:00 +09:00
syuilo
9e91f85370 refactor(frontend): use Symbol for vue provide/inject 2025-03-10 15:08:40 +09:00
syuilo
9998cb84e8 refactor(frontend): page-metadata -> page 2025-03-10 13:47:38 +09:00
renovate[bot]
5ed1101bbd chore(deps): update [root] update dependencies (#15624)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-10 12:30:37 +09:00
syuilo
6c9153300d chore(frontend): tweak lockdown setting 2025-03-10 12:03:54 +09:00
syuilo
7957ee5191 fix(frontend): rename pizzax fields 2025-03-10 11:28:54 +09:00
syuilo
b200743845 refactor(frontend): rename store.set -> store.commit 2025-03-10 11:27:07 +09:00
syuilo
08f7e7d9b3 refactor(frontend): rename pizzax fields 2025-03-10 10:51:54 +09:00
github-actions[bot]
16ad6b3f6c Bump version to 2025.3.2-alpha.4 2025-03-10 01:09:42 +00:00
syuilo
4df9083bf0 fix(frontend): テーマ切り替え時に一部の色が変わらない問題を修正 2025-03-10 10:05:50 +09:00
taichan
6419af2179 fix(frontend, dev): storybookのビルドエラー修正のため、as構文にリファクタ (#15640) 2025-03-10 09:34:45 +09:00
syuilo
d9858b03c9 enhance(frontend): improve plugin management 2025-03-10 09:28:07 +09:00
taichan
88efc0a3be fix(dev): 検索インデックス対象ファイルでHMRが効かない問題を修正 (#15638) 2025-03-09 22:45:17 +00:00
github-actions[bot]
ac21fa7194 Bump version to 2025.3.2-alpha.3 2025-03-09 13:01:46 +00:00
syuilo
c76afce9a7 enhance(frontend): improve plugin management 2025-03-09 21:57:56 +09:00
github-actions[bot]
8e3304344f Bump version to 2025.3.2-alpha.2 2025-03-09 12:32:54 +00:00
饺子w (Yumechi)
db5c127cdd fix(backend): fix handling of invalid urls in user profile (#15635)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-03-09 12:28:47 +00:00
syuilo
0402866b43 enhance(frontend): improve plugin management 2025-03-09 21:23:36 +09:00
syuilo
6cefabc6b6 chore(frontend): remove unused binding 2025-03-09 17:19:21 +09:00
syuilo
c9c04d8391 enhance(frontend): migrate overridedDeviceKind to preference 2025-03-09 17:14:48 +09:00
syuilo
27e8805dcb refactor(frontend): relocate plugin consts 2025-03-09 17:02:46 +09:00
github-actions[bot]
933abedc90 Bump version to 2025.3.2-alpha.1 2025-03-09 06:16:49 +00:00
syuilo
69eee9f050 enhance(frontend): ウィジェットもpreference管理に 2025-03-09 15:13:49 +09:00
syuilo
2918fb2609 refactor(frontend): relocate theme script 2025-03-09 14:32:29 +09:00
syuilo
fcd7fa62ba Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2025-03-09 14:28:06 +09:00
syuilo
be7e3b9a0c refactor(frontend): scripts -> utility 2025-03-09 14:28:01 +09:00
github-actions[bot]
06e7272ca1 Bump version to 2025.3.2-alpha.0 2025-03-09 05:22:26 +00:00
かっこかり
f35eb0f6d9 enhnace(frontend): 文字列比較のためのローマナイズを強化(設定の検索) (#15632)
* enhnace(frontend): 文字列比較のためのローマナイズを強化

* docs

* fix

* fix

* fix

* comment

* wanakanaの初回ロードをコンポーネント内に移動

* comment

* fix

* add tests

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2025-03-09 14:21:23 +09:00
syuilo
bdb74539d4 enhance(frontend): tweak settings page 2025-03-09 14:18:50 +09:00
syuilo
abc1e9168d refactor 2025-03-09 12:39:43 +09:00
syuilo
d30ddd4c2e Refine preferences (#15597)
* wip

* wip

* wip

* test

* wip rollup pluginでsearchIndexの情報生成

* wip

* SPDX

* wip: markerIdを自動付与

* rollupでビルド時・devモード時に毎回uuidを生成するように

* 開発サーバーでだけ必要な挙動は開発サーバーのみで

* 条件が逆

* wip: childrenの生成

* update comment

* update comment

* rename auto generated file

* hashをパスと行数から決定

* Update privacy.vue

* Update privacy.vue

* wip

* Update general.vue

* Update general.vue

* wip

* wip

* Update SearchMarker.vue

* wip

* Update profile.vue

* Update mute-block.vue

* Update mute-block.vue

* Update general.vue

* Update general.vue

* childrenがduplicate key errorを吐く問題をいったん解決

* マーカーの形を成形

* loggerを置きかえ

* とりあえず省略記法に対応

* Refactor and Format codes

* wip

* Update settings-search-index.ts

* wip

* wip

* とりあえず不確定要因の仮置きidを削除

* hashの生成を正規化(絶対パスになっていたのを緩和)

* pathの入力を省略可能に

* adminでもパス生成できるように

* Update settings-search-index.ts

* Update privacy.vue

* wip

* build searchIndex

* wip

* build

* Update general.vue

* build

* Update sounds.vue

* build

* build

* Update sounds.vue

* 🎨

* 🎨

* Update privacy.vue

* Update privacy.vue

* Update security.vue

* create-search-indexを多少改善

* build

* Update 2fa.vue

* wip

* 必ずtransformCodeCacheを利用するように, キャッシュの明確な受け渡しを定義

* キャッシュはdevServerでなくても更新

* Revert "wip"

This reverts commit 41bffd3a13.

* inlining

* wip

* Update theme.vue

* 🎨

* wip normalize

* Update theme.vue

* キャッシュのパス変換

* build

* wip

* wip

* Update SearchMarker.vue

* i18n.ts['key'] の形式が取り出せない問題のFix

* build

* 仮でpath入れ

* 必ず絶対パスが使われるように

* wip

* 🎨

* storybookビルド時はcreateSearchIndexをしない

* inliningの構造化

* format code

* Update index.vue

* wip

* wip

* 🎨

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* clean up

* wip

* wip

* wip

* Update rollup-plugin-unwind-css-module-class-name.test.ts

* Update navbar.vue

* clean up

* wip

* wip

* wip

* wip

* wip

* Update preferences-backups.vue

* Update common.ts

* Update preferences.ts

* wip

* wip

* wip

* wip

* Update MkPreferenceContainer.vue

* Update MkPreferenceContainer.vue

* Update MkPreferenceContainer.vue

* enhance: 検索で上下矢印を使用することで検索結果を移動できるように

* Update main-boot.ts

* refactor

* wip

* Update sounds.vue

* fix(frontend): PageWindowでSearchMarkerが動作するように

* enhance(frontend): SearchMarkerの点滅を一定時間で止める

* wip

* lint fix

* fix: 子要素監視が抜けていたのを修正

* アニメーションの回数はCSSで制御するように

* refactor

* enhance(frontend): 検索インデックス作成時のログを削減

* revert

* fix

* fix

* Update preferences.ts

* Update preferences.ts

* wip

* Update preferences.ts

* wip

* 🎨

* wip

* Update MkPreferenceContainer.vue

* wip

* Update preferences.ts

* wip

* Update preferences.ts

* Update preferences.ts

* wip

* wip

* Update preferences.ts

* wip

* wip

* Update preferences.ts

* Update CHANGELOG.md

* Update preferences.ts

* Update deck-store.ts

* deckStoreをdefaultStoreに統合

* wip

* defaultStore -> store

* Update profile.ts

* wip

* refactor

* wip: plugin

* plugin

* plugin

* plugin

* Update plugin.ts

* wip

* Update plugin.vue

* Update preferences.ts

* Update main-boot.ts

* wip

* fix test

* Update plugin.vue

* Update plugin.vue

* Update utility.ts

* wip

* wip

* Update utility.ts

* wip

* wip

* clean up

* Update utility.ts

---------

Co-authored-by: tai-cha <dev@taichan.site>
Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-03-09 12:34:08 +09:00
github-actions[bot]
05cdc095c0 [skip ci] Update CHANGELOG.md (prepend template) 2025-03-09 03:30:00 +00:00
github-actions[bot]
7c1dc3d632 Release: 2025.3.1 2025-03-09 03:29:54 +00:00
github-actions[bot]
c53349c3b4 Bump version to 2025.3.1-beta.3 2025-03-09 00:33:40 +00:00
饺子w (Yumechi)
a710af54ed fix(backend): fix ApPersonService unsound type cast (#15629)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-03-09 00:11:34 +00:00
github-actions[bot]
ac07bb8d92 Bump version to 2025.3.1-beta.2 2025-03-08 10:15:42 +00:00
かっこかり
698505030e fix(test): fix federation test (#15630) 2025-03-08 19:11:09 +09:00
かっこかり
e16a14dcef fix(deps): pnpm v10でre2のインストールに失敗することがある問題を修正 (#15627)
* fix(deps): pnpm v10でre2のインストールに失敗することがある問題を修正

* fix

* fix docker build

* fix build failure on Windows
2025-03-08 18:56:53 +09:00
github-actions[bot]
6d93725084 Bump version to 2025.3.1-beta.1 2025-03-08 01:03:17 +00:00
おさむのひと
cb9981d4eb fix: Dockerのrunnerにpnpmのインストール手順が欠けていたのを修正 (#15623) 2025-03-08 10:02:15 +09:00
かっこかり
bee4db82bb fix(backend): follow-up of #15620
Removes unnecessary arg `disableGlobbing` from chokidar FSWatcher, as it is no longer supports globging
2025-03-07 20:10:32 +09:00
renovate[bot]
d7706ef1b5 fix(deps): update [root] update dependencies (major) (#15620)
* fix(deps): update [root] update dependencies

* fix: migrate tar library

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-03-07 19:42:39 +09:00
renovate[bot]
baf3f4a1d1 chore(deps): update [frontend] update dependencies to v10 (#15619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 19:41:34 +09:00
renovate[bot]
c7a56c2c2b fix(deps): update [root] update dependencies (#15543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 19:12:50 +09:00
github-actions[bot]
8dfff79ca2 Bump version to 2025.3.1-beta.0 2025-03-07 07:07:13 +00:00
かっこかり
83c3bb839f deps: update pnpm to v10 (#15588)
* Revert "fix(build): corepackのバグの回避 (#15387)"

This reverts commit 9c70a4e631.

* deps: update pnpm to v10

* fix broken lockfile

* update changelog

* fix

* fix

* Revert "fix"

This reverts commit 4abc6c194e.

* fix

* fix

* attempt to fix docker build

* lint fixes

* fix: revertしすぎた

* detect pnpm version and install it

* fix: そもそもpnpmを2回入れる必要がないかも

* fix

* refactor

* fix

* refactor: remove unnecessary arg

* Update Dockerfile

* update pnpm to v10.6.1

* Update Changelog

* chore: use node to avoid installing jq
2025-03-07 07:03:52 +00:00
syuilo
a9fe7eff0a New translations ja-jp.yml (Chinese Traditional) (#15618) 2025-03-07 16:01:32 +09:00
syuilo
d49ecab792 Update CHANGELOG.md 2025-03-07 14:46:10 +09:00
renovate[bot]
56459bbe68 chore(deps): update [tools] update dependencies (#15616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 11:44:20 +09:00
renovate[bot]
6c150ef1fb fix(deps): update [frontend] update dependencies (#15617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 11:44:04 +09:00
syuilo
c78f45ea20 Update CHANGELOG.md 2025-03-07 09:12:18 +09:00
syuilo
82481c01e0 tweak MkDisableSection style 🎨 2025-03-07 09:11:51 +09:00
syuilo
741cbc34e6 Update CHANGELOG.md 2025-03-07 08:53:03 +09:00
github-actions[bot]
5e86550de3 Bump version to 2025.3.1-alpha.0 2025-03-06 23:51:21 +00:00
syuilo
92aef300ee New Crowdin updates (#15611)
* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Italian)
2025-03-07 08:50:54 +09:00
syuilo
9ce1b68fd7 Update CHANGELOG.md 2025-03-07 08:50:32 +09:00
饺子w (Yumechi)
5be5c8bec4 fix(backend): fixup migration for incorrect extraction on system accounts table (#15613)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2025-03-06 23:47:30 +00:00
syuilo
0214a0001f feat(frontend): 設定の検索 (#15505)
* wip

* wip

* wip

* test

* wip rollup pluginでsearchIndexの情報生成

* wip

* SPDX

* wip: markerIdを自動付与

* rollupでビルド時・devモード時に毎回uuidを生成するように

* 開発サーバーでだけ必要な挙動は開発サーバーのみで

* 条件が逆

* wip: childrenの生成

* update comment

* update comment

* rename auto generated file

* hashをパスと行数から決定

* Update privacy.vue

* Update privacy.vue

* wip

* Update general.vue

* Update general.vue

* wip

* wip

* Update SearchMarker.vue

* wip

* Update profile.vue

* Update mute-block.vue

* Update mute-block.vue

* Update general.vue

* Update general.vue

* childrenがduplicate key errorを吐く問題をいったん解決

* マーカーの形を成形

* loggerを置きかえ

* とりあえず省略記法に対応

* Refactor and Format codes

* wip

* Update settings-search-index.ts

* wip

* wip

* とりあえず不確定要因の仮置きidを削除

* hashの生成を正規化(絶対パスになっていたのを緩和)

* pathの入力を省略可能に

* adminでもパス生成できるように

* Update settings-search-index.ts

* Update privacy.vue

* wip

* build searchIndex

* wip

* build

* Update general.vue

* build

* Update sounds.vue

* build

* build

* Update sounds.vue

* 🎨

* 🎨

* Update privacy.vue

* Update privacy.vue

* Update security.vue

* create-search-indexを多少改善

* build

* Update 2fa.vue

* wip

* 必ずtransformCodeCacheを利用するように, キャッシュの明確な受け渡しを定義

* キャッシュはdevServerでなくても更新

* Revert "wip"

This reverts commit 41bffd3a13.

* inlining

* wip

* Update theme.vue

* 🎨

* wip normalize

* Update theme.vue

* キャッシュのパス変換

* build

* wip

* wip

* Update SearchMarker.vue

* i18n.ts['key'] の形式が取り出せない問題のFix

* build

* 仮でpath入れ

* 必ず絶対パスが使われるように

* wip

* 🎨

* storybookビルド時はcreateSearchIndexをしない

* inliningの構造化

* format code

* Update index.vue

* wip

* wip

* 🎨

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* clean up

* Update navbar.vue

* enhance: 検索で上下矢印を使用することで検索結果を移動できるように

* refactor

* fix(frontend): PageWindowでSearchMarkerが動作するように

* enhance(frontend): SearchMarkerの点滅を一定時間で止める

* lint fix

* fix: 子要素監視が抜けていたのを修正

* アニメーションの回数はCSSで制御するように

* refactor

* enhance(frontend): 検索インデックス作成時のログを削減

* revert

* fix

* fix

---------

Co-authored-by: tai-cha <dev@taichan.site>
Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2025-03-06 23:15:19 +09:00
github-actions[bot]
46067f6e17 [skip ci] Update CHANGELOG.md (prepend template) 2025-03-06 10:31:36 +00:00
1925 changed files with 149646 additions and 85955 deletions

2
.claude/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/settings.local.json
/.credentials.json

View File

@@ -0,0 +1,76 @@
# Third-Party Licenses (`.claude/`)
`.claude/` 配下に取り込まれているサードパーティ由来コンポーネントのライセンス・出典情報をまとめる。Misskey 本体は AGPL-3.0-only だが、本ディレクトリ内には MIT ライセンスのファイルが含まれている。各ファイル冒頭にも `SPDX-License-Identifier` と出典コメントを併記している。
最終更新: 2026-05-11
---
## 1. everything-claude-code (ECC)
- 上流リポジトリ: <https://github.com/affaan-m/everything-claude-code>
- 取り込んだバージョン: v2.0.0-rc.1
- ライセンス: **MIT**
- Copyright: Copyright (c) 2026 Affaan Mustafa
### 取り込んだファイル
| `.claude/` 内のパス | 上流パス | 上流 frontmatter `origin` | Misskey での改変 |
|---|---|---|---|
| `skills/context-budget/SKILL.md` | `skills/context-budget/SKILL.md` | ECC | description を日本語化、Misskey 固有メモを追記 |
| `commands/harness-audit.md` | `commands/harness-audit.md` | ECC | scripts 依存の自動採点を、Claude が `pnpm`/`git`/`grep` で手動採点する版に書き換え。Misskey 固有の評価軸 (SPDX / endpoint-list / migration / locales) を組み込み |
| `commands/quality-gate.md` | `commands/quality-gate.md` | ECC | 言語自動判定を排除し Misskey 固定 pipeline (`pnpm` + tsgo + ESLint + Vitest) に。Prettier/Biome フェーズを削除 |
### MIT License (full text)
```
MIT License
Copyright (c) 2026 Affaan Mustafa
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
### 上流 LICENSE ファイル
<https://github.com/affaan-m/everything-claude-code/blob/main/LICENSE>
---
## 2. AGPL コードベースとの互換性
Misskey 本体は **AGPL-3.0-only** で配布されているが、`.claude/` 配下の MIT ライセンスファイルはそのまま MIT として残している。
- MIT は permissive ライセンスで、AGPL を含む copyleft ライセンスのプロジェクトに **取り込み・再配布が許される**
- MIT が要求する条件 (copyright notice + license text の保持) を本ファイル + 各ファイル冒頭の SPDX/出典コメントで満たしている
- Misskey 全体の配布物としては AGPL-3.0-only で扱われるが、`.claude/` 配下の MIT ファイルは個別に MIT として識別可能
`.ts` / `.js` / `.vue` / `.scss` の SPDX 義務化 ([AGENTS.md §1](../AGENTS.md#1-spdx-ヘッダー必須)) は Misskey 本体コード向けで、`.claude/` 配下の `.md` / `.sh` には適用されない。
---
## 3. 新規追加時の手順
`.claude/` に新たにサードパーティ由来のファイルを取り込む際は:
1. ライセンスを確認 (互換性: MIT / Apache-2.0 / BSD は OK、GPL/AGPL は要相談)
2. 各ファイル冒頭に SPDX ヘッダ + 出典コメントを追加
3. 本ファイル §1 のテーブルに 1 行追記
4. 必要なら新しいセクションでライセンス全文を同梱
5. AGENTS.md からの参照を確認 (現状の [AGENTS.md §ツール固有の補助ファイル](../AGENTS.md) で `THIRD_PARTY_LICENSES.md` を案内済。CLAUDE.md は `@AGENTS.md` 経由で読み込むので個別の追記は不要)

23
.claude/agents/README.md Normal file
View File

@@ -0,0 +1,23 @@
# `.claude/agents/` — プロジェクト固有のサブエージェント
Misskey の特定領域に特化したレビュー / 調査エージェントを `.claude/agents/<name>.md` 形式で配置する。
frontmatter (`name` + `description` + `tools`) は、Claude が **自動でエージェントを呼び出すか判断する** 唯一の手がかりになる。`description` には用途を具体的かつ網羅的に書くこと (動詞 + 対象 + トリガー条件)。
## 実装済サブエージェント
| エージェント名 | 役割 | 優先度 |
|---|---|---|
| [misskey-api-reviewer](misskey-api-reviewer.md) | NestJS DI + meta/paramDef + UUID 重複 + endpoint-list.ts 登録 + ApiError throw + misskey-js 再生成 + e2e + CHANGELOG をチェック | 高 (登録漏れで 404 / autogen CI 落ち頻発) |
| [vue-component-reviewer](vue-component-reviewer.md) | Mk\* 命名 / `<script lang="ts" setup>` / type-only defineProps / SCSS module / CSS 変数 / i18n.ts と i18n.tsx の使い分け / os.\* 経由 / a11y / `*.stories.impl.ts` 併設をチェック | 中 (CI 直撃は SPDX / locales 編集違反のみ。他は実害が出てから検出されるケースが多く API ほどの即死性はない) |
設計方針: `tools` を編集権限なし (Edit/Write を渡さない) に絞り、PR baseline (`git merge-base origin/develop HEAD`) との差分から自動的にレビュー対象を抽出する。
## 新規エージェントを追加する場合
- `.claude/agents/<name>.md` に YAML frontmatter (`name` / `description` / `tools`) と本文 Markdown を書く。
- `description` は呼び出し判断に使われるため、対象ドメイン・主要チェック項目・トリガー条件を **具体的に** 列挙する。
- レビュー専門なら `tools: Read, Grep, Glob, Bash` に絞る (Edit/Write を渡さない)。**`Bash` は任意のシェルコマンドを実行できる強力な権限である点に注意**: レビュー用途では `git diff` / `git ls-files` / `grep` / `sed` 等の **読み取り系コマンドに限定して使う** こと。書き込み・削除・ネットワーク送信を伴う操作は本文中の例示・指示に含めないこと (エージェント本文がガードレールになる)。
- 主要参照ファイルへのリンクは、リポジトリルートからの相対パス (例: `../../packages/backend/...`) で貼る。絶対パスは contributor のホームディレクトリ依存になるので使わない。
- 差分抽出は `git merge-base origin/develop HEAD` を baseline にする (PR / ブランチ全体を見るため)。`git diff HEAD` 単体は **未コミット差分しか取れず、コミット済の PR では空になって誤判定する** ので使わない。
- 完成したらこの README の表にも 1 行追加する。

View File

@@ -0,0 +1,167 @@
---
name: misskey-api-reviewer
description: Misskey の API エンドポイント (packages/backend/src/server/api/endpoints/) の追加・変更を専門レビューする。SPDX / meta / paramDef / UUID 重複 / endpoint-list.ts 登録 / ApiError throw / misskey-js 再生成 / e2e / CHANGELOG を機械的にチェック。バックエンド API を追加・変更した PR レビューで呼び出す。
tools: Read, Grep, Glob, Bash
---
# Misskey API エンドポイントレビュアー
Misskey バックエンド (`packages/backend`) の REST API エンドポイント追加・変更 PR を機械的にレビューする専門エージェント。規約の根拠は [.claude/skills/add-api-endpoint/SKILL.md](../skills/add-api-endpoint/SKILL.md)。
## 役割
`packages/backend/src/server/api/endpoints/` 配下の `.ts` 変更を対象に、規約逸脱・登録漏れ・型自動生成漏れ・テスト不足を抽出する。良い点には触れず、改善が必要な箇所のみ報告する。
## レビュー対象の特定
呼び出し元から明示的にファイルが渡されたらそれを優先する。渡されなかった場合は **PR / ブランチ全体の差分** を取得する (未コミット差分のみではないことに注意)。
```bash
BASE=$(git merge-base origin/develop HEAD)
{ git diff --name-only "$BASE"...HEAD; git diff --name-only HEAD; git ls-files --others --exclude-standard; } \
| sort -u \
| grep -E '^packages/backend/src/server/api/endpoints/.*\.ts$'
```
`origin/develop` が無い環境では `develop` または `master` にフォールバックする。
加えて以下も同じ baseline で差分対象に含める:
- `packages/backend/src/server/api/endpoint-list.ts`
- `packages/backend/test/e2e/**` (とくに `endpoints.ts``<area>.ts`)
- `packages/misskey-js/src/autogen/**`
- `CHANGELOG.md`
差分対象が空なら「レビュー対象の API エンドポイント変更なし」と短く報告して終了。
## チェックリスト
### 1. SPDX ヘッダー (Critical)
新規 `.ts` ファイル冒頭に以下があるか:
```
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
欠落すると CI の `spdx` ジョブが落ちる。
### 2. `meta` の必須・推奨フィールド (Major)
[endpoints.ts の型定義](../../packages/backend/src/server/api/endpoints.ts) を真とする。
- `tags`: OpenAPI タグ (機能領域)。
- `requireCredential`: 明示必須 (boolean)。
- `kind`: OAuth scope。`requireCredential: true` のとき必須 (`read:account` / `write:notes` 等)。
- `requireModerator` / `requireAdmin`: 権限制限が要るか。
- `prohibitMoved`: 移行済アカウントを拒否するか (write 系で要検討)。
- `limit`: レート制限 `{ duration, max, key?, minInterval? }`。書き込み系 / コスト高い処理で未指定なら指摘。
- `errors`: エラー定義。各要素に `message` / `code` / `id` (UUID v4) が揃っているか。
- `res`: JSON Schema または `ref: '<EntityName>'`。各プロパティに `optional` / `nullable`**明示** されているか。
- `requireFile` / `secure` / `allowGet` / `cacheSec` / `description`: 該当するエンドポイントで使い分けているか。
### 3. `meta.errors` の UUID 検証 (Critical)
`errors[*].id` が:
1. UUID v4 形式 (`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`) か
2. 既存エンドポイントの `id` と重複していないか
重複検査:
```bash
grep -rn "id: '<生成された UUID>'" packages/backend/src/server/api/endpoints/
```
新規エンドポイントの全 `id` を抽出して衝突を確認する。
### 4. `paramDef` (Major)
- JSON Schema 形式 (`type: 'object'`, `properties`, `required`)
- ID 文字列は `format: 'misskey:id'`
- `required` 配列で必須プロパティを明示
- `as const` または `as const satisfies Schema` で型推論を効かせる (既存実装は前者多数。`as const` 自体が無く `Schema` 型注釈もない場合のみ指摘)
### 5. エンドポイント実装本体 (Major)
- `Endpoint<typeof meta, typeof paramDef>` を継承しているか。
- `@Injectable()` デコレータ + `export default class` 形式か (`// eslint-disable-line import/no-default-export` が必要)。
- DI は `@Inject(DI.xxx)` 形式か。
- **クライアントに返すべき API エラーは `throw new ApiError(meta.errors.<key>)`** ([error.ts](../../packages/backend/src/server/api/error.ts) 参照)。`meta.errors` で定義したエラーケースを `throw new Error(...)` で投げているなら指摘する。
- 防御的アサーション・「起きるはずがない」内部不整合・テスト用 ENV ガード等の **想定外フェイルファスト**`throw new Error('...')` で構わない。既存実装でも `admin/reset-password.ts` などが採用しているパターン (例: `cannot reset password of root`)。`meta.errors` に対応がない `throw new Error` を一律で指摘しない。
- 同期 `throw` は許容。非同期処理での例外伝搬を確認する。
### 6. ★ `endpoint-list.ts` への登録 (Critical)
最も忘れやすい。**忘れると 404**。[endpoint-list.ts](../../packages/backend/src/server/api/endpoint-list.ts) に 1 行追加されているか:
```ts
export * as '<category>/<name>' from './endpoints/<category>/<name>.js';
```
新規エンドポイントを抽出し、各々が `endpoint-list.ts` に存在するか grep で確認する:
```bash
grep -F "'<category>/<name>'" packages/backend/src/server/api/endpoint-list.ts
```
**並び順の補足**: ファイル全体は厳密なアルファベット順では並んでおらず、同カテゴリ内 (`admin/queue/*` など) でも追加された経緯どおりの順になっている箇所が多い。**順序逸脱は指摘根拠にしない** (誤検知の元)。「行が存在するか」のみを Critical 観点として扱う。
### 7. `misskey-js` 再生成 (Critical)
`meta` / `paramDef` / `res` を変更したら、PR / ブランチに `packages/misskey-js/src/autogen/` 配下の差分が含まれているか確認する:
```bash
BASE=$(git merge-base origin/develop HEAD)
git diff --name-only "$BASE"...HEAD -- packages/misskey-js/src/autogen/
```
差分ゼロなら `pnpm build-misskey-js-with-types` の実行漏れ。CI の `check-misskey-js-autogen` ジョブで必ず落ちるため Critical 扱い。
### 8. e2e テスト (Major)
[test/e2e/endpoints.ts](../../packages/backend/test/e2e/endpoints.ts) または `test/e2e/<area>.ts` (`note.ts`, `users.ts` 等) 配下に、対応する `api('<category>/<name>', ...)` 呼び出しを含む `test(...)` ケースが追加されているか確認する。複雑な分岐 (権限チェック・エラーケース) の網羅も確認する。
**describe ラベルの形式は問わない**: 既存テストは `describe('Note', () => { test('投稿できる', ...) })` のように人間可読ラベルで構造化されており、`<category>/<name>` 形式の describe は使われていない。describe 名の規約違反としては指摘しない。
### 9. CHANGELOG エントリ (Minor)
ユーザー影響がある (新エンドポイント / 既存挙動変更) 場合、`CHANGELOG.md``## Unreleased``### Server` に 1 行追加されているか確認する。
```
- Feat: /api/<category>/<name> を追加
```
純粋な内部リファクタなら不要。
## 出力形式
優先度別に以下のフォーマットで出力する。
```
## 🔴 Critical
- packages/backend/src/server/api/endpoints/foo/bar.ts:23
meta.errors.fooError.id が UUID v4 形式ではない (実値: 'xxx-xxx')。
`node -e "console.log(crypto.randomUUID())"` で再生成すること。
## 🟡 Major
- ...
## 🔵 Minor
- ...
```
問題のないチェック項目には触れない。全項目クリアなら `✅ レビュー観点上の指摘なし` と短く返す。
## 参照
- [.claude/skills/add-api-endpoint/SKILL.md](../skills/add-api-endpoint/SKILL.md) — 実装側の規約 (本エージェントの根拠)
- [endpoints.ts (meta/paramDef 型定義)](../../packages/backend/src/server/api/endpoints.ts)
- [endpoint-list.ts (★ 登録先)](../../packages/backend/src/server/api/endpoint-list.ts)
- [endpoint-base.ts (Endpoint 基底クラス)](../../packages/backend/src/server/api/endpoint-base.ts)
- [error.ts (ApiError)](../../packages/backend/src/server/api/error.ts)
- [test/e2e/endpoints.ts](../../packages/backend/test/e2e/endpoints.ts)
- [AGENTS.md](../../AGENTS.md) — SPDX / マイグレーション履歴 / CHANGELOG 書式などの最低限ルール (Codex / Copilot と共通)

View File

@@ -0,0 +1,176 @@
---
name: vue-component-reviewer
description: Misskey フロントエンド (packages/frontend/src/components/ / pages/) の Vue 3 SFC 変更を専門レビューする。SPDX (HTML コメント) / Mk* 命名 / <script lang="ts" setup> / type-only defineProps / <style lang="scss" module> / CSS 変数 / i18n.ts と i18n.tsx の使い分け / os.* 経由 / a11y / Storybook (*.stories.impl.ts) を機械的にチェック。フロントエンドの .vue 変更を含む PR レビューで呼び出す。
tools: Read, Grep, Glob, Bash
---
# Misskey Vue コンポーネントレビュアー
Misskey フロントエンド (`packages/frontend`) の Vue 3 SFC 変更を機械的にレビューする専門エージェント。規約の根拠は [.claude/skills/add-mk-component/SKILL.md](../skills/add-mk-component/SKILL.md)。
## 役割
`packages/frontend/src/components/` および `packages/frontend/src/pages/` 配下の `.vue` 変更を対象に、命名・i18n・スタイル・アクセシビリティ・Storybook 併設の規約逸脱を抽出する。良い点には触れず、改善が必要な箇所のみ報告する。
## レビュー対象の特定
呼び出し元から明示的にファイルが渡されたらそれを優先する。渡されなかった場合は **PR / ブランチ全体の差分** を取得する (未コミット差分のみではないことに注意)。
```bash
BASE=$(git merge-base origin/develop HEAD)
{ git diff --name-only "$BASE"...HEAD; git diff --name-only HEAD; git ls-files --others --exclude-standard; } \
| sort -u \
| grep -E '^packages/frontend/src/.*\.vue$'
```
`origin/develop` が無い環境では `develop` または `master` にフォールバックする。
`.ts` を一律で含めると本エージェントの守備範囲外 (composable / store / service 層) まで巻き込んで誤検知が増えるため、対象は `.vue` のみとし、Storybook 併設チェックのために以下を **別リスト** として追加する:
- `locales/*.yml` (とくに `ja-JP.yml` 以外の変更は即 Critical)
- `packages/frontend/src/components/**/*.stories.impl.ts`
- `CHANGELOG.md`
差分対象が空なら「レビュー対象の Vue コンポーネント変更なし」と短く報告して終了。
## チェックリスト
### 1. SPDX ヘッダー (Critical)
`.vue` ファイル冒頭は **HTML コメント形式** で必須:
```html
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
```
`/* ... */` (TS 形式) は禁止。既存 SFC の慣習・SFC 先頭として自然な形式に統一するため (CI の `spdx` ジョブはコメント形式ではなく SPDX 文字列の有無のみを検査するため、形式が違っても CI は通るが、規約違反として指摘する)。
### 2. 命名規約 (Major)
- 共有 / 再利用コンポーネント (`packages/frontend/src/components/` 配下、サブディレクトリ含む) は `Mk` プレフィックス必須 (例: `MkButton.vue`, `global/MkAvatar.vue`, `grid/MkGrid.vue`)。
- ページ固有のものは `pages/` 配下に置き、`Mk` プレフィックスは不要。
> `<script setup>` SFC は named export を持たないため、「ファイル名と export 名の一致」を機械的に検査することはできない。SFC のデフォルトエクスポートはコンパイラ生成なので、ファイル名規約のみを基準にする。
### 3. `<script>` タグ (Major)
- `<script lang="ts" setup>` または `<script setup lang="ts">` のどちらでもよい (既存コードは多数派が前者だが、後者も `MkThemePreview.vue` 等で使われている)。属性順は指摘しない。`lang="ts"`**無い** ものは指摘する。
- 型ジェネリックが必要なら `generic="T extends ..."` 属性を加える (順序問わず)。
- `defineProps<{ ... }>()` / `defineEmits<{ ... }>()`**type-only** 形式。runtime の object 形式 (`defineProps({ ... })`) は使わない。
- Options API (`export default { data() { ... } }`) は禁止。
### 4. i18n の使い分け (Critical)
- 文字列リテラルの直書き禁止 (テンプレート / JS 両方)。
- 引数なし: `i18n.ts.<path>` (例: `i18n.ts.deleted`)。
- 引数あり: `i18n.tsx.<path>(...)` (関数呼び出し、例: `i18n.tsx.takeOverConfirm({ name })`)。
- 新規 i18n キーは `locales/ja-JP.yml` **のみ** に追加。
- **`locales/ja-JP.yml` 以外の `.yml` 変更があれば即 Critical** (`en-US.yml` 等は Crowdin 自動配信先で、手動編集すると上書き喪失する)。
差分検出:
```bash
BASE=$(git merge-base origin/develop HEAD)
git diff --name-only "$BASE"...HEAD -- 'locales/*.yml' | grep -v 'ja-JP.yml'
```
### 5. スタイル (Major)
- `<style lang="scss" module>` を既定とし、`:class="$style.foo"` で参照する。
- 新規で `<style scoped>` (module なし) は使わない (legacy)。
- **CSS 変数の使用必須** (色・余白・角丸など):
- テーマ色: `var(--MI_THEME-*)` (例: `var(--MI_THEME-panel)`)
- UI 共通: `var(--MI-*)` (例: `var(--MI-radius)`)
- 直接の `#fff` / `rgb(...)` / `rgba(...)` ハードコードは禁止
ハードコード検出:
```bash
BASE=$(git merge-base origin/develop HEAD)
git diff "$BASE"...HEAD -- 'packages/frontend/src/**/*.vue' \
| grep -E '^\+' | grep -E '#[0-9a-fA-F]{3,8}\b|rgba?\('
```
### 6. UI 操作は `os.*` 経由 (Critical)
- 直接の `alert()` / `confirm()` / `window.prompt()` / `window.alert()` は禁止。
- `os.alert` / `os.confirm` / `os.popup` / `os.toast` / `os.popupMenu` / `os.contextMenu` / `os.form` / `os.apiWithDialog` を使う ([os.ts](../../packages/frontend/src/os.ts) 参照)。
検出:
```bash
BASE=$(git merge-base origin/develop HEAD)
git diff "$BASE"...HEAD -- 'packages/frontend/src/**/*.vue' \
| grep -E '^\+' | grep -E '\b(alert|confirm|prompt)\s*\('
```
### 7. アクセシビリティ (Major)
- クリック可能要素は `<button>` か、`role="button"` + `tabindex="0"` + キーボードハンドラ (`@keydown.enter` 等) を実装する。
- 装飾以外の `<div @click>` で a11y 配慮がないものは指摘する。
- フォーム要素には対応する `<label>` または `aria-label` を付ける。
- `:disabled` バインドや `aria-disabled` の整合性を確認する。
### 8. Storybook 併設 (Major)
- 共有 `Mk*` コンポーネントを新規追加した場合、`Mk<Name>.stories.impl.ts` が同階層に併設されているか (サブディレクトリ含む。例: `components/global/MkAvatar.stories.impl.ts`, `components/grid/MkGrid.stories.impl.ts`)。
- **ファイル名は `.stories.impl.ts` 固定** (`.stories.ts` は誤り)。
- 既存 [MkButton.stories.impl.ts](../../packages/frontend/src/components/MkButton.stories.impl.ts) を雛形例として参照する。
検出 (新規追加された `Mk*.vue` をサブディレクトリ含めて拾う):
```bash
BASE=$(git merge-base origin/develop HEAD)
git diff --name-only --diff-filter=A "$BASE"...HEAD -- \
'packages/frontend/src/components/**/Mk*.vue' \
| sed 's/\.vue$/.stories.impl.ts/' \
| xargs -I {} sh -c 'test -f {} || echo "missing: {}"'
```
### 9. アイコン (Minor)
- アイコンは Tabler icons クラス (`<i class="ti ti-info-circle">` 等) を使う。
- インライン SVG や別アイコンセットは原則使わない (既存パターンに合わせる)。
### 10. CHANGELOG エントリ (Minor)
ユーザー影響がある変更なら、`CHANGELOG.md``## Unreleased``### Client` に 1 行追加されているか確認する。
```
- Enhance: <component> の <挙動> を改善
- Fix: <component> の <不具合> を修正
```
純粋な内部リファクタなら不要。
## 出力形式
優先度別に以下のフォーマットで出力する。
```
## 🔴 Critical
- packages/frontend/src/components/MkFoo.vue:1
SPDX ヘッダーが HTML コメント形式ではなく TS 形式になっている。
`<!-- ... -->` で書き直すこと。
## 🟡 Major
- ...
## 🔵 Minor
- ...
```
問題のないチェック項目には触れない。全項目クリアなら `✅ レビュー観点上の指摘なし` と短く返す。
## 参照
- [.claude/skills/add-mk-component/SKILL.md](../skills/add-mk-component/SKILL.md) — 実装側の規約 (本エージェントの根拠)
- [.claude/skills/add-i18n-key/SKILL.md](../skills/add-i18n-key/SKILL.md) — i18n キー追加のルール
- [os.ts](../../packages/frontend/src/os.ts) — UI 操作 API
- [MkButton.vue](../../packages/frontend/src/components/MkButton.vue)
- [MkInput.vue](../../packages/frontend/src/components/MkInput.vue) — generic SFC 例
- [MkButton.stories.impl.ts](../../packages/frontend/src/components/MkButton.stories.impl.ts) — Storybook 雛形
- [AGENTS.md](../../AGENTS.md) — SPDX / locales 編集制限 / CHANGELOG 書式などの最低限ルール (Codex / Copilot と共通)

View File

@@ -0,0 +1,38 @@
# `.claude/commands/` — プロジェクト固有のスラッシュコマンド
Misskey 開発で繰り返し使うワークフローを `/command-name` で呼び出せるよう、`.claude/commands/<name>.md` 形式で配置している。
## 実装済みコマンド
### Misskey オリジナル
| コマンド | 用途 | 典型ユースケース |
| --- | --- | --- |
| [`/check-misskey-js`](./check-misskey-js.md) | `pnpm build-misskey-js-with-types` を走らせ、`packages/misskey-js/src/autogen/` の差分を報告 | backend の API endpoint を追加・変更した直後 |
| [`/changelog-add`](./changelog-add.md) | `CHANGELOG.md``## Unreleased` 配下、対応するサブセクションに 1 行追記 | ユーザー影響のある変更をコミットする直前 |
| [`/migrate-new`](./migrate-new.md) | TypeORM `migration:create` の薄いラッパー (拡張子変換 + SPDX 付与 + `check-migrations` で pending DDL 検出) | 手書き SQL / データ移行用に空雛形が欲しい時 |
### ECC ([everything-claude-code](https://github.com/affaan-m/everything-claude-code)) 由来 (MIT)
ECC の MIT ライセンスファイルを Misskey の規約に合わせて再構成したもの。出典は [.claude/THIRD_PARTY_LICENSES.md](../THIRD_PARTY_LICENSES.md) を参照。
| コマンド | 用途 | 典型ユースケース |
| --- | --- | --- |
| [`/quality-gate`](./quality-gate.md) | `pnpm lint` + 各パッケージの unit test を順次実行する軽量品質ゲート | 完了前の軽量チェック (重い E2E は CI 側に委譲) |
| [`/harness-audit`](./harness-audit.md) | `.claude/` ハーネスを 7 カテゴリで採点し改善優先度を提示 | 設定の点検 / 新しい skill / agent / hook を入れた後 |
## 使い分け
- **`/migrate-new` vs [`create-migration` skill](../skills/create-migration/SKILL.md)**:
- 雛形だけ素早く欲しい → `/migrate-new`
- エンティティ差分から自動生成、または CONCURRENTLY などの注意点を含めて完全に誘導してほしい → `create-migration` skill (`migration:generate`)
- **`/changelog-add` vs 手動編集**:
- サブセクションの placeholder `-` 置換や、過去リリースセクションへの誤編集を避けるため、原則コマンドを使う。
- **`/quality-gate` のスコープ**:
- 編集途中の軽量チェック (lint + unit test) は `/quality-gate` で十分。重い e2e / federation / Cypress は CI 側で実行されるため、ローカルでは原則回さない。
## 新規追加時の方針
- 既存の `superpowers` / `pr-review-toolkit` などのプラグイン提供スラッシュコマンドで足りる場合は新規追加しない。
- frontmatter には最低限 `description` を指定し、引数を取るなら `argument-hint`、可能なら `allowed-tools` も指定する (permission prompt を最小化するため)。
- 長時間ビルド (2 分超) を伴うコマンドはインライン `` !`<cmd>` `` を使わず、本文で `Bash` ツール呼び出し時の `timeout` を指示する。

View File

@@ -0,0 +1,49 @@
---
description: CHANGELOG.md の Unreleased セクションに 1 行追記する
argument-hint: <general|client|server> <Prefix>: <description>
allowed-tools: Bash(awk:*), Bash(git diff:*), Read, Edit
---
## 引数
引数: `$ARGUMENTS`
## 現在の Unreleased セクション
!`awk '/^## Unreleased/,/^## [0-9]/' CHANGELOG.md`
## タスク
1. **引数の解析**
`$ARGUMENTS` を以下の形式として解釈する:
- 第 1 トークン: scope = `general` / `client` / `server` のいずれか (case-insensitive)
- 残り: エントリ本文。`Enhance:` / `Fix:` / `Feat:` のいずれかで始まる前提
- 不正な scope や、Prefix が見当たらない場合はエラー終了し、ユーザーに `argument-hint` の書式を提示する
scope は次のように見出しに変換する: `general``### General` / `client``### Client` / `server``### Server`
2. **対象サブセクションの状態判定**
上の context (現在の Unreleased セクション) を見て、対象サブセクションが以下のどちらかを判定する:
- **空 (placeholder のみ)**: 見出し直下に `-` 単独行のみがある状態
- **既存エントリあり**: `- Enhance: ...` / `- Fix: ...` / `- Feat: ...` の行が 1 つ以上ある状態
3. **CHANGELOG.md の編集**
`Read` で CHANGELOG.md 全体を確認した後、`Edit` ツールで以下のように更新する:
- **空の場合**: 該当サブセクションの placeholder `-` 行を `- <整形済みエントリ>` で置換する。例: `### General\n-\n``### General\n- Enhance: 新しい機能\n`
- **既存ありの場合**: 既存エントリ群の **末尾** (次の空行直前) に新エントリを **append** する。順序入れ替えはしない。
`Edit``old_string` には、置換対象のサブセクション付近のユニークな文脈 (見出し + 直後の数行) を含め、誤マッチを防ぐ。
4. **不可侵の徹底**
- `## Unreleased` 以下の対象サブセクションのみ編集する。
- `## 2026.x.x` 以下の過去リリースセクションは絶対に変更しない ([AGENTS.md §CHANGELOG](../../AGENTS.md#changelog) 参照)。
5. **結果確認**
`git diff CHANGELOG.md` を実行し、想定通り 1 行のみ追加されていることを表示して、ユーザーに確認させる。
## 例
- `/changelog-add server Fix: 通知が遅延する問題を修正``### Server` 末尾に追記
- `/changelog-add client Enhance: ノートの表示を改善``### Client` 末尾に追記
- `/changelog-add general Feat: 新機能の追加``### General` 末尾に追記 (placeholder 置換)

View File

@@ -0,0 +1,42 @@
---
description: backend の API 変更後に misskey-js を再生成し、生成物の差分を報告する
allowed-tools: Bash(pnpm build-misskey-js-with-types:*), Bash(git status:*), Bash(git diff:*), Bash(git branch:*)
---
## 概要
backend の API endpoint やスキーマを変更した後、`packages/misskey-js/src/autogen/` の自動生成型を最新化するためのコマンド。内部で `pnpm build-misskey-js-with-types` (backend build → `api.json` 生成 → misskey-js 型生成 → ビルド → API extractor) を一括実行する。
## 現在の状態 (再生成前)
- 現ブランチ: !`git branch --show-current`
- 既存の misskey-js 関連変更: !`git status --short -- packages/misskey-js/`
## タスク
以下の手順を順番に実行してください。
1. **再生成の実行**
`Bash` ツールで以下のコマンドを `timeout: 600000` (10 分) を指定して実行する。内部で backend ビルドと型再生成を行うため、デフォルトの 2 分タイムアウトでは不足する。
```bash
pnpm build-misskey-js-with-types
```
2. **差分の確認**
完了後、以下を実行して `packages/misskey-js/src/autogen/` の差分を確認する (`built/` は `.gitignore` 対象なので追跡対象外):
```bash
git status --short -- packages/misskey-js/
git diff --stat -- packages/misskey-js/src/autogen/
```
3. **結果報告**
- **差分なし** → 「backend の変更は misskey-js の公開型に影響していません」と報告する。追加コミットは不要。
- **差分あり** → 変更ファイル一覧をユーザーに示し、`git add packages/misskey-js/src/autogen/` で再生成物もコミット対象に含めるよう案内する。`api.json` の差分が大きい場合は、API endpoint 側の `meta` / `paramDef` / `res` 定義を確認するよう促す。
## 注意
- このコマンドは **backend 編集後の確認** が目的。backend を変更していないのに走らせると、ビルドキャッシュ次第で no-op になる。
- 実行中は `packages/backend/built/` や `packages/misskey-js/built/` などの中間生成物が更新されるが、これらは `.gitignore` 対象。
- 生成物以外 (`packages/misskey-js/src/` のうち `autogen/` 以外) に予期せぬ差分が出た場合は、ローカルの編集が混入している可能性があるため、一旦中止して原因を調査する。

View File

@@ -0,0 +1,146 @@
---
description: Misskey の .claude/ ハーネス (skills/agents/commands) を 7 カテゴリで採点する確定的な監査。
argument-hint: "[repo|skills|commands|agents]"
---
<!--
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: 2026 Affaan Mustafa and everything-claude-code contributors
出典 (upstream): https://github.com/affaan-m/everything-claude-code (v2.0.0-rc.1)
upstream path: commands/harness-audit.md
upstream license: MIT — https://github.com/affaan-m/everything-claude-code/blob/main/LICENSE
project-level notice: see .claude/THIRD_PARTY_LICENSES.md (Misskey 内サードパーティ一覧 + MIT 全文)
Imported into Misskey .claude/ on 2026-05-10. The 7-category rubric and output contract are derived from the upstream ECC version (MIT). The runtime layer was substantially reimplemented for Misskey: the upstream relies on scripts/harness-audit.js to mechanically score, while this version asks Claude to score directly with pnpm/git/grep, and adds Misskey-specific evaluation axes (SPDX coverage / endpoint-list 登録漏れ / migration 順序 / ja-JP.yml 整合).
note: 元 ECC 版は scripts/harness-audit.js (専用 Node スクリプト) で機械採点していたが、Misskey は ECC plugin runtime に依存しない方針なので、Claude が直接ファイルを読んで採点する手動運用版に書き換えた。Misskey 固有の重要観点 (SPDX 適用率 / endpoint-list 登録漏れ / migration 順序 / ja-JP.yml 整合) を評価軸として明示的に組み込んでいる。
-->
# /harness-audit — Misskey ハーネス監査
Misskey リポジトリの `.claude/` 構成を 7 カテゴリで採点し、改善優先度を提示する。
## Usage
`/harness-audit [scope]`
- `scope` (任意): `repo` (default) / `skills` / `commands` / `agents`
## 評価カテゴリ (各 0-10)
| # | カテゴリ | 評価軸 |
| --- | --- | --- |
| 1 | Tool Coverage | skill / agent / command の数、欠けているワークフロー段、重複なし |
| 2 | Context Efficiency | frontmatter description の冗長度、SKILL.md の長さ分布、重複情報、CLAUDE.md の肥大化 |
| 3 | Quality Gates | Stop / PreToolUse / PostToolUse hook の整備、`/quality-gate` 等の完了前ゲートの有無、自動 lint/typecheck |
| 4 | Memory Persistence | docs/* の同期状態を評価。プロジェクト側 `.claude/memory/` は未採用方針 (auto-memory はユーザーホーム側で自動運用) のため、ここを採点起点にせず既定 5/10 から開始する |
| 5 | Eval Coverage | testing.md の網羅、Misskey 固有の e2e/fed/Storybook/Cypress 適用ガイド |
| 6 | Security Guardrails | SPDX 規約適用、migration 不変性ルール、ja-JP.yml 限定編集ルール、secrets 検出 |
| 7 | Cost Efficiency | enabledPlugins の重複・過剰、context-budget の整備、MCP 過剰登録なし |
## Misskey 固有の確認項目 (採点根拠コマンド)
採点時に以下を実コマンドで確認する。各項目の **属するカテゴリ** は項目内に明記する (#1-#3 は Security Guardrails、#4 は Tool Coverage、#5 は Quality Gates):
```bash
# 1. [Security Guardrails] SPDX 適用率 (新規ファイル想定の汎用チェック)
# - node_modules を prune で除外
# - packages/misskey-js は MIT サブパッケージなので AGPL ヘッダーを持たない (AGENTS.md §1) → 除外
# - built/ なども除外
# 候補にはなお *.config.{ts,js} / *eslint* / *.d.ts のような CI 上 SPDX 対象外
# (.github/workflows/check-spdx-license-id.yml の exclude 参照) も混ざるため、
# 上位に出たファイルが「新規追加した実コード」かどうかは目視判定する。
find packages \
\( -type d \( -name node_modules -o -name built -o -name dist -o -path 'packages/misskey-js' \) -prune \) \
-o -type f \( -name '*.ts' -o -name '*.js' -o -name '*.vue' -o -name '*.scss' \) -print \
| xargs -r grep -L 'SPDX-License-Identifier: AGPL-3.0-only' | head -20
# → 上位に新規実コードが無ければ満点
# 2. [Security Guardrails] ja-JP.yml 以外の locales が直近で手動編集されていないか
# --pretty=format: でコミットヘッダ行を抑止し、ファイル名行のみを残してから grep する。
# Crowdin の自動同期 commit でも他言語 yml は更新されるため、出力が 0 行になることは少ない。
# 出力があった場合は、author / commit message を確認し Crowdin 由来か手動編集かを判定する:
# git log --since='30 days ago' --pretty=format:'%h %an %s' -- locales/<file>.yml
git log --since='30 days ago' --pretty=format: --name-only -- 'locales/*.yml' \
| grep -v '^$' | grep -v 'ja-JP.yml' | sort -u
# → 出力が無い、または全て Crowdin 由来 commit なら満点
# 3. [Security Guardrails] migration の pending DDL 検査 (TypeORM schema builder)
pnpm --filter backend check-migrations
# → 0 errors (= "All migrations are clean.") なら満点
# 4. [Tool Coverage] endpoint-list.ts 登録漏れ (新規 endpoint がリストにない場合)
# endpoints/ は再帰構造 (notes/create.ts, admin/announcements/create.ts 等) で 400+ ファイルあるため、
# endpoint-list.ts も `export * as '<category>/<name>' from './endpoints/<category>/<name>.js';` 形式で
# 1 ファイル 1 行登録される。両者の行数を「再帰 .ts 数」と「export * as 行数」で比較する。
# e2e / 単体テストは endpoint ではないので *.test.ts を除外する。
endpoint_files=$(find packages/backend/src/server/api/endpoints -type f -name '*.ts' ! -name '*.test.ts' | wc -l)
list_entries=$(grep -cE "^export \* as " packages/backend/src/server/api/endpoint-list.ts)
echo "endpoints (recursive): $endpoint_files / endpoint-list.ts entries: $list_entries"
# 差分が 0 なら満点。差分が出たら、登録漏れの具体特定:
comm -23 \
<(find packages/backend/src/server/api/endpoints -type f -name '*.ts' ! -name '*.test.ts' \
| sed -E 's|.*/endpoints/||;s|\.ts$||' | sort -u) \
<(grep -oE "^export \* as '[^']+'" packages/backend/src/server/api/endpoint-list.ts \
| sed -E "s/^export \* as '([^']+)'/\1/" | sort -u)
# 出力された行が登録漏れの endpoint。0 行なら満点。
# 5. [Quality Gates] console.log の混入
grep -rn 'console\.\(log\|debug\)' packages/backend/src packages/frontend/src 2>/dev/null \
| grep -v 'node_modules\|test\|.spec\.\|.test\.' | wc -l
# → 0 が理想
```
## 出力契約
以下を返す:
1. `overall_score` / `max_score` (repo は 70 点満点)
2. カテゴリごとのスコア + 具体的な根拠
3. 失敗チェック項目と該当ファイルパス
4. Top 3 改善アクション
5. 次に適用を推奨する skill / 手順
## サンプル出力
```text
Harness Audit (repo): 55/70
Tool Coverage: 9/10 (skills 5, agents 2, commands 5 — 偏りなし)
Context Efficiency: 8/10 (description 平均 3-5 行、肥大なし)
Quality Gates: 5/10 (Stop hook 共有設定に未登録 / `/quality-gate` あり)
Memory Persistence: 5/10 (プロジェクト側 memory/ 未採用方針 = 既定値)
Eval Coverage: 7/10 (testing.md 網羅、Storybook 一部抜け)
Security Guardrails: 10/10 (SPDX 100%, locales OK, migrations clean)
Cost Efficiency: 8/10 (context-budget 導入済 / MCP 0)
Failed Checks:
- packages/frontend/src/.../X.vue で SPDX 欠落 (Security Guardrails)
- console.log が backend に 3 件 (Quality Gates)
- 共有 Stop hook なし (Quality Gates) — 各 contributor が `.claude/settings.local.json` で opt-in する方針なら減点しなくて良い
Top 3 Actions:
1) [Security Guardrails] SPDX 欠落 1 ファイルを修正:
packages/frontend/src/.../X.vue
2) [Quality Gates] backend の console.log 3 件を logger に置換。
git grep "console\.log" packages/backend/src
3) [Cost Efficiency] enabledPlugins から未使用のものを外す。
.claude/docs/plugins.md と照合。
Suggested next skills to apply:
- /quality-gate で完了前に lint + unit test を回す
- context-budget で plugin 由来の overhead を確認
```
## 採点の信頼性
- 確定的: 同じ commit / 同じ `.claude/` 構成なら同じスコア
- ヒューリスティクス: 「description の冗長度」のような主観項目は同一基準で機械的に判定
- スクリプト不要: `pnpm``git``grep`/`find` 等の標準ツールのみ
## 参考: ECC オリジナルとの差分
- ECC 版は `node scripts/harness-audit.js` を直叩きする運用で、ECC リポジトリ全体に閉じた採点だった。
- Misskey 版は **Misskey の規約 (SPDX/migration/locales/endpoint-list)** を Security 採点に組み込み、`pnpm` ベースの実コマンドで根拠を取る方式に再設計。
- 結果として ECC への依存はゼロ。

View File

@@ -0,0 +1,81 @@
---
description: TypeORM migration の空雛形を生成する。スキーマ差分から自動生成したい時は create-migration skill を使うこと
argument-hint: <PascalCaseName>
allowed-tools: Bash(pnpm:*), Bash(ls:*), Bash(test:*), Bash(head:*), Read, Edit
---
## 引数
引数: `$ARGUMENTS`
## タスク
1. **PascalCaseName の検証**
`$ARGUMENTS``^[A-Z][A-Za-z0-9]+$` に一致するか確認する。一致しない場合はエラー終了し、`AddFooBar` / `BirthdayIndex` のような形式を案内する。
2. **既存ファイルの存在確認**
```bash
ls packages/backend/migration/*$ARGUMENTS.{js,ts} 2>/dev/null
```
既に同名 (タイムスタンプ違い) のファイルが存在する場合、上書きせずユーザーに別名を促す。
3. **TypeORM 公式 CLI で空雛形を生成 (`-o --esm` 必須)**
`create-migration` skill の方針に従い、`Date.now()` を手書きするのではなく TypeORM CLI を使う。`-o --esm` で **最初から JS(ESM) を生成** させ、後続の `.ts → .js` 変換や `import { MigrationInterface }` 削除といった TS 固有構文の除去を不要にする (`-o --esm` を付けないと `.ts` + CommonJS / `implements MigrationInterface` 付きで生成され、Misskey の `ormconfig.js` (`migration/*.js` のみロード) と既存 migration スタイルに合わない):
```bash
pnpm --filter backend exec typeorm migration:create -o --esm migration/$ARGUMENTS
```
出力: `packages/backend/migration/<UnixMs>-<PascalCaseName>.js`
4. **生成ファイルパスの取得**
後続ステップで使うパスを変数に受ける (`<ms>` を手書きしない):
```bash
dst=$(ls -t packages/backend/migration/*$ARGUMENTS.js | head -1)
```
以降のステップでは `$dst` を編集対象として扱う。完成後の典型的な形は次のようになる (参考: [packages/backend/migration/1767169026317-birthday-index.js](../../packages/backend/migration/1767169026317-birthday-index.js)):
```js
export class <PascalCaseName><ms> {
name = '<PascalCaseName><ms>'
async up(queryRunner) {
}
async down(queryRunner) {
}
}
```
5. **SPDX ヘッダーの追加**
`Edit` ツールで、ファイル冒頭に以下を挿入する。CI の `spdx` ジョブが失敗するため必須:
```js
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
6. **migration の pending DDL 検査**
```bash
pnpm --filter backend check-migrations
```
TypeORM schema builder で pending DDL を検出する検査 ([scripts/check_migrations_clean.js](../../packages/backend/scripts/check_migrations_clean.js))。空雛形を作っただけの段階ではエンティティ差分との不整合が残る場合があるため、`up`/`down` を埋めた後にも再実行して 0 件になるか確認する。
7. **結果報告**
- 生成ファイルパスを示す。
- `up()` / `down()` の中身が空であることを伝え、SQL を書く必要があると案内する。
- `down()` を空のまま放置すると本番ロールバック時に詰むため、必ず `up` の完全な巻き戻しを実装するよう促す。
- 詳細な手順 (`migration:generate` を使うべきケース、CONCURRENTLY などの注意点) は `create-migration` skill を参照するよう案内する。
## 注意
- このコマンドは **空雛形を素早く出して手書きする** 用途。エンティティ (`packages/backend/src/models/*.ts`) を変更した差分から SQL を自動生成したい場合は、このコマンドではなく `create-migration` skill 経由で `migration:generate` を使うこと。
- マージ済み migration ファイルは絶対に編集しない ([AGENTS.md §3](../../AGENTS.md#3-マージ済み-migration-を絶対に編集しない))。

View File

@@ -0,0 +1,122 @@
---
description: Misskey の lint / typecheck / 高速テストを順に実行して品質ゲートを通すコマンド。完了前の軽量検証用。
argument-hint: "[repo|backend|frontend|<path/to/file.ts>]"
---
<!--
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: 2026 Affaan Mustafa and everything-claude-code contributors
出典 (upstream): https://github.com/affaan-m/everything-claude-code (v2.0.0-rc.1)
upstream path: commands/quality-gate.md
upstream license: MIT — https://github.com/affaan-m/everything-claude-code/blob/main/LICENSE
project-level notice: see .claude/THIRD_PARTY_LICENSES.md (Misskey 内サードパーティ一覧 + MIT 全文)
Imported into Misskey .claude/ on 2026-05-10. Pipeline 概念 (lint → typecheck → test) は upstream ECC 版から借用 (MIT)。実コマンド層は Misskey の pnpm + tsgo + ESLint + Vitest に固定し、formatter (Prettier/Biome) フェーズは削除した。
note: 元 ECC 版は言語自動判定 + format/lint/type のジェネリック版だったが、Misskey 専用に pnpm + tsgo + ESLint + Vitest の組み合わせに固定。重い test:e2e / test:fed は含まない (CI 側で実行される)。
-->
# /quality-gate — Misskey 軽量品質ゲート
`/quality-gate [scope]`
完了前の **軽量** 品質チェック。重い E2E / 連合テスト (test:e2e / test:fed / Cypress) は CI 側で実行されるため、本コマンドには含めない。
## Scope
- `repo` (default) — 全パッケージ
- `backend``packages/backend` のみ
- `frontend``packages/frontend` のみ
- `path/to/file.ts` — 単一ファイルへの ESLint --fix のみ
## Pipeline
### Repo scope (全部)
各パッケージの `lint` スクリプト実体は `pnpm typecheck && pnpm eslint` ([packages/backend/package.json](../../packages/backend/package.json), [packages/frontend/package.json](../../packages/frontend/package.json)) で、ルートの `pnpm lint``pnpm --no-bail -r lint` (= 全パッケージで lint を `--no-bail` で実行)。**typecheck は lint に含まれている**ため、通常はこの 2 コマンドで十分:
```bash
# 1. Lint (= typecheck + ESLint、全パッケージ。--no-bail で最初の失敗で止まらず全結果を集める)
pnpm lint
# 2. Unit test (高速、e2e は含まない)
pnpm --filter backend test
pnpm --filter frontend test
```
#### 詳細を分けて見たい時のみ (optional)
lint がまとめて失敗していて typecheck の結果だけ単独で見たい場合は、以下を個別に回す。**通常は不要** (lint の出力を読めば足りる):
```bash
pnpm --filter backend typecheck # tsgo 単体
pnpm --filter frontend typecheck # vue-tsc 単体 (Vue SFC の型を見るため)
```
### Backend scope
`pnpm --filter backend lint` は内部で `pnpm typecheck && pnpm eslint` を実行する ([packages/backend/package.json](../../packages/backend/package.json)) ので、`lint` を回せば typecheck も終わる。軽量ゲートでは typecheck の二重実行を避けるため `lint` + `test` のみ:
```bash
pnpm --filter backend lint
pnpm --filter backend test
```
`tsgo` の出力を単独で見たい時のみ optional で `pnpm --filter backend typecheck` を別途回す。
### Frontend scope
`pnpm --filter frontend lint` も内部で `pnpm typecheck && pnpm eslint` を実行する ([packages/frontend/package.json](../../packages/frontend/package.json)) ため、軽量ゲートでは Backend 同様に `lint` + `test` のみ:
```bash
pnpm --filter frontend lint
pnpm --filter frontend test
```
`vue-tsc` の出力を単独で見たい時のみ optional で `pnpm --filter frontend typecheck` を別途回す。
### Single file scope
```bash
pnpm exec eslint --fix <path>
```
## Output
実行したフェーズの pass/fail と件数を集計する。標準パイプラインは `pnpm lint` (typecheck 内包) と unit test のみなので、デフォルトの出力は以下のようになる:
```text
Quality Gate (repo):
Lint: PASS (0 errors, 2 warnings)
Backend ut: PASS (412/412)
Frontend ut: PASS (87/87)
→ 完了前の軽量チェック OK。重い e2e / 連合テストは CI 側で実行される。
```
`#### 詳細を分けて見たい時のみ (optional)` で個別 typecheck (`pnpm --filter backend typecheck` / `pnpm --filter frontend typecheck`) も回した場合のみ、その結果を追加行として表示する:
```text
Quality Gate (repo):
Lint: PASS (0 errors, 2 warnings)
Backend tc: PASS (0 errors) # optional 実行時のみ
Frontend tc: PASS (0 errors) # optional 実行時のみ
Backend ut: PASS (412/412)
Frontend ut: PASS (87/87)
```
失敗時は最初に落ちたフェーズで停止して詳細を見せる。
## 関連 skill / コマンド
- `/check-misskey-js` コマンド — API 変更時の misskey-js 再生成
- [AGENTS.md §必須コマンド](../../AGENTS.md#必須コマンド) — pnpm コマンド一覧の正典
## 元 ECC 版との差分
- ジェネリックな言語自動判定を排除し、Misskey 固定 pipeline に。
- formatter フェーズなし (Misskey は ESLint --fix のみ採用)。
- e2e / federation / Cypress は重いため除外し CI 側に委譲。

18
.claude/docs/README.md Normal file
View File

@@ -0,0 +1,18 @@
# Misskey Claude Code 補助ドキュメント
ルート `CLAUDE.md` には書かれていないが、開発時に参照すると便利な情報を分野別にまとめている。**Claude は必要になったタイミングで該当ファイルを Read すれば良い** (auto-load しない)。
## 索引
| ファイル | いつ読むか |
|---|---|
| [architecture.md](./architecture.md) | パッケージ構成・ビルド構造を把握したい時 / 新パッケージを跨ぐ変更を計画する時 |
| [backend.md](./backend.md) | `packages/backend` を編集する時 (NestJS / TypeORM / API endpoint / migration) |
| [frontend.md](./frontend.md) | `packages/frontend` を編集する時 (Vue 3 / Mk* / i18n / SCSS Modules / `os.ts`) |
| [testing.md](./testing.md) | テストを書く・走らせる時 (Vitest 構成、Cypress、Storybook) |
| [plugins.md](./plugins.md) | 有効化済の Claude Code プラグインの用途を確認したい時 |
## 補足: ルール vs ドキュメント
- 事故直結ルール (SPDX / locales / migration) と必須コマンド・CHANGELOG 書式は、リポジトリルートの [AGENTS.md](../../AGENTS.md) に集約されている。Claude Code は CLAUDE.md からの `@AGENTS.md` で常時コンテキストに乗せる。Codex / Copilot も同じファイルを読む。
- `.claude/docs/*.md` (このディレクトリ) は **オンデマンド参照**。Claude が「知っておいた方が良いが常に持つ必要はない」内容をここに置く。

View File

@@ -0,0 +1,47 @@
# アーキテクチャ概要
## モノレポ構成 (pnpm workspaces)
pnpm workspace の正は [pnpm-workspace.yaml](../../pnpm-workspace.yaml) で、以下 11 パッケージと、`packages/misskey-js` 内の sub-workspace `packages/misskey-js/generator` (型生成用の内部ジェネレータ。直接編集しない) で構成される。`package.json``workspaces` 配列も併記しているが、実体は pnpm-workspace.yaml が読まれる:
| パッケージ | 役割 |
|---|---|
| `packages/backend` | NestJS 11 + Fastify 5 + TypeORM 0.3 (PostgreSQL) + Redis。HTTP/WebSocket/ActivityPub サーバー本体。 |
| `packages/frontend` | Vue 3.5 + Vite。Web クライアント本体。 |
| `packages/frontend-embed` | 埋め込み専用ビュー (ノート単体プレビュー等)。 |
| `packages/frontend-shared` | frontend と frontend-embed で共有するユーティリティ・コンポーネント。 |
| `packages/frontend-builder` | フロントエンドビルド支援 (Vite plugin など)。 |
| `packages/sw` | Service Worker。 |
| `packages/misskey-js` | JS/TS クライアント SDK (MIT サブパッケージ)。`src/autogen/` 配下のみ backend の OpenAPI から `pnpm build-misskey-js-with-types` で自動生成され、それ以外 (`src/index.ts` / `src/api.ts` 等) は手書き保守する。autogen 配下を直接編集しないこと。 |
| `packages/misskey-reversi` | 内蔵リバーシゲームのロジック。 |
| `packages/misskey-bubble-game` | 内蔵バブルゲームのロジック。 |
| `packages/i18n` | locales 読み込み/型生成のサポート。 |
| `packages/icons-subsetter` | アイコンのサブセット化ツール。 |
その他に `packages/shared` (workspaces には含まれないが共有ファイル置き場) もある。
## 重要な依存関係
```
frontend ── misskey-js (auto-generated) ── backend (OpenAPI)
└── frontend-embed, sw も依存
```
- backend の API (meta / paramDef / response) を変更したら **必ず** `pnpm build-misskey-js-with-types` を実行し、misskey-js の生成物を更新する。忘れると CI の `check-misskey-js-autogen` ジョブが落ちる。
## ビルドツール
- **Backend**: `rolldown` (Rust 製・Rollup 互換 API のバンドラ) でバンドル。型チェックは `tsgo` (TypeScript native preview)。
- **Frontend**: Vite。型チェックは `vue-tsc`
- **Lint**: ESLint 9 (Flat Config) + `@misskey-dev/eslint-plugin`
## 国際化
- `locales/` 直下に 40 言語の YAML (ja-JP.yml + 他 39 言語)。
- **`ja-JP.yml` のみ手動編集可** (Crowdin 経由で他言語へ自動配信)。
- フロントエンドからの参照は引数なしか引数ありかで使い分ける。詳細は [frontend.md](./frontend.md#国際化-i18n)。
## ライセンス
リポジトリ本体は AGPL-3.0-only。**AGPL-3.0-only 管轄かつ SPDX CI 対象ディレクトリ** の新規 `.ts` / `.js` / `.cjs` / `.mjs` / `.vue` / `.scss` / `.html` ファイルには冒頭に SPDX ヘッダー必須。`packages/misskey-js` は MIT サブパッケージなので AGPL ヘッダーを一律に付けない。条件と除外の詳細は [AGENTS.md §1](../../AGENTS.md#1-spdx-ヘッダー必須) 参照。

124
.claude/docs/backend.md Normal file
View File

@@ -0,0 +1,124 @@
# Backend (`packages/backend`) 規約
NestJS 11 + Fastify 5 + TypeORM 0.3 (PostgreSQL) + Redis。
## アーキテクチャ
- **DI コンテナ**: NestJS の `@Injectable()` サービス + Repository (TypeORM) パターン。
- **DI トークン**: `@/di-symbols.js``DI` から `@Inject(DI.xxx)` で注入。
- **ビルド**: `rolldown -c``built/` にバンドル。型チェックは `tsgo`
## API エンドポイント
### 配置
`packages/backend/src/server/api/endpoints/<category>/<name>.ts` (一部はトップ直下)。
### 三点セット (`endpoints/ping.ts` 参照)
各エンドポイントファイルは以下の 3 つを export する:
```ts
export const meta = {
tags: ['<tag>'],
requireCredential: true, // または false (必ず明示)
requireModerator: false, // 必要なら true
kind: 'read:account', // OAuth scope
res: {
type: 'object',
optional: false, nullable: false,
properties: { /* ... */ },
},
errors: {
sampleError: {
message: 'Sample error message.',
code: 'SAMPLE_ERROR',
id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', // UUID v4 (`x`=hex, `y`=8/9/a/b)。`crypto.randomUUID()` で生成し、他エンドポイントと重複させない
},
},
} as const;
export const paramDef = {
type: 'object',
properties: { /* JSON Schema */ },
required: [],
} as const;
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
constructor(
// @Inject(DI.xxx) private xxxRepository: XxxRepository,
) {
super(meta, paramDef, async (ps, me) => {
// 実装。エラーは throw new ApiError(meta.errors.xxx);
});
}
}
```
### 注意点
- **公開 API エラーとしてクライアントに返したいものは `throw new ApiError(meta.errors.<key>)` を使う**。`meta.errors` に列挙して `ApiError` でラップしないと misskey-js 側の型に出ず、レスポンスも 500 になる。
- 一方で **想定外の例外 (DB 不整合 / 下層サービスの bug 等) は握り潰さず再 throw する**。既存 endpoint も「期待される業務エラーは `ApiError` に変換し、それ以外は `throw err;` で再 throw」の二段構え (例: [`endpoints/i/pin.ts`](../../packages/backend/src/server/api/endpoints/i/pin.ts) の `catch` 節)。生 `throw` を全面禁止すると未知例外が 200 で潰れて debug 困難になる。
- `meta.errors.<key>.id`**UUID** 形式。新規追加時は他エンドポイントと重複しないよう確認する。
- `requireCredential``true` / `false` を必ず明示する。
- 新規エンドポイント追加後は **`pnpm build-misskey-js-with-types`** を実行する (`misskey-js` の自動生成ファイルを更新)。
### ルート登録
エンドポイントは **glob 自動収集されない**。新規ファイルを `endpoints/<category>/<name>.ts` に置いただけでは API ルーティングに乗らず、404 になる。`packages/backend/src/server/api/endpoint-list.ts` にアルファベット順で 1 行追加するのが必須:
```ts
export * as '<category>/<name>' from './endpoints/<category>/<name>.js';
```
`EndpointsModule.ts` がこのファイルの全エクスポートを `Object.entries()` で反復し、NestJS の provider (`provide: 'ep:<path>'`) を生成する。詳細は [.claude/skills/add-api-endpoint/SKILL.md](../skills/add-api-endpoint/SKILL.md) のステップ 4 を参照。
## モデル / Repository
- エンティティ: `packages/backend/src/models/<Name>.ts` (`@Entity` + `@Column`)。
- DI 経由で注入される Repository を経由してアクセス。
## Migration
詳細手順 (手書き方式 = AGENTS.md §3 と整合):
> エンティティ差分からの自動生成や `CREATE INDEX CONCURRENTLY` 等のオプションを使いたい場合は [.claude/skills/create-migration/SKILL.md](../skills/create-migration/SKILL.md) の TypeORM CLI 手順を使う。手書き / CLI どちらでも `check-migrations` (pending DDL 検出) さえ通せば等価。
1. **タイムスタンプ取得**: `node -e "console.log(Date.now())"`
2. **ファイル名**: `packages/backend/migration/{timestamp}-{PascalCaseName}.js` (拡張子は `.js`)
3. **雛形**:
```js
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class PascalCaseName1234567890123 {
name = 'PascalCaseName1234567890123'
async up(queryRunner) {
// 前進マイグレーション
}
async down(queryRunner) {
// up を完全に巻き戻す
}
}
```
4. **検証**:
- `pnpm --filter backend check-migrations` (TypeORM schema builder で pending DDL を検出する。エンティティと migration の不一致が残っているとここで非ゼロ終了する。実体は [scripts/check_migrations_clean.js](../../packages/backend/scripts/check_migrations_clean.js))
- `pnpm migrate` (ローカル DB に適用)
- `pnpm revert` (ロールバック確認)
5. **エンティティとの整合性**: 関連する `src/models/*.ts` の `@Column` / `@Entity` も同時に更新する。
> マージ済み migration の編集は **絶対禁止** ([AGENTS.md §3](../../AGENTS.md#3-マージ済み-migration-を絶対に編集しない))。
## テスト
- Unit: `pnpm --filter backend test` (`vitest.config.unit.ts`)
- E2E: `pnpm --filter backend test:e2e` (`vitest.config.e2e.ts`)
- Federation: `pnpm --filter backend test:fed` (`vitest.config.fed.ts`)
- 配置: `packages/backend/test/` 配下。

76
.claude/docs/frontend.md Normal file
View File

@@ -0,0 +1,76 @@
# Frontend (`packages/frontend`) 規約
Vue 3.5 + Vite + Storybook + Cypress E2E。
## コンポーネント命名
- 共有 / 再利用コンポーネントは **`Mk` プレフィックス** (例: `MkButton.vue`, `MkInput.vue`, `MkAbuseReport.vue`)。
- ページ単位のものは `packages/frontend/src/pages/` 配下に置く。
## SFC スタイル
Composition API + `<script setup lang="ts">` を基本とする (Options API は新規導入しない)。型宣言や module スコープのユーティリティを置きたい時は、setup ブロックと**併用**する形で追加の `<script lang="ts">` ブロックを置いて構わない (例: [`MkInput.vue`](../../packages/frontend/src/components/MkInput.vue) は `SupportedTypes` 型を別ブロックで宣言してから setup を書いている)。SCSS は **CSS Modules** で書き、`<style lang="scss" module>` を使う:
```vue
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
<div :class="$style.root">
<!-- ... -->
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
// ...
</script>
<style lang="scss" module>
.root {
/* ... */
}
</style>
```
## 国際化 (i18n)
- 文字列リテラルを直書きしない。
- 引数なし: `i18n.ts.<path>` で参照する (例: `i18n.ts.deleted`)。
- 引数あり: `i18n.tsx.<path>(...)` で関数呼び出しする (例: `i18n.tsx.takeOverConfirm({ name })`)。
- 新規キーは **`locales/ja-JP.yml` のみ** に追加する (他言語は Crowdin で自動配信)。
- `i18n``packages/frontend/src/i18n.ts` (または共有モジュール) から import する。
## モーダル / 通知
- `os.ts` (`packages/frontend/src/os.ts`) 経由で呼ぶ。
- `os.alert(...)` / `os.confirm(...)` / `os.popup(...)` / `os.success(...)` など。
- ブラウザ標準の `window.alert()` / `window.confirm()`**直接呼ばない**
## アクセシビリティ (PR レビューで指摘されやすい点)
- クリックハンドラを付けるなら `<button>` を使うか、`role="button"` + `tabindex` を付ける。
- フォーム要素には `<label>` または `aria-label` を付ける。
- キーボード操作可能であること。
## Storybook
新規共有コンポーネントには `<ComponentName>.stories.impl.ts` を併設するのが慣習 (`MkButton.stories.impl.ts` 等の例多数)。
```bash
pnpm --filter frontend storybook-dev # localhost:6006
```
## ビルド・開発
- 開発: `pnpm dev` (ルート) で backend + frontend が watch で立ち上がる。
- ビルド: `pnpm --filter frontend build`
- 型チェック: `pnpm --filter frontend typecheck` (vue-tsc)
- ESLint: `pnpm --filter frontend eslint`
## テスト
- Unit (Vitest): `pnpm --filter frontend test`
- Cypress E2E: `pnpm e2e` (ルートから; `start-server-and-test` で起動)

28
.claude/docs/plugins.md Normal file
View File

@@ -0,0 +1,28 @@
# 有効化済 Claude Code プラグイン
`.claude/settings.json` で 14 プラグインが有効化されている。それぞれの典型的な利用シーンを 1 行で示す。
| プラグイン | 用途 |
| --- | --- |
| `frontend-design` | UI コンポーネント / ページの設計・デザイン作業 (Vue 3 編集に有効) |
| `superpowers` | TDD・debugging・brainstorming・planning 等のメタスキル群 |
| `context7` | OSS ドキュメントの取得 (Vue 3, NestJS, TypeORM, Vitest 等) — 訓練データの古さを補う |
| `code-review` | コードレビュー (`/code-review`) |
| `code-simplifier` | コード整理 (`code-simplifier:code-simplifier` サブエージェント経由) |
| `github` | GitHub PR / Issue 操作 (gh ベースだが補助コマンドあり) |
| `skill-creator` | 新スキルの作成・改善・評価 |
| `feature-dev` | 機能開発ガイド (`/feature-dev:feature-dev` / 内部に `code-architect` / `code-explorer` / `code-reviewer` サブエージェント) |
| `claude-md-management` | CLAUDE.md の作成・改善 (`/claude-md-management:revise-claude-md` / `claude-md-improver` エージェント) |
| `typescript-lsp` | TypeScript LSP 連携 (型情報を活用) |
| `security-guidance` | セキュリティレビュー (`/security-review`) |
| `pr-review-toolkit` | PR レビュー一式。サブエージェント: `code-reviewer` / `code-simplifier` / `comment-analyzer` / `pr-test-analyzer` / `silent-failure-hunter` / `type-design-analyzer` |
| `claude-code-setup` | Claude Code 自動化セットアップ提案 |
| `playwright` | ブラウザ自動操作 (フロントエンド動作確認時に有用) |
## 使い分けの指針
- **API 関連の調査**: `context7` で対象ライブラリのドキュメントを取得 → 編集。
- **PR 作成前**: `pr-review-toolkit` の各エージェント (code-reviewer / silent-failure-hunter 等) を並列で走らせる。
- **新機能の設計**: `feature-dev` → brainstorming → 実装の流れ。
- **UI 確認**: `playwright``pnpm dev` の画面を直接操作。
- **将来追加検討**: PostgreSQL MCP — TypeORM + 342 migration の調査効率化。read-only ロールで登録し、接続先 (`misskey` DB) と権限分離に注意する。

69
.claude/docs/testing.md Normal file
View File

@@ -0,0 +1,69 @@
# テスト構成
## Backend 全般の前提: `.config/test.yml`
backend のテストスクリプト (`test` / `test:e2e` / `test:fed`) はすべて内部で `cross-env NODE_ENV=test pnpm compile-config` を実行し、`.config/test.yml` を読み込む ([packages/backend/package.json](../../packages/backend/package.json), [packages/backend/scripts/compile_config.js](../../packages/backend/scripts/compile_config.js))。**未作成だとテスト自体が起動しない。**
未作成なら以下を 1 回だけ手動コピーする (どちらでも可):
```bash
ncp .github/misskey/test.yml .config/test.yml
# または
cp .github/misskey/test.yml .config/test.yml
```
補足:
- ルートの `pnpm start:test` (Cypress 用にテストサーバーを起動するコマンド) を使う経路では実行時に `ncp` で自動コピーされる ([package.json](../../package.json))。それ以外で backend テストを直接走らせる時は上記の手動コピーが必要。
- すでに `.config/test.yml` があれば各テストスクリプトの内部 `compile-config` で十分なので、追加で `pnpm --filter backend compile-config` を叩く必要はない。
- `pnpm start:test` は backend e2e テスト (`pnpm --filter backend test:e2e`) の前提ではない (ポート競合の元になるため使わないこと)。
## Backend (Vitest 4, 3 設定)
| 種別 | 設定ファイル | 実行コマンド |
| --- | --- | --- |
| Unit | `packages/backend/vitest.config.unit.ts` | `pnpm --filter backend test` |
| E2E (HTTP / DB) | `packages/backend/vitest.config.e2e.ts` | `pnpm --filter backend test:e2e` |
| Federation | `packages/backend/vitest.config.fed.ts` | `pnpm --filter backend test:fed` |
- 配置: `packages/backend/test/`
- 事前準備は [§Backend 全般の前提: `.config/test.yml`](#backend-全般の前提-configtestyml) を参照。
- カバレッジ: `pnpm --filter backend test-and-coverage`
## Frontend (Vitest)
```bash
pnpm --filter frontend test # 1 回実行
pnpm --filter frontend test-and-coverage # カバレッジ付き
```
- 主な配置: `packages/frontend/test/*.test.ts` (例: `i18n.test.ts`, `theme.test.ts`, `is-birthday.test.ts`)。
- ビルドツール周りなど対象コードと隣接させた方が分かりやすいテストは、コードと同じディレクトリに `*.test.ts` として置く (例: [`packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts`](../../packages/frontend/lib/rollup-plugin-unwind-css-module-class-name.test.ts))。
- 共有コンポーネント (`MkX.vue`) のユニットテストは現状少なく、`*.spec.ts` / `__tests__/` 形式は採用していない (Storybook + Cypress でカバー)。
## E2E (Cypress)
ルートから実行する:
```bash
pnpm e2e # start:test サーバーを立てて Cypress run
pnpm cy:open # 対話的に開く
```
- 設定: ルート `cypress.config.ts`。テスト本体は `cypress/` 配下。
## Storybook (frontend)
```bash
pnpm --filter frontend storybook-dev # http://localhost:6006
pnpm --filter frontend build-storybook # 静的ビルド
```
- 各コンポーネント横に `*.stories.impl.ts` を併設する慣習 (例: `MkButton.stories.impl.ts`)。
- Chromatic (`pnpm --filter frontend chromatic`) で視覚回帰チェック。
## ローカル DB / Redis (テスト・開発共通)
```bash
docker compose -f compose.local-db.yml up -d
```

18
.claude/settings.json Normal file
View File

@@ -0,0 +1,18 @@
{
"enabledPlugins": {
"frontend-design@claude-plugins-official": true,
"superpowers@claude-plugins-official": true,
"context7@claude-plugins-official": true,
"code-review@claude-plugins-official": true,
"code-simplifier@claude-plugins-official": true,
"github@claude-plugins-official": true,
"skill-creator@claude-plugins-official": true,
"feature-dev@claude-plugins-official": true,
"claude-md-management@claude-plugins-official": true,
"typescript-lsp@claude-plugins-official": true,
"security-guidance@claude-plugins-official": true,
"pr-review-toolkit@claude-plugins-official": true,
"claude-code-setup@claude-plugins-official": true,
"playwright@claude-plugins-official": true
}
}

33
.claude/skills/README.md Normal file
View File

@@ -0,0 +1,33 @@
# `.claude/skills/` — プロジェクト固有のカスタムスキル
Misskey 固有の繰り返しタスクを Claude にスムーズに実行させるための **カスタムスキル**`.claude/skills/<name>/SKILL.md` 形式で配置する。
frontmatter (`name` + `description`) は、Claude が **自動でスキルを呼び出すか判断する** 唯一の手がかりになる。`description` には用途を具体的かつ網羅的に書く (動詞 + 対象 + トリガー条件)。
## 実装済スキル
### Misskey 固有 (本リポジトリ向け書き起こし)
| スキル名 | 役割 | 優先度 |
| --- | --- | --- |
| [create-migration](create-migration/SKILL.md) | TypeORM CLI (`migration:generate` / `migration:create`) でマイグレーションを生成し、SPDX / up-down / `check-migrations` まで誘導 | 高 (342 既存 / 規約厳しい) |
| [add-api-endpoint](add-api-endpoint/SKILL.md) | NestJS DI + meta/paramDef 規約で API エンドポイント追加。`endpoint-list.ts` 登録と `misskey-js` 再生成を含む | 高 |
| [add-i18n-key](add-i18n-key/SKILL.md) | `locales/ja-JP.yml` のみ編集する補助。型は `packages/i18n` が自動再生成 | 中 |
| [add-mk-component](add-mk-component/SKILL.md) | `Mk*` 命名 + SPDX (HTML) + SCSS module + `*.stories.impl.ts` 併設の Vue コンポーネントを一括スキャフォールド | 中 |
### ECC (everything-claude-code) 由来 — MIT セレクトインポート
[.claude/THIRD_PARTY_LICENSES.md](../THIRD_PARTY_LICENSES.md) §1 に出典・改変メモ・MIT 全文を集約。
| スキル名 | 役割 | 優先度 |
| --- | --- | --- |
| [context-budget](context-budget/SKILL.md) | agents / skills / MCP / CLAUDE.md の token overhead を見える化し、肥大コンポーネントを検出 | 中 |
設計方針: `create-migration` は手動の `Date.now()` 命名ではなく TypeORM 公式 CLI (`migration:generate` / `migration:create`) を採用。Storybook ファイル名は `*.stories.impl.ts` 規約に準拠する。
## 新規スキルを追加する場合
- `.claude/skills/<name>/SKILL.md` に YAML frontmatter (`name` + `description`) と本文 Markdown を書く。
- `disable-model-invocation: true` は付けない (auto-invoke させたいため)。
- 主要参照ファイルへのリンクは、リポジトリルートからの相対パス (例: `../../packages/backend/...`) で貼る。絶対パスは contributor のホームディレクトリ依存になるので使わない。
- 完成したらこの README の表にも 1 行追加する。

View File

@@ -0,0 +1,253 @@
---
name: add-api-endpoint
description: Misskey の REST API エンドポイント (/api/<category>/<name>) を NestJS DI + meta/paramDef 規約で追加する。バックエンドに新しい API ルートを足す時に必ず使う。endpoint-list.ts への手動登録、e2e テスト、misskey-js 再生成、CHANGELOG までの一連の手順を含む。
---
# Misskey API エンドポイント追加スキル
`packages/backend/src/server/api/endpoints/<category>/<name>.ts` に新規エンドポイントを追加するためのワークフロー。**手順 4 (endpoint-list.ts 登録) を忘れると 404 になる** 点に最大の注意を払う。
## 最重要事実 (見落とすと壊れる)
1. エンドポイントは **glob 自動収集されない**。[packages/backend/src/server/api/endpoint-list.ts](../../../packages/backend/src/server/api/endpoint-list.ts) への 1 行追加が必須。
2. `meta` / `paramDef` を変えたら **misskey-js の再生成が必須**`pnpm build-misskey-js-with-types` を忘れると CI の `check-misskey-js-autogen` で必ず落ちる。
3. `meta.errors` の各 `id`**UUID**。重複させない (既存全 UUID と衝突確認)。
## ステップ 1: ファイル配置と SPDX
`packages/backend/src/server/api/endpoints/<category>/<name>.ts` に新規作成する。`<category>` は機能領域 (例: `notes`, `users`, `admin/announcements`)。
冒頭に SPDX ヘッダーを必ず付ける:
```ts
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
## ステップ 2: 最小テンプレート (シンプル read 系)
[endpoints/ping.ts](../../../packages/backend/src/server/api/endpoints/ping.ts) をベースに書く。認証不要・パラメータなし・小さなレスポンスの例:
```ts
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
export const meta = {
tags: ['<tag>'],
requireCredential: false,
res: {
type: 'object',
optional: false, nullable: false,
properties: {
// ...
},
},
} as const;
export const paramDef = {
type: 'object',
properties: {},
required: [],
} as const;
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
constructor(
) {
super(meta, paramDef, async (ps, me) => {
// 実装
});
}
}
```
## ステップ 3: 認証付き / DI / errors を含むテンプレート
[endpoints/notes/create.ts](../../../packages/backend/src/server/api/endpoints/notes/create.ts) を参照する。要点:
```ts
import { Inject, Injectable } from '@nestjs/common';
import { Endpoint } from '@/server/api/endpoint-base.js';
import { ApiError } from '@/server/api/error.js';
import { DI } from '@/di-symbols.js';
// import ms from 'ms'; // limit.duration に ms('1hour') 等を渡すとき (default import)
export const meta = {
tags: ['notes'],
requireCredential: true, // 認証必須なら true
prohibitMoved: false, // moved user を拒否するか
kind: 'write:notes', // OAuth scope (requireCredential 時に必須)
limit: {
duration: 3600000, // ms('1hour')
max: 300,
},
errors: {
noSuchNote: {
message: 'No such note.',
code: 'NO_SUCH_NOTE',
id: 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx', // ★ UUID v4 を必ず生成 (`x`=hex, `y`=8/9/a/b)。下の「UUID 生成」を参照
},
},
res: {
type: 'object',
optional: false, nullable: false,
ref: 'Note', // packed entity に揃える場合
},
} as const;
export const paramDef = {
type: 'object',
properties: {
noteId: { type: 'string', format: 'misskey:id' },
},
required: ['noteId'],
} as const;
@Injectable()
export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-disable-line import/no-default-export
constructor(
@Inject(DI.notesRepository)
private notesRepository: NotesRepository,
) {
super(meta, paramDef, async (ps, me) => {
const note = await this.notesRepository.findOneBy({ id: ps.noteId });
if (note == null) throw new ApiError(meta.errors.noSuchNote);
// 実装
});
}
}
```
### meta フィールド早見表
| フィールド | 用途 |
|---|---|
| `tags` | OpenAPI タグ (機能領域) |
| `requireCredential` | 認証必須か |
| `requireModerator` / `requireAdmin` | 権限制限 |
| `prohibitMoved` | アカウント移行済ユーザーを拒否 |
| `kind` | OAuth scope (`read:notes` / `write:notes` 等)。`requireCredential: true` 時必須 |
| `limit` | レート制限 (`{ duration, max, key?, minInterval? }`) |
| `errors` | エラー定義。各要素に `message` / `code` / `id` (UUID v4) 必須 |
| `res` | JSON Schema or `ref: '<EntityName>'` (packed entity 参照) |
| `requireFile` | ファイルアップロード必須 |
| `secure` | secure cookie 必要 |
| `allowGet` | GET メソッド許可 |
| `cacheSec` | レスポンスキャッシュ秒数 |
| `description` | OpenAPI 説明 |
詳細は [endpoints.ts](../../../packages/backend/src/server/api/endpoints.ts) の型定義 (lines 11-125) を参照。
### paramDef の特殊フォーマット
JSON Schema (AJV) ベースだが、Misskey 拡張を使える:
- `format: 'misskey:id'` — ID 文字列バリデーション
- `allOf` / `anyOf` / `oneOf` — 複合条件
- `default` — デフォルト値
詳細は [endpoint-base.ts](../../../packages/backend/src/server/api/endpoint-base.ts) を参照。
### エラー throw
**「公開 API エラーとして API クライアントに返したいもの」は必ず `throw new ApiError(meta.errors.<key>)` を使う**。`meta.errors` に列挙した上で `ApiError` でラップしないと、misskey-js 側の型情報に出ず、レスポンスも 500 になる。第 2 引数で追加情報を渡せる:
```ts
throw new ApiError(meta.errors.invalidParam, { reason: 'too short' });
```
一方で、**想定外の例外 (DB 不整合 / 下層サービスの bug など) を握り潰すために `try/catch``ApiError` に変換するのは避ける**。既存 endpoint も「期待される業務エラーは `ApiError` に変換し、それ以外は `throw err;` で再 throw する」という二段構えになっている。`packages/backend/src/server/api/endpoints/notes/create.ts``catch` 節 (末尾の `throw err;`) を参照。生の `throw` を全面禁止すると未知例外も 200 で潰れて debug が困難になるので、このバランスを保つ。
詳細は [error.ts](../../../packages/backend/src/server/api/error.ts) の `ApiError` クラスを参照。
### UUID 生成
```bash
node -e "console.log(crypto.randomUUID())"
```
その UUID が他のエンドポイントの `id` と衝突していないか必ず確認:
```bash
grep -r "id: '<生成した UUID>'" packages/backend/src/server/api/endpoints/
```
## ステップ 4: ★必須 — endpoint-list.ts に登録
[packages/backend/src/server/api/endpoint-list.ts](../../../packages/backend/src/server/api/endpoint-list.ts) の同カテゴリ末尾に 1 行追加する(既存の並びを崩さない):
```ts
export * as '<category>/<name>' from './endpoints/<category>/<name>.js';
```
ファイル冒頭のコメント (`When you add new endpoint, you should add it to this file.`) の通り、このリストが API ルーティングの単一の真実。**忘れると 404**。
`EndpointsModule.ts` がこのファイルの全エクスポートを `Object.entries()` で反復し、NestJS provider (`provide: 'ep:<path>'`) を生成する。
## ステップ 5: e2e テスト追加
[packages/backend/test/e2e/endpoints.ts](../../../packages/backend/test/e2e/endpoints.ts) に対応する `describe` / `test` を追加する。`api()` ヘルパーで叩く:
```ts
describe('<category>/<name>', () => {
test('正常系', async () => {
const res = await api('<category>/<name>', { /* params */ }, alice);
assert.strictEqual(res.status, 200);
});
});
```
実行: `pnpm --filter backend test:e2e`
## ステップ 6: misskey-js 再生成 (★必須)
`meta` / `paramDef` / `res` を変えたら必ず実行する:
```bash
pnpm build-misskey-js-with-types
```
これで以下が更新される:
- `packages/backend/built/api.json` (OpenAPI spec)
- `packages/misskey-js/generator/api.json`
- `packages/misskey-js/src/autogen/*.ts` (TypeScript 型)
PR に `packages/misskey-js/src/autogen/` 配下の差分が含まれていないと、CI の `check-misskey-js-autogen` で落ちる。
## ステップ 7: Lint と typecheck
```bash
pnpm --filter backend lint
```
(typecheck = `tsgo --noEmit` / ESLint = `eslint`)
## ステップ 8: CHANGELOG
ユーザー影響がある (新機能 / 既存挙動変更) なら、`CHANGELOG.md``## Unreleased``### Server` に 1 行追加する ([AGENTS.md §CHANGELOG](../../../AGENTS.md#changelog) 参照):
```
- Feat: /api/<category>/<name> を追加
```
純粋なリファクタや内部用なら不要。
## 参照ファイル
- [endpoints.ts (meta/paramDef 型定義)](../../../packages/backend/src/server/api/endpoints.ts)
- [endpoint-base.ts (Endpoint 基底クラス)](../../../packages/backend/src/server/api/endpoint-base.ts)
- [endpoint-list.ts (★ ここに登録)](../../../packages/backend/src/server/api/endpoint-list.ts)
- [error.ts (ApiError)](../../../packages/backend/src/server/api/error.ts)
- [endpoints/ping.ts (最小例)](../../../packages/backend/src/server/api/endpoints/ping.ts)
- [endpoints/notes/create.ts (DI + errors の典型)](../../../packages/backend/src/server/api/endpoints/notes/create.ts)
- [test/e2e/endpoints.ts (テスト例)](../../../packages/backend/test/e2e/endpoints.ts)
- [scripts/generate_api_json.js (misskey-js 生成元)](../../../packages/backend/scripts/generate_api_json.js)

View File

@@ -0,0 +1,115 @@
---
name: add-i18n-key
description: Misskey の i18n キーを追加・修正する。locales/ja-JP.yml のみ編集可能で、他言語ファイル (en-US.yml 等 39 言語) は Crowdin の自動配信先のため絶対に触らない。型は packages/i18n が ja-JP.yml から自動再生成する。frontend からは i18n.ts.<key> または i18n.tsx.<key>(...) で参照する。
---
# Misskey i18n キー追加スキル
UI 文言の追加・変更を行う際の規約。**手動編集して良いのは `locales/ja-JP.yml` のみ。**
## 大前提 (絶対 NG)
- **`locales/<lang>.yml` (ja-JP.yml 以外) の編集は禁止**。これらは Crowdin の自動配信先で、手動編集すると次の同期で上書き喪失する ([locales/README.md](../../../locales/README.md), [crowdin.yml](../../../crowdin.yml))。
- 文字列リテラルを SFC に直書きしない (`<span>こんにちは</span>` 等)。必ず `i18n.ts.<key>` を経由する。
- 既存キーの破壊的リネームは Crowdin 翻訳資産も道連れになるので慎重に。追加・改名併用 (新キー追加 → 移行 → 旧キー削除) を検討する。
## ステップ 1: ja-JP.yml にキーを追加
[locales/ja-JP.yml](../../../locales/ja-JP.yml) を編集する。YAML の階層構造を維持し、関連するセクションに配置する:
```yaml
# トップレベル単純キー
save: "保存"
# ネストしたカテゴリ (アンダースコア接頭辞は内部カテゴリ)
_settings:
general: "全般"
appearance: "外観"
# パラメータ付き (ICU MessageFormat 互換)
greeting: "こんにちは、{name}さん"
```
### 命名のお作法
- 単純キー: lowerCamelCase (例: `saveChanges`, `confirmDelete`)。
- カテゴリ: アンダースコア接頭辞 (例: `_settings`, `_abuseUserReport`)。
- 既存セクション内に置く場合はアルファベット順を維持する (新セクション全体を末尾に追加するのは可)。
## ステップ 2: 型定義の自動再生成
`packages/i18n/build.ts``ja-JP.yml` を解析し、TypeScript インターフェースを [packages/i18n/src/autogen/locale.ts](../../../packages/i18n/src/autogen/locale.ts) に出力する。
### 自動 (推奨)
`pnpm dev` 実行中なら、`packages/i18n` の watch スクリプトが yml の変更を検知して自動再生成する。
### 手動
```bash
pnpm --filter i18n generate
```
実体は `tsx scripts/generateLocaleInterface.ts`
### 失敗パターン
これを実行せずに frontend 側で `i18n.ts.<newKey>` を参照すると、`Locale` インターフェースに追加されていないため、typecheck で「Property '<newKey>' does not exist on type 'Locale'」というエラーになる。`pnpm --filter frontend lint` で発覚する。
## ステップ 3: frontend での参照
```ts
import { i18n } from '@/i18n.js';
```
| 用途 | 書き方 |
|---|---|
| 単純文字列 | `i18n.ts.save` |
| ネスト | `i18n.ts._settings.general` |
| パラメータ付き | `i18n.tsx.greeting({ name: userName })` |
| Vue テンプレート内 | `{{ i18n.ts.save }}` / `{{ i18n.tsx.greeting({ name }) }}` |
`i18n.ts` は型付き文字列、`i18n.tsx` は MessageFormat 関数。
## ステップ 4: 検証
```bash
# i18n パッケージの型再生成 + typecheck
pnpm --filter i18n lint
# frontend で新キー参照箇所の型チェック
pnpm --filter frontend lint
```
## 例: 「ノートを削除しますか?」確認ダイアログを追加する
1. `locales/ja-JP.yml`:
```yaml
_notes:
deleteConfirm: "このノートを削除しますか?"
```
2. `pnpm --filter i18n generate` (または `pnpm dev` で watch 中)
3. SFC:
```vue
<script setup lang="ts">
import { i18n } from '@/i18n.js';
import * as os from '@/os.js';
async function onDelete() {
const { canceled } = await os.confirm({
type: 'warning',
text: i18n.ts._notes.deleteConfirm,
});
if (canceled) return;
// 削除処理
}
</script>
```
## 参照ファイル
- [locales/README.md (★ 編集ポリシー根拠)](../../../locales/README.md)
- [locales/ja-JP.yml](../../../locales/ja-JP.yml)
- [packages/i18n/build.ts](../../../packages/i18n/build.ts)
- [packages/i18n/src/autogen/locale.ts (生成物)](../../../packages/i18n/src/autogen/locale.ts)
- [packages/frontend/src/i18n.ts](../../../packages/frontend/src/i18n.ts)

View File

@@ -0,0 +1,174 @@
---
name: add-mk-component
description: Misskey フロントエンドの新規 Vue 3 コンポーネントを追加する。Mk* 命名 / SPDX (HTML コメント) / <script setup lang="ts"> / <style lang="scss" module> / *.stories.impl.ts 併設の規約をまとめて適用する。新しい共有 UI コンポーネントを packages/frontend/src/components/ に作る時に使う。
---
# Misskey Vue コンポーネント追加スキル
`packages/frontend/src/components/` に新しい共有コンポーネントを追加するための規約。
## 大前提
- 共有 / 再利用コンポーネントは **必ず `Mk` プレフィックス** (例: `MkButton`, `MkInput`)。ページ固有部品など `Mk` プレフィックスでないものは原則 `pages/` 側に置く。
- 新規では `<style lang="scss" module>` (CSS Modules) を既定とする。古い `scoped` 形式が混在しているが、新規では使わない。
- 文字列リテラルの直書きは禁止。文言は必ず `i18n.ts.<key>` 経由で参照する (新キーは `add-i18n-key` スキルを参照)。
- `alert()` / `confirm()` / `window.prompt()` は使わない。`os.alert` / `os.confirm` / `os.popup` などを使う。
## ステップ 1: ファイル配置
`packages/frontend/src/components/Mk<Name>.vue` に新規作成する。
ストーリーが必要 (= ほぼ常に必要) なら、同階層に `Mk<Name>.stories.impl.ts` も作る。Storybook の規約は `*.stories.impl.ts` であって、`*.stories.ts` ではない。
## ステップ 2: SPDX ヘッダー (HTML コメント形式)
`.vue` ファイル冒頭に必須:
```html
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
```
`/* ... */` (TS / JS 形式) ではなく **HTML コメント** で書くこと。既存の `.vue` ファイルがすべて HTML コメント形式を使っており、SFC の先頭として自然な形式に統一するため (CI の `spdx` ジョブはコメント形式ではなく SPDX 文字列の有無のみを検査する)。
## ステップ 3: 最小テンプレート
[MkInfo.vue](../../../packages/frontend/src/components/MkInfo.vue) をベースにする (シンプルな表示コンポーネント):
```vue
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
<div :class="$style.root">
<slot></slot>
</div>
</template>
<script lang="ts" setup>
const props = defineProps<{
variant?: 'primary' | 'secondary';
}>();
const emit = defineEmits<{
(ev: 'click'): void;
}>();
</script>
<style lang="scss" module>
.root {
padding: 12px 14px;
border-radius: var(--MI-radius);
background: var(--MI_THEME-panel);
}
</style>
```
### 規約ポイント
| 項目 | 規約 |
|---|---|
| `<script>` | `<script lang="ts" setup>`。型パラメータが必要なら `generic="T extends ..."` を付ける ([MkInput.vue 参照](../../../packages/frontend/src/components/MkInput.vue)) |
| `defineProps` / `defineEmits` | **type-only** (`<{ ... }>`) 形式。runtime の object 形式は使わない |
| `<style>` | `lang="scss" module` を既定。クラス参照は `:class="$style.foo"` |
| CSS 変数 | `var(--MI_THEME-...)` (テーマ) / `var(--MI-radius)` (UI 共通) — ハードコードしない |
| アイコン | Tabler icons のクラス (`<i class="ti ti-info-circle">`) を使う |
## ステップ 4: i18n と os の利用
```vue
<script lang="ts" setup>
import { i18n } from '@/i18n.js';
import * as os from '@/os.js';
async function onClick() {
const { canceled } = await os.confirm({
type: 'warning',
text: i18n.ts._notes.deleteConfirm,
});
if (canceled) return;
os.toast(i18n.ts.deleted);
}
</script>
```
### `os` の主なヘルパー (詳細は [os.ts](../../../packages/frontend/src/os.ts))
| 関数 | 用途 |
|---|---|
| `os.alert({ type, title?, text })` | 単方向アラート |
| `os.confirm({ type, title, text })` | yes/no 確認 (`{ canceled }` を返す) |
| `os.toast(message)` | 一時通知 |
| `os.popup(component, props, handlers)` | 任意コンポーネントの非同期ポップアップ |
| `os.popupMenu(items, anchor?)` | コンテキストメニュー |
| `os.form(title, fields)` | フォームダイアログ |
| `os.apiWithDialog(endpoint, data)` | API 呼出し + エラー時ダイアログ表示 |
## ステップ 5: Storybook ストーリー併設
[MkButton.stories.impl.ts](../../../packages/frontend/src/components/MkButton.stories.impl.ts) を雛形として参考にする。`.stories.impl.ts``packages/frontend/src/` 配下の `.ts` ファイルなので [AGENTS.md §1 SPDX ヘッダー必須](../../../AGENTS.md#1-spdx-ヘッダー必須) の対象であり、冒頭に SPDX ヘッダーを必ず付ける (HTML コメント形式ではなく `/* */` 形式)。形式 (以下の `MkXxx` は実際のコンポーネント名に置換する):
```ts
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
/* eslint-disable @typescript-eslint/explicit-function-return-type */
/* eslint-disable import/no-default-export */
import type { StoryObj } from '@storybook/vue3';
import MkXxx from './MkXxx.vue';
export const Default = {
render(args) {
return {
components: { MkXxx },
setup() {
return { args };
},
template: '<MkXxx v-bind="args">slot content</MkXxx>',
};
},
args: {
variant: 'primary',
},
parameters: {
layout: 'centered',
},
} satisfies StoryObj<typeof MkXxx>;
```
`Vue` SFC は default export なので、`import MkXxx from './MkXxx.vue';` のように名前付き import ではなく default import で書く。実行確認は `pnpm --filter frontend storybook-dev`
## ステップ 6: Lint と typecheck
```bash
pnpm --filter frontend lint
```
(typecheck = vue-tsc 等、ESLint = `@misskey-dev/eslint-plugin` 含む)
ESLint --fix をピンポイントで:
```bash
pnpm exec eslint --fix packages/frontend/src/components/Mk<Name>.vue
```
## ステップ 7: 既存コンポーネントとの整合性確認
- 似た用途の既存 `Mk*` コンポーネントを参考に、スタイルやプロップ命名を揃える。
- `_button` / `_panel` / `_selectable` などの **共通 utility class** (グローバルスタイルにある) を活用できるか確認する。
- 大きな機能なら、Storybook stories で各バリエーションを網羅する。
## 参照ファイル
- [MkInfo.vue (シンプル例)](../../../packages/frontend/src/components/MkInfo.vue)
- [MkButton.vue (汎用ボタン例)](../../../packages/frontend/src/components/MkButton.vue)
- [MkInput.vue (generics + 多機能例)](../../../packages/frontend/src/components/MkInput.vue)
- [MkButton.stories.impl.ts (Storybook 雛形)](../../../packages/frontend/src/components/MkButton.stories.impl.ts)
- [packages/frontend/src/os.ts](../../../packages/frontend/src/os.ts)
- [packages/frontend/src/i18n.ts](../../../packages/frontend/src/i18n.ts)

View File

@@ -0,0 +1,148 @@
---
name: context-budget
description: Claude Code セッションのコンテキスト窓消費を agents/skills/MCP/rules/CLAUDE.md ごとに見える化し、肥大化と冗長コンポーネントを検出して節約候補を提示する。"コンテキスト消費を見せて"、"context budget"、"context audit"、"トークン内訳"、"これ以上 MCP 入る?" 等の発話で起動する。
---
<!--
SPDX-License-Identifier: MIT
SPDX-FileCopyrightText: 2026 Affaan Mustafa and everything-claude-code contributors
出典 (upstream): https://github.com/affaan-m/everything-claude-code (v2.0.0-rc.1)
upstream path: skills/context-budget/SKILL.md
upstream origin frontmatter: ECC
upstream license: MIT — https://github.com/affaan-m/everything-claude-code/blob/main/LICENSE
project-level notice: see .claude/THIRD_PARTY_LICENSES.md (Misskey 内サードパーティ一覧 + MIT 全文)
Imported into Misskey .claude/ on 2026-05-10 as a standalone copy (no dependency on the ECC plugin runtime). description was rewritten in Japanese and a "Misskey 固有メモ" section was appended; body content remains MIT-licensed.
note: Misskey の skills/agents 数は少ないので、MCP / CLAUDE.md / プラグイン由来の overhead が支配的になりやすい点に留意。
-->
# Context Budget
セッション内に読み込まれるコンポーネント (agents / skills / rules / MCP servers / CLAUDE.md) の token overhead を分析し、空き context を回復する具体策を提示する。
## 使う場面
- セッションが重い・出力品質が落ちてきた感覚がある
- 直近で skills / agents / MCP server を多数追加した
- 残りの context headroom を知りたい
- 追加コンポーネントを入れる前に空きを確認したい
- 「context-budget」「token 内訳」等のキーワードでユーザーが明示的に要請した時 (Misskey リポジトリにはこの名前のスラッシュコマンドは登録していない — 本 skill は名前 / description マッチで auto-invoke される想定。実装済の slash command 一覧は [.claude/commands/](../../commands/) を参照)
## 仕組み
### Phase 1: Inventory
各コンポーネントを走査して token を推定する。
**Agents** (`.claude/agents/*.md`)
- 行数とトークン数 (`words × 1.3`) を計算
- frontmatter `description` の長さを抽出
- フラグ: 200 行超 (重い)、description 30 word 超 (frontmatter 肥大)
**Skills** (`.claude/skills/*/SKILL.md`)
- SKILL.md ごとに token を計算
- フラグ: 400 行超
- `.agents/skills/` 等の重複コピーは除外
**Rules** (リポジトリルートの `AGENTS.md` + `.claude/` から `@-import` されるファイル)
- ファイル単位で token 計算
- フラグ: 100 行超
- 同一言語モジュール内の内容重複を検出
**MCP Servers** (`.mcp.json` または有効 MCP 設定)
- server 数と総 tool 数
- schema overhead をツールあたり ~500 token で見積もる
- フラグ: 20 tool 超のサーバー、`gh` / `git` / `npm` 等の CLI を単純ラップしただけのサーバー
**CLAUDE.md** (project + user-level)
- ファイルごとに token を計算
- フラグ: 合計 300 行超
### Phase 2: Classify
| バケット | 判定基準 | 行動 |
|--------------------|-------------------------------------------------------------|-----------------------------------|
| **Always needed** | CLAUDE.md から参照されている / 有効コマンドの裏 / 現プロジェクトと一致 | 維持 |
| **Sometimes needed** | ドメイン依存 (例: 言語パターン)、CLAUDE.md 参照なし | オンデマンド有効化を検討 |
| **Rarely needed** | コマンド参照なし、内容重複、明確な用途なし | 削除または lazy-load |
### Phase 3: Detect Issues
- **Bloated agent description** — frontmatter description が 30 word 超だと、Task ツール起動のたびに毎回ロードされる
- **Heavy agents** — 200 行超は Task ツールの context を毎回膨らませる
- **Redundant components** — agent ロジックを重複する skill、CLAUDE.md と重複する rule
- **MCP over-subscription** — 10 server 超、または CLI 代用可能なサーバー
- **CLAUDE.md bloat** — 冗長説明、古いセクション、rule に移すべき指示
### Phase 4: Report
```
Context Budget Report
═══════════════════════════════════════
Total estimated overhead: ~XX,XXX tokens
Context model: <現在モデル名> (<window>K window) ← 例: Claude Opus 4.7 (1M), Claude Sonnet (200K)
Effective available context: ~XXX,XXX tokens (XX%)
Component Breakdown:
┌─────────────────┬────────┬───────────┐
│ Component │ Count │ Tokens │
├─────────────────┼────────┼───────────┤
│ Agents │ N │ ~X,XXX │
│ Skills │ N │ ~X,XXX │
│ Rules │ N │ ~X,XXX │
│ MCP tools │ N │ ~XX,XXX │
│ CLAUDE.md │ N │ ~X,XXX │
└─────────────────┴────────┴───────────┘
WARNING: Issues Found (N):
[token 節約量の降順]
Top 3 Optimizations:
1. [action] → save ~X,XXX tokens
2. [action] → save ~X,XXX tokens
3. [action] → save ~X,XXX tokens
Potential savings: ~XX,XXX tokens (XX% of current overhead)
```
verbose mode ではさらにファイルごとの token 内訳、最重ファイルの行単位ブレークダウン、重複行の対比、MCP tool 一覧 + tool ごとの schema サイズ推定を出す。
## 例
**基本監査**
```
User: コンテキスト消費を見せて
Skill: 16 agents (12,400 tokens), 28 skills (6,200), 87 MCP tools (43,500), 2 CLAUDE.md (1,200)
Flags: 重い agent 3 個、CLI 代用可能な MCP 3 個
Top saving: MCP 3 個削除 → -27,500 tokens (overhead の 47% 削減)
```
**Verbose**
```
User: トークン内訳をファイル単位で
Skill: 上記レポートに加えて、planner.md (213 lines, 1,840 tokens) のような
per-file 行内訳、MCP tool ごとのサイズ、rule の重複行を side-by-side で表示
```
**追加前チェック**
```
User: MCP server を 5 個追加したいが、空きある?
Skill: 現状 33% → 5 server (≈ 50 tools) 追加で +25,000 tokens → 45% に到達
推奨: CLI 代用可能な server 2 個を先に外して 40% 以下を維持
```
## ベストプラクティス
- **トークン推定**: prose は `words × 1.3`、code 主体は `chars / 4`
- **MCP は最大のレバー**: tool あたり ~500 token、30-tool server ひとつで全 skill より大きい
- **agent description は常時ロード**: 呼ばれない agent でも description は毎 Task 投入
- **verbose は debug 用**: 普段は使わない
- **変更後は監査**: agent/skill/MCP 追加直後に走らせて creep を早期発見
## Misskey 固有メモ
- Misskey は MCP server をプロジェクトで明示登録していないため (`.mcp.json` 不在)、現状 overhead の支配項は CLAUDE.md と公式プラグイン群の skills / agents description である。
- ECC プラグインがユーザースコープで `installed_plugins.json` に存在するため、プロジェクトで `enabledPlugins` に追加していなくても system reminder に 200+ skill が現れる。これらは description が短いので個別 overhead は小さいが、合計値の確認に本 skill を使う。

View File

@@ -0,0 +1,156 @@
---
name: create-migration
description: Misskey の TypeORM マイグレーションを公式 CLI (migration:generate / migration:create) で正しく生成し、SPDX ヘッダー付与・up/down 整合・check-migrations 確認まで誘導する。エンティティのスキーマ変更を含むあらゆる DB 変更、または手書き SQL によるデータ移行が必要な時に使用する。
---
# Misskey マイグレーション作成スキル
`packages/backend/migration/` に新規 TypeORM マイグレーションを追加するためのワークフロー。
## 大前提 (絶対 NG)
- **既にマージ済み (develop / master) のマイグレーションファイルを編集しない** ([AGENTS.md §3](../../../AGENTS.md#3-マージ済み-migration-を絶対に編集しない))。本番履歴の改変は深刻なデータ不整合を引き起こす。スキーマ変更は **常に新しいタイムスタンプで新規ファイル** を作る。
- ファイル名のタイムスタンプ部分を後から書き換えない (順序が壊れる)。
> 作り方は AGENTS.md §3 の「`Date.now()` で UNIX ms を取得 → `{ms}-{PascalName}.js` を手書き」が最低ライン。エンティティ差分から自動生成したい (= TypeORM の `migration:generate` を使う) 場合は本 skill の手順に従う。**どちらでも構わない**が、エンティティ変更を伴う時は CLI 経由のほうが取り漏れが減るので推奨。
## ステップ 1: どちらの方式を使うか決める
| 状況 | 方式 |
|---|---|
| エンティティ (`packages/backend/src/models/*.ts`) を `@Column` / `@Index` / `@Entity` 等で先に変更し、差分から自動生成したい | `typeorm migration:generate` (本 skill の手順) |
| 手書き SQL / データ移行 / `CREATE INDEX CONCURRENTLY` など、エンティティ差分では表現できない変更 | `typeorm migration:create` で空雛形を作るか、`migrate-new` command で手書き雛形を作る |
| 列追加 1 本のような小規模変更で、既存ファイルをコピーした方が速い | AGENTS.md §3 の手順 (`Date.now()` + 手書き) でよい |
迷ったら **まずエンティティを変更 → `migration:generate`** が原則。既存 342 ファイルのほぼすべてが `queryRunner.query(\`SQL...\`)` の raw SQL なので、CLI 出力でも手書きでもスタイルは揃う。
## ステップ 2: CLI 実行
ルートディレクトリから以下を実行する。`<PascalName>` は変更内容を表す PascalCase (例: `AddBirthdayIndex`, `AddCategoryToAvatarDecorations`)。
### 2-A. エンティティ差分から生成
[CONTRIBUTING.md §Migration作成方法](../../../CONTRIBUTING.md#migration作成方法) に記載の基本形:
```bash
# packages/backend ディレクトリで実行する場合 (CONTRIBUTING.md 記載形式)
pnpm dlx typeorm migration:generate -d ormconfig.js -o --esm <PascalName>
```
**リポジトリルートから実行する場合** (AI が使う推奨形式。`pnpm --filter backend exec` を使うと backend の TypeORM バージョンと一致するため確実):
```bash
pnpm --filter backend exec typeorm migration:generate -d ormconfig.js -o --esm migration/<PascalName>
```
> **`--esm` について**: `-o` / `--outputJs` は「TS ではなく JS を出力する」オプション、`--esm` は「ESM 形式 (`export class ...`) で出力する」オプション。Misskey の既存 migration はすべて ESM JS であるため **両方が必須**。`--esm` を省略すると CommonJS 形式の JS が生成されスタイルが揃わない。
事前準備:
- `pnpm build-pre` を実行して `built/meta.json` を生成する (`loadConfig()` が `built/meta.json` を必須とするため。`pnpm build` 済みであれば不要)。
- `.config/default.yml` が存在すること (なければ `.config/example.yml` を参考に作成する)。
- `pnpm --filter backend compile-config` を実行して `built/.config.json` を生成する (`ormconfig.js` が `loadConfig()` 経由で必須とする。未実行だと "Compiled configuration file not found." エラーになる)。
- `pnpm --filter backend build` でエンティティを最新ビルド (CLI は `built/` を読む)。
- ローカル DB を起動する (`docker compose -f compose.local-db.yml up -d`)。
### 2-B. 空の手書きマイグレーション
```bash
pnpm --filter backend exec typeorm migration:create -o --esm migration/<PascalName>
```
ローカル DB の起動とビルドは不要。空の `up` / `down` だけが生成される。
> `-o --esm` を **必ず付ける**。これが無いと `<UnixMs>-<PascalName>.ts` (CommonJS / TS 出力) が生成されるが、Misskey の `ormconfig.js` は `migration/*.js` だけを読み、既存の他 migration も全て `export class ... { async up(queryRunner) {...} }` の ESM JS 形式なので、後で手作業で `.ts → .js` リネーム + `import { MigrationInterface }` 削除 + `class ... implements MigrationInterface` 削除をしないと走らない。`-o --esm` を付ければそのまま `.js` ESM で出るので、後処理は SPDX ヘッダー付与 (ステップ 3) だけで済む。
## ステップ 3: SPDX ヘッダー付与
CLI 出力には SPDX ヘッダーが含まれない。**必ず冒頭に追加する** (CI の `spdx` ジョブが失敗するため)。
```js
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
## ステップ 4: up / down の整合確認
- `up()` の各ステートメントに対し、`down()` で完全に巻き戻せること。
- 列追加 (`ADD COLUMN`) ↔ 列削除 (`DROP COLUMN`)、テーブル作成 ↔ テーブル削除、
FK 追加 ↔ FK 削除、インデックス作成 ↔ インデックス削除 を必ずペアで書く。
- `down()` を空のまま残さない。本番ロールバック時に詰む。
### インデックス追加時の注意 (CREATE INDEX CONCURRENTLY)
大規模テーブルへの `CREATE INDEX` は本番で長時間ロックする恐れがある。`CONCURRENTLY` で発行するときは **migration 側にも対応が必要**: PostgreSQL は `CREATE INDEX CONCURRENTLY` を transaction 内で実行できないため、migration class に以下を仕込んで TypeORM に「この migration は transaction を張らない」と指示する。
参照実装: [packages/backend/migration/1745378064470-composite-note-index.js](../../../packages/backend/migration/1745378064470-composite-note-index.js)。
```js
const isConcurrentIndexMigrationEnabled = process.env.MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY === '1';
export class CompositeNoteIndex1745378064470 {
name = 'CompositeNoteIndex1745378064470';
transaction = isConcurrentIndexMigrationEnabled ? false : undefined;
async up(queryRunner) {
const concurrently = isConcurrentIndexMigrationEnabled;
if (concurrently) {
// CREATE INDEX CONCURRENTLY ...
} else {
// CREATE INDEX ...
}
}
async down(queryRunner) {
// 同様に環境変数で分岐
}
}
```
要点:
- **`transaction = isConcurrentIndexMigrationEnabled ? false : undefined;`** が必須。これがないと `CREATE INDEX CONCURRENTLY` が transaction 内で実行されて `ERROR: CREATE INDEX CONCURRENTLY cannot run inside a transaction block` で失敗する。
- 環境変数 `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY=1` がデフォルト OFF。OFF のときは普通の `CREATE INDEX` (transaction 内) で動く必要がある。`up`/`down` 双方を環境変数で分岐させる。
- `ormconfig.js` の `migrationsTransactionMode` は **環境変数で切り替わる**: `MISSKEY_MIGRATION_CREATE_INDEX_CONCURRENTLY=1` のときだけ `'each'` (各 migration が個別 transaction)、未設定時は `'all'` (全 migration を 1 つの transaction でラップ) ([ormconfig.js:19](../../../packages/backend/ormconfig.js#L19))。普段は `'all'` 前提なので、CONCURRENTLY を使う migration を書く時だけこのフラグの存在を意識すれば良い。
### 関連エンティティとの一致
`migration:generate` を使った場合、エンティティ側の `@Column` / `@Entity` 修正と DB スキーマが食い違うとビルド全体がズレる。生成後に該当エンティティと SQL の対応を目視確認すること。
## ステップ 5: 検証
ルートから実行:
```bash
# 未反映の差分が無いか (新規 migration が生成すべき DDL を取り逃していないか)
pnpm --filter backend check-migrations
# ローカル DB に適用
pnpm migrate
# ロールバック (down が壊れていないか)
pnpm revert
# 再適用 (順方向にもう一度通す)
pnpm migrate
```
`check-migrations` の実体は [scripts/check_migrations_clean.js](../../../packages/backend/scripts/check_migrations_clean.js)。TypeORM の `dataSource.driver.createSchemaBuilder().log()` で pending DDL を取得し、`upQueries` / `downQueries` のいずれかが残っていれば非ゼロ終了する。**順序検査ではなく**「エンティティと migration が同期しているか」の検査。
## ステップ 6: 既存ファイル参照テンプレ
新規ファイルを書くときは、変更パターンが近い既存ファイルを **必ずひとつ開いて並べて書く**。スタイルが激しくズレた PR は差し戻されやすい。
| パターン | 参照ファイル |
|---|---|
| インデックス追加 + 関数定義 | [packages/backend/migration/1767169026317-birthday-index.js](../../../packages/backend/migration/1767169026317-birthday-index.js) |
| 列追加のみ | [packages/backend/migration/1766652173085-add-category-to-avatar-decorations.js](../../../packages/backend/migration/1766652173085-add-category-to-avatar-decorations.js) |
| テーブル新規作成 + FK | [packages/backend/migration/1761569941833-add-channel-muting.js](../../../packages/backend/migration/1761569941833-add-channel-muting.js) |
クラス命名規則は **PascalCase 名 + 13 桁タイムスタンプ** (例: `class BirthdayIndex1767169026317`)。`name` プロパティもクラス名と同一文字列にする。
## ステップ 7: CHANGELOG (ユーザー影響がある場合)
スキーマ変更がユーザーに見える挙動を生む場合のみ、`CHANGELOG.md` の `## Unreleased` → `### Server` または `### General` に 1 行追加する ([AGENTS.md §CHANGELOG](../../../AGENTS.md#changelog) 参照)。内部リファクタや純粋なインデックス追加は不要。

View File

@@ -165,6 +165,11 @@ id: 'aidx'
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# vueIntegration:
# tracingOptions:
# trackComponents: true
# browserTracingIntegration:
# replayIntegration:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
@@ -177,6 +182,9 @@ id: 'aidx'
# Number of worker processes
#clusterLimit: 1
# Number of threads of extra thread pool for CPU-intensive tasks (per worker)
#threadPoolSize: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
@@ -210,20 +218,9 @@ proxyBypassHosts:
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
allowedPrivateNetworks: [
'127.0.0.1/32'
]
# Disable automatic redirect for ActivityPub object lookup. (default: false)
# This is a strong defense against potential impersonation attacks if the viewer instance has inadequate validation.
# However it will make it impossible for other instances to lookup third-party user and notes through your URL.
#disallowExternalApRedirect: true
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@@ -177,6 +177,11 @@ id: 'aidx'
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# vueIntegration:
# tracingOptions:
# trackComponents: true
# browserTracingIntegration:
# replayIntegration:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
@@ -189,6 +194,9 @@ id: 'aidx'
# Number of worker processes
#clusterLimit: 1
# Number of threads of extra thread pool for CPU-intensive tasks (per worker)
#threadPoolSize: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
@@ -222,12 +230,6 @@ proxyBypassHosts:
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
# For security reasons, uploading attachments from the intranet is prohibited,
# but exceptions can be made from the following settings. Default value is "undefined".
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
@@ -235,11 +237,6 @@ signToActivityPubGet: true
# '127.0.0.1/32'
#]
# Disable automatic redirect for ActivityPub object lookup. (default: false)
# This is a strong defense against potential impersonation attacks if the viewer instance has inadequate validation.
# However it will make it impossible for other instances to lookup third-party user and notes through your URL.
#disallowExternalApRedirect: true
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@@ -105,6 +105,54 @@ port: 3000
# socket: /path/to/misskey.sock
# chmodSocket: '777'
# Proxy trust settings
#
# Specifies the IP addresses that Misskey will use as trusted
# reverse proxies (e.g., nginx, Cloudflare). This affects how
# Misskey determines the source IP for each request and is used
# for important rate limiting and security features. If the value
# is not set correctly, Misskey may use the IP address of the
# reverse proxy instead of the actual source IP, which may lead to
# unintended rate limiting or security vulnerabilities.
# By default, the loopback network and private network address
# ranges shown below are trusted.
# If you are using a single reverse proxy and it is on the same
# machine or the same private network as Misskey, it is unlikely you
# need to change this setting, and the default setting is fine.
# Also, if you are using multiple reverse proxy servers and they are
# all on the same private network as Misskey, the default setting
# is fine.
# However, if you are using a reverse proxy server that accesses
# Misskey web servers and streaming servers via public IP addresses
# (for example, Cloudflare), you must set this variable.
# When changing this setting, you can use one of the following values:
#
# - true: Trust all proxies
# - false: Do not trust any proxies
# - IP address, IP address range, or array of them: Trust hops that
# match the specified criteria.
# - Integer: Trust the nth hop from the front-facing proxy server as
# the client.
# For more information on how to configure this setting, please refer
# to the Fastify documentation:
# https://fastify.dev/docs/latest/Reference/Server/#trustproxy
#
# Note that if this variable is set, it overrides the default range,
# so if you have both an external reverse proxy and a proxy on the
# local host, you must include both IPs (or IP ranges).
#
#trustProxy:
# - '10.0.0.0/8'
# - '172.16.0.0/12'
# - '192.168.0.0/16'
# - '127.0.0.1/32'
# - '::1/128'
# - 'fc00::/7'
# # Example: If you are using some external reverse proxies like CDNs,
# # you may need to add the CDN IP ranges here.
# # If you're using Cloudflare, you can find IP Ranges at:
# # https://www.cloudflare.com/ips/
# ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────
@@ -259,6 +307,11 @@ id: 'aidx'
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# vueIntegration:
# tracingOptions:
# trackComponents: true
# browserTracingIntegration:
# replayIntegration:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
@@ -268,9 +321,16 @@ id: 'aidx'
# Whether disable HSTS
#disableHsts: true
# Enable internal IP-based rate limiting (default: true)
# To configure them in reverse proxy instead, set this to false.
#enableIpRateLimit: true
# Number of worker processes
#clusterLimit: 1
# Number of threads of extra thread pool for CPU-intensive tasks (per worker)
#threadPoolSize: 1
# Job concurrency per worker
#deliverJobConcurrency: 128
#inboxJobConcurrency: 16
@@ -314,19 +374,12 @@ proxyBypassHosts:
# * Perform image compression (on a different server resource than the main process)
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
# Proxy remote files by this instance or mediaProxy to prevent remote files from running in remote domains.
proxyRemoteFiles: true
# Movie Thumbnail Generation URL
# There is no reference implementation.
# For example, Misskey will point to the following URL:
# https://example.com/thumbnail.webp?thumbnail=1&url=https%3A%2F%2Fstorage.example.com%2Fpath%2Fto%2Fvideo.mp4
#videoThumbnailGenerator: https://example.com
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
# For security reasons, uploading attachments from the intranet is prohibited,
# but exceptions can be made from the following settings. Default value is "undefined".
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
@@ -334,11 +387,6 @@ signToActivityPubGet: true
# '127.0.0.1/32'
#]
# Disable automatic redirect for ActivityPub object lookup. (default: false)
# This is a strong defense against potential impersonation attacks if the viewer instance has inadequate validation.
# However it will make it impossible for other instances to lookup third-party user and notes through your URL.
#disallowExternalApRedirect: true
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@@ -1 +1 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
FROM mcr.microsoft.com/devcontainers/javascript-node:4.0.3-24-trixie

View File

@@ -28,7 +28,7 @@ services:
db:
restart: unless-stopped
image: postgres:15-alpine
image: postgres:18-alpine
networks:
- internal_network
environment:
@@ -36,7 +36,7 @@ services:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: misskey
volumes:
- postgres-data:/var/lib/postgresql/data
- postgres-data:/var/lib/postgresql
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s

View File

@@ -5,10 +5,10 @@
"workspaceFolder": "/workspace",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "22.11.0"
"version": "22.15.0"
},
"ghcr.io/devcontainers-extra/features/corepack:1": {
"version": "0.31.0"
"ghcr.io/devcontainers-extra/features/pnpm:2": {
"version": "10.10.0"
}
},
"forwardPorts": [3000],
@@ -19,7 +19,6 @@
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Orta.vscode-jest",
"dbaeumer.vscode-eslint",
"mrmlnc.vscode-json5"
]

View File

@@ -152,6 +152,11 @@ id: 'aidx'
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# vueIntegration:
# tracingOptions:
# trackComponents: true
# browserTracingIntegration:
# replayIntegration:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
@@ -164,6 +169,9 @@ id: 'aidx'
# Number of worker processes
#clusterLimit: 1
# Number of threads of extra thread pool for CPU-intensive tasks (per worker)
#threadPoolSize: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
@@ -197,12 +205,6 @@ proxyBypassHosts:
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
allowedPrivateNetworks: [
'127.0.0.1/32'
]

View File

@@ -7,8 +7,6 @@ sudo apt-get update
sudo apt-get -y install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
git config --global --add safe.directory /workspace
git submodule update --init
corepack install
corepack enable
pnpm config set store-dir /home/node/.local/share/pnpm/store
pnpm install --frozen-lockfile
cp .devcontainer/devcontainer.yml .config/default.yml

View File

@@ -6,6 +6,7 @@
Dockerfile
build/
built/
src-js/
db/
.devcontainer/compose.yml
node_modules/

View File

@@ -13,3 +13,7 @@ trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_style = space
[packages/backend/migration/*.js]
indent_style = space
indent_size = 4

View File

@@ -54,7 +54,7 @@ body:
* Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4
* Browser: Chrome 113.0.5672.126
* Server URL: misskey.example.com
* Misskey: 2025.x.x
* Misskey: 2026.x.x
value: |
* Model and OS of the device(s):
* Browser:
@@ -74,9 +74,9 @@ body:
Examples:
* Installation Method or Hosting Service: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment
* Misskey: 2025.x.x
* Misskey: 2026.x.x
* Node: 20.x.x
* PostgreSQL: 15.x.x
* PostgreSQL: 18.x.x
* Redis: 7.x.x
* OS and Architecture: Ubuntu 24.04.2 LTS aarch64
value: |

54
.github/copilot-instructions.md vendored Normal file
View File

@@ -0,0 +1,54 @@
# Copilot Instructions for Misskey
このファイルは GitHub Copilot の repository-wide instructions として使われる。Copilot code review では `AGENTS.md` が読まれない環境があるため、レビューや軽微な実装判断に必要な規約はこのファイル単体で満たすこと。
このリポジトリは Misskey の pnpm workspace モノレポ。主要な実装は `packages/backend` (NestJS / TypeORM) と `packages/frontend` (Vue 3) にある。より詳しいガイドはリポジトリルートの `AGENTS.md` を参照してよいが、このファイルの要件を省略してそちらへの参照だけで済ませないこと。
## Always follow
- AGPL-3.0-only 管轄かつ SPDX CI 対象ディレクトリに新規 `.ts` / `.js` / `.cjs` / `.mjs` / `.scss` ファイルを追加する場合は、必ず次の SPDX ヘッダーを付ける。詳細な対象判定は `AGENTS.md``.github/workflows/check-spdx-license-id.yml` を参照すること。
```text
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
- AGPL-3.0-only 管轄かつ SPDX CI 対象ディレクトリに新規 `.vue` / `.html` ファイルを追加する場合は、必ず次の SPDX ヘッダーを付ける。
```text
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
```
`packages/misskey-js` は MIT ライセンスのサブパッケージなので、この AGPL ヘッダーを一律に付けない。サブパッケージ固有の `package.json` / `LICENSE` / 既存ファイルのヘッダーに従う。
- `locales/` 配下の YAML は `ja-JP.yml` のみ手動編集してよい。他言語は Crowdin の自動配信先なので手動編集しないこと。
- `packages/backend/migration/{timestamp}-*.js` のうち、既にマージ済みの migration は絶対に編集しない。スキーマ変更が必要な場合は新しい timestamp で migration を追加し、`up()``down()` の両方を実装すること。
- ユーザー影響のある変更は `CHANGELOG.md``## Unreleased` 配下の `### General` / `### Client` / `### Server` のいずれかに 1 行追加する。内部リファクタのみなら不要。
- API 変更時は `pnpm build-misskey-js-with-types` の実行が必要になる。
## Validation
- 全体ビルド: `pnpm build`
- 全体 lint / typecheck: `pnpm lint`
- Backend unit test: `pnpm --filter backend test`
- Backend e2e test: `pnpm --filter backend test:e2e`
- Backend federation test: `pnpm --filter backend test:fed`
- Frontend test: `pnpm --filter frontend test`
- Migration 差分検査: `pnpm --filter backend check-migrations`
> **backend テスト (`test` / `test:e2e` / `test:fed`) 実行前に `.config/test.yml` が必要。** 未作成の場合は `ncp .github/misskey/test.yml .config/test.yml` (または `cp .github/misskey/test.yml .config/test.yml`) を実行してから走らせる。各テストスクリプトが内部で `cross-env NODE_ENV=test pnpm compile-config` を呼ぶため、コピー済みであれば追加の compile-config は不要。
変更範囲に応じて最も近いコマンドから優先して検証し、必要なら全体コマンドに広げること。
## Editing hints
- Backend の API / migration / TypeORM 変更は `packages/backend` を見る。
- Frontend の Vue コンポーネントやページ変更は `packages/frontend` を見る。
- `AGENTS.md` 内の相対リンクはリポジトリルート起点で解決する想定。
> `AGENTS.md` はより詳細な正典だが、Copilot code review ではこのファイルが主な入口になる。両方が読まれる環境では `AGENTS.md` を補助情報として使ってよい。

View File

@@ -24,9 +24,6 @@ updates:
aws-sdk:
patterns:
- "@aws-sdk/*"
bull-board:
patterns:
- "@bull-board/*"
nestjs:
patterns:
- "@nestjs/*"
@@ -37,9 +34,6 @@ updates:
patterns:
- "storybook*"
- "@storybook/*"
swc-core:
patterns:
- "@swc/core*"
typescript-eslint:
patterns:
- "@typescript-eslint/*"

1
.github/min.node-version vendored Normal file
View File

@@ -0,0 +1 @@
22.15.0

View File

@@ -15,3 +15,5 @@ redis:
host: 127.0.0.1
port: 56312
id: aidx
proxyRemoteFiles: true

View File

@@ -9,10 +9,6 @@ on:
paths:
- packages/misskey-js/**
- .github/workflows/api-misskey-js.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
report:
@@ -20,12 +16,13 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- run: corepack enable
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Setup Node.js
uses: actions/setup-node@v4.2.0
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'

View File

@@ -12,9 +12,9 @@ jobs:
steps:
- name: Checkout head
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Setup Node.js
uses: actions/setup-node@v4.2.0
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'

View File

@@ -18,18 +18,18 @@ jobs:
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
steps:
- name: checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
with:
submodules: true
persist-credentials: false
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: setup pnpm
uses: pnpm/action-setup@v4
uses: pnpm/action-setup@v6
- name: setup node
id: setup-node
uses: actions/setup-node@v4.2.0
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: pnpm
@@ -53,7 +53,7 @@ jobs:
# packages/misskey-js/generator/built/autogen
- name: Upload Generated
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: generated-misskey-js
path: packages/misskey-js/generator/built/autogen
@@ -66,14 +66,14 @@ jobs:
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
steps:
- name: checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
with:
submodules: true
persist-credentials: false
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Upload From Merged
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: actual-misskey-js
path: packages/misskey-js/src/autogen
@@ -86,13 +86,13 @@ jobs:
pull-requests: write
steps:
- name: download generated-misskey-js
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: generated-misskey-js
path: misskey-js-generated
- name: download actual-misskey-js
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
name: actual-misskey-js
path: misskey-js-actual
@@ -113,9 +113,9 @@ jobs:
- name: send message
if: steps.check-changes.outputs.changes == 'true'
uses: thollander/actions-comment-pull-request@v2
uses: thollander/actions-comment-pull-request@v3
with:
comment_tag: check-misskey-js-autogen
comment-tag: check-misskey-js-autogen
message: |-
Thank you for sending us a great Pull Request! 👍
Please regenerate misskey-js type definitions! 🙏
@@ -127,9 +127,9 @@ jobs:
- name: send message
if: steps.check-changes.outputs.changes == 'false'
uses: thollander/actions-comment-pull-request@v2
uses: thollander/actions-comment-pull-request@v3
with:
comment_tag: check-misskey-js-autogen
comment-tag: check-misskey-js-autogen
mode: delete
message: "Thank you!"
create_if_not_exists: false

View File

@@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Check version
run: |
if [ "$(jq -r '.version' package.json)" != "$(jq -r '.version' packages/misskey-js/package.json)" ]; then

View File

@@ -12,7 +12,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Check
run: |
counter=0
@@ -50,6 +50,7 @@ jobs:
"packages/backend/test"
"packages/frontend-shared/@types"
"packages/frontend-shared/js"
"packages/frontend-builder"
"packages/frontend/.storybook"
"packages/frontend/@types"
"packages/frontend/lib"
@@ -58,6 +59,7 @@ jobs:
"packages/frontend/test"
"packages/frontend-embed/@types"
"packages/frontend-embed/src"
"packages/icons-subsetter/src"
"packages/misskey-bubble-game/src"
"packages/misskey-reversi/src"
"packages/sw/src"

View File

@@ -10,7 +10,7 @@ jobs:
check_copyright_year:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
- run: |
if [ "$(grep Copyright COPYING | sed -e 's/.*2014-\([0-9]*\) .*/\1/g')" -ne "$(date +%Y)" ]; then
echo "Please change copyright year!"

View File

@@ -28,7 +28,7 @@ jobs:
wait_time: ${{ steps.get-wait-time.outputs.wait_time }}
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Check allowed users
id: check-allowed-users

View File

@@ -27,17 +27,17 @@ jobs:
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Check out the repo
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
push: true
@@ -53,7 +53,7 @@ jobs:
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
@@ -66,15 +66,15 @@ jobs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Login to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -32,23 +32,23 @@ jobs:
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Check out the repo
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: ${{ env.TAGS }}
- name: Log in to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
id: build
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: .
push: true
@@ -64,7 +64,7 @@ jobs:
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
@@ -77,21 +77,21 @@ jobs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
uses: actions/download-artifact@v8
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: ${{ env.TAGS }}
- name: Login to Docker Hub
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -11,22 +11,43 @@ on:
jobs:
dockle:
runs-on: ubuntu-latest
env:
DOCKER_CONTENT_TRUST: 1
DOCKLE_VERSION: 0.4.14
DOCKLE_VERSION: 0.4.15
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
- name: Download and install dockle v${{ env.DOCKLE_VERSION }}
run: |
set -eux
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v${DOCKLE_VERSION}/dockle_${DOCKLE_VERSION}_Linux-64bit.deb"
sudo dpkg -i dockle.deb
- run: |
cp .config/docker_example.env .config/docker.env
cp ./compose_example.yml ./compose.yml
- run: |
docker compose up -d web
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
- run: |
cmd="dockle --exit-code 1 misskey-web:latest ${image_name}"
echo "> ${cmd}"
eval "${cmd}"
- name: Build web image (docker build)
run: |
set -eux
docker build -t "misskey-web:ci" .
docker image ls
- name: Mount tmpfs for Dockle tar
env:
TMPFS_SIZE: 8G
run: |
set -eux
sudo mkdir -p /mnt/dockle-tmp
sudo mount -t tmpfs -o size=${{ env.TMPFS_SIZE }} tmpfs /mnt/dockle-tmp
free -h
df -h
- name: Save image tar into tmpfs
run: |
set -eux
docker save misskey-web:ci -o /mnt/dockle-tmp/misskey-web.tar
ls -lh /mnt/dockle-tmp/misskey-web.tar
- name: Run Dockle Scan (tar input)
run: |
set -eux
dockle --exit-code 1 --input /mnt/dockle-tmp/misskey-web.tar

View File

@@ -9,10 +9,6 @@ on:
paths:
- packages/backend/**
- .github/workflows/get-api-diff.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
get-from-misskey:
runs-on: ubuntu-latest
@@ -21,7 +17,6 @@ jobs:
strategy:
matrix:
node-version: [22.11.0]
api-json-name: [api-base.json, api-head.json]
include:
- api-json-name: api-base.json
@@ -30,18 +25,17 @@ jobs:
ref: refs/pull/${{ github.event.number }}/merge
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
ref: ${{ matrix.ref }}
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
@@ -54,7 +48,7 @@ jobs:
- name: Copy API.json
run: cp packages/backend/built/api.json ${{ matrix.api-json-name }}
- name: Upload Artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: api-artifact-${{ matrix.api-json-name }}
path: ${{ matrix.api-json-name }}
@@ -67,7 +61,7 @@ jobs:
PR_NUMBER: ${{ github.event.number }}
run: |
echo "$PR_NUMBER" > ./pr_number
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
with:
name: api-artifact-pr-number
path: pr_number

View File

@@ -0,0 +1,87 @@
# this name is used in report-backend-memory.yml so be careful when change name
name: Get backend memory usage
on:
pull_request:
branches:
- master
- develop
paths:
- packages/backend/**
- packages/misskey-js/**
- .github/workflows/get-backend-memory.yml
jobs:
get-memory-usage:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
memory-json-name: [memory-base.json, memory-head.json]
include:
- memory-json-name: memory-base.json
ref: ${{ github.base_ref }}
- memory-json-name: memory-head.json
ref: refs/pull/${{ github.event.number }}/merge
services:
postgres:
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:8
ports:
- 56312:6379
steps:
- uses: actions/checkout@v6.0.2
with:
ref: ${{ matrix.ref }}
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config/default.yml
- name: Compile Configure
run: pnpm compile-config
- name: Build
run: pnpm build
- name: Run migrations
run: pnpm --filter backend migrate
- name: Measure memory usage
run: |
# Start the server and measure memory usage
node packages/backend/scripts/measure-memory.mjs > ${{ matrix.memory-json-name }}
- name: Upload Artifact
uses: actions/upload-artifact@v7
with:
name: memory-artifact-${{ matrix.memory-json-name }}
path: ${{ matrix.memory-json-name }}
save-pr-number:
runs-on: ubuntu-latest
permissions: {}
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
echo "$PR_NUMBER" > ./pr_number
- uses: actions/upload-artifact@v7
with:
name: memory-artifact-pr-number
path: pr_number

View File

@@ -11,6 +11,6 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"

View File

@@ -9,7 +9,9 @@ on:
- packages/backend/**
- packages/frontend/**
- packages/frontend-shared/**
- packages/frontend-builder/**
- packages/frontend-embed/**
- packages/icons-subsetter/**
- packages/sw/**
- packages/misskey-js/**
- packages/misskey-bubble-game/**
@@ -21,31 +23,29 @@ on:
- packages/backend/**
- packages/frontend/**
- packages/frontend-shared/**
- packages/frontend-builder/**
- packages/frontend-embed/**
- packages/icons-subsetter/**
- packages/sw/**
- packages/misskey-js/**
- packages/misskey-bubble-game/**
- 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
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
lint:
@@ -58,7 +58,9 @@ jobs:
- backend
- frontend
- frontend-shared
- frontend-builder
- frontend-embed
- icons-subsetter
- sw
- misskey-js
- misskey-bubble-game
@@ -67,19 +69,19 @@ jobs:
eslint-cache-version: v1
eslint-cache-path: ${{ github.workspace }}/node_modules/.cache/eslint-${{ matrix.workspace }}
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Restore eslint cache
uses: actions/cache@v4.2.2
uses: actions/cache@v5.0.5
with:
path: ${{ env.eslint-cache-path }}
key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}
@@ -94,22 +96,20 @@ jobs:
matrix:
workspace:
- backend
- frontend
- sw
- misskey-js
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- run: pnpm --filter misskey-js run build
if: ${{ matrix.workspace == 'backend' || matrix.workspace == 'sw' }}
- run: pnpm --filter misskey-reversi run build
if: ${{ matrix.workspace == 'backend' }}
- run: pnpm --filter "${{ matrix.workspace }}^..." run build
- run: pnpm --filter ${{ matrix.workspace }} run typecheck

View File

@@ -3,30 +3,31 @@ name: Lint
on:
push:
paths:
- packages/i18n/**
- locales/**
- .github/workflows/locale.yml
pull_request:
paths:
- packages/i18n/**
- locales/**
- .github/workflows/locale.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
locale_verify:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v4.2.2
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.2.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- run: cd locales && node verify.js
- uses: actions/checkout@v6.0.2
with:
fetch-depth: 0
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- uses: actions/setup-node@v6.4.0
with:
node-version-file: ".node-version"
cache: "pnpm"
- run: pnpm i --frozen-lockfile
- run: pnpm --filter i18n build
- name: Verify Locales
working-directory: ./packages/i18n
run: pnpm run verify

View File

@@ -6,9 +6,6 @@ on:
workflow_dispatch:
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
publish-misskey-js:
name: Publish misskey-js
@@ -18,25 +15,24 @@ jobs:
contents: read
id-token: write
strategy:
matrix:
node-version: [22.11.0]
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
# see https://docs.github.com/actions/use-cases-and-examples/publishing-packages/publishing-nodejs-packages#publishing-packages-to-the-npm-registry
registry-url: 'https://registry.npmjs.org'
# Ensure npm 11.5.1 or later is installed
- name: Update npm
run: npm install -g npm@latest
- name: Publish package
run: |
corepack enable
pnpm i --frozen-lockfile
pnpm build
pnpm --filter misskey-js publish --access public --no-git-checks --provenance

View File

@@ -19,7 +19,7 @@ jobs:
edit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
# headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
- name: Get PR
run: |

View File

@@ -36,7 +36,7 @@ jobs:
outputs:
pr_number: ${{ steps.get_pr.outputs.pr_number }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
# headが$GITHUB_REF_NAME, baseが$STABLE_BRANCHかつopenのPRを1つ取得
- name: Get PRs
run: |

View File

@@ -16,7 +16,7 @@ jobs:
# api-artifact
steps:
- name: Download artifact
uses: actions/github-script@v7.0.1
uses: actions/github-script@v9
with:
script: |
const fs = require('fs');
@@ -60,7 +60,7 @@ jobs:
- name: Echo full diff
run: cat ./api-full.json.diff
- name: Upload full diff to Artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: api-artifact
path: |
@@ -73,9 +73,9 @@ jobs:
HEADER="このPRによるapi.jsonの差分"
FOOTER="[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})"
DIFF_BYTES="$(stat ./api.json.diff -c '%s' | tr -d '\n')"
echo "$HEADER" > ./output.md
if (( "$DIFF_BYTES" <= 1 )); then
echo '差分はありません。' >> ./output.md
else
@@ -87,18 +87,18 @@ jobs:
echo '```' >> ./output.md
echo '</details>' >> .output.md
fi
echo "$FOOTER" >> ./output.md
- uses: thollander/actions-comment-pull-request@v2
- uses: thollander/actions-comment-pull-request@v3
with:
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
comment_tag: show_diff
filePath: ./output.md
pr-number: ${{ steps.load-pr-num.outputs.pr-number }}
comment-tag: show_diff
file-path: ./output.md
- name: Tell error to PR
uses: thollander/actions-comment-pull-request@v2
uses: thollander/actions-comment-pull-request@v3
if: failure() && steps.load-pr-num.outputs.pr-number
with:
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
comment_tag: show_diff_error
pr-number: ${{ steps.load-pr-num.outputs.pr-number }}
comment-tag: show_diff_error
message: |
api.jsonの差分作成中にエラーが発生しました。詳細は[Workflowのログ](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})を確認してください。

View File

@@ -0,0 +1,177 @@
name: Report backend memory
on:
workflow_run:
types: [completed]
workflows:
- Get backend memory usage # get-backend-memory.yml
jobs:
compare-memory:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
permissions:
pull-requests: write
steps:
- name: Download artifact
uses: actions/github-script@v9
with:
script: |
const fs = require('fs');
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name.startsWith("memory-artifact-") || artifact.name == "memory-artifact"
});
await Promise.all(matchArtifacts.map(async (artifact) => {
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: artifact.id,
archive_format: 'zip',
});
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
}));
- name: Extract all artifacts
run: |
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d artifacts ';'
ls -la artifacts/
- name: Load PR Number
id: load-pr-num
run: echo "pr-number=$(cat artifacts/pr_number)" >> "$GITHUB_OUTPUT"
- name: Output base
run: cat ./artifacts/memory-base.json
- name: Output head
run: cat ./artifacts/memory-head.json
- name: Compare memory usage
id: compare
run: |
BASE_MEMORY=$(cat ./artifacts/memory-base.json)
HEAD_MEMORY=$(cat ./artifacts/memory-head.json)
variation() {
calc() {
BASE=$(echo "$BASE_MEMORY" | jq -r ".${1}.${2} // 0")
HEAD=$(echo "$HEAD_MEMORY" | jq -r ".${1}.${2} // 0")
DIFF=$((HEAD - BASE))
if [ "$BASE" -gt 0 ]; then
DIFF_PERCENT=$(echo "scale=2; ($DIFF * 100) / $BASE" | bc)
else
DIFF_PERCENT=0
fi
# Convert KB to MB for readability
BASE_MB=$(echo "scale=2; $BASE / 1024" | bc)
HEAD_MB=$(echo "scale=2; $HEAD / 1024" | bc)
DIFF_MB=$(echo "scale=2; $DIFF / 1024" | bc)
JSON=$(jq -c -n \
--argjson base "$BASE_MB" \
--argjson head "$HEAD_MB" \
--argjson diff "$DIFF_MB" \
--argjson diff_percent "$DIFF_PERCENT" \
'{base: $base, head: $head, diff: $diff, diff_percent: $diff_percent}')
echo "$JSON"
}
JSON=$(jq -c -n \
--argjson VmRSS "$(calc $1 VmRSS)" \
--argjson VmHWM "$(calc $1 VmHWM)" \
--argjson VmSize "$(calc $1 VmSize)" \
--argjson VmData "$(calc $1 VmData)" \
'{VmRSS: $VmRSS, VmHWM: $VmHWM, VmSize: $VmSize, VmData: $VmData}')
echo "$JSON"
}
JSON=$(jq -c -n \
--argjson beforeGc "$(variation beforeGc)" \
--argjson afterGc "$(variation afterGc)" \
--argjson afterRequest "$(variation afterRequest)" \
'{beforeGc: $beforeGc, afterGc: $afterGc, afterRequest: $afterRequest}')
echo "res=$JSON" >> "$GITHUB_OUTPUT"
- id: build-comment
name: Build memory comment
env:
RES: ${{ steps.compare.outputs.res }}
run: |
HEADER="## Backend memory usage comparison"
FOOTER="[See workflow logs for details](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})"
echo "$HEADER" > ./output.md
echo >> ./output.md
table() {
echo "| Metric | base (MB) | head (MB) | Diff (MB) | Diff (%) |" >> ./output.md
echo "|--------|------:|------:|------:|------:|" >> ./output.md
line() {
METRIC=$2
BASE=$(echo "$RES" | jq -r ".${1}.${2}.base")
HEAD=$(echo "$RES" | jq -r ".${1}.${2}.head")
DIFF=$(echo "$RES" | jq -r ".${1}.${2}.diff")
DIFF_PERCENT=$(echo "$RES" | jq -r ".${1}.${2}.diff_percent")
if (( $(echo "$DIFF_PERCENT > 0" | bc -l) )); then
DIFF="+$DIFF"
DIFF_PERCENT="+$DIFF_PERCENT"
fi
# highlight VmRSS
if [ "$2" = "VmRSS" ]; then
METRIC="**${METRIC}**"
BASE="**${BASE}**"
HEAD="**${HEAD}**"
DIFF="**${DIFF}**"
DIFF_PERCENT="**${DIFF_PERCENT}**"
fi
echo "| ${METRIC} | ${BASE} MB | ${HEAD} MB | ${DIFF} MB | ${DIFF_PERCENT}% |" >> ./output.md
}
line $1 VmRSS
line $1 VmHWM
line $1 VmSize
line $1 VmData
}
echo "### Before GC" >> ./output.md
table beforeGc
echo >> ./output.md
echo "### After GC" >> ./output.md
table afterGc
echo >> ./output.md
echo "### After Request" >> ./output.md
table afterRequest
echo >> ./output.md
# Determine if this is a significant change (more than 5% increase)
if [ "$(echo "$RES" | jq -r '.afterGc.VmRSS.diff_percent | tonumber > 5')" = "true" ]; then
echo "⚠️ **Warning**: Memory usage has increased by more than 5%. Please verify this is not an unintended change." >> ./output.md
echo >> ./output.md
fi
echo "$FOOTER" >> ./output.md
- uses: thollander/actions-comment-pull-request@v3
with:
pr-number: ${{ steps.load-pr-num.outputs.pr-number }}
comment-tag: show_memory_diff
file-path: ./output.md
- name: Tell error to PR
uses: thollander/actions-comment-pull-request@v3
if: failure() && steps.load-pr-num.outputs.pr-number
with:
pr-number: ${{ steps.load-pr-num.outputs.pr-number }}
comment-tag: show_memory_diff_error
message: |
An error occurred while comparing backend memory usage. See [workflow logs](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) for details.

View File

@@ -0,0 +1,51 @@
name: Request release review
on:
issue_comment:
types: [created]
jobs:
reply:
if: github.event.comment.body == '/request-release-review'
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
pull-requests: write
steps:
- name: Reply
uses: actions/github-script@v9
with:
script: |
const body = `To dev team (@misskey-dev/dev):
リリースが提案されています :rocket:
GOの場合はapprove、NO GOの場合はその旨コメントをお願いいたします。
判断にあたって考慮すべき観点は、
- やり残したことはないか?
- CHANGELOGは過不足ないか
- バージョンに問題はないか?(月跨いでいるのに更新忘れているなど)
- 再考すべき仕様・実装はないか?
- ベータ版を検証したサーバーから不具合の報告等は上がってないか?
- (セキュリティの修正や重要なバグ修正などのため)リリースを急いだ方が良いか?そうではないか?
- Actionsが落ちていないか
などが挙げられます。
ご協力ありがとうございます :sparkles:
`
const issue_number = context.payload.issue ? context.payload.issue.number : (context.payload.pull_request && context.payload.pull_request.number)
if (!issue_number) {
console.log('No issue or PR number found in payload; skipping')
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number,
body,
})
}

View File

@@ -5,7 +5,6 @@ on:
branches:
- master
- develop
- dev/storybook8 # for testing
pull_request_target:
branches-ignore:
# Since pull requests targets master mostly is the "develop" branch.
@@ -13,12 +12,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.
# Chromatic is not likely to be available for fork repositories, so we disable for fork repositories.
if: github.repository == 'misskey-dev/misskey'
runs-on: ubuntu-latest
@@ -26,12 +22,12 @@ jobs:
NODE_OPTIONS: "--max_old_space_size=7168"
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
if: github.event_name != 'pull_request_target'
with:
fetch-depth: 0
submodules: true
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
if: github.event_name == 'pull_request_target'
with:
fetch-depth: 0
@@ -39,23 +35,19 @@ jobs:
ref: "refs/pull/${{ github.event.number }}/merge"
- name: Checkout actual HEAD
if: github.event_name == 'pull_request_target'
id: rev
run: |
echo "base=$(git rev-list --parents -n1 HEAD | cut -d" " -f2)" >> $GITHUB_OUTPUT
git checkout $(git rev-list --parents -n1 HEAD | cut -d" " -f3)
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4.2.0
run: git checkout "$(git rev-list --parents -n1 HEAD | cut -d" " -f3)"
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Build misskey-js
run: pnpm --filter misskey-js build
- name: Build dependent packages
run: pnpm -F misskey-js -F misskey-bubble-game -F misskey-reversi build
- name: Build storybook
run: pnpm --filter frontend build-storybook
- name: Publish to Chromatic
@@ -86,24 +78,19 @@ jobs:
if: github.event_name == 'pull_request_target'
id: chromatic_pull_request
run: |
DIFF="${{ steps.rev.outputs.base }} HEAD"
if [ "$DIFF" = "0000000000000000000000000000000000000000 HEAD" ]; then
DIFF="HEAD"
fi
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff-tree --no-commit-id --name-only -r $(echo "$DIFF") | xargs))"
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff --name-only origin/${GITHUB_BASE_REF}...origin/${GITHUB_HEAD_REF} | xargs))"
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
fi
BRANCH="${{ github.event.pull_request.head.user.login }}:$HEAD_REF"
if [ "$BRANCH" = "misskey-dev:$HEAD_REF" ]; then
BRANCH="$HEAD_REF"
BRANCH="${{ github.event.pull_request.head.user.login }}:$GITHUB_HEAD_REF"
if [ "$BRANCH" = "misskey-dev:$GITHUB_HEAD_REF" ]; then
BRANCH="$GITHUB_HEAD_REF"
fi
pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name "$BRANCH" $(echo "$CHROMATIC_PARAMETER")
env:
HEAD_REF: ${{ github.event.pull_request.head.ref }}
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Notify that Chromatic detects changes
uses: actions/github-script@v7.0.1
uses: actions/github-script@v9
if: github.event_name != 'pull_request_target' && steps.chromatic_push.outputs.success == 'false'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -115,7 +102,7 @@ jobs:
body: 'Chromatic detects changes. Please [review the changes on Chromatic](https://www.chromatic.com/builds?appId=6428f7d7b962f0b79f97d6e4).'
})
- name: Upload Artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: storybook
path: packages/frontend/storybook-static

View File

@@ -18,39 +18,66 @@ on:
- packages/misskey-js/**
- .github/workflows/test-backend.yml
- .github/misskey/test.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
workflow_dispatch:
inputs:
force_ffmpeg_cache_update:
description: 'Force update ffmpeg cache'
required: false
default: false
type: boolean
jobs:
unit:
name: Unit tests (backend)
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
node-version-file:
- .node-version
- .github/min.node-version
services:
postgres:
image: postgres:15
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
image: redis:8
ports:
- 56312:6379
meilisearch:
image: getmeili/meilisearch:v1.42.1
ports:
- 57712:7700
env:
MEILI_NO_ANALYTICS: true
MEILI_ENV: development
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Get current date
id: current-date
run: echo "today=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Setup and Restore ffmpeg/ffprobe Cache
id: cache-ffmpeg
uses: actions/cache@v5
with:
path: |
/usr/local/bin/ffmpeg
/usr/local/bin/ffprobe
# daily cache
key: ${{ runner.os }}-ffmpeg-${{ steps.current-date.outputs.today }}
restore-keys: |
${{ runner.os }}-ffmpeg-${{ steps.current-date.outputs.today }}
- name: Install FFmpeg
if: steps.cache-ffmpeg.outputs.cache-hit != 'true' || github.event.inputs.force_ffmpeg_cache_update == true
run: |
for i in {1..3}; do
echo "Attempt $i: Installing FFmpeg..."
@@ -65,12 +92,11 @@ jobs:
exit 1
fi
done
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: ${{ matrix.node-version-file }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
@@ -81,7 +107,7 @@ jobs:
- name: Test
run: pnpm --filter backend test-and-coverage
- name: Upload to Codecov
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json
@@ -89,36 +115,37 @@ jobs:
e2e:
name: E2E tests (backend)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
node-version: [22.11.0]
node-version-file:
- .node-version
- .github/min.node-version
services:
postgres:
image: postgres:15
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
image: redis:8
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: ${{ matrix.node-version-file }}
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
@@ -129,7 +156,51 @@ jobs:
- name: Test
run: pnpm --filter backend test-and-coverage:e2e
- name: Upload to Codecov
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json
migration:
name: Migration tests (backend)
runs-on: ubuntu-latest
strategy:
matrix:
node-version-file:
- .node-version
#- .github/min.node-version
services:
postgres:
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Get current date
id: current-date
run: echo "today=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version-file: ${{ matrix.node-version-file }}
cache: 'pnpm'
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Copy Configure
run: cp .github/misskey/test.yml .config
- name: Build
run: pnpm build
- name: Run migrations
run: MISSKEY_CONFIG_YML=test.yml pnpm --filter backend migrate
- name: Check no migrations are remaining
run: MISSKEY_CONFIG_YML=test.yml pnpm --filter backend check-migrations

View File

@@ -14,9 +14,13 @@ on:
- packages/backend/**
- packages/misskey-js/**
- .github/workflows/test-federation.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
workflow_dispatch:
inputs:
force_ffmpeg_cache_update:
description: 'Force update ffmpeg cache'
required: false
default: false
type: boolean
jobs:
test:
@@ -24,14 +28,31 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
node-version-file:
- .node-version
- .github/min.node-version
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Get current date
id: current-date
run: echo "today=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
- name: Setup and Restore ffmpeg/ffprobe Cache
id: cache-ffmpeg
uses: actions/cache@v5
with:
path: |
/usr/local/bin/ffmpeg
/usr/local/bin/ffprobe
# daily cache
key: ${{ runner.os }}-ffmpeg-${{ steps.current-date.outputs.today }}
restore-keys: |
${{ runner.os }}-ffmpeg-${{ steps.current-date.outputs.today }}
- name: Install FFmpeg
if: steps.cache-ffmpeg.outputs.cache-hit != 'true' || github.event.inputs.force_ffmpeg_cache_update == true
run: |
for i in {1..3}; do
echo "Attempt $i: Installing FFmpeg..."
@@ -46,18 +67,18 @@ jobs:
exit 1
fi
done
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: ${{ matrix.node-version-file }}
cache: 'pnpm'
- name: Build Misskey
run: |
corepack enable && corepack prepare
pnpm i --frozen-lockfile
pnpm build
- name: Setup
run: |
echo "NODE_VERSION=$(cat ${{ matrix.node-version-file }})" >> $GITHUB_ENV
cd packages/backend/test-federation
bash ./setup.sh
sudo chmod 644 ./certificates/*.test.key
@@ -75,18 +96,16 @@ jobs:
docker compose logs | tail -n 300
exit 1
- name: Test
id: test
continue-on-error: true
run: |
cd packages/backend/test-federation
docker compose run --no-deps tester
- name: Log
if: ${{ steps.test.outcome == 'failure' }}
if: always()
run: |
cd packages/backend/test-federation
docker compose logs
exit 1
- name: Stop servers
if: always()
run: |
cd packages/backend/test-federation
docker compose down

View File

@@ -22,31 +22,22 @@ on:
- packages/backend/**
- .github/workflows/test-frontend.yml
- .github/misskey/test.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
vitest:
name: Unit tests (frontend)
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
@@ -57,7 +48,7 @@ jobs:
- name: Test
run: pnpm --filter frontend test-and-coverage
- name: Upload Coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/frontend/coverage/coverage-final.json
@@ -69,24 +60,23 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [22.11.0]
browser: [chrome]
services:
postgres:
image: postgres:15
image: postgres:18
ports:
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:7
image: redis:8
ports:
- 56312:6379
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
# https://github.com/cypress-io/cypress-docker-images/issues/150
@@ -95,14 +85,13 @@ jobs:
# if: ${{ matrix.browser == 'firefox' }}
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Copy Configure
run: cp .github/misskey/test.yml .config
@@ -116,7 +105,7 @@ jobs:
- name: Cypress install
run: pnpm exec cypress install
- name: Cypress run
uses: cypress-io/github-action@v6
uses: cypress-io/github-action@v7.1.9
timeout-minutes: 15
with:
install: false
@@ -124,12 +113,12 @@ jobs:
wait-on: 'http://localhost:61812'
headed: true
browser: ${{ matrix.browser }}
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: failure()
with:
name: ${{ matrix.browser }}-cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v4
- uses: actions/upload-artifact@v7
if: always()
with:
name: ${{ matrix.browser }}-cypress-videos

View File

@@ -14,31 +14,23 @@ on:
paths:
- packages/misskey-js/**
- .github/workflows/test-misskey-js.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
test:
name: Unit tests (misskey.js)
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- name: Checkout
uses: actions/checkout@v4.2.2
uses: actions/checkout@v6.0.2
- run: corepack enable
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install dependencies
@@ -56,7 +48,7 @@ jobs:
CI: true
- name: Upload Coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@v6
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/misskey-js/coverage/coverage-final.json

View File

@@ -9,29 +9,23 @@ on:
env:
NODE_ENV: production
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
production:
name: Production build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml

View File

@@ -12,32 +12,23 @@ on:
paths:
- packages/backend/**
- .github/workflows/validate-api-json.yml
env:
COREPACK_DEFAULT_TO_LATEST: 0
jobs:
validate-api-json:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
steps:
- uses: actions/checkout@v4.2.2
- uses: actions/checkout@v6.0.2
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.2.0
- name: Setup pnpm
uses: pnpm/action-setup@v6.0.3
- name: Use Node.js
uses: actions/setup-node@v6.4.0
with:
node-version: ${{ matrix.node-version }}
node-version-file: '.node-version'
cache: 'pnpm'
- name: Install Redocly CLI
run: npm i -g @redocly/cli
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml

1
.gitignore vendored
View File

@@ -46,6 +46,7 @@ docker-compose.yml
built
built-test
js-built
src-js
/data
/.cache-loader
/db

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "fluent-emojis"]
path = fluent-emojis
url = https://github.com/misskey-dev/emojis.git

View File

@@ -1 +1 @@
22.11.0
22.15.0

2
.npmrc
View File

@@ -1 +1,3 @@
engine-strict = true
save-exact = true
shell-emulator = true

View File

@@ -3,11 +3,16 @@
"**/node_modules": true
},
"typescript.tsdk": "node_modules/typescript/lib",
"typescript.enablePromptUseWorkspaceTsdk": true,
"files.associations": {
"*.test.ts": "typescript"
},
"jest.jestCommandLine": "pnpm run jest",
"jest.runMode": "on-demand",
"jest.virtualFolders": [
{ "name": "backend unit", "jestCommandLine": "pnpm -F backend run test" },
{ "name": "backend e2e", "jestCommandLine": "pnpm -F backend run test:e2e"},
{ "name": "misskey-js", "jestCommandLine": "pnpm -F misskey-js run jest" }
],
"editor.codeActionsOnSave": {
"source.fixAll": "explicit"
},

139
AGENTS.md Normal file
View File

@@ -0,0 +1,139 @@
# Misskey AI Agent Guide
このファイルは Misskey リポジトリで動く AI コーディングエージェント (Claude Code / OpenAI Codex / GitHub Copilot 等) が共通で参照する **最低限のルールと索引**。次の 3 経路から参照・読み込みされる:
- **Claude Code**: ルート `CLAUDE.md` から `@AGENTS.md` で取り込まれる
- **OpenAI Codex**: ルート `AGENTS.md` を直接読み込む
- **GitHub Copilot**: `.github/copilot-instructions.md` (本ファイルを参照しつつ、Copilot code review 向けに必須規約を再掲するファイル) 経由で参照する
人間 contributor 向けの一般規約 (Issue / PR の出し方、ActivityPub 拡張など) は [CONTRIBUTING.md](CONTRIBUTING.md) を参照。本ファイルは AI が **コードを書く・直す** 際に踏み外してはいけない事項に絞っている。
---
## 事故直結ルール (必ず守る)
違反すると CI 失敗または本番事故になる。順守すること。
### 1. SPDX ヘッダー必須
AGPL-3.0-only 管轄かつ SPDX CI 対象ディレクトリに新規 `.ts` / `.js` / `.cjs` / `.mjs` / `.vue` / `.scss` / `.html` ファイルを追加する場合、冒頭に以下を必ず付ける。欠落すると CI (`spdx` ジョブ) が失敗する。CI の対象判定は [.github/workflows/check-spdx-license-id.yml](.github/workflows/check-spdx-license-id.yml) の `directories` 配列を参照 (`*.config.{ts,js,cjs,mjs}``*eslint*` は除外)。
`packages/misskey-js` は MIT ライセンスのサブパッケージなので、この AGPL ヘッダーを一律に付けない。サブパッケージ固有の `package.json` / `LICENSE` / 既存ファイルのヘッダーに従う。
`.ts` / `.js` / `.cjs` / `.mjs` / `.scss`:
```text
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
```
`.vue` / `.html` (HTML コメント形式):
```text
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
```
### 2. locales/*.yml は `ja-JP.yml` のみ編集可
`locales/` 配下の YAML は **`ja-JP.yml` のみ手動編集してよい**。他言語ファイル (`en-US.yml` 等) は Crowdin の自動配信先で、手動編集すると上書きで失われる。根拠: `locales/README.md` (ja-JP.yml 以外を手動編集しない運用) と `crowdin.yml` (`ja-JP.yml``locales/%locale%.yml` の同期設定)。
### 3. マージ済み migration を絶対に編集しない
`packages/backend/migration/{unixMs}-{PascalName}.js` のうち、既に `develop` / `master` にマージ済みのファイルは **絶対に変更しない**。本番環境で履歴改変が起きると深刻なデータ不整合を引き起こす。
スキーマ変更が必要な場合は **新しいタイムスタンプで新規ファイル** を作成する:
- ファイル名: `node -e "console.log(Date.now())"` で UNIX ms を取得し、`{ms}-<descriptive-name>.js` として置く。命名スタイルは既存履歴で混在しており (`1716129964060-ChannelIdDenormalizedForMiPoll.js` のような PascalCase、`1721666053703-fixDriveUrl.js` のような camelCase、`1672704136584-remove-latestStatus.js` のような kebab-case)、変更を表す単一の英語名であれば良い。クラス名側は PascalCase + 13 桁タイムスタンプ (`class FixDriveUrl1721666053703 { ... }`) を必ず守ること。
- `up()``down()` の両方を必ず実装する (`down``up` の完全な巻き戻し)。
- `pnpm --filter backend check-migrations` を通す。これは **TypeORM schema builder で pending DDL を検出する** 検査 ([packages/backend/scripts/check_migrations_clean.js](packages/backend/scripts/check_migrations_clean.js))。エンティティの `@Column` / `@Entity` 変更が migration に取り込まれていないとここで検出される。タイムスタンプの順序自体を直接検査するわけではない (順序が壊れた場合の失敗は別経路で出る)。
エンティティ差分から TypeORM CLI で自動生成したい / `CREATE INDEX CONCURRENTLY` 等のオプションを使いたい場合は [.claude/skills/create-migration/SKILL.md](.claude/skills/create-migration/SKILL.md) を参照。手書き / CLI どちらの方式でも上記 3 点 (履歴改変禁止 / `up`+`down` / `check-migrations`) が満たせれば良い。
---
## 必須コマンド
| 用途 | コマンド |
| --- | --- |
| 全体ビルド | `pnpm build` |
| 開発サーバー (backend + frontend watch) | `pnpm dev` |
| Lint (typecheck + eslint, 全パッケージ) | `pnpm lint` (= `pnpm --no-bail -r lint`。最初の失敗で止まらず全パッケージの結果を収集する) |
| Backend unit test (Vitest) | `pnpm --filter backend test` |
| Backend e2e test | `pnpm --filter backend test:e2e` |
| Backend federation test | `pnpm --filter backend test:fed` |
| Frontend test (Vitest) | `pnpm --filter frontend test` |
| Cypress E2E (要 `start:test`) | `pnpm e2e` |
| Storybook dev (frontend) | `pnpm --filter frontend storybook-dev` |
| Migration 適用 | `pnpm migrate` |
| Migration ロールバック | `pnpm revert` |
| Migration の pending DDL 検査 (エンティティ差分の取り込み漏れ検出) | `pnpm --filter backend check-migrations` |
| `misskey-js` 再生成 (API 変更後必須) | `pnpm build-misskey-js-with-types` |
> Backend の TypeScript 型チェックは `pnpm --filter backend typecheck` (tsgo)。
> 個別ファイルへの ESLint --fix は `pnpm exec eslint --fix <path>`。
> **backend テスト (`test` / `test:e2e` / `test:fed`) 実行前に `.config/test.yml` が必要** (未作成だとテスト自体が起動しない)。コピー手順と詳細は [.claude/docs/testing.md §Backend 全般の前提](.claude/docs/testing.md#backend-全般の前提-configtestyml) を参照。
---
## CHANGELOG
ユーザー影響のある変更 (機能追加・修正・改善) は `CHANGELOG.md` の冒頭 `## Unreleased` セクションに 1 行追加する。リファクタリング等の内部変更は不要。
### セクション構造
`## Unreleased` 配下に **3 つのサブセクション** が用意されている:
- `### General` — 共通 / 横断的な変更
- `### Client``packages/frontend`
- `### Server``packages/backend`
### エントリ書式
該当サブセクションに `- <Prefix>: <概要>` の形式で追加。Prefix は先頭大文字。
```text
- Enhance: ノートの詳細表示での公開範囲の表示を改善
- Fix: 通知が約10秒遅延する問題を修正
- Feat: 新機能の追加
```
### 触ってはいけない範囲
- `## Unreleased` **以外** のセクション (過去リリース) は変更しない。
- `## Unreleased` の見出しと 3 つの空サブセクション骨格自体は維持する (リリーススクリプトが期待する構造)。
> 参考: コミットメッセージ側は `enhance(frontend): ...` / `fix(backend): ...` の小文字 + スコープ形式 ([CONTRIBUTING.md](CONTRIBUTING.md) 参照)。CHANGELOG とは書式が異なる点に注意。
---
## オンデマンド参照 (必要時に Read すること)
以下は AI が **作業対象に応じて必要なときだけ** 開く詳細ドキュメント。常時コンテキストには載せない。
| 何をしたい時 | 参照先 |
| --- | --- |
| パッケージ構成・依存関係を把握したい | [.claude/docs/architecture.md](.claude/docs/architecture.md) |
| `packages/backend` を編集する (NestJS / TypeORM / migration / API endpoint) | [.claude/docs/backend.md](.claude/docs/backend.md) |
| `packages/frontend` を編集する (Vue 3 / Mk* / i18n / SCSS module / `os.ts`) | [.claude/docs/frontend.md](.claude/docs/frontend.md) |
| テストを書く・走らせる (Vitest / Cypress / Storybook) | [.claude/docs/testing.md](.claude/docs/testing.md) |
| 有効化済 Claude Code プラグインの用途を確認 | [.claude/docs/plugins.md](.claude/docs/plugins.md) |
---
## ツール固有の補助ファイル
`.claude/` 配下は Claude Code 固有の skills / agents / slash commands を集約している (Codex / Copilot は読み飛ばしてよい):
- `.claude/skills/` — 繰り返しタスク用の skill 定義 (例: `add-api-endpoint`, `create-migration`)
- `.claude/agents/` — 専門レビューエージェント (例: `misskey-api-reviewer`, `vue-component-reviewer`)
- `.claude/commands/` — Claude Code のスラッシュコマンド (例: `/check-misskey-js`, `/changelog-add`)
- `.claude/docs/` — オンデマンド参照ドキュメント (上記の表で示したもの。Codex / Copilot からも内容自体は読める)
- `.claude/settings.json` — Claude Code の有効プラグイン (`enabledPlugins`) のみを記載した共有設定。hook は意図的に登録しない (各 contributor が `.claude/settings.local.json` で opt-in する方針)
- `.claude/settings.local.json` — 個人ローカル設定 (`.gitignore` 済)
サードパーティ由来 (everything-claude-code 由来の MIT ライセンスファイル等) の出典は [.claude/THIRD_PARTY_LICENSES.md](.claude/THIRD_PARTY_LICENSES.md) を参照。

File diff suppressed because it is too large Load Diff

7
CLAUDE.md Normal file
View File

@@ -0,0 +1,7 @@
# Misskey Claude Code Guide
ルール本体は [AGENTS.md](AGENTS.md) (Codex / Copilot と共有する単一ソース)。本ファイルは Claude Code 用の薄いラッパーで、`@AGENTS.md` 構文で本体規約をセッション開始時にコンテキストへ展開する。
Claude Code 固有の補助 (skills / agents / slash commands / docs) は `.claude/` 配下にコミット済。個人ローカル設定は `.claude/settings.local.json` に、MCP 認証情報は `.claude/.credentials.json` に置く (いずれも `.gitignore` 済)。
@AGENTS.md

View File

@@ -258,6 +258,12 @@ Misskey uses Vue(v3) as its front-end framework.
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
## Tabler Icons
アイコンは、Production Build時に使用されていないものが削除されるようになっています。
**アイコンを動的に設定する際には、 `ti-${someVal}` のような、アイコン名のみを動的に変化させる実装を行わないでください。**
必ず `ti-xxx` のような完全なクラス名を含めるようにしてください。
## nirax
niraxは、Misskeyで使用しているオリジナルのフロントエンドルーティングシステムです。
**vue-routerから影響を多大に受けているので、まずはvue-routerについて学ぶことをお勧めします。**
@@ -273,7 +279,6 @@ niraxは、Misskeyで使用しているオリジナルのフロントエンド
query?: Record<string, string>;
loginRequired?: boolean;
hash?: string;
globalCacheKey?: string;
children?: RouteDef[];
}
```
@@ -570,32 +575,12 @@ enumの列挙の内容の削除は、その値をもつレコードを全て削
### Migration作成方法
packages/backendで:
```sh
pnpm dlx typeorm migration:generate -d ormconfig.js -o <migration name>
pnpm dlx typeorm migration:generate -d ormconfig.js -o --esm <migration name>
```
- 生成後、ファイルをmigration下に移してください
- 作成されたスクリプトは不必要な変更を含むため除去してください
### JSON SchemaのobjectでanyOfを使うとき
JSON Schemaで、objectに対してanyOfを使う場合、anyOfの中でpropertiesを定義しないこと。
バリデーションが効かないため。SchemaTypeもそのように作られており、objectのanyOf内のpropertiesは捨てられます
https://github.com/misskey-dev/misskey/pull/10082
テキストhogeおよびfugaについて、片方を必須としつつ両方の指定もありうる場合:
```ts
export const paramDef = {
type: 'object',
properties: {
hoge: { type: 'string', minLength: 1 },
fuga: { type: 'string', minLength: 1 },
},
anyOf: [
{ required: ['hoge'] },
{ required: ['fuga'] },
],
} as const;
```
- `-o` (`--outputJs`) で JS 形式、`--esm` で ESM 形式に生成する。Misskey の既存 migration はすべて ESM JS なので両方のオプションが必要
### コネクションには`markRaw`せよ
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
@@ -634,3 +619,23 @@ color: hsl(from var(--MI_THEME-accent) h s calc(l - 10));
color: color(from var(--MI_THEME-accent) srgb r g b / 0.5);
```
## 考え方
### DRYに囚われるな
必要なのは一般化ではなく抽象化と考えます。
盲信せず、誤った・不必要な共通化は避け、それが自然だと感じる場合は重複させる勇気を持ちましょう。
### Misskeyを複雑にしない実装
それがいくら複雑であっても、Misskey固有のコンテキストと関心が分離されている(もしくは事実上分離されていると見做すことができる)実装であれば、それはMisskeyのコードベースに対する複雑性に影響を与えないと考えます。
例えるなら、VueやAiScriptといったMisskeyが使用しているライブラリの内部実装がいくら複雑だったとしても、「それを使用しているからMisskeyの実装は複雑である」ということにはならないのと同じです。
Misskeyのドメイン知識から関心が分離されているということは、Misskeyの実装について考える時にそれらの内部実装を考慮する必要が無く、認知負荷を増やさないからです。
また重要な点は、その実装が、Misskeyリポジトリの外部にあるか・内部にあるかということや、Misskeyがメンテナンスするものか・第三者がメンテナンスするものかといったことは複雑性を考える上ではほとんど無視できるという点です。
もちろんその実装がMisskeyリポジトリにあり、Misskeyがメンテナンスしなければならないものは、保守のコストはかかります。
しかし、Misskeyの本質的な設計・実装という観点で見たときは、その実装は実質的に外部ライブラリのように振る舞います。
換言すれば「たまたまMisskeyの開発者と同じ人たちがメンテナンスしているし、たまたまMisskeyのリポジトリ内に置いてあるだけの外部ライブラリ」です。
そのため、実装をなるべくMisskeyのドメイン知識から独立したものにすれば、Misskeyのコードベースの複雑性を上げることなく機能実装を行うことができ、お得であると言えます。
もちろんそれにこだわって、些細な実装でもそのように分離してしまうとかえって認知負荷が増えたり、実装量が増えてメリットをデメリットが上回る場合もあるので、ケースバイケースではあります。

View File

@@ -1,15 +1,8 @@
Unless otherwise stated this repository is
Copyright © 2014-2025 syuilo and contributors
Copyright © 2014-2026 syuilo and contributors
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.
Misskey includes several third-party Open-Source softwares.
Emoji keywords for Unicode 11 and below by Mu-An Chiou
License: MIT
https://github.com/muan/emojilib/blob/master/LICENSE
RsaSignature2017 implementation by Transmute Industries Inc
License: MIT
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE

View File

@@ -1,13 +1,11 @@
# syntax = docker/dockerfile:1.4
# syntax = docker/dockerfile:1.23
ARG NODE_VERSION=22.11.0-bookworm
ARG NODE_VERSION=22.22.2-bookworm
# build assets & compile TypeScript
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 \
@@ -16,16 +14,18 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
&& apt-get install -yqq --no-install-recommends \
build-essential
RUN corepack enable
WORKDIR /misskey
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
COPY --link ["scripts", "./scripts"]
COPY --link ["patches", "./patches"]
COPY --link ["packages/backend/package.json", "./packages/backend/"]
COPY --link ["packages/frontend-shared/package.json", "./packages/frontend-shared/"]
COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
COPY --link ["packages/frontend-embed/package.json", "./packages/frontend-embed/"]
COPY --link ["packages/frontend-builder/package.json", "./packages/frontend-builder/"]
COPY --link ["packages/i18n/package.json", "./packages/i18n/"]
COPY --link ["packages/icons-subsetter/package.json", "./packages/icons-subsetter/"]
COPY --link ["packages/sw/package.json", "./packages/sw/"]
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
@@ -33,6 +33,8 @@ COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bu
ARG NODE_ENV=production
RUN node -e "console.log(JSON.parse(require('node:fs').readFileSync('./package.json')).packageManager)" | xargs npm install -g
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output
@@ -46,18 +48,15 @@ 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
RUN corepack enable
WORKDIR /misskey
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
COPY --link ["scripts", "./scripts"]
COPY --link ["patches", "./patches"]
COPY --link ["packages/backend/package.json", "./packages/backend/"]
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
@@ -65,6 +64,8 @@ COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bu
ARG NODE_ENV=production
RUN node -e "console.log(JSON.parse(require('node:fs').readFileSync('./package.json')).packageManager)" | xargs npm install -g
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output
@@ -72,13 +73,11 @@ 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 \
ffmpeg tini curl libjemalloc-dev libjemalloc2 \
&& ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so \
&& corepack enable \
&& groupadd -g "${GID}" misskey \
&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
&& find / -type d -path /sys -prune -o -type d -path /proc -prune -o -type f -perm /u+s -ignore_readdir_race -exec chmod u-s {} \; \
@@ -86,13 +85,13 @@ RUN apt-get update \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists
# add package.json to add pnpm
COPY ./package.json ./package.json
RUN node -e "console.log(JSON.parse(require('node:fs').readFileSync('./package.json')).packageManager)" | xargs npm install -g
USER misskey
WORKDIR /misskey
# add package.json to add pnpm
COPY --chown=misskey:misskey ./package.json ./package.json
RUN corepack install
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules
@@ -103,7 +102,7 @@ COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-js/
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-reversi/built ./packages/misskey-reversi/built
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-bubble-game/built ./packages/misskey-bubble-game/built
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/backend/built ./packages/backend/built
COPY --chown=misskey:misskey --from=native-builder /misskey/fluent-emojis /misskey/fluent-emojis
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/i18n/built ./packages/i18n/built
COPY --chown=misskey:misskey . ./
ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so

View File

@@ -24,6 +24,10 @@
<a href="https://www.patreon.com/syuilo">
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/misskey-dev/misskey)
<a href="https://flatt.tech/oss/gmo/trampoline" target="_blank"><img src="https://flatt.tech/assets/images/badges/gmo-oss.svg" height="24px"/></a>
</div>
## Thanks
@@ -47,3 +51,13 @@ Thanks to [Crowdin](https://crowdin.com/) for providing the localization platfor
<a href="https://hub.docker.com/"><img src="https://user-images.githubusercontent.com/20679825/230148221-f8e73a32-a49b-47c3-9029-9a15c3824f92.png" height="30" alt="Docker" /></a>
Thanks to [Docker](https://hub.docker.com/) for providing the container platform that helps us run Misskey in production.
---
<div align="center">
Support us with a ⭐ !
[![Star History Chart](https://api.star-history.com/svg?repos=misskey-dev/misskey&type=Date)](https://star-history.com/#misskey-dev/misskey&Date)
</div>

View File

@@ -6,7 +6,7 @@ Also, the later tasks are more indefinite and are subject to change as developme
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
- ~~Make the number of type errors zero (backend)~~ → Done ✔️
- Make the number of type errors zero (frontend)
- ~~Make the number of type errors zero (frontend)~~ → Done ✔️
- Improve CI
- ~~Fix tests~~ → Done ✔️
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

BIN
assets/ui-icons.afdesign Normal file

Binary file not shown.

View File

@@ -173,6 +173,11 @@ id: "aidx"
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# vueIntegration:
# tracingOptions:
# trackComponents: true
# browserTracingIntegration:
# replayIntegration:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
@@ -185,6 +190,9 @@ id: "aidx"
# Number of worker processes
#clusterLimit: 1
# Number of threads of extra thread pool for CPU-intensive tasks (per worker)
#threadPoolSize: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
@@ -216,9 +224,6 @@ id: "aidx"
# Media Proxy
#mediaProxy: https://example.com/proxy
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
#allowedPrivateNetworks: [
# '127.0.0.1/32'
#]

View File

@@ -27,7 +27,7 @@ spec:
ports:
- containerPort: 3000
- name: postgres
image: postgres:15-alpine
image: postgres:18-alpine
env:
- name: POSTGRES_USER
value: "example-misskey-user"

View File

@@ -15,13 +15,13 @@ services:
db:
restart: always
image: postgres:15-alpine
image: postgres:18-alpine
ports:
- "5432:5432"
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
- ./db:/var/lib/postgresql
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s

View File

@@ -37,13 +37,13 @@ services:
db:
restart: always
image: postgres:15-alpine
image: postgres:18-alpine
networks:
- internal_network
env_file:
- .config/docker.env
volumes:
- ./db:/var/lib/postgresql/data
- ./db:/var/lib/postgresql
healthcheck:
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
interval: 5s

View File

@@ -2,11 +2,6 @@ import { defineConfig } from 'cypress'
export default defineConfig({
e2e: {
// We've imported your old cypress plugins here.
// You may want to clean this up later by importing these.
setupNodeEvents(on, config) {
return require('./cypress/plugins/index.js')(on, config)
},
baseUrl: 'http://localhost:61812',
},
})

View File

@@ -31,6 +31,14 @@ describe('Before setup instance', () => {
// なぜか動かない
//cy.wait('@signup').should('have.property', 'response.statusCode');
cy.wait('@signup');
cy.intercept('POST', '/api/admin/update-meta').as('update-meta');
cy.get('[data-cy-next]').click();
cy.get('[data-cy-server-name] input').type('Testskey');
cy.get('[data-cy-server-setup-wizard-apply]').click();
cy.wait('@update-meta');
});
});
@@ -70,6 +78,8 @@ describe('After setup instance', () => {
cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').should('be.disabled');
cy.get('[data-cy-signup-invitation-code] input').type('test-invitation-code');
cy.get('[data-cy-signup-submit]').should('not.be.disabled');
cy.get('[data-cy-signup-submit]').click();

View File

@@ -1,22 +0,0 @@
/// <reference types="cypress" />
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
/**
* @type {Cypress.PluginConfig}
*/
// eslint-disable-next-line no-unused-vars
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
}

View File

@@ -1,7 +1,7 @@
{
"compilerOptions": {
"lib": ["dom", "es5"],
"target": "es5",
"lib": ["dom"],
"target": "esnext",
"types": ["cypress", "node"]
},
"include": ["./**/*.ts"]

Submodule fluent-emojis deleted from cae981eb4c

View File

@@ -4,8 +4,8 @@
*/
/* eslint-disable @typescript-eslint/explicit-function-return-type */
import { action } from '@storybook/addon-actions';
import { StoryObj } from '@storybook/vue3';
import { action } from 'storybook/actions';
import type { StoryObj } from '@storybook/vue3';
import { HttpResponse, http } from 'msw';
import { abuseUserReport } from '../packages/frontend/.storybook/fakes.js';
import { commonHandlers } from '../packages/frontend/.storybook/mocks.js';

View File

@@ -0,0 +1,232 @@
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
<canvas ref="canvasEl" style="display: block; width: 100%; height: 100%; pointer-events: none;"></canvas>
</template>
<script lang="ts" setup>
import { onMounted, onUnmounted, useTemplateRef } from 'vue';
import isChromatic from 'chromatic/isChromatic';
import { initShaderProgram } from '@/utility/webgl.js';
const VERTEX_SHADER = `#version 300 es
in vec2 position;
out vec2 in_uv;
void main() {
in_uv = (position + 1.0) / 2.0;
gl_Position = vec4(position, 0.0, 1.0);
}
`;
const FRAGMENT_SHADER = `#version 300 es
precision mediump float;
const float PI = 3.141592653589793;
const float TWO_PI = 6.283185307179586;
const float HALF_PI = 1.5707963267948966;
in vec2 in_uv;
uniform vec2 in_resolution;
uniform float u_scale;
uniform float u_time;
uniform float u_seed;
uniform float u_angle;
uniform float u_radius;
uniform vec3 u_color;
uniform vec2 u_ripplePositions[16];
uniform float u_rippleRadiuses[16];
out vec4 out_color;
float getRipple(vec2 uv) {
float strength = 0.0;
float thickness = 0.05;
for (int i = 0; i < 16; i++) {
if (u_rippleRadiuses[i] <= 0.0) continue;
float d = distance(uv, u_ripplePositions[i]);
// フチ
if (d < u_rippleRadiuses[i] + thickness && d > u_rippleRadiuses[i] - thickness) {
float gradate = abs(d - u_rippleRadiuses[i] + thickness) / thickness;
strength += (1.0 - u_rippleRadiuses[i]) * gradate;
}
// 内側
if (d < u_rippleRadiuses[i] + thickness) {
strength += 0.25 * (1.0 - u_rippleRadiuses[i]);
}
}
return strength;
}
void main() {
float x_ratio = min(in_resolution.x / in_resolution.y, 1.0);
float y_ratio = min(in_resolution.y / in_resolution.x, 1.0);
float angle = -(u_angle * PI);
vec2 centeredUv = (in_uv - vec2(0.5, 0.5)) * vec2(x_ratio, y_ratio);
vec2 rotatedUV = vec2(
centeredUv.x * cos(angle) - centeredUv.y * sin(angle),
centeredUv.x * sin(angle) + centeredUv.y * cos(angle)
);
vec2 uv = rotatedUV;
float time = u_time * 0.00025;
float size = 1.0 / u_scale;
float size_half = size / 2.0;
float modX = mod(uv.x, size);
float modY = mod(uv.y, size);
vec2 pixelated_uv = vec2(
(size * (floor((uv.x - 0.5 - size) / size) + 0.5)),
(size * (floor((uv.y - 0.5 - size) / size) + 0.5))
) + vec2(0.5 + size, 0.5 + size);
float strength = getRipple(pixelated_uv);
float opacity = min(max(strength, 0.0), 1.0);
float threshold = ((u_radius / 2.0) / u_scale);
if (length(vec2(modX - size_half, modY - size_half)) < threshold) {
out_color = vec4(u_color.r, u_color.g, u_color.b, opacity);
//out_color = vec4(1.0);
return;
}
// debug
//float a = min(max(getRipple(uv), 0.0), 1.0);
//out_color = vec4(u_color.r, u_color.g, u_color.b, (opacity + a) / 2.0);
out_color = vec4(0.0, 0.0, 0.0, 0.0);
}
`;
const canvasEl = useTemplateRef('canvasEl');
const props = withDefaults(defineProps<{
scale?: number;
}>(), {
scale: 48,
});
let handle: ReturnType<typeof window['requestAnimationFrame']> | null = null;
onMounted(() => {
const canvas = canvasEl.value!;
let width = canvas.offsetWidth;
let height = canvas.offsetHeight;
canvas.width = width;
canvas.height = height;
const maybeGl = canvas.getContext('webgl2', { preserveDrawingBuffer: false, alpha: true, premultipliedAlpha: false, antialias: true });
if (maybeGl == null) return;
const gl = maybeGl;
const VERTICES = new Float32Array([-1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1]);
const vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, VERTICES, gl.STATIC_DRAW);
//gl.clearColor(0.0, 0.0, 0.0, 0.0);
//gl.clear(gl.COLOR_BUFFER_BIT);
const shaderProgram = initShaderProgram(gl, VERTEX_SHADER, FRAGMENT_SHADER);
gl.useProgram(shaderProgram);
const positionLocation = gl.getAttribLocation(shaderProgram, 'position');
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(positionLocation);
const in_resolution = gl.getUniformLocation(shaderProgram, 'in_resolution');
gl.uniform2fv(in_resolution, [canvas.width, canvas.height]);
const u_time = gl.getUniformLocation(shaderProgram, 'u_time');
const u_seed = gl.getUniformLocation(shaderProgram, 'u_seed');
const u_scale = gl.getUniformLocation(shaderProgram, 'u_scale');
const u_angle = gl.getUniformLocation(shaderProgram, 'u_angle');
const u_radius = gl.getUniformLocation(shaderProgram, 'u_radius');
const u_color = gl.getUniformLocation(shaderProgram, 'u_color');
gl.uniform1f(u_seed, Math.random() * 1000);
gl.uniform1f(u_scale, props.scale);
gl.uniform1f(u_angle, 0.0);
gl.uniform1f(u_radius, 0.15);
gl.uniform3fv(u_color, [0.5, 1.0, 0]);
if (isChromatic()) {
gl.uniform1f(u_time, 0);
gl.drawArrays(gl.TRIANGLES, 0, 6);
} else {
let ripples = [] as { position: [number, number]; startTime: number; }[];
const LIFE_TIME = 1000 * 4;
function render(timeStamp: number) {
let sizeChanged = false;
if (Math.abs(height - canvas.offsetHeight) > 2) {
height = canvas.offsetHeight;
canvas.height = height;
sizeChanged = true;
}
if (Math.abs(width - canvas.offsetWidth) > 2) {
width = canvas.offsetWidth;
canvas.width = width;
sizeChanged = true;
}
if (sizeChanged && gl) {
gl.uniform2fv(in_resolution, [width, height]);
gl.viewport(0, 0, width, height);
}
gl.uniform1f(u_time, timeStamp);
if (Math.random() < 0.01 && ripples.length < 16) {
ripples.push({ position: [(Math.random() * 2) - 1, (Math.random() * 2) - 1], startTime: timeStamp });
}
for (let i = 0; i < 16; i++) {
const o = gl.getUniformLocation(shaderProgram, `u_ripplePositions[${i.toString()}]`);
const r = gl.getUniformLocation(shaderProgram, `u_rippleRadiuses[${i.toString()}]`);
const ripple = ripples[i];
if (ripple == null) {
gl.uniform2f(o, 0, 0);
gl.uniform1f(r, 0.0);
continue;
}
const delta = timeStamp - ripple.startTime;
gl.uniform2f(o, ripple.position[0], ripple.position[1]);
gl.uniform1f(r, delta / LIFE_TIME);
}
ripples = ripples.filter(r => (timeStamp - r.startTime) < LIFE_TIME);
if (ripples.length === 0) {
ripples.push({ position: [(Math.random() * 2) - 1, (Math.random() * 2) - 1], startTime: timeStamp });
}
gl.drawArrays(gl.TRIANGLES, 0, 6);
handle = window.requestAnimationFrame(render);
}
handle = window.requestAnimationFrame(render);
}
});
onUnmounted(() => {
if (handle) {
window.cancelAnimationFrame(handle);
}
// TODO: WebGLリソースの解放
});
</script>
<style lang="scss" module>
</style>

View File

@@ -0,0 +1,190 @@
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
<canvas ref="canvasEl" style="display: block; width: 100%; height: 100%; pointer-events: none;"></canvas>
</template>
<script lang="ts" setup>
import { onMounted, onUnmounted, useTemplateRef } from 'vue';
import isChromatic from 'chromatic/isChromatic';
import { GLSL_LIB_SNOISE, initShaderProgram } from '@/utility/webgl.js';
const VERTEX_SHADER = `#version 300 es
in vec2 position;
out vec2 in_uv;
void main() {
in_uv = (position + 1.0) / 2.0;
gl_Position = vec4(position, 0.0, 1.0);
}
`;
const FRAGMENT_SHADER = `#version 300 es
precision mediump float;
const float PI = 3.141592653589793;
const float TWO_PI = 6.283185307179586;
const float HALF_PI = 1.5707963267948966;
${GLSL_LIB_SNOISE}
in vec2 in_uv;
uniform vec2 in_resolution;
uniform float u_scale;
uniform float u_time;
uniform float u_seed;
uniform float u_angle;
uniform float u_radius;
uniform vec3 u_color;
out vec4 out_color;
void main() {
float x_ratio = min(in_resolution.x / in_resolution.y, 1.0);
float y_ratio = min(in_resolution.y / in_resolution.x, 1.0);
float size = 1.0 / u_scale;
float size_half = size / 2.0;
float angle = -(u_angle * PI);
vec2 centeredUv = (in_uv - vec2(0.5, 0.5)) * vec2(x_ratio, y_ratio);
vec2 rotatedUV = vec2(
centeredUv.x * cos(angle) - centeredUv.y * sin(angle),
centeredUv.x * sin(angle) + centeredUv.y * cos(angle)
);
vec2 uv = rotatedUV;
float modX = mod(uv.x, size);
float modY = mod(uv.y, size);
vec2 pixelated_uv = vec2(
(size * (floor((uv.x - 0.5 - size) / size) + 0.5)),
(size * (floor((uv.y - 0.5 - size) / size) + 0.5))
) + vec2(0.5 + size, 0.5 + size);
float time = u_time * 0.00025;
float noiseAScale = 1.0;
float noiseAX = (pixelated_uv.x + u_seed) * (u_scale / noiseAScale);
float noiseAY = (pixelated_uv.y + u_seed) * (u_scale / noiseAScale);
float noiseA = snoise(vec3(noiseAX, noiseAY, time * 2.0));
float noiseBScale = 32.0;
float noiseBX = (pixelated_uv.x + u_seed) * (u_scale / noiseBScale);
float noiseBY = (pixelated_uv.y + u_seed) * (u_scale / noiseBScale);
float noiseB = snoise(vec3(noiseBX, noiseBY, time));
float strength = 0.0;
strength += noiseA * 0.2;
strength += noiseB * 0.8;
float opacity = min(max(strength, 0.0), 1.0);
float threshold = ((u_radius / 2.0) / u_scale);
if (length(vec2(modX - size_half, modY - size_half)) < threshold) {
out_color = vec4(u_color.r, u_color.g, u_color.b, opacity);
return;
}
out_color = vec4(0.0, 0.0, 0.0, 0.0);
}
`;
const canvasEl = useTemplateRef('canvasEl');
const props = withDefaults(defineProps<{
scale?: number;
}>(), {
scale: 48,
});
let handle: ReturnType<typeof window['requestAnimationFrame']> | null = null;
onMounted(() => {
const canvas = canvasEl.value!;
let width = canvas.offsetWidth;
let height = canvas.offsetHeight;
canvas.width = width;
canvas.height = height;
const maybeGl = canvas.getContext('webgl2', { preserveDrawingBuffer: false, alpha: true, premultipliedAlpha: false, antialias: true });
if (maybeGl == null) return;
const gl = maybeGl;
const VERTICES = new Float32Array([-1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, -1]);
const vertexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer);
gl.bufferData(gl.ARRAY_BUFFER, VERTICES, gl.STATIC_DRAW);
//gl.clearColor(0.0, 0.0, 0.0, 0.0);
//gl.clear(gl.COLOR_BUFFER_BIT);
const shaderProgram = initShaderProgram(gl, VERTEX_SHADER, FRAGMENT_SHADER);
gl.useProgram(shaderProgram);
const positionLocation = gl.getAttribLocation(shaderProgram, 'position');
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
gl.enableVertexAttribArray(positionLocation);
const in_resolution = gl.getUniformLocation(shaderProgram, 'in_resolution');
gl.uniform2fv(in_resolution, [canvas.width, canvas.height]);
const u_time = gl.getUniformLocation(shaderProgram, 'u_time');
const u_seed = gl.getUniformLocation(shaderProgram, 'u_seed');
const u_scale = gl.getUniformLocation(shaderProgram, 'u_scale');
const u_angle = gl.getUniformLocation(shaderProgram, 'u_angle');
const u_radius = gl.getUniformLocation(shaderProgram, 'u_radius');
const u_color = gl.getUniformLocation(shaderProgram, 'u_color');
gl.uniform1f(u_seed, Math.random() * 1000);
gl.uniform1f(u_scale, props.scale);
gl.uniform1f(u_angle, 0.0);
gl.uniform1f(u_radius, 0.15);
gl.uniform3fv(u_color, [0.5, 1.0, 0]);
if (isChromatic()) {
gl.uniform1f(u_time, 0);
gl.drawArrays(gl.TRIANGLES, 0, 6);
} else {
function render(timeStamp: number) {
let sizeChanged = false;
if (Math.abs(height - canvas.offsetHeight) > 2) {
height = canvas.offsetHeight;
canvas.height = height;
sizeChanged = true;
}
if (Math.abs(width - canvas.offsetWidth) > 2) {
width = canvas.offsetWidth;
canvas.width = width;
sizeChanged = true;
}
if (sizeChanged && gl) {
gl.uniform2fv(in_resolution, [width, height]);
gl.viewport(0, 0, width, height);
}
gl.uniform1f(u_time, timeStamp);
gl.drawArrays(gl.TRIANGLES, 0, 6);
handle = window.requestAnimationFrame(render);
}
handle = window.requestAnimationFrame(render);
}
});
onUnmounted(() => {
if (handle) {
window.cancelAnimationFrame(handle);
}
// TODO: WebGLリソースの解放
});
</script>
<style lang="scss" module>
</style>

View File

@@ -68,7 +68,7 @@ receiveFollowRequest: "تلقيت طلب متابعة"
followRequestAccepted: "قُبل طلب المتابعة"
mention: "أشر الى"
mentions: "الإشارات"
directNotes: "الملاحظات المباشرة"
directNotes: "رسالة خاصة"
importAndExport: "إستورد / صدر"
import: "استيراد"
export: "تصدير"
@@ -215,7 +215,6 @@ noUsers: "ليس هناك مستخدمون"
editProfile: "تعديل الملف التعريفي"
noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟"
pinLimitExceeded: "لا يمكنك تثبيت الملاحظات بعد الآن."
intro: "لقد انتهت عملية تنصيب Misskey. الرجاء إنشاء حساب إداري."
done: "تمّ"
processing: "المعالجة جارية"
preview: "معاينة"
@@ -251,7 +250,6 @@ removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
resetAreYouSure: "هل تريد إعادة التعيين؟"
saved: "حُفظ"
messaging: "المحادثة"
upload: "ارفع"
keepOriginalUploading: "ابق الصورة الأصلية"
keepOriginalUploadingDescription: "يحفظ الصور المرفوعة على حالتها الأصلية، وان عطّل ستولد نسخة مخصصة من الصورة."
@@ -264,7 +262,6 @@ uploadFromUrlMayTakeTime: "سيستغرق بعض الوقت لاتمام الر
explore: "استكشاف"
messageRead: "مقروءة"
noMoreHistory: "لا يوجد المزيد من التاريخ"
startMessaging: "ابدأ محادثة"
nUsersRead: "قرأه {n}"
agreeTo: "اوافق على {0}"
agree: "أقبل"
@@ -436,8 +433,6 @@ retype: "أعد الكتابة"
noteOf: "ملاحظات {user}"
quoteAttached: "اِقتُبسَ"
quoteQuestion: "أتريد تضمينها كاقتباس"
noMessagesYet: "ليس هناك رسائل بعد"
newMessageExists: "لقد تلقيت رسالة جديدة"
onlyOneFileCanBeAttached: "يمكنك إرفاق ملف واحد بالرسالة"
signinRequired: "رجاءً لِج"
invitations: "دعوة"
@@ -680,7 +675,6 @@ experimental: "اختباري"
developer: "المطور"
makeExplorable: "أظهر الحساب في صفحة \"استكشاف\""
makeExplorableDescription: "بتعطيل هذا الخيار لن يظهر حسابك في صفحة \"استكشاف\""
showGapBetweenNotesInTimeline: "أظهر فجوات بين المشاركات في الخيط الزمني"
left: "يسار"
center: "وسط"
wide: "عريض"
@@ -1012,6 +1006,25 @@ sourceCode: "الشفرة المصدرية"
flip: "اقلب"
lastNDays: "آخر {n} أيام"
surrender: "ألغِ"
postForm: "أنشئ ملاحظة"
information: "عن"
inMinutes: "د"
inDays: "ي"
widgets: "التطبيقات المُصغّرة"
presets: "إعدادات مسبقة"
_imageEditing:
_vars:
filename: "اسم الملف"
_imageFrameEditor:
font: "الخط"
fontSerif: "Serif"
fontSansSerif: "Sans Serif"
_chat:
invitations: "دعوة"
noHistory: "السجل فارغ"
members: "الأعضاء"
home: "الرئيسي"
send: "أرسل"
_delivery:
stop: "مُعلّق"
_initialAccountSetting:
@@ -1236,7 +1249,6 @@ _theme:
shadow: "الظل"
navBg: "خلفية الشريط الجانبي"
navFg: "نص الشريط الجانبي"
navHoverFg: "نص الشريط الجانبي (عند التمرير فوقه)"
link: "رابط"
hashtag: "وسم"
mention: "أشر الى"
@@ -1251,7 +1263,6 @@ _theme:
buttonBg: "خلفية الأزرار"
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
inputBorder: "حواف حقل الإدخال"
driveFolderBg: "خلفية مجلد قرص التخزين"
messageBg: "خلفية المحادثة"
_sfx:
note: "الملاحظات"
@@ -1311,6 +1322,7 @@ _permissions:
"read:gallery": "اعرض المعرض"
"write:gallery": "عدّل المعرض"
"read:gallery-likes": "يعرض ما أعجبك من مشاركات المعرض"
"write:chat": "اكتب أو احذف رسائل محادثة"
_auth:
shareAccess: "أتريد التفويض لـ \"{name}\" بالوصول لحسابك؟"
shareAccessAsk: "هل تخول لهذا التطبيق الوصول لحسابك؟"
@@ -1353,6 +1365,14 @@ _widgets:
userList: "قائمة المستخدمين"
_userList:
chooseList: "اختر قائمة"
_widgetOptions:
height: "الإرتفاع"
_button:
colored: "ملوّن"
_clock:
size: "الحجم"
_birthdayFollowings:
period: "المدة"
_cw:
hide: "إخفاء"
show: "عرض المزيد"
@@ -1393,6 +1413,9 @@ _postForm:
replyPlaceholder: "رد على هذه الملاحظة…"
quotePlaceholder: "اقتبس هذه الملاحظة…"
channelPlaceholder: "انشر في قناة..."
_howToUse:
visibility_title: "الظهور"
menu_title: "القائمة"
_placeholders:
a: "ما الذي تنوي فعله؟"
b: "ماذا يحدث حولك ؟"
@@ -1588,3 +1611,21 @@ _search:
searchScopeAll: "الكل"
searchScopeLocal: "المحلي"
searchScopeUser: "مستخدم محدد"
_watermarkEditor:
opacity: "الشفافية"
scale: "الحجم"
text: "نص"
position: "الموضع"
type: "نوع"
image: "صور"
advanced: "متقدم"
_imageEffector:
_fxProps:
scale: "الحجم"
size: "الحجم"
offset: "الموضع"
color: "اللون"
opacity: "الشفافية"
_qr:
showTabTitle: "المظهر"
raw: "نص"

Some files were not shown because too many files have changed in this diff Show More