Repository navigation
v1.20.1
v1.20.0 のプッシュ通知本実装に追従して、運用観測(Sentry / 運用ログ / ユーザー報告)で見えてきた取りこぼしと非対応サーバー検出を追補。
不具合修正
- iOS リリース版で全アカウント定型文表示 (#373) — Keychain Access Group を distribution 署名でも解決できる完全表記 (
<TeamID>.group.…) に変更し、Notification Service Extension が復号鍵を引けるよう修正。aps-environmentを Debug / Release で分離(Debug はdevelopment、Release / Profile はproduction) - 同一秒内に届いた通知が互いを上書きする (#368) — notification ID をミリ秒精度に昇格。秒精度では同時刻に届いた複数通知が同じ ID を持ち上書きされていた
- iOS NSE Foundation.framework 参照が SDK バージョンにハードコード (#369) —
iPhoneOS18.0.sdk直指定からSDKROOT相対参照に修正 - ログアウト時に Misskey proxy 鍵が読めない場合の購読 row 残留 (#370) —
PushKeyStore.readが null を返す場合は Misskey 本家/api/sw/unregisterの endpoint 単体経路にフォールバック
改善
- Misskey push 登録の非対応シグナル (404 / 400) を notSupported に寄せる (#365) — モロヘイヤ v5.19.0 未満のサーバーへの登録 (404) は事前に notSupported 寄せ。Misskey 本家
/api/sw/registerの 4xx 全般を notSupported に拡張し、Misskey フォーク差異を吸収 - FCM transient エラーのリトライ (#374) —
MISSING_INSTANCEID_SERVICE/SERVICE_NOT_AVAILABLEを 2s / 5s / 15s の指数バックオフでリトライ。Play 開発者サービス初期化遅延・ネットワーク瞬断・Google 側一時障害を吸収 - バックグラウンド isolate / iOS NSE の復号失敗を観測可能に (#366) — 復号失敗 / 鍵不在を App Group UserDefaults / SharedPreferences に永続化し、次回 main app 起動時に Sentry へ吸い上げ
リレーサーバ (capsicum-relay v1.20.1)
- Content-Encoding をログ出力 (pooza/capsicum-relay#5) — 各サーバが送る Web Push の暗号化形式 (aes128gcm / 旧 aesgcm) を診断可能に
- APNs socket 切断時の puma プロセスクラッシュ防止 (pooza/capsicum-relay#8) —
Apnotic#on(:error)callback を登録し、socket_loop スレッドの SocketError / EOFError を吸う。次回 push 時に自動再接続 - FCM / APNs ペイロード上限超過の retry storm 抑止 (pooza/capsicum-relay#9) — 4KB 超を
oversizedフラグとして検出し、subscription を unregister せず該当 1 通だけ HTTP 413 でドロップ