Posimai — 現在の状態
このファイルはセッション末に AI が更新する。「今何をしている最中か」を引き継ぐ唯一の場所。
作業中
次にやること(優先順)
Guard / Tauri
- Timer → Pulse 連携(セッションログ) — タイマー終了時にセッション記録モーダル。
posimai-timer-sessions に保存
- Tauri アプリ動作確認 — デスクトップショートカットから起動、CodeViewer が WebView でも動くか確認
- Diff → 履歴保存 + Journal 送信 — 比較結果をlocalStorage保存・Journal連携
Guard 完成状態(2026-04-14)
- ルールエンジン(133ルール)✓
- 静的修正テンプレート(85ルール)✓
- VS Code で開く ✓
- CLI(
npx tsx cli/guard.ts)✓
- VS Code 拡張(APIキー不要)✓
Guard ビルド方法メモ(次回再ビルド時)
cd /c/Users/maita/posimai-project/posimai-guard-app
export PATH="$PATH:/c/Program Files (x86)/Microsoft Visual Studio/2022/BuildTools/VC/Tools/MSVC/14.44.35207/bin/Hostx64/x64:/c/Program Files (x86)/Windows Kits/10/bin/10.0.26100.0/x64"
export LIB="C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\lib\x64;..."
export INCLUDE="..."
node_modules/.bin/tauri build
# → target/release/bundle/nsis/Posimai Guard_0.1.0_x64-setup.exe
# → target/release/bundle/msi/Posimai Guard_0.1.0_x64_en-US.msi
ビジネス化
- Eiji に Stripe sandbox テストをお願いする(購入フロー確認)
- 日本酒アプリを完成させて展開(mai 最優先)
- 特商法ページ記入(mai 作業 — 事業者名・住所・電話番号)
- Store デザイン確定(Eiji と A/B/C/D から選定)
- Stripe 本番モード切り替え(上記完了後)
ブロック中
| ブロック |
待ち先 |
| 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-14 セッション2)
ponshu / Guard 拡張 / Guard VS Code修正
- ponshu_room_lite 消費者APK: 最新コミット(04-12 13:23)でリビルド完了 →
build/apk_releases/2026-04-14_22-54-28/ に maita・Eiji 向け各 90MB
- posimai-guard-ext: ルールエンジン組み込み完了。APIキー不要でスキャン可能に。Gemini/Claude はオプション追加スキャンに降格。バンドル 120KB(ルールエンジン込み)
- Guard「VS Code で開く」修正:
window.open(uri, '_self') → window.location.href = uri に変更。popup ブロッカーによる無効化を解消
- デプロイ済み(Vercel 自動デプロイ中)
直近でやったこと(2026-04-14)
Guard 静的修正テンプレート + セキュリティ修正
- ruleEngine.ts:
RULE_FIXES マップを追加。85ルール以上に静的修正テンプレートを設定。makeIssue() が RULE_FIXES[rule.id] ?? null を返すよう変更
- CodeViewer.tsx
InlineFix: issue.fix があれば即表示(API 呼び出しなし)。紫色の TEMPLATE ラベル + コピーボタン。「AI生成に切替」ボタンで従来の詳細 BEFORE/AFTER 生成も可能
/api/fetch-url: レートリミット未設定だったため追加(10 req/min per IP)
clientIp.ts: x-forwarded-for の最後のエントリを使うよう変更(スプーフィング耐性向上)。IP 形式検証追加
- デプロイ済み(Vercel 自動デプロイ中)
直近でやったこと(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: セットアップガイド作成(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_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 するだけ・確認先にしない |