Skip to content

v1.20.0

Choose a tag to compare

@pooza pooza released this 23 Apr 15:09
· 2277 commits to main since this release
028d82e

新機能

  • プッシュ通知ペイロードの復号と通知内容の個別表示 (#336 Phase 3(a)(b)) — これまで「@xxx に通知があります」の固定文面しか表示できなかったプッシュ通知で、バックグラウンド / キル状態でも通知種別と本文を個別に表示するようになった。Android は FirebaseMessaging.onBackgroundMessage で RFC 8291 (aes128gcm) を復号、iOS は Notification Service Extension (CapsicumNotificationService) を新設して CryptoKit で復号
  • Misskey ネイティブ push ペイロードに対応 — Mastodon 形式 ({title, body, notification_type}) と Misskey 形式 ({type: 'notification', body: {type, user, note, reaction, ...}}) を両方パース
  • Misskey プッシュ通知のサードパーティ制約対応 (#355) — upstream の GHSA-7pxq-6xx9-xpgm 制約でサードパーティアプリから /api/sw/register を叩けない問題を、モロヘイヤ側 (#4254) に新設した /mulukhiya/api/sw/register プロキシ経由で解決。モロヘイヤ v5.19.1 以降を入れた自前サーバー(ダイスキー等)で動作

改善

  • 通知ラベルの個別化 — アカウントごとの reblog ラベル(ブースト / リノート / リキュア!等)と投稿ラベルを shared_preferences (Android) / App Group UserDefaults (iOS) に焼いて、バックグラウンド isolate / NSE からも参照
  • iOS Keychain Access Group の共有を新設。復号鍵を Runner と NSE で安全に共有 (group.jp.co.b-shock.capsicum)

不具合修正(リリース前レビューで検出)

  • R-B NotificationLabelCache の書き込みを await 化。登録直後に届く最初のプッシュで「リノート」「リキュア!」等のラベルが既定値「ブースト」に化けるレースを解消
  • R-C PushKeyStore の鍵セット (p256dh / auth / privateKey) を 1 JSON blob に統合してアトミック化。書き換え中の読み出しで新旧混成ロードが起きる silent 復号失敗の race を解消

既知の不具合

  • #365 モロヘイヤが v5.19.0 より古い Misskey サーバーでは push 登録が 404 で「登録失敗」表示になる(他アカウントには伝播しない graceful degradation は確認済み。v1.21 で notSupported に寄せる予定)
  • #366 バックグラウンド isolate / NSE の復号失敗が Sentry で観測できない(v1.21 で観測パスを追加予定)
  • #335 iPhone: 画像添付後にカーソルが消失しキーボードだけ開く
  • #276 ログイン画面から遷移しない場合がある
  • #202 / #203 Android ネイティブクラッシュ (SIGABRT) / StateError (Sentry 観測中)
  • #94 投稿作成フォームのテキスト選択メニューが英語・範囲選択不可(Flutter 側対応待ち)
  • #54 ATOK で日本語入力が二重になる(Flutter 側対応待ち)