Skip to content

Merge: env/dev -> env/prod (無限参拝に見える表示の修正・登録失敗の可視化・PWA起動) - #218

Merged
ShinoharaTa merged 16 commits into
env/prodfrom
env/dev
Jul 25, 2026
Merged

Merge: env/dev -> env/prod (無限参拝に見える表示の修正・登録失敗の可視化・PWA起動)#218
ShinoharaTa merged 16 commits into
env/prodfrom
env/dev

Conversation

ShinoharaTa and others added 16 commits July 24, 2026 15:24
無言で failed parameter(200)を返すと、Authにアカウントだけでき
users ドキュメントが無い詰み状態の原因調査ができない。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
これまで fire-and-forget でレスポンスを見ておらず、登録に失敗しても
ログイン状態になり以後すべてのAPIが not registered を返す詰み状態に
陥っていた。success/registered/updated 以外はサインアウトして
エラーメッセージを表示し、やり直せるようにする。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
failed や未知のステータスに表示分岐が無く真っ白になっていた。
登録し直しの案内とトップへの導線を表示し、共有UIは正常系
(success/expire/noaction)のときだけ出す。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
- エミュレーターの偽GitHubサインインは screenName / photoURL を返さず、
  登録が構造的に failed parameter になっていた。ローカル検証用の
  フォールバックを追加(実GitHubでは常に値が入るため本番挙動は不変)
- auth エミュレーターの接続ポートを FIREBASE_AUTH_EMULATOR_PORT で
  上書き可能に(9099が他プロジェクトに使われている環境向け)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
standalone 表示はOSが最後のURLでアプリを復元することがあり、start_url("/")
ではなくおみくじ・参拝画面から始まってしまう。セッション初回(=起動直後)
かつ standalone のときだけ、途中画面ならトップへ戻すプラグインを追加。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
PWA起動時に前回の途中画面が復元されるのを防ぐ (#197)
登録失敗の無言化と「not registered」詰み状態を修正 (#205)
トータルに加えて暦週・暦月(JST、週は月曜始まり)のランキングを出す。

- ぽいんと: sanpai_logs をコレクショングループで横断し add_point を期間合計。
  ログは2021年から残っているので遡って正確な値が出る
- せんとうりょく: 現在値しか保存が無く過去を復元できないため、期間開始時点の
  スナップショット(cache_data/battle_baseline)との差分=伸び幅でランキング。
  基準値の無い新規ユーザーは現在値で初期化して差分0にし、現在値まるごとで
  1位になる事故を防ぐ
- 実行は rankingUpdateGo に相乗り(usersの追加スキャンなし)。せんとうりょくは
  毎時、ぽいんとの横断読み取りは3時間ごとに間引く(JST0時は集計回なので
  週明け・月初は待たずに反映)。期間集計が失敗してもトータルの更新は続行する
- キャッシュは上位100件(表示情報つき)+全員分の軽量順位リストの2本立てにし、
  ドキュメントの1MiB上限を圧迫しないようにする
- sanpai_logs.timestamp にコレクショングループスコープのインデックスを追加
- Ranking.vue に指標×期間の2段セグメント。初期表示は週間×せんとうりょくで、
  記録が溜まるまではトータルにフォールバックして注記を出す。トップページは
  タブを出さず週間のみ


Claude-Session: https://claude.ai/code/session_01DwkB6Hj2JggoKcy7FoxNcU

Co-authored-by: Claude <noreply@anthropic.com>
「まだ週間の記録が溜まっていないため、トータルを表示しています」が
グレーの小さい文字で気付かれなかった。選択中のタブと表示内容が違う
ことを伝える重要な注記なので、赤字+同色ボーダー+薄い面+警告アイコンで
囲って目立たせる。

色は color.css に --color-danger を追加してトークン化し、DESIGN.md にも
「読み飛ばされると困るものは文字色だけでなく面で囲う」として明文化する。


Claude-Session: https://claude.ai/code/session_01DwkB6Hj2JggoKcy7FoxNcU

Co-authored-by: Claude <noreply@anthropic.com>
同じ「うまくいかなかった」の知らせが3通りの見た目に分かれていた:
灰色の補足テキスト(読み込み失敗5箇所)、#ff8080の直書き(保存失敗)、
Bootstrapのalert(白背景でダークテーマから浮く。登録失敗・おみくじ失敗)。

common.css に .notice-danger を用意して全部そこに寄せる。赤字+同色ボーダー
+薄い面+警告アイコンで、読み飛ばされないようにする。再読み込みボタンは
面の外(下)に置いて文とボタンの区別を付ける。

DESIGN.md のComponentsにも部品として明記し、Bootstrapのalertは使わないと
書いておく。


Claude-Session: https://claude.ai/code/session_01DwkB6Hj2JggoKcy7FoxNcU

Co-authored-by: Claude <noreply@anthropic.com>
クールダウン内の再訪で成功演出(カウントアップ・+Nバッジ・レベルアップ
バナー)が毎回フル再生され、無限に参拝できているように見えていた。
実際の付与はサーバーの last_sanpai ガードで1回のみ(表示のみの問題)。

- 復元時は口上を「先ほどの参拝の結果じゃ」に変え、数値は静的表示
- 「次の参拝まで あと◯分◯秒」のカウントダウンを表示
- カウントダウンが0になったら保存結果を破棄し、儀式からやり直せる状態に戻す

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015NjEjZtmCpVdJtCeFumYzG
参拝結果の復元表示を「参拝済み」表示に変更し無限参拝に見える問題を解消 (#215)
Merge: main -> env/dev (無限参拝に見える表示の修正・登録失敗の可視化・PWA起動)
@ShinoharaTa
ShinoharaTa merged commit 2e94741 into env/prod Jul 25, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants