# Posimai — 現在の状態 > このファイルはセッション末に AI が更新する。「今何をしている最中か」を引き継ぐ唯一の場所。 ## 作業中 - 特になし ## 次にやること(優先順) 1. **Eiji に Stripe sandbox テストをお願いする**(購入フロー確認) 2. **どのアプリに premium 機能を実装するか決める**(未決定・最重要) 3. 特商法ページ記入(mai 作業 — 事業者名・住所・電話番号) 4. Store デザイン確定(Eiji と A/B/C/D から選定) 5. Stripe 本番モード切り替え(上記完了後) 6. 各アプリへの `purchased` フラグ実装(対象決定後・1アプリ30分) ## ブロック中 | ブロック | 待ち先 | |---------|--------| | Stripe sandbox テスト結果 | Eiji | | premium 実装対象決定 | mai + Eiji の判断 | | Store デザイン確定 | Eiji | | Stripe 本番切り替え | Store 確定・特商法記入 | ## 保留中(着手条件あり) | タスク | 条件 | 理由 | |--------|------|------| | server.js リファクタリング(lib/ + routes/ 分割) | 3500行超 or 新ルート追加時 | 現在 ~3130行、本番稼働中・障害なし | | habit/pulse → VPS API 移行 | premium 対象決定後 | テーブルは VPS 存在済み。localStorage データの移行 UX 設計が必要 | | user_activity テーブル追加 | mai 確認必要(DB スキーマ変更) | Digest 週次集計の前提。CLAUDE.md 要確認事項 | | Redis 移行(webauthnChallenges) | スケール要件が出てから | 現状インメモリで問題なし | ## 直近でやったこと(2026-04-11 セッション3) ### セキュリティ修正・コード品質改善(批判的コードレビュー対応) - **Together API メンバー検証**: `/together/share` `/together/react` `/together/comments` に `together_members` テーブルでのグループ参加確認を追加。非メンバー投稿を 403 で拒否 → VPS デプロイ済み - **manifest.json id 統一**: lens / diff / habit / pulse の `"id"` を `"posimai-xxx"` → `"/posimai-xxx/"` 形式に修正(new-app-guide.md 仕様通り)→ 各アプリデプロイ済み - **feed XSS 修正**: `onclick="openInReader('${article.url}', ...)"` の URL 直接埋め込みを `data-url` 属性 + イベント委任に変更 → デプロイ済み - **PostgreSQL MCP**: 前セッションで完了(SSH トンネル設定・start-postgres-mcp.sh 作成)。Claude Code 再起動で有効化される ### 残る既知の課題 - **Together 完全な認証**: member チェックはあるが member-to-member なりすましは防げない(JWT 導入まで) - **9アプリ base.css 未移行**: feed/maps/hotels/reader/journal/daily/events/timer/store(カスタムテーマ以外) ## 直近でやったこと(2026-04-11 セッション2) ### posimai-ui 移行バッチ(CSS 重複削除・base.css 統一) - **posimai-lens**: 完全移行(768行 → 632行)+ デプロイ済み - **posimai-diff**: 完全移行(807行 → 705行)+ デプロイ済み - **posimai-clean**: 最小移行(data-app-id + base.css 追加、JWT handoff は既存実装あり)+ デプロイ済み - **posimai-think**: 最小移行(data-app-id + base.css + CSP style-src 更新)+ デプロイ済み - **posimai-digest**: 完全移行(1602行 → 1113行)+ JWT handoff 追加 + デプロイ済み - **posimai-pulse / posimai-habit**: 前セッションで移行・デプロイ済みを確認 - **posimai-ui/base.css**: サイドバーレイアウトパターン追加済み(前セッション) - **_template-minimal / create-app.sh**: 前セッションで最新化済み ### PostgreSQL MCP 設定 - [docs/postgresql-mcp-setup.md](docs/postgresql-mcp-setup.md): セットアップガイド作成(SSH トンネル・read-only user・セキュリティ要件) - [.mcp.json](.mcp.json): MCP 設定テンプレート作成(`.gitignore` に追加済み) - **次のアクション**: VPS に `posimai_readonly` ユーザー作成 → パスワードを `.mcp.json` に設定 → SSH トンネル起動 ### 移行スキップ(意図的) - **brain / atlas / analytics / dev**: カスタムテーマ(navy/violet 等)のため移行しない - **clean / think**: CSS が複雑混在のため最小移行のみ(重複 CSS は残存するが機能的に問題なし) ## 直近でやったこと(2026-04-11 セッション1) - **全アプリ認証統一**: `posimai_token`(JWT)を優先、`pk_` キーをフォールバックに変更(Brief / Daily / Journal / Ambient) - **Brief**: API キー手入力欄を廃止 → ログインボタン UI に変更 - **Daily**: 設定の API キー欄を撤去 → ログインボタン UI に変更 - **Journal**: Auth Gate を「ログインする」ボタンに変更(JWT で自動通過) - **Ambient**: `posimai_token` を優先認証に対応 - **Habit / Pulse**: ログイン先を `posimai.soar-enrich.com/login` に修正(旧 `posimai-dashboard.vercel.app` から) - **server.js**: 購入チェック失敗時のストア URL を `store.posimai.soar-enrich.com` に統一(旧 `posimai-store.vercel.app`) - **VPS デプロイ**: scp + docker compose restart で反映済み - **Together**: 本番運用中のため変更なし(設計通りの独自 user/group 方式) - **Brief feed API**: CORS で Authorization ヘッダーを許可・POST 失敗時の GET フォールバック追加 ## 直近でやったこと(2026-04-10) - **Brain 記事保存ラグ解消**: POST /save を即時 INSERT + setImmediate() 非同期 AI 処理に変更 - **Brain 楽観的 UI**: addArticleFromCommand() に temp article 即時表示を実装 - **Brain AI pending UX**: 「AI分析中...」テキスト削除・sparkles アイコン点滅のみに変更 - **SW キャッシュ**: Brain sw.js を v27 に更新 - **server.js セキュリティ修正 7件**: SSRF ガード(isSsrfSafe)・サイズ上限・pool 設定改善 - **Together Supabase 撤退(2026-04-06)**: VPS PostgreSQL に完全移行(61件投稿) - **セキュリティ修正 4件(2026-04-06)**: e.message 直返し撤廃・WebSocket 認証・SSRF・Feed 認証 - **全体最適化(2026-04-10)**: skipWaiting 追加(4アプリ)・SW 登録追加(2アプリ)・brain ハードコード色修正 - **ドキュメント最新化**: server-refactor-plan.md マージ・atlas.json Supabase 削除/Gemini 追加・projects.json 更新・timeline 追記 ## コードの「正」はどこか | 何 | 正 | 役割 | |----|-----|------| | コード | **GitHub** | Vercel がここを参照。確認はここ | | フロント本番 | **Vercel** | GitHub push で自動デプロイ | | バックエンド本番 | **VPS** | `bash deploy-server.sh` で更新 | | Gitea | バックアップのみ | push するだけ・確認先にしない |