posimai-root/STATUS.md

6.8 KiB
Raw Blame History

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/commentstogether_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: セットアップガイド作成SSH トンネル・read-only user・セキュリティ要件
  • .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_tokenJWTを優先、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 するだけ・確認先にしない