Repository navigation
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
pitekusu
added a commit
that referenced
this pull request
Oct 3, 2026
## 変更内容 新しい議論がWebのArchiveへ掲載された後、通知を許可した認証済みAndroid端末へ通知します。対象は閲覧可能な全利用者の新しい議論です。Discord COMPLETEを別の起点にはせず、二重通知を避けます。 通知の見出しは「議論結果が投稿されました」、本文には依頼者のDiscordディスプレイネームと記録を開く案内を表示します。議題・回答・Discord IDはFCMへ送りません。名前はUnicode・改行・制御文字を検証し、ログには残しません。 - モバイルBearer専用の端末登録/解除APIと、セッション・bindingへの束縛を追加。 - Archiveと通知outboxを同一transactionで保存し、専用FIFO SQS・Lambdaと1分sweepで配送を分離。 - 過去取込・再投影・古い通知・失効した端末を除外。有限再試行、途中再開、結果不明時の無制限再送防止を実装。 - Firebaseの現行FID APIと公式SDKを利用。通知の初期設定ON・メニューのON/OFF制御・標準通知許可、通知タップから記録へ接続。 - ログアウト・アカウント切替・認可喪失時は、API通信より先に端末通知を抑止。 - サービス状態画面へ通知Lambda・専用キュー・回収ルールを追加。Obsidian正本とdocsを同期。 ## 検証 - Records全851試験(DynamoDB Local含む)、追加・変更部分の関連試験、Ruff/Ty。 - 名前の制御文字除去後にNFCを再正規化する境界試験を追加。 - Androidの通知・メニュー・認証・同期の関連38試験、Debug APK、検証専用署名によるRelease APK/AAB、Lint。 - リポジトリ外の架空Firebase設定でDebug/Releaseの公式リソース生成、リポジトリ内入力の拒否。 - CDKの限定IAM・専用キュー・既存Stateful維持、TypeScriptと対象stackのsynth。 - RecordsのARM64 Lambda bundleでFirebase SDK/通知handlerのimport、runtime依存のpip-audit。 - Web状態画面の関連10試験、check/build、Playwrightのdesktop/mobile対象2試験。2つのproject非対象skipは成功件数へ含めません。 - 文書・mirror・公開情報・差分検査。 ## 残る設定・受入 Firebaseプロジェクトは未作成です。設定なしのAndroid版は「通知設定の準備中」と表示します。 実Firebase送信、実機での前景/背景/終了中の通知とタップ確認、AWS本番有効化、Play配布は未実施です。Play用の認証やupload keyは使っていません。Firebase設定を接続してから別途受入します。 既存の審査専用導線の未コミット文書は今回の差分へ含めていません。 ## CIで見つかった事項 通知APIのfactory試験が開発環境のAWS region設定に依存していたため、boto3.resourceもfakeへ置き換えました。AWSのregion・profile・設定ファイルなしで関連43試験が成功しています。本番のregionや例外処理は変更していません。 CDK内包のbrace-expansionの3件は、公式修正版が未公開のため所有者が期限付きリスク受容を明示承認しました。ID・package・各advisory severityが一致する3件だけを既存allowlistへ登録し、期限切れ・未知ID等の拒否は維持します。package.json/package-lock.json・checker・workflowは変更せず、脆弱性自体は残存として扱います。 Records Webは、別の依存対応 #497 で確認したfast-uri 3.1.8への最小更新を独立コミットとして取り込みました。既存overrideとlockfileの2ファイルのみを変更し、Webの脆弱性はリスク受容へ含めません。 ## レビュー対応 - SDKのonRegisteredコールバックはKEEPでunique Workを維持し、実行中の登録処理を自らキャンセルしないよう修正。ユーザーの明示操作にはREPLACEを維持し、実行中callbackの回帰試験を追加。 - Firebaseプロジェクト・認証済みFID/bindingで配送先を限定し、同じプロジェクトの開発版.devを拒否する本番限定のパッケージ制限を除去。送信先Firebase app、FID・data-only・high-priorityを試験。 - 議論結果チャンネル単独のOS拒否も判定し、登録・受信を抑止してOS設定へ案内。未作成チャンネルは初回拒否と扱わず、OS状態を変更しない境界試験を追加。 ## 追加仕様 通知は初期ON、メニューからON/OFFを変更できます。Firebase設定と有効なセッションが揃った初回にOS通知許可を要求し、拒否後に起動・復帰ごと再要求しません。明示OFFを再起動・復帰の自動登録でONへ変更しません。最新差分で通知関連11試験と関連認証23試験が成功し、Debug APK/test APK、Release Kotlinコンパイル、Lintも成功しています。OS設定からの復帰では、必要な登録を実行中処理の後へ予約して解除との競合を防ぎます。 ## 最終確認(9778d05) - 最新コミットのAndroid CI、Records Python/契約/IaC、CodeQL、文書・公開情報検査は成功しました。 - 採用した3件のレビュー指摘は修正・返信・解決済みで、最新コードレビュー完了後の未解決threadはありません。 - 必須CI全体は既存のCDK brace-expansion/Web fast-uriの脆弱性監査で失敗しています。実Firebase配送・本番有効化・マージ・Play配布は未実施です。 ## 期限付き受容とCI修正(49d8a57) 2026-10-03、所有者が以下の3件だけの期限付き受容を明示承認しました。 - GHSA-q2hr-2g5m-vwhr:brace-expansion / moderate - GHSA-qhr7-859c-m2p7:brace-expansion / high - GHSA-6j4f-fj2g-mc7p:brace-expansion / high 期限は2026-10-10 00:00 UTC(日本時間09:00)。自動延長はせず、公式CDK修正版を確認・導入したら削除します。現行検出箇所はCDK内包の開発・CI依存ですが、既存allowlistはID/package/severity単位でありpath限定機能ではありません。根拠と残るDoSリスク、削除条件を正本文書とdocsへ記載しました。 関連18試験、Ruff、文書・mirror・公開情報・差分検査が成功。実監査の3件混在を許可し、未知ID・severity変更・期限当日を拒否する境界を確認しました。例外の追加に合わせ、clean-report単体試験は空allowlistを明示するよう分離しています。監査成功を「脆弱性0件」「修復済み」とは扱いません。最新SHA(49d8a57)の必須CI・CodeQL・Records CI・Android画面試験はすべて成功しました。マージ・本番変更・Play配布は行っていません。 ### マージ・内部テスト配布の準備 bc2dcecで追加レビュー2件(Retry-After待機のみの実行上限消費、warm Lambdaの送信資格情報更新)を修正しました。架空入力の関連試験・実SDK App試験・DynamoDB Local統合試験、Ruff/Ty、文書・公開情報確認が成功しています。edb035fで試験fixtureのメール形式を除去しました。最新コミットの必須CIは確認中です。 Playの現行最大versionCodeは25、次の内部テストは26として準備中です。Firebaseは未設定のため、今回の配布では通知は準備中で未有効です。実配送とAWS本番への配信は今回のAndroid内部テスト配布と区別します。 --------- Co-authored-by: pitekusu <12059348+pitekusu@users.noreply.github.com>
Owner
Author
|
#496で同じfast-uri修正がmainへ取り込まれており、対象のpnpm-workspace.yamlとpnpm-lock.yamlがmainと完全に一致することを確認しました。このPRは重複のためクローズします。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
変更内容
既存の
fast-urioverrideを3.1.6から3.1.8へ更新し、採用済みpnpmでlockfileを再生成しました。差分は2ファイルのみです。AJV・Vite+・Vitest・公開API・生成済みvalidatorは変更していません。原因と影響
#496 の Records Web CI は、AJV経由の依存へ古いoverrideが適用され、
GHSA-qw65-cvwx-89v3・GHSA-58mr-gqgx-xq4g・GHSA-hrr3-gc8f-f4qjの3件を監査で検出して失敗していました。同major内の公式修正版へ更新し、監査ゲートや例外設定は変更しません。CDK同梱の
brace-expansionの監査失敗は別件です。調査時の公式最新CDK配布物にも脆弱版が残り、上流修正 aws/aws-cdk#38929 は未マージのため、このPRで解決したとは扱いません。検証
corepack pnpm install --frozen-lockfile(pnpm 11.25.0)contracts:check/check/build成功pnpm audit --audit-level=low --json:脆弱性0件git diff --check成功ローカル試験は最初に一時領域の容量制限で起動できず、空きのある一時領域に切り替えて再実行しました。CIの変更範囲判定はRecords Webのみです。通知実装、未コミットの設計メモ、配布や本番変更は含みません。