daily-log
2026年2月22日の開発日記
朝6時半にターミナルを開いて、前日作った独立型ダッシュボードを丸ごと削除するところから始まった。そこから決済システムの4フェーズ実装、認証・DB周りの連鎖的な修正、プロジェクトタイムラインの新規構築と、3つの大きな作業を並行して進めた1日だった。
今日やったこと
1. eurekapu-nuxt4: 1ドメイン統合とStripe決済4フェーズ実装
独立型ダッシュボード(サブドメイン分離)を廃止し、/admin ルートに統合する方針に転換。その上で、購入管理テーブル → アクセス制御ミドルウェア → 管理画面UI → Stripe Checkout+Webhookの4フェーズを1日で実装した。
主な成果:
- 購入管理テーブル(user_purchase, subscription)のマイグレーション作成
- admin-guard / purchase-gate ミドルウェア実装
- 管理画面(ユーザー一覧・統計・回答詳細)を /admin 配下に構築
- Stripe Checkout + Webhook による決済フロー実装
- Codex(GPT-5.3)によるプランレビュー → 指摘反映のワークフロー確立
- コンセプトディレクトリ整理・SVG図解追加
- 動画ホスティング調査(R2自己ホスト + HLS+AES-128暗号化方針を決定)
2. eurekapu-nuxt4: 認証・DB運用・デプロイ整備
決済実装と並行して、SSRクッキー転送、D1マイグレーション管理、画像配信、Google OAuth、テスト基盤と、次から次へ現れる問題を潰し続けた。
主な成果:
- SSRでのクッキー転送問題を修正(fetchAccessInfoでheaders引き回し)
- Better Authメール+パスワード認証を開発環境限定で追加
- D1マイグレーション0003〜0005を作成・ローカル/リモート適用
- 外部キーON DELETE CASCADE統一、リモートのpasswordカラム削除
_routes.jsonの100ルール上限対策(ワイルドカード化で画像404解消)- Google OAuth redirect_uri_mismatch修正
- テストカバレッジ向上(55→78テスト)、CI E2Eテスト修正
3. mdx-playground: プロジェクトタイムラインビューアの構築
「どのプロジェクトに何日使ったか」を俯瞰するガントチャート風ビューアを /project-timeline に新規作成。日次・週次・月次の3ビューモードをタブで切り替えられる。
主な成果:
- 横軸=プロジェクト × 縦軸=日付のテーブルレイアウト
- 日次/週次/月次の3ビューモード実装
- stickyヘッダー・stickyプロジェクト列対応
- ブログindex.vueに「タイムライン」ボタン追加
- frontmatterの
project_nameで自動集計される仕組み
今日の学び
- SQLiteの
ALTER TABLEでFK変更するにはテーブル再作成が必要。PRAGMA foreign_keys=OFFを忘れるとFOREIGN KEY constraint failedで即死する - Cloudflare Pages の
_routes.jsonには100エントリ上限がある。画像191枚を個別登録すると半分が漏れて404になる。ワイルドカード(/images/*)で解決 - SSRでの
$fetchはブラウザのクッキーを自動送信しない。useRequestHeadersでヘッダーを手動で引き回す必要がある - Codexレビューをプランモードに組み込むワークフローが定着した。ISO週境界の不整合やFK方針の漏れなど、人間が見落とすポイントを拾ってくれる
- NuxtのリセットCSSが
<table>のdisplayをblockに変えるため、position: stickyが効かなくなる
明日やること
- eurekapu-nuxt4: Stripe本番環境の銀行口座登録
- eurekapu-nuxt4: 管理画面のユーザー詳細・回答分析機能の拡充
- eurekapu-nuxt4: 動画アップロード機能の設計着手
- mdx-playground: タイムラインビューアのフィルタリング機能検討