Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release: 4.15.0 #558

Merged
merged 288 commits into from
Feb 8, 2025
Merged
Changes from 6 commits
Commits
Show all changes
288 commits
Select commit Hold shift + click to select a range
55713fc
fix(backend): apOrHtml Constraintが正しく評価されない問題を修正 (#15213)
kakkokari-gtyih Jan 8, 2025
bb44572
feat(frontend): Do not display blocked instances on the welcome page …
Rsplwe Jan 8, 2025
13439e0
fix(frontend-embed): 型チェックエラーを修正 (#15216)
samunohito Jan 8, 2025
3c94611
Merge remote-branch 'misskey/develop'
noridev Jan 8, 2025
8270a85
chore
noridev Jan 8, 2025
4275ff9
Update ko-KR.yml
noridev Jan 8, 2025
b0dea2f
fix storybook
noridev Jan 8, 2025
99fa803
Update ko-KR.yml
noridev Jan 9, 2025
c4192e8
enhance(backend): チャートの処理を一つずつ行うことでDBの同時接続とタイムアウトを削減 (#15239)
kakkokari-gtyih Jan 11, 2025
d60c307
refactor/deps(frontend): shikiのdeprecated表現を修正 (#15169)
kakkokari-gtyih Jan 11, 2025
d86c772
fix(frontend): RSSウィジェットでURLエンコードを二重に行っている問題を修正 (#15272)
kakkokari-gtyih Jan 14, 2025
b161601
fix(frontend): コンポーネントのインポート忘れ (#15274)
kakkokari-gtyih Jan 14, 2025
6820878
fix: unable to use AiService on arm64 (#15261)
anatawa12 Jan 14, 2025
759b9f4
feat(backend): config(default.yml)からSQLログ全文を出力するか否かを設定可能に (#15268)
samunohito Jan 14, 2025
d082a1d
fix(frontend/dev): バックエンド経由での開発時にHMRが効かない問題を修正 (#15255)
kakkokari-gtyih Jan 14, 2025
dd6743d
Fix(frontend): 削除して編集で引用ありを消せない (#15249)
tai-cha Jan 14, 2025
7fbfc2e
ApPersonServiceとApNoteServiceのuri <-> url比較を緩和 (#15233)
samunohito Jan 14, 2025
64501c6
feat(frontend): Botプロテクションの設定変更時は実際に検証を通過しないと保存できないようにする (#15151)
samunohito Jan 14, 2025
5445b02
enhance: 連合モードにあわせてフロントエンドを変化させるように (#15112)
kakkokari-gtyih Jan 14, 2025
d2e22f9
refactor: SystemWebhook/UserWebhookの配信処理呼び出し部分の改善 (#15035)
samunohito Jan 14, 2025
9ddf775
Enhance: GitHub Actionsでのffmpegインストールの失敗時リトライするように (#15079)
kanarikanaru Jan 14, 2025
da9e055
fix(backend): `pages/update`のnameの重複チェックはnameプロパティがある時のみ行うように (#15104)
kakkokari-gtyih Jan 14, 2025
b65b70d
Bump version to 2025.1.0-alpha.0
github-actions[bot] Jan 14, 2025
6a0a810
Update CHANGELOG.md
syuilo Jan 14, 2025
71cecdb
feat(backend): pgroongaに対応(configの構成変更あり) (#14978)
samunohito Jan 14, 2025
40f8b5e
enhance(frontend): ユーザーページに「ファイル」タブを新設 (#15130)
kakkokari-gtyih Jan 14, 2025
ed43cd8
ノートのリンクをリモートのサーバーのURLとしてもコピーできるように (#15091)
Sayamame-beans Jan 14, 2025
319f7e6
feat(misskey-js): allow setting binaryType of WebSocket connection (#…
cannorin Jan 14, 2025
145c6cf
fix: node.js の punycode モジュールが使用されている場所がある問題 (#15248)
anatawa12 Jan 14, 2025
f45fd01
enhance(backend): 絵文字の連合でライセンス欄を相互にやり取りするように (#15182)
samunohito Jan 14, 2025
d018fe5
fix(backend): Let MfmService.fromHtml accept ruby (#15117)
dahlia Jan 14, 2025
1b47e2d
Bump version to 2025.1.0-beta.0
github-actions[bot] Jan 14, 2025
87cdbae
Bump version to 2025.1.0-beta.1
github-actions[bot] Jan 14, 2025
9760f3d
enhance(frontend): ワードミュートで引っかかったワードを表示可能にする (#15195)
tai-cha Jan 14, 2025
25a5f42
WIp (backend)
tai-cha Jan 14, 2025
002e939
New Crowdin updates (#15030)
syuilo Jan 15, 2025
6653233
fix(frontend): localeの型を生成 (#15285)
kakkokari-gtyih Jan 15, 2025
233a5d5
Remove unused
tai-cha Jan 15, 2025
6396243
fix: タイムアウトを起こすe2eテストの時間設定を延長 (#15283)
samunohito Jan 15, 2025
363bdac
ci: improve CI configuration (#15287)
anatawa12 Jan 16, 2025
d7d6209
下書きbackend 続き
tai-cha Jan 16, 2025
0884aee
Merge branch 'develop' of https://github.com/misskey-dev/misskey into…
tai-cha Jan 16, 2025
fb03e78
fix(backedn): visibilityが下書きに反映されない
tai-cha Jan 16, 2025
d3e8c44
Update packages/backend/src/postgres.ts
tai-cha Jan 16, 2025
f5e5c30
Fix : import order
tai-cha Jan 16, 2025
d5d897a
fix(backend) : createでcwが効かない
tai-cha Jan 16, 2025
4e31869
FIX FOREGIN KEY
tai-cha Jan 16, 2025
e80e655
wip: frontend(既存の下書きを挿入)
tai-cha Jan 16, 2025
ac77804
WIP: ノート選択ダイアログ
tai-cha Jan 16, 2025
0868065
Promiseに変更
tai-cha Jan 16, 2025
7f9f51d
連合なし、チャンネルも表示
tai-cha Jan 16, 2025
5aba6c2
Hashtagの値抜け漏れ
tai-cha Jan 16, 2025
740d087
hasthagを0文字でも作成可能に
tai-cha Jan 16, 2025
9f27814
下書きの保存機構
tai-cha Jan 16, 2025
7aa76b8
chore(misskey-js): build types
tai-cha Jan 16, 2025
efb3d4a
localOnly抜け漏れ
tai-cha Jan 16, 2025
c0d3b1d
チャンネル情報の書き換え
tai-cha Jan 16, 2025
168450b
enhance(frontend): ヘッダ部の表示改善
tai-cha Jan 16, 2025
e6464b6
fix(frontend): ファイル添付できない
tai-cha Jan 16, 2025
cda8dda
fix: no file
tai-cha Jan 16, 2025
ebab433
fix(frontend): 投票が反映されない
tai-cha Jan 16, 2025
4e20127
ハッシュタグの展開(コメントアウト外し忘れ)
tai-cha Jan 16, 2025
f47a94a
fix: visibleUserIdsが反映されない
tai-cha Jan 16, 2025
528dfc9
enhance: APIの型を整備
kakkokari-gtyih Jan 16, 2025
888038d
refactor: 型が整備できたのでasを削除
kakkokari-gtyih Jan 16, 2025
84c4ff4
Add userhost
tai-cha Jan 16, 2025
f8c8bcf
Merge branch 'feat/draft-note' of https://github.com/tai-cha/misskey …
tai-cha Jan 16, 2025
8cda0a5
fix
kakkokari-gtyih Jan 16, 2025
12ec6b8
enhance: paginationを使う
kakkokari-gtyih Jan 17, 2025
7854b34
fix
kakkokari-gtyih Jan 17, 2025
f9557c0
fix: 自分のアカウントでの投稿でしか下書きを利用できないように
kakkokari-gtyih Jan 17, 2025
faf49e4
:art:
kakkokari-gtyih Jan 17, 2025
394a692
APIのエラーIDを追加
kakkokari-gtyih Jan 17, 2025
ded7a80
enhance: スタイル調整
kakkokari-gtyih Jan 17, 2025
a76fd91
remove unused code
kakkokari-gtyih Jan 17, 2025
1700cd6
:art:
kakkokari-gtyih Jan 17, 2025
93422ec
fix: ロールポリシーの型
kakkokari-gtyih Jan 17, 2025
ef12216
ロールの編集画面
kakkokari-gtyih Jan 17, 2025
253c8fd
ダイアログの挙動改善
kakkokari-gtyih Jan 17, 2025
099c2c9
下書き機能が利用できない場合は表示しないように
kakkokari-gtyih Jan 17, 2025
ef98421
refactor
kakkokari-gtyih Jan 17, 2025
14f4776
fix: ダブルクリックが効かない問題を修正
kakkokari-gtyih Jan 17, 2025
50f8ecc
add comments
kakkokari-gtyih Jan 17, 2025
d69b830
fix
kakkokari-gtyih Jan 17, 2025
9d88b3a
fix: 保存時のエラーの種別にかかわらずmodalを閉じないように
kakkokari-gtyih Jan 17, 2025
f71bd5d
fix()backend: NoteDraftのreply, renoteの型が間違ってたので修正 (migtrationはあってた)
tai-cha Jan 17, 2025
343042f
Merge branch 'feat/draft-note' of https://github.com/tai-cha/misskey …
tai-cha Jan 17, 2025
39df8f3
fix: 投稿フォームを空白にして通常リノートできるやつは下書きとしては弾くように
kakkokari-gtyih Jan 17, 2025
aff8a05
fix(backend): テキストが0文字でも下書きは保存できるように
tai-cha Jan 17, 2025
a328d52
よくわからないリアクションに関するログが流れっぱなしなのを修正 (#15303)
fruitriin Jan 17, 2025
85be61d
ワードミュートの保存失敗時にAPIエラーが握りつぶされる事があるのを修正 (#15304)
FineArchs Jan 17, 2025
f01fc5a
fix(frontend): MkInstanceTickerの情報がリアクティブでない問題を修正 (#15123)
kakkokari-gtyih Jan 17, 2025
b16f5a7
fix(backend): localOnlyなノートの時は配送処理そのものを起動しない (#15020)
samunohito Jan 17, 2025
1ef62e9
fix(backend): clone schema before converting to OAS schema to avoid m…
zyoshoka Jan 18, 2025
a6d8a20
Merge remote-branch 'misskey/develop'
noridev Jan 18, 2025
fb2c105
ci: remove auto release on un-drafting PR (#15017)
anatawa12 Jan 19, 2025
078b7d6
fix(frontend): アンケート(投票)でリモートの絵文字が正しく描画できない問題の修正 (#15306)
tai-cha Jan 19, 2025
dc48c49
refactor: WebhookDeliverJobDataのcontentフィールドの型を具体的に (#15310)
takejohn Jan 19, 2025
bb51574
fix(frontend): 非ログイン時のサーバー概要画面のメニューボタンが押せないことがあるのを修正 (#15305)
kakkokari-gtyih Jan 19, 2025
4edca7b
enhance(frontend): CherryPick 클라이언트 업데이트 확인 방식 변경
noridev Jan 19, 2025
18126a8
Merge pull request #552
kozakura913 Jan 19, 2025
ebdb65b
Merge branch 'develop' of https://github.com/kokonect-link/cherrypick…
noridev Jan 19, 2025
3511c7b
chore
noridev Jan 19, 2025
44df407
Update CHANGELOG_CHERRYPICK.md
noridev Jan 19, 2025
62ddd76
4.14.3-beta.0
noridev Jan 19, 2025
d1c58f5
change version
noridev Jan 19, 2025
9ec3978
Update about-misskey.vue
noridev Jan 19, 2025
e79b38b
Update about-misskey.vue
noridev Jan 19, 2025
232cd62
Fix(backend): replyIdの型定義がミスっているのを修正
tai-cha Jan 19, 2025
b41e780
fix(client): MkSubNoteContentに対するnoteの指定が誤っていたので修正 (follow up of miss…
tai-cha Jan 20, 2025
f9ad127
feat: 新カスタム絵文字管理画面(β)の追加 (#13473)
samunohito Jan 20, 2025
8d7b1f2
refactor: Refactor Endpoints to improve Developer Experience for addi…
anatawa12 Jan 20, 2025
9470641
Bump version to 2025.1.0-beta.2
github-actions[bot] Jan 20, 2025
238946a
Merge remote-branch 'misskey/develop'
noridev Jan 20, 2025
bd35579
lint
noridev Jan 20, 2025
64edfb5
4.15.0-beta.1
noridev Jan 20, 2025
2abd244
Merge branch 'develop' of https://github.com/misskey-dev/misskey into…
tai-cha Jan 20, 2025
833a2ad
chore(misskey-js): update types
tai-cha Jan 20, 2025
d7fdcbc
fix: 絵文字のライセンスのActivityPub contextを追加 (#15318)
noellabo Jan 21, 2025
68175bc
enhance(frontend): クエリパラメータでuiを一時的に変更できるように (#15240)
anatawa12 Jan 21, 2025
e8b633e
fix(frontend): Instanceの値が部分的に欠損していると、ローカルサーバーの情報にフォールバックする問題を修正 (#15…
kakkokari-gtyih Jan 21, 2025
97f0ea0
build(deps): bump actions/setup-node from 4.0.3 to 4.1.0 (#14838)
dependabot[bot] Jan 21, 2025
31ccefa
chore(deps): bump actions/cache from 4.1.0 to 4.2.0 (#15095)
dependabot[bot] Jan 21, 2025
6ce22bd
Merge remote-branch 'misskey/develop'
noridev Jan 21, 2025
26874df
Update about-misskey.vue
syuilo Jan 23, 2025
1cd1264
New Crowdin updates (#15288)
syuilo Jan 24, 2025
0a41e36
docs: CONTRIBUTING.mdに「Misskey.jsのAPIの型の生成」のセクションを追加 (#15338)
sevenc-nanashi Jan 25, 2025
ce787e4
feat(client): 画像をプレビュー可能に
tai-cha Jan 25, 2025
5b0aec5
Update Changelog
tai-cha Jan 25, 2025
b4842c0
SPDX
tai-cha Jan 25, 2025
c838f80
消えてたのFix
tai-cha Jan 25, 2025
4bb30a1
Add storybook for MkImgPreviewDialog
tai-cha Jan 25, 2025
e1365fb
backgroundのスタイル変更
tai-cha Jan 25, 2025
842c745
Add MkImgPreviewDialog to storybook generator
tai-cha Jan 25, 2025
35104d8
revert(dev): フロントエンド・バックエンドを分離する開発モードを廃止 (#15284)
kakkokari-gtyih Jan 25, 2025
8f37fb6
fix(frontend): クライアント起動時にURLに #pswp がある場合は取り除くように (#15339)
kakkokari-gtyih Jan 25, 2025
e94c697
New Crowdin updates (#15347)
syuilo Jan 26, 2025
f4bca47
feat(frontend): リモート絵文字のインポート時に詳細を確認できるように (#15344)
samunohito Jan 26, 2025
ef29130
fix(backend): ノートの閲覧にログイン必須にしてもFeedでノートが表示されてしまう問題を修正 (#15083)
eternal-flame-AD Jan 26, 2025
791b450
fix(frontend): 画面を閉じる直前にAudioContextを閉じるように (#15080)
kakkokari-gtyih Jan 26, 2025
297186e
enhance(frontend): 絵文字管理画面β(ローカル)のUI・UX改善 (#15349)
kakkokari-gtyih Jan 26, 2025
abb1e4b
Bump version to 2025.1.0-beta.3
github-actions[bot] Jan 26, 2025
605756d
fix(frontend): ロール作成画面で設定できるアイコンデコレーションの最大値を16にする (#15352)
1673beta Jan 27, 2025
83d2794
Update packages/frontend/.storybook/generate.tsx
tai-cha Jan 27, 2025
4f31dcf
New Crowdin updates (#15350)
syuilo Jan 27, 2025
8232ea6
fix(backend): デフォルト起動時のメインプロセスはHTTPサーバモジュールのみ読み込む (#15355)
samunohito Jan 27, 2025
6250af2
wip (#15348)
kakkokari-gtyih Jan 28, 2025
2c3a41e
fix(frontend): tabler-iconsが読み込めない問題を修正(暫定的対応) (#15332)
kakkokari-gtyih Jan 28, 2025
87b9016
Release: 2025.1.0
github-actions[bot] Jan 28, 2025
3688049
Merge pull request #15279 from misskey-dev/develop
misskey-release-bot[bot] Jan 28, 2025
f8f17a4
[skip ci] Update CHANGELOG.md (prepend template)
github-actions[bot] Jan 28, 2025
5d33204
Merge branch 'develop' of https://github.com/misskey-dev/misskey into…
tai-cha Jan 28, 2025
1443263
Add CHANGELOG
tai-cha Jan 28, 2025
77e4210
Merge commit from fork
nexryai Feb 1, 2025
ba9f295
Merge commit from fork
Hoto-Cocoa Feb 1, 2025
40bfb1b
fix(backend): お知らせのmetaタグ出力の条件が間違っていたのを修正 (#15377)
kakkokari-gtyih Feb 1, 2025
89b461a
Bump version to 2025.2.0-alpha.0
github-actions[bot] Feb 1, 2025
ae65aec
refactor(frontend): definePropsを別途インポートしている箇所を除去 (#15375)
kakkokari-gtyih Feb 1, 2025
28490f3
Fix(frontend): ワードミュートがnullの時にもセンシティブミュートが行われるように (#15364)
tai-cha Feb 1, 2025
850d1d0
fix(frontend): MkDriveFileThumbnail / MkNoteMediaGridの修正 (#15365)
kakkokari-gtyih Feb 1, 2025
d4226c6
Update SECURITY.md
kakkokari-gtyih Feb 1, 2025
06f113b
fix(misskey-js): api extractorの出力をLFに強制 (#15369)
kakkokari-gtyih Feb 1, 2025
9230ee5
New Crowdin updates (#15360)
syuilo Feb 1, 2025
b351e56
Merge remote-branch 'misskey/master'
noridev Feb 1, 2025
7cfe915
Merge pull request #564
kozakura913 Feb 1, 2025
ed8b0b1
chore
noridev Feb 1, 2025
213379e
fix(backend): 리모트 서버의 이모지를 가져올 수 없음
noridev Feb 1, 2025
e746616
Merge pull request #562
1673beta Feb 1, 2025
ca4346b
Merge branch 'develop' of https://github.com/kokonect-link/cherrypick…
noridev Feb 1, 2025
c675de0
enhance(frontend): 키보드 단축키 목록을 볼 수 있음 (kokonect-link/cherrypick#562)
noridev Feb 1, 2025
9bf4e7a
4.15.0-beta.2
noridev Feb 1, 2025
e5bdb3f
fix(backend): 채널에서 `노트 게시 예약`을 사용하면 채널 타임라인이 아닌 일반 타임라인에 게시됨 (kokonec…
noridev Feb 1, 2025
a7a39a7
chore
noridev Feb 1, 2025
a1be39d
Bump version to 2025.2.0-beta.0
github-actions[bot] Feb 2, 2025
9c70a4e
fix(build): corepackのバグの回避 (#15387)
kakkokari-gtyih Feb 3, 2025
1985763
Update CHANGELOG.md
syuilo Feb 4, 2025
495d72e
fix(frontend): MkSparkleが動作しない問題を修正 (#15390)
kakkokari-gtyih Feb 4, 2025
cb48853
fix(frontend): スラッシュを含むページを閲覧できるように (#15394)
kakkokari-gtyih Feb 4, 2025
5840c7a
fix(frontend): パスキーでパスワードレスログインが出来ない問題を修正 (#15370)
lqvp Feb 4, 2025
0c634c9
Update CHANGELOG.md
syuilo Feb 4, 2025
82d4109
New translations ja-jp.yml (English) (#15389)
syuilo Feb 5, 2025
904da7b
Update CHANGELOG.md
syuilo Feb 5, 2025
fbc6d0d
enhance: ページslugに使用可能な文字を限定 (#15395)
syuilo Feb 5, 2025
23fc79b
New Crowdin updates (#15400)
syuilo Feb 5, 2025
2f4e2a7
Bump version to 2025.2.0-beta.1
github-actions[bot] Feb 5, 2025
fd88066
fix(frontend): デッキのプロファイルが新規作成できない問題を修正 (#15406)
kakkokari-gtyih Feb 5, 2025
0f0e88e
Update CHANGELOG.md
syuilo Feb 5, 2025
b7c3630
Release: 2025.2.0
github-actions[bot] Feb 5, 2025
c93ead7
Merge pull request #15378 from misskey-dev/develop
misskey-release-bot[bot] Feb 5, 2025
8b3a0ff
Merge remote-branch 'misskey/master'
noridev Feb 5, 2025
6b26539
4.15.0-beta.3
noridev Feb 5, 2025
9742794
fix(backend): 움직이는 이미지를 사용한 사용자의 아바타 장식이 원격 서버에서 정지된 이미지로 보일 수 있음
noridev Feb 5, 2025
ebbe60b
Update CHANGELOG_CHERRYPICK.md
noridev Feb 5, 2025
e1986b2
feat: 프로필 아이콘 모양 설정 연합
noridev Feb 5, 2025
da81992
feat: robots.txt 사용자화 (bettaku/engawa#226)
noridev Feb 6, 2025
f93a410
Update CHANGELOG_CHERRYPICK.md
noridev Feb 6, 2025
6a38cab
4.15.0-rc.0
noridev Feb 6, 2025
bf66b2b
Update CHANGELOG_CHERRYPICK.md
noridev Feb 6, 2025
d4abea0
Merge branch 'develop' of https://github.com/kokonect-link/cherrypick…
noridev Feb 6, 2025
af75180
hotfix e1986b2a
noridev Feb 6, 2025
59985f8
hotfix e1986b2a
noridev Feb 6, 2025
0212834
hotfix e1986b2a
noridev Feb 6, 2025
f8bff32
feat(frontend): 노트 게시 전에 첨부된 이미지를 미리 볼 수 있음 (misskey-dev/misskey#15341)
noridev Feb 6, 2025
30f5d8e
hotfix e1986b2a
noridev Feb 6, 2025
f33421d
SPDX
noridev Feb 6, 2025
674ede0
4.15.0-rc.1
noridev Feb 6, 2025
0a573df
enhance(frontend): 아바타 장식 개선
noridev Feb 6, 2025
112e10b
4.15.0-rc.2
noridev Feb 6, 2025
a64934f
fix
noridev Feb 6, 2025
1df81be
feat: 노트의 초안을 저장할 수 있음 (kokonect-link/cherrypick#513, misskey-dev/mis…
noridev Feb 6, 2025
23a8a85
Update ko-KR.yml
noridev Feb 6, 2025
c5c3799
enhance: 프록시 계정을 확인할 수 있는 배지 추가 (misskey-dev/misskey#14855)
noridev Feb 6, 2025
36a9ca6
fix 1df81be0
noridev Feb 6, 2025
5901b3c
lint
noridev Feb 6, 2025
f097a6c
fix(frontend): 노트 게시를 예약할 때 토스트 알림이 잘못 표시될 수 있음
noridev Feb 6, 2025
c45d951
lint
noridev Feb 6, 2025
738f58a
4.15.0-rc.3
noridev Feb 6, 2025
f0cd475
2025
noridev Feb 6, 2025
f20f7b4
Update CHANGELOG_CHERRYPICK.md
noridev Feb 6, 2025
ea94b4e
chore
noridev Feb 7, 2025
91248e6
fix a1bfa242
noridev Feb 7, 2025
12dba61
enhance(frontend): 비밀번호 입력 시 `Caps Lock`이 켜져있으면 아이콘을 표시함
noridev Feb 7, 2025
a4ddb9f
enhance(frontend): 검색 입력 블록에 입력한 내용을 `x` 버튼을 클릭해 지울 수 있음
noridev Feb 7, 2025
0a71a12
4.15.0-rc.4
noridev Feb 7, 2025
2c43246
fix e1986b2a
noridev Feb 7, 2025
b38a443
enhance: `팔로우를 수동으로 승인`으로 설정한 사용자를 쉽게 확인할 수 있도록 노트 헤더에 배지 추가
noridev Feb 7, 2025
d384383
🎨
noridev Feb 7, 2025
87e6aea
4.15.0-rc.5
noridev Feb 7, 2025
28fc1eb
fix
noridev Feb 7, 2025
60dfbb6
chore
noridev Feb 7, 2025
84c9cb9
enhance(frontend): 게시 예약된 노트가 있을 때 알림
noridev Feb 7, 2025
22db579
chore
noridev Feb 7, 2025
138de5e
fix(frontend): `움직이는 이미지를 자동으로 재생하지 않음` 설정을 변경해도 페이지를 자동으로 새로 고치지 않음
noridev Feb 7, 2025
d97bda1
refactor
noridev Feb 7, 2025
781dca3
fix(frontend): 민감한 미디어를 포함한 노트에서 `두 번 탭하여 열기` 설정이 작동하지 않을 수 있음
noridev Feb 7, 2025
e424a25
add selfXssPrevention description
noridev Feb 7, 2025
2c0b6e0
enhance(frontend): 사진 위젯의 미디어 왼쪽 상단에 미디어 정보(`ALT`/`GIF`/`APNG`/`NSFW`…
noridev Feb 7, 2025
2b48468
4.15.0-rc.6
noridev Feb 7, 2025
45b2521
Update donation
noridev Feb 8, 2025
67ee0f3
fix(backend): 팔로워/팔로잉의 공개 범위를 볼 수 없는 사용자가 `int`가 아닌 `string` 값을 반환할 수 있음
noridev Feb 8, 2025
e3a06e6
chore
noridev Feb 8, 2025
abae50e
enhance(frontend): 노트 게시 예약 시 사운드를 재생함
noridev Feb 8, 2025
b72da7a
4.15.0
noridev Feb 8, 2025
4c753cb
Update CHANGELOG_CHERRYPICK.md
noridev Feb 8, 2025
7a41ae6
fix github action test
noridev Feb 8, 2025
bf15899
feat: 모든 리노트를 간략화하여 표시할 수 있음
noridev Feb 8, 2025
c98a50a
chore
noridev Feb 8, 2025
a81debd
enhance e1986b2a
noridev Feb 8, 2025
6bbe205
Update CHANGELOG_CHERRYPICK.md
noridev Feb 8, 2025
ac6b20a
SPDX
noridev Feb 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/api-cherrypick-js.yml
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@ jobs:
- run: corepack enable

- name: Setup Node.js
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/changelog-check.yml
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ jobs:
- name: Checkout head
uses: actions/[email protected]
- name: Setup Node.js
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'

2 changes: 1 addition & 1 deletion .github/workflows/check-cherrypick-js-autogen.yml
Original file line number Diff line number Diff line change
@@ -29,7 +29,7 @@ jobs:

- name: setup node
id: setup-node
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: pnpm
2 changes: 1 addition & 1 deletion .github/workflows/get-api-diff.yml
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
8 changes: 4 additions & 4 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.4
- uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -68,14 +68,14 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.4
- uses: actions/setup-node@v4.1.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.1.0
uses: actions/cache@v4.2.0
with:
path: ${{ env.eslint-cache-path }}
key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}
@@ -98,7 +98,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.4
- uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/locale.yml
Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ jobs:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.4
- uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/on-release-created.yml
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/storybook.yml
Original file line number Diff line number Diff line change
@@ -43,7 +43,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version-file: '.node-version'
cache: 'pnpm'
4 changes: 2 additions & 2 deletions .github/workflows/test-backend.yml
Original file line number Diff line number Diff line change
@@ -62,7 +62,7 @@ jobs:
fi
done
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -110,7 +110,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/test-cherrypick-js.yml
Original file line number Diff line number Diff line change
@@ -32,7 +32,7 @@ jobs:
- run: corepack enable

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/test-federation.yml
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ jobs:
fi
done
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
4 changes: 2 additions & 2 deletions .github/workflows/test-frontend.yml
Original file line number Diff line number Diff line change
@@ -38,7 +38,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -94,7 +94,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/test-production.yml
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
2 changes: 1 addition & 1 deletion .github/workflows/validate-api-json.yml
Original file line number Diff line number Diff line change
@@ -27,7 +27,7 @@ jobs:
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.4
uses: actions/setup-node@v4.1.0
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -21,6 +21,7 @@
- Enhance: ノートの添付ファイルを一覧で遡れる「ファイル」タブを追加
(Based on https://github.com/Otaku-Social/maniakey/pull/14)
- Enhance: AiScriptの拡張API関数において引数の型チェックをより厳格に
- Enhance: クエリパラメータでuiを一時的に変更できるように #15240
- Fix: 画面サイズが変わった際にナビゲーションバーが自動で折りたたまれない問題を修正
- Fix: サーバー情報メニューに区切り線が不足していたのを修正
- Fix: ノートがログインしているユーザーしか見れない場合にログインダイアログを閉じるとその後の動線がなくなる問題を修正
5 changes: 5 additions & 0 deletions packages/backend/src/core/activitypub/misc/contexts.ts
Original file line number Diff line number Diff line change
@@ -558,6 +558,11 @@ const extension_context_definition = {
'_misskey_requireSigninToViewContents': 'misskey:_misskey_requireSigninToViewContents',
'_misskey_makeNotesFollowersOnlyBefore': 'misskey:_misskey_makeNotesFollowersOnlyBefore',
'_misskey_makeNotesHiddenBefore': 'misskey:_misskey_makeNotesHiddenBefore',
'_misskey_license': 'misskey:_misskey_license',
'freeText': {
'@id': 'misskey:freeText',
'@type': 'schema:text',
},
'_misskey_talk': 'misskey:_misskey_talk',
'isCat': 'misskey:isCat',
// vcard
44 changes: 36 additions & 8 deletions packages/frontend/src/boot/main-boot.ts
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@ import { createApp, defineAsyncComponent, markRaw } from 'vue';
import { ui } from '@@/js/config.js';
import { common } from './common.js';
import type * as Misskey from 'cherrypick-js';
import type { Component } from 'vue';
import { i18n } from '@/i18n.js';
import { alert, confirm, popup, post, welcomeToast } from '@/os.js';
import { useStream } from '@/stream.js';
@@ -27,14 +28,41 @@ import { userName } from '@/filters/user.js';
import { vibrate } from '@/scripts/vibrate.js';

export async function mainBoot() {
const { isClientUpdated, isClientMigrated } = await common(() => createApp(
new URLSearchParams(window.location.search).has('zen') || (ui === 'deck' && deckStore.state.useSimpleUiForNonRootPages && location.pathname !== '/') ? defineAsyncComponent(() => import('@/ui/zen.vue')) :
!$i ? defineAsyncComponent(() => import('@/ui/visitor.vue')) :
ui === 'deck' ? defineAsyncComponent(() => import('@/ui/deck.vue')) :
ui === 'classic' ? defineAsyncComponent(() => import('@/ui/classic.vue')) :
ui === 'default' ? defineAsyncComponent(() => import('@/ui/universal.vue')) :
defineAsyncComponent(() => import('@/ui/friendly.vue')),
));
const { isClientUpdated, isClientMigrated } = await common(() => {
let uiStyle = ui;
const searchParams = new URLSearchParams(window.location.search);

if (!$i) uiStyle = 'visitor';

if (searchParams.has('zen')) uiStyle = 'zen';
if (uiStyle === 'deck' && deckStore.state.useSimpleUiForNonRootPages && location.pathname !== '/') uiStyle = 'zen';

if (searchParams.has('ui')) uiStyle = searchParams.get('ui');

let rootComponent: Component;
switch (uiStyle) {
case 'zen':
rootComponent = defineAsyncComponent(() => import('@/ui/zen.vue'));
break;
case 'deck':
rootComponent = defineAsyncComponent(() => import('@/ui/deck.vue'));
break;
case 'visitor':
rootComponent = defineAsyncComponent(() => import('@/ui/visitor.vue'));
break;
case 'classic':
rootComponent = defineAsyncComponent(() => import('@/ui/classic.vue'));
break;
case 'default':
rootComponent = defineAsyncComponent(() => import('@/ui/universal.vue'));
break;
default:
rootComponent = defineAsyncComponent(() => import('@/ui/friendly.vue'));
break;
}

return createApp(rootComponent);
});

reactionPicker.init();
emojiPicker.init();
19 changes: 16 additions & 3 deletions packages/frontend/src/components/MkInstanceTicker.vue
Original file line number Diff line number Diff line change
@@ -17,6 +17,7 @@ import { instance as localInstance } from '@/instance.js';
import { getProxiedImageUrlNullable } from '@/scripts/media-proxy.js';

const props = defineProps<{
host: string | null;
instance?: {
faviconUrl?: string | null
name?: string | null
@@ -25,12 +26,24 @@ const props = defineProps<{
}>();

// if no instance data is given, this is for the local instance
const instanceName = computed(() => props.instance?.name ?? localInstanceName);
const instanceName = computed(() => props.host == null ? localInstanceName : props.instance?.name ?? props.host);

const faviconUrl = computed(() => getProxiedImageUrlNullable(props.instance?.faviconUrl ?? localInstance.iconUrl, 'preview') ?? '/favicon.ico');
const faviconUrl = computed(() => {
let imageSrc: string | null = null;
if (props.host == null) {
if (localInstance.iconUrl == null) {
return '/favicon.ico';
} else {
imageSrc = localInstance.iconUrl;
}
} else {
imageSrc = props.instance?.faviconUrl ?? null;
}
return getProxiedImageUrlNullable(imageSrc);
});

const themeColorStyle = computed<CSSProperties>(() => {
const themeColor = props.instance?.themeColor ?? localInstance.themeColor ?? '#777777';
const themeColor = (props.host == null ? localInstance.themeColor : props.instance?.themeColor) ?? '#777777';
return {
background: `${themeColor}`,
};
2 changes: 1 addition & 1 deletion packages/frontend/src/components/MkNote.vue
Original file line number Diff line number Diff line change
@@ -109,7 +109,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:enableEmojiMenuReaction="!!$i"
@click.stop
/>
<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll" isTranslation @click.stop/>
<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :author="appearNote.user" :emojiUrls="appearNote.emojis" :class="$style.poll" isTranslation @click.stop/>
<div v-if="translation.translator == 'ctav3'" style="margin-top: 10px; padding: 0 0 15px;">
<img v-if="!defaultStore.state.darkMode" src="/client-assets/color-short.svg" alt="" style="float: right;">
<img v-else src="/client-assets/white-short.svg" alt="" style="float: right;"/>
4 changes: 2 additions & 2 deletions packages/frontend/src/components/MkNoteDetailed.vue
Original file line number Diff line number Diff line change
@@ -84,7 +84,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</span>
<span v-if="appearNote.localOnly" style="margin-left: 0.5em;"><i v-tooltip="i18n.ts._visibility['disableFederation']" class="ti ti-rocket-off"></i></span>
</div>
<MkInstanceTicker v-if="showTicker" :instance="appearNote.user.instance" @click="showOnRemote"/>
<MkInstanceTicker v-if="showTicker" :host="appearNote.user.host" :instance="appearNote.user.instance" @click="showOnRemote"/>
</div>
<!--
<div :class="$style.noteHeaderUsernameAndBadgeRoles">
@@ -142,7 +142,7 @@ SPDX-License-Identifier: AGPL-3.0-only
:enableEmojiMenu="!!$i"
:enableEmojiMenuReaction="!!$i"
/>
<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll" isTranslation/>
<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll" :author="appearNote.user" :emojiUrls="appearNote.emojis" isTranslation/>
<div v-if="translation.translator == 'ctav3'" style="margin-top: 10px; padding: 0 0 15px;">
<img v-if="!defaultStore.state.darkMode" src="/client-assets/color-short.svg" alt="" style="float: right;">
<img v-else src="/client-assets/white-short.svg" alt="" style="float: right;"/>
2 changes: 1 addition & 1 deletion packages/frontend/src/components/MkNoteHeader.vue
Original file line number Diff line number Diff line change
@@ -44,7 +44,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<MkTime :time="note.createdAt" :mode="defaultStore.state.enableAbsoluteTime ? 'absolute' : 'relative'" colored/>
</MkA>
</div>
<div :style="$style.info"><MkInstanceTicker v-if="showTicker" :instance="note.user.instance" @click.stop="showOnRemote"/></div>
<div :style="$style.info"><MkInstanceTicker v-if="showTicker" :host="note.user.host" :instance="note.user.instance" @click.stop="showOnRemote"/></div>
</div>
</header>
</template>

Unchanged files with check annotations Beta

mkMediaImage.queryByText('GIF'),
mkMediaImage.queryByText('ALT'),
]);
assert.ok(gif);

Check failure on line 74 in packages/frontend/test/note.test.ts

GitHub Actions / Unit tests (frontend) (22.11.0)

test/note.test.ts > MkMediaImage > Attaching APNG should show a GIF indicator

AssertionError: expected null to be truthy ❯ test/note.test.ts:74:10

Check failure on line 74 in packages/frontend/test/note.test.ts

GitHub Actions / Unit tests (frontend) (22.11.0)

test/note.test.ts > MkMediaImage > Attaching APNG should show a GIF indicator

AssertionError: expected null to be truthy ❯ test/note.test.ts:74:10
assert.ok(!alt);
});
*/
@bindThis
public async enqueueUserWebhook<T extends WebhookEventTypes>(
userId: MiUser['id'],

Check failure

Code scanning / CodeQL

Insecure randomness High

This uses a cryptographically insecure random number generated at
Math.random()
in a security context.
This uses a cryptographically insecure random number generated at
Math.random()
in a security context.
This uses a cryptographically insecure random number generated at
Math.random()
in a security context.
type: T,
content: UserWebhookPayload<T>,
) {
export function createAiScriptEnv(opts: { storageKey: string, token?: string }) {
const table = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
const randomString = Array.from(crypto.getRandomValues(new Uint32Array(32)))
.map(v => table[v % table.length])

Check failure

Code scanning / CodeQL

Creating biased random numbers from a cryptographically secure source High

Using modulo on a
cryptographically secure random number
produces biased results.
.join('');
return {
USER_ID: $i ? values.STR($i.id) : values.NULL,
if (isMfmTag && !opened && this.onlyType.includes('mfmTag')) {
const mfmTag = text.substring(mfmTagIndex + 1);
if (!mfmTag.includes(' ')) {
this.open('mfmTag', mfmTag.replace('[', ''));

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This replaces only the first occurrence of '['.
opened = true;
}
}
if (isHtmlTag && !opened && this.onlyType.includes('htmlTag')) {
const htmlTag = text.substring(htmlTagIndex + 1);
if (!htmlTag.includes(' ')) {
this.open('htmlTag', htmlTag.replace('<', ''));

Check failure

Code scanning / CodeQL

Incomplete string escaping or encoding High

This replaces only the first occurrence of '<'.
opened = true;
}
}
*/
export async function getSoundDuration(file: string): Promise<number> {
const audioEl = document.createElement('audio');
audioEl.src = file;

Check warning

Code scanning / CodeQL

DOM text reinterpreted as HTML

[DOM text](1) is reinterpreted as HTML without escaping meta-characters.
return new Promise((resolve) => {
const si = setInterval(() => {
if (audioEl.readyState > 0) {
* SPDX-License-Identifier: AGPL-3.0-only
*/
type EndoRelation<T> = (a: T, b: T) => boolean;

Check warning on line 6 in packages/frontend-shared/js/array.ts

GitHub Actions / lint (frontend-shared)

'EndoRelation' is defined but never used

Check warning on line 6 in packages/frontend-shared/js/array.ts

GitHub Actions / lint (frontend-shared)

'EndoRelation' is defined but never used
type Predicate<T> = (x: T) => boolean;
/**