Skip to content

Fix/msky 204 child tasks - #1462

Closed
mattyatea wants to merge 83 commits into
nextfrom
fix/MSKY-204-child-tasks
Closed

Fix/msky 204 child tasks#1462
mattyatea wants to merge 83 commits into
nextfrom
fix/MSKY-204-child-tasks

Conversation

@mattyatea

@mattyatea mattyatea commented Apr 28, 2026

Copy link
Copy Markdown
Member

What

Why

Additional info (optional)

Checklist

  • Read the contribution guide
  • Test working in a local environment
  • (If needed) Add story of storybook
  • (If needed) Update CHANGELOG.md
  • (If possible) Add tests

Summary by CodeRabbit

リリースノート

  • バグ修正

    • 単語ミュート機能で空のキーワードが適切に処理されるようになりました
    • 投稿フォームのUIが改善されました
    • モーダルウィンドウの閉じるボタン表示が改善されました
  • 改善

    • フォーカストラップの動作が強化されました
    • タイムラインコンポーネントの機能が拡張されました
    • アンテナ編集機能が改善されました

mattyatea and others added 30 commits February 23, 2026 15:06
リアクション用の「+」ボタンをクリックした際、絵文字ピッカーが左上に表示されていた問題を修正。

原因: popup() に Ref の値 (.value) を渡していたため、
ポップアップ作成後に anchorElement が更新されても反映されなかった。

修正: Ref 自体を渡すように変更し、リアクティビティを保つようにした。


Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
Use node-html-parser for backend HTML parsing so Jest no longer trips over jsdom's ESM dependency chain during backend unit test startup.
refactor(frontend): 予約投稿失敗通知の表示を整理
refactor(frontend): 下書き復元から予約日時の依存を除去
refactor(backend): 予約投稿通知設定のAPI定義を更新
refactor(backend): 予約投稿失敗通知の型を整理
refactor(backend): 下書きAPIから予約投稿パラメータを分離
refactor(backend): NoteDraftからscheduledAtを除去
u1-liquid and others added 20 commits March 22, 2026 19:49
normalizeDimensionの境界条件を修正(<=0から<0に)して、
dimension=0を許容するようにしました。
初回読み込みのAPI結果とストリーミング更新で返信の除外条件がずれていたため、リロード後だけ見える返信がありました。stream 側の追加フィルタを外して表示条件を揃えます。
アンテナ編集ダイアログの更新結果を列ヘッダーへ反映していなかったため、古い名前が残っていました。updated イベントで timelineNameCache を更新します。
ユーザーページ概要タブの notes リクエストで withChannelNotes が渡っておらず、チャンネル投稿だけ除外されていました。all タブでは channel notes も含めて取得します。
投稿フォームのアカウント切替アイコンで生の img を使っていたため、デコレーションが表示されていませんでした。MkAvatar を使って通常表示と同じ描画経路に揃えます。
予約投稿の権限がないユーザーにも導線が見えていて、実行時にだけ失敗していました。投稿フォームの表示・復元・実行を canScheduleNote に合わせて制御します。
アップロード中の終了確認をキャンセルした経路で投稿フォームの readonly 状態が戻らず、絵文字入力などが効かなくなっていました。キャンセル時に textAreaReadOnly を解除します。
共通ヘッダだけに閉じる操作を依存していて見つけづらかったため、コンテンツ内にも明示的な close ボタンを追加して閉じやすくします。
空文字や空白だけのキーワードが混ざるとワードミュート判定が崩れていました。キーワード正規化を加え、ミュート解除クリックの伝播も止めて意図しない開閉を防ぎます。
投稿失敗時の再オープン処理が空の composer を開き直していたため、channel 投稿が失われて通常投稿に戻っていました。元の props を引き継いで再オープンするようにします。
ミュート語のプレースホルダをクリックしたときに soft mute だけ解除され、hard mute 側が残って false 表示になることがありました。展開時に両方のミュート状態を解除して本体ノートへ切り替えます。
…ld-tasks

# Conflicts:
#	packages/backend/src/server/api/stream/channels/global-timeline.ts
#	packages/frontend/src/components/MkNoteDetailed.vue
@semanticdiff-com

semanticdiff-com Bot commented Apr 28, 2026

Copy link
Copy Markdown

Review changes with  SemanticDiff

Changed Files
File Status
  packages/frontend/src/utility/check-word-mute.ts  75% smaller
  packages/backend/src/misc/check-word-mute.ts  65% smaller
  packages/frontend/src/components/MkPostForm.vue  32% smaller
  packages/frontend/src/utility/focus-trap.ts  16% smaller
  packages/frontend/src/ui/deck/antenna-column.vue  11% smaller
  packages/frontend/src/ui/deck/role-timeline-column.vue  5% smaller
  packages/frontend/src/ui/deck/channel-column.vue  5% smaller
  packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue  1% smaller
  packages/misskey-js/src/autogen/types.ts  1% smaller
  locales/ca-ES.yml  0% smaller
  locales/en-US.yml  0% smaller
  locales/es-ES.yml  0% smaller
  locales/index.d.ts  0% smaller
  locales/it-IT.yml  0% smaller
  locales/ja-JP.yml  0% smaller
  locales/ko-KR.yml  0% smaller
  locales/pt-PT.yml  0% smaller
  locales/th-TH.yml  0% smaller
  locales/zh-CN.yml  0% smaller
  locales/zh-TW.yml  0% smaller
  packages/backend/src/core/RoleService.ts  0% smaller
  packages/backend/src/misc/dimension.ts  0% smaller
  packages/backend/src/models/json-schema/role.ts  0% smaller
  packages/backend/test/unit/misc/check-word-mute.ts  0% smaller
  packages/frontend/src/components/MkModalWindow.vue  0% smaller
  packages/frontend/src/components/MkNote.vue  0% smaller
  packages/frontend/src/components/MkNoteDetailed.vue  0% smaller
  packages/frontend/src/components/MkNoteScheduledDialog.vue  0% smaller
  packages/frontend/src/components/MkNoteSub.vue  0% smaller
  packages/frontend/src/components/MkPostFormDialog.vue  0% smaller
  packages/frontend/src/components/MkStreamingNotesTimeline.vue  0% smaller
  packages/frontend/src/pages/admin/roles.editor.vue  0% smaller
  packages/frontend/src/pages/admin/roles.vue  0% smaller
  packages/frontend/src/pages/user/index.timeline.vue  0% smaller
  packages/frontend/test/focus-trap.test.ts  0% smaller
  packages/misskey-js/etc/misskey-js.api.md Unsupported file format
  packages/misskey-js/src/consts.ts  0% smaller

@snyk-io

snyk-io Bot commented Apr 28, 2026

Copy link
Copy Markdown

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@mattyatea mattyatea closed this Apr 28, 2026
@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bfe76cd9-6391-4b20-a24c-7c08c416fed9

📥 Commits

Reviewing files that changed from the base of the PR and between a3464d4 and 3bb5aa7.

📒 Files selected for processing (37)
  • locales/ca-ES.yml
  • locales/en-US.yml
  • locales/es-ES.yml
  • locales/index.d.ts
  • locales/it-IT.yml
  • locales/ja-JP.yml
  • locales/ko-KR.yml
  • locales/pt-PT.yml
  • locales/th-TH.yml
  • locales/zh-CN.yml
  • locales/zh-TW.yml
  • packages/backend/src/core/RoleService.ts
  • packages/backend/src/misc/check-word-mute.ts
  • packages/backend/src/misc/dimension.ts
  • packages/backend/src/models/json-schema/role.ts
  • packages/backend/test/unit/misc/check-word-mute.ts
  • packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue
  • packages/frontend/src/components/MkModalWindow.vue
  • packages/frontend/src/components/MkNote.vue
  • packages/frontend/src/components/MkNoteDetailed.vue
  • packages/frontend/src/components/MkNoteScheduledDialog.vue
  • packages/frontend/src/components/MkNoteSub.vue
  • packages/frontend/src/components/MkPostForm.vue
  • packages/frontend/src/components/MkPostFormDialog.vue
  • packages/frontend/src/components/MkStreamingNotesTimeline.vue
  • packages/frontend/src/pages/admin/roles.editor.vue
  • packages/frontend/src/pages/admin/roles.vue
  • packages/frontend/src/pages/user/index.timeline.vue
  • packages/frontend/src/ui/deck/antenna-column.vue
  • packages/frontend/src/ui/deck/channel-column.vue
  • packages/frontend/src/ui/deck/role-timeline-column.vue
  • packages/frontend/src/utility/check-word-mute.ts
  • packages/frontend/src/utility/focus-trap.ts
  • packages/frontend/test/focus-trap.test.ts
  • packages/misskey-js/etc/misskey-js.api.md
  • packages/misskey-js/src/autogen/types.ts
  • packages/misskey-js/src/consts.ts

Disabled knowledge base sources:

  • Jira integration is disabled

You can enable these sources in your CodeRabbit configuration.


Walkthrough

複数の言語ローカライゼーションファイル、バックエンド型定義、フロントエンドコンポーネント、およびロールベースのポリシー定義からscheduledNoteLimitロールオプションを削除します。追加の改善には、ミュート処理ハンドラの再構成、単語ミュートのキーワード正規化、フォーカストラップの相互作用フラグ管理、および複数のUIコンポーネントへのディメンション付加が含まれます。

Changes

Cohort / File(s) Summary
多言語ローカライゼーション削除
locales/ca-ES.yml, locales/en-US.yml, locales/es-ES.yml, locales/it-IT.yml, locales/ja-JP.yml, locales/ko-KR.yml, locales/pt-PT.yml, locales/th-TH.yml, locales/zh-CN.yml, locales/zh-TW.yml, locales/index.d.ts
scheduledNoteLimitロールオプションのローカライズテキストと対応するTypeScript型定義をすべての言語から削除。
ロールポリシー型と定義の削除
packages/backend/src/core/RoleService.ts, packages/backend/src/models/json-schema/role.ts, packages/misskey-js/src/autogen/types.ts, packages/misskey-js/src/consts.ts, packages/misskey-js/etc/misskey-js.api.md
RolePolicies型およびエクスポートされたロールポリシー定数からscheduledNoteLimitプロパティ/リテラルを削除。
管理者UI - スケジュール機能削除
packages/frontend/src/pages/admin/roles.editor.vue, packages/frontend/src/pages/admin/roles.vue, packages/frontend/src/components/MkPostForm.vue, packages/frontend/src/components/MkNoteScheduledDialog.vue
スケジュール機能の制御をポリシー権限ゲートに変更し、管理画面からscheduledNoteLimit設定項目を削除。MkNoteScheduledDialogに閉じるボタンを追加。
ミュート処理ハンドラの再構成
packages/frontend/src/components/MkNote.vue, packages/frontend/src/components/MkNoteDetailed.vue, packages/frontend/src/components/MkNoteSub.vue
インラインテンプレート式から専用のtoggleMuteハンドラに変更し、ソフトミュートとハードミュート両方をクリア、イベント伝播を停止。
単語ミュート正規化
packages/backend/src/misc/check-word-mute.ts, packages/frontend/src/utility/check-word-mute.ts, packages/backend/test/unit/misc/check-word-mute.ts
配列ベースのミュートキーワードを正規化(ホワイトスペース削除)し、空文字列をフィルタリング。単語マッチングロジックを更新して空エントリを除外。
ディメンション検証の緩和
packages/backend/src/misc/dimension.ts
normalizeDimensionの有効性チェックを<= 0から< 0に変更。入力値0nullではなく正規化して返却。
タイムラインディメンション伝播
packages/frontend/src/components/MkStreamingNotesTimeline.vue, packages/frontend/src/ui/deck/channel-column.vue, packages/frontend/src/ui/deck/role-timeline-column.vue, packages/frontend/src/pages/user/index.timeline.vue
ストリーミングチャネルサブスクリプションおよびデッキコンポーネントにdimensionパラメータを付加。ユーザータイムラインにwithChannelNotesフラグを追加。
モーダルウィンドウ機能改善
packages/frontend/src/components/MkModalWindow.vue, packages/frontend/src/components/MkCustomEmojiDetailedDialog.vue, packages/frontend/src/components/MkPostFormDialog.vue
閉じるボタンの表示条件をwithOkButtonまたはwithCloseButtonに変更。ダイアログにスタイル(アクション右寄せ、閉じるボタン外観)追加。エラー処理でダイアログpropsを渡す。
フォーカストラップ相互作用管理
packages/frontend/src/utility/focus-trap.ts, packages/frontend/test/focus-trap.test.ts
要素ごとのhasInteractionWithOtherFocusTrappedElsフラグを追跡し、兄弟要素のインタラクティビティルールを集約するcanInteractWithSibling関数を追加。最高z-indexの罠の設定に基づいてインタラクション許可を判断。包括的なテストスイート追加。
Misskey JS型定義更新
packages/misskey-js/src/autogen/types.ts
replyUserIdオプションプロパティを返信コンポーネント型に追加。ポリシー関連型からscheduledNoteLimitを削除。
アンテナエディタ改善
packages/frontend/src/ui/deck/antenna-column.vue
ページナビゲーションをダイアログ表示に変更。アンテナ更新後にキャッシュをクリア、タイムラインネーム再計算。

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Suggested reviewers

  • u1-liquid
  • riku6460

Poem

🐰✨ スケジュール機能さよなら、
フォーカスは優しく兄弟へ、
ミュート処理は道を変えて、
ディメンション、タイムラインへ、
美しく整理された変更よ 🌟

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/MSKY-204-child-tasks

Comment @coderabbitai help to get the list of available commands and usage tips.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants