更新履歴
0.4.5 — 2026-09-28
表示速度の計測:紹介ページと予約ページ(/book/店舗)に Vercel Speed Insights を導入(Cookie不使用)。URLの識別子(LINE連携用のパラメータ等)は送信前に除去。予約確認ページ・管理画面では読み込みませんプライバシーポリシー:外部送信に Vercel Speed Insights を追加(送信内容・対象ページ)0.4.4 — 2026-09-28
実機のLINEで「日本のお客様の目線」で確認した結果の修正です。
店舗からのキャンセル通知:長い英数字のURLを本文に出さず「予約し直す」ボタンに。敬語を「キャンセルさせていただきました」「お受けすることができなくなりました」「誠に申し訳ございません」に修正。管理画面のプレビューも実際の表示と一致予約確認メッセージ:「変更・キャンセル」を「キャンセル(日時の変更はキャンセル後に再予約)」に。キャンセル期限(例:24時間前まで)とお店の電話番号を記載キャンセル一覧:期限を過ぎた予約のカードに「キャンセル期限を過ぎています」と表示。注意書きを丁寧な表現にLINEでキャンセルした後の返信に「ご連絡ありがとうございました。またのご予約を心よりお待ちしております。」を追加予約確認ページからキャンセルした場合もLINEに確認メッセージを送信。オーナーへのメールもどこからキャンセルされたかを正しく表示予約完了画面:料金に「(税込)」、完了後はLINE連携の案内を非表示、LINEから来たお客様には「トーク画面に戻る」ボタンLINEの通知・トーク一覧に表示される文字列(altText)にURLを含めないように0.4.3 — 2026-09-28
アクセス解析:紹介ページ(トップ・登録・ログイン・規約・プライバシー・特商法・更新履歴・APIドキュメント)のみ Cloudflare Web Analytics(Cookie不使用)を導入。予約ページ・予約確認ページ・管理画面では読み込みませんプライバシーポリシー:外部送信(Cloudflare Web Analytics)の送信先・送信情報・対象ページを明記。委託先に Cloudflare を追加利用規約・プライバシーポリシーを改定(2026年9月28日):店舗情報の公開API・AI向け形式での提供(予約者の情報は対象外)、Googleカレンダー切断時の受付停止、不正防止のためのIPアドレス(ハッシュ化)、通知メール・リマインドを明記。店舗には次回ログイン時に再同意をお願いします0.4.2 — 2026-09-28
Googleカレンダー:接続が切れた(Google側で取り消し・期限切れ)ことを検知し、オーナーにメールで1回通知。管理画面に赤い案内と「再接続」ボタンを表示。これまでは接続中の表示のまま、お客様側は全日グレーで予約できませんでした予約ページ:カレンダー接続が切れている間は「現在オンライン予約を一時停止しています。お店に直接ご連絡ください(電話番号)」と表示(ダブルブッキング防止のため受付は停止のまま)LINE連携ページ:あいさつメッセージがオンでも予約リンクは届く旨に修正(実機で確認)DB:migration 0014(google_tokens.revoked_at)。本番には 2026-09-28 に適用済み0.4.1 — 2026-09-28
登録・ログイン:送信後の画面に「登録済みのアドレスにはログイン用リンクが届く」旨と、メールが届かない場合の案内(迷惑メールフォルダ、docomo・au・SoftBank の受信設定)、再送信ボタンを追加。ログインメールにも登録済みの場合の説明を追加ログインリンクを2回開いたときの表示を「使用済みか、有効期限が切れています」に(これまでは常に「期限切れ」)お店の情報登録:予約ページURLに全角・大文字・スペースを入力しても自動で変換。ローマ字の店名からURLを提案。エラー時に入力内容を保持。URLが使用済みの場合は変え方の例を表示。日本語の入力例に変更ログイン・お店の情報登録ページに個別のページタイトル。サイト説明と共有画像の「5分で設定」を「10分」に統一0.4.0 — 2026-09-28
AIエージェント向け公開API(読み取り専用):RFC 9727 の API カタログ(/.well-known/api-catalog)、OpenAPI 3.1(/openapi.json)、APIドキュメント(/docs/api)、/auth.md を公開。店舗のメニュー・料金・空き枠を取得できる。予約の確定はAPIでは行わず、お客様を予約ページへ案内する(予約APIは認証がないため公開対象外)トップページの Link ヘッダーに api-catalog と service-doc を追加。/docs/api をサイトマップに追加Markdown版の先頭に出ていた空のリンク(ロゴ)を削除トップページ:小さな注記・フッター・バージョン表記の文字色を濃くし、コントラストをWCAG AA基準に(Lighthouseアクセシビリティ100)。見出しの階層を修正表示速度:等幅フォント(LINE設定画面のみで使用)を全ページで先読みしないように0.3.0 — 2026-09-28
LINE連携:接続と解除が重なった場合などに暗号化済みシークレットが残り、以後その店舗でLINE接続が「保存に失敗しました」になり続ける問題を修正(残ったシークレットは再利用して自動回復)。Google連携も同様予約:数字の入っていない電話番号(例「--------」)で予約できてしまい、電話番号が空で保存される問題を修正。電話番号に誤りがある場合は「電話番号を正しく入力してください(半角数字8桁以上・20文字以内)」と表示(これまでは「予約に失敗しました」のみ)ダッシュボード:トップ(予約)を開くたびに表示の不一致エラー(React #418)が起き、画面を描き直していた問題を修正(14日間グラフの項目名)アクセシビリティ:予約ページで選んだ時間枠と、ダッシュボードで表示中のタブを読み上げソフトが伝えるようにAIエージェント向け:トップページに Link ヘッダー(RFC 8288:sitemap・プライバシーポリシー・利用規約・Markdown版)。公開ページ(トップ・規約・プライバシー・特商法・更新履歴)は Accept: text/markdown で本文を Markdown で返す(ブラウザは従来どおりHTML、/md/ は検索対象外・canonical 付き)テスト:E2E を追加(公開ページ・Webからの予約・ダッシュボードの全タブ)。LINEのテストは準備に失敗した時点で止まるようにDB:migration 0013(set_line_secret / set_google_refresh_token の修正)。本番には 2026-09-28 に適用済み0.2.5 — 2026-09-12
新規登録時の確認メールを日本語・予約Liteデザインに(これまで英語の既定テンプレートでした)。テンプレートは supabase/email-templates/、適用は scripts/apply-email-templates.mjsテスト:LINEアプリ内(LIFF)からの予約フローをE2Eに追加(@line/liff-mock でLINEクライアントを再現、IDトークン検証まで確認)テスト:本番 LINE Messaging API に対する自動テストを追加(テストルームのチャネルでトークン発行・Webhook登録・全メッセージ形式の検証・1通の実送信)。毎晩 GitHub Actions で実行0.2.4 — 2026-09-12
Stripe:決済サービスが一時的に応答しない場合でも課金情報を消さず、エラーを表示して再試行できるように(顧客が本当に存在しない場合のみ作り直す)Stripe:同時に複数回「アップグレード」を押しても顧客・決済セッションが二重に作られない(冪等キー+保存の競合制御)リマインド:送信前に「送信済み」にせず、配信後に記録。処理中に落ちた場合も15分後に再送されるリマインド:毎時実行(Vercel 10時+GitHub Actions 11〜20時。10時〜20時台のみ送信)。当日予約は「本日のご予約」と表示し、前日10時以降に入った予約も当日中にリマインド運用:CI(lint / typecheck / test / build)を追加。GitHub に CRON_SECRET シークレットが必要。バックアップを pg_dump custom 形式に変更し権限(GRANT)も保存。復元リハーサル用スクリプトを追加DB:migration 0012(bookings.reminder_claimed_at)を適用してからデプロイ0.2.3 — 2026-09-12
予約キャンセル後に「キャンセルしました。」を表示(これまで表示前に画面が切り替わっていました)LINEやSNSでリンクを共有したときのプレビュー画像とタイトルを追加。店舗ページは店舗名を表示料金表示を「税込」と明記オーナーへの通知メール(新規予約・キャンセル・LINE送信失敗)が本番環境で送信されない問題を修正運用向け:/api/version が連携状況(メール・Stripe・Google等)を返す(CRON_SECRET必須)0.2.2 — 2026-09-11
Stripe決済:日本の消費税登録を設定し、Proプランの請求に内消費税(10%)を表示Stripeは本番モードのみで動作(テストキーは起動時にエラー)。サンドボックス用の設定を削除robots.txt と sitemap.xml を公開。検索エンジンとAI検索は許可、AI学習用クローラーは拒否(Content-Signal)特定商取引法ページ:適格請求書発行事業者登録番号を掲載0.2.1 — 2026-09-09
ダッシュボード:今日の予定・要確認・予約登録を最上部に、統計は折りたたみ。「今月の来店予定」と「今月の予約受付(上限の計算)」を分離LINEなしのお客様にも予約内容ページ(確認・キャンセル)のリンクを発行手動登録の「営業時間外でも登録」は他の予約・休業・Googleの予定との重複を引き続き防止キャンセル+受付停止を1つのトランザクションで実行。休業データが読めない時は空き枠を出さないリマインドの二重送信防止と失敗時の再送、締切後キャンセルにお店の電話番号を案内週カレンダーにGoogleの予定を表示、終日休業の表示通知メールは実際の送信結果を反映。メニュー保存とStripe決済セッションの重複を防止0.2.0 — 2026-09-09
ダッシュボードに統計:今日・今週・今月、売上見込み、キャンセル率、LINE経由率と通知成功率、新規/リピート、人気メニュー、14日間の推移予約ページ:月カレンダーで日付を選択(空きのある日に●)カレンダー:週表示、電話・店頭予約の手動登録前日リマインド(LINE)、新規予約・キャンセルのメール通知、LINE通知失敗アラートお客様がLINEから予約の確認・キャンセル(締切時間は設定で変更)メニューに説明・カテゴリ・ラベル・オプション(追加料金・追加時間)休業日・受付停止、予約受付の一時停止スイッチキャンセル時のメッセージテンプレートと受付停止の選択利用規約への明示的な同意、新規登録とログインの分離セキュリティ:シークレットの暗号化保存(Vault)、課金項目の保護、予約の二重登録・重複防止の強化信頼性:Googleカレンダー同期の再試行、外部APIのタイムアウト、読み込み失敗時の再読み込み画面0.1.0 — 2026-09-07
初回リリース:LINE予約ページ、Googleカレンダー連携、Stripe課金、管理画面