Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (8)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe PR adds Japanese SignalArm site content, a Markdown-to-HTML build package, output validation tests, and a GitHub Actions workflow that deploys validated builds to Cloudflare Pages. ChangesSignalArm static site
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant BuildJob
participant DeployJob
participant CloudflarePages
GitHubActions->>BuildJob: Install dependencies, build site, run tests
BuildJob-->>DeployJob: Build and tests succeed
DeployJob->>CloudflarePages: Deploy tmp/site with Wrangler
Merge Risk: ⚪ Minimal · up to The static site build, validation, and deployment path have no identified merge-blocking risks. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. A rabbit checks each page at night Comment |
Cloudflare Registrar で購入した signalarm.app を Cloudflare Pages の プロジェクト signalarm に接続し (API で custom domain と CNAME を作成)、 外部サービス向け API の公開ホスト api.signalarm.app を Cloudflare Worker (scripts/api-proxy/) で Functions の alarmsApi へ中継する方式に決めた (documents/adr/0006)。Cloud Run のドメインマッピングは Preview で Google アカウントのドメイン所有確認 (ブラウザ操作) が要り、Firebase Hosting は 別の deploy と証明書待ちが増えるため採らなかった。 - docs/ と アプリ内の連携レシピの api.alarmify.app プレースホルダーと Functions の URL 直書きを api.signalarm.app に置き換える - LP の canonical / OGP / JSON-LD、法務リンク、レシピのドキュメント URL、 fastlane metadata の support_url / privacy_url を signalarm.app にする - GitHub Pages を停止する前提で Jekyll 設定 docs/_config.yml を削除する - api-proxy-deploy.yml を追加し、main への変更で Worker を配信する Refs #56
概要
Refs #56
LP を Cloudflare Pages へ移して刷新し、購入した
signalarm.appを接続しました。LP・API リファレンス・連携レシピ・法務文書は https://signalarm.app/ で配信中です。外部サービス向け API の公開ホストはapi.signalarm.appとし、Cloudflare Worker で Functions のalarmsApiへ中継する方式を ADR 0006 に記録しました。Issue が挙げた Cloud Run のドメインマッピング・Firebase Hosting の rewrite ではなく第 3 の方式を選んでいます (理由は ADR)。「main へのマージで Pages が自動配信される workflow が 1 回成功している」と旧 GitHub Pages の停止はマージ後にしか満たせないため、
ClosesではなくRefsにしています。マージ後に agent が配信結果と GitHub Pages の停止を確認して #56 を閉じます。変更点
tmp/siteだけを配信します。旧 GitHub Pages 用の Jekyll 設定docs/_config.ymlは削除しました。cloudflare-pagesの Secrets で Pages に配信する workflow を追加しました。api.signalarm.appの Cloudflare Worker (scripts/api-proxy/) を追加しました。パス・メソッド・ヘッダー・ボディを変えずにalarmsApiの Cloud Run URL へ転送するだけで、認証・レート制限は Functions 側のままです。main への変更でwrangler deployする workflowapi-proxy-deploy.ymlも追加しています。api.alarmify.appのプレースホルダーと Functions の URL 直書き (docs/ の API リファレンス・6 レシピ・LP の curl) をapi.signalarm.appに置き換え、アプリのAlarmifyBackend.alarmsAPIBaseURLの production も同じホストにしました (連携レシピ画面の表示が docs/ と揃います。emulator は従来どおり)。support_url/privacy_urlをbannzai.github.io/Alarmify/からhttps://signalarm.app/(法務文書は拡張子なし URL) に差し替えました。documents/PROJECT.mdと AGENTS.md に公開ドメインと配信経路を記載しました。Cloudflare 側の変更 (API で実施済み)
signalarmに custom domainsignalarm.appを追加し、zone に CNAMEsignalarm.app → signalarm.pages.dev(proxied) を作成。custom domain はactivesignalarm-apiをapi.signalarm.appの custom domain に配信済み (agent のwrangler deployは Claude Code の auto mode 判定で拒否されたため、bannzai がやる作業の一覧 (Secrets・Apple/ASC の Web UI 操作・実機検証・デザイン受領) #25 の依頼を受けて bannzai が実行)。POST https://api.signalarm.app/v1/alarmsとDELETE /v1/alarms/{id}が未認証で 401 を返し、応答ボディは Cloud Run の直接 URL と一致検証
npm run build --prefix scripts/siteとnpm test --prefix scripts/site: 成功、リンク・アセット・アンカーと Markdown 変換の 2 テストが合格npm test --prefix scripts/api-proxy: 成功、Worker の転送 (URL 差し替え・メソッド・ヘッダー・ボディ保持) の 2 テストが合格bash ~/.agents/skills/landing-page-builder/scripts/verify-lp.sh --app-store-support --has-account docs/index.html: 成功make build-ios: BUILD SUCCEEDED (コンパイラの warning / error なし)。make test: TEST SUCCEEDED、71 テスト・失敗 0・skip 3 (StoreKit Testing が iOS 26.5 simulator で動かないための既知の skip)/api、/PrivacyPolicy-ja、/recipes/home-assistantが HTTP 200、存在しない URL は 404。配信中の LP に pages.dev・cloudfunctions.net の記述が残っていないことを確認wrangler pages deploy tmp/site --project-name signalarm --branch main --commit-dirty=trueで最新の生成物を配信済み (この PR の内容が https://signalarm.app/ に反映されています)grep -rn api.alarmify.appがリポジトリ内で 0 件デスクトップ表示
デスクトップ表示
モバイル表示
モバイル表示
未達の完了条件
マージ後にしか確認できない項目です。マージ後に agent が確認して #56 を閉じます。
gh api -X DELETE repos/bannzai/Alarmify/pages)。インストール済みの TestFlight ビルドが旧 URL を参照するため、新ドメインでの配信を確認してから止めますCodex ローカルレビュー
npm run build/npm test(site・api-proxy)・make build-ios・make test・Pages への配信と https://signalarm.app/ の表示を確認済み。Worker の配信だけは未実施 (本文「Cloudflare 側の変更」)tmp/codex-review/review-20260912-200717.md、全文ログtmp/codex-review/review-20260912-200717.log人間が確認
なし
セッション再開
cd /Users/bannzai/worktrees/bannzai/Alarmify/issue-56 claude --resume 1ae43067-7549-4c00-ae44-552f2467edca概要
日本語のランディングページを刷新しました。WebhookからiPhoneのAlarmKitアラームを発火する手順と、オンコール、Home Assistant、cron向けの連携例を掲載しました。
主な変更
docs/index.htmlを日本語化curl実行までの導線を追加tmp/siteのみを配信対象に設定.gitignoreに追加documents/PROJECT.mdに記載配信
mainへのマージ時に、GitHub ActionsからCloudflare Pagesへサイトを配信します。プルリクエストではサイト生成と検査のみを実行します。