2026-04-05 14:25:19 +00:00
|
|
|
|
# Posimai — 現在の状態
|
|
|
|
|
|
|
|
|
|
|
|
> このファイルはセッション末に AI が更新する。「今何をしている最中か」を引き継ぐ唯一の場所。
|
|
|
|
|
|
|
|
|
|
|
|
## 作業中
|
|
|
|
|
|
|
2026-04-13 01:13:22 +00:00
|
|
|
|
- 特になし
|
2026-04-05 14:25:19 +00:00
|
|
|
|
|
2026-04-19 07:49:21 +00:00
|
|
|
|
## mai のPC から実行待ち
|
|
|
|
|
|
|
2026-04-19 16:40:48 +00:00
|
|
|
|
- **posimai-boki** は独立リポジトリで Gitea/GitHub へ push 済み。追加分を出したときは `cd posimai-boki && npm run deploy`
|
2026-04-20 08:10:55 +00:00
|
|
|
|
- **article-keeper フォルダ削除**(エクスプローラーから手動削除): Firebase プロジェクトは削除済み。キーは git 未追跡なので履歴汚染なし。フォルダを消すだけで OK。
|
2026-04-22 00:03:01 +00:00
|
|
|
|
- **contact.html**: Resend API 経由に切り替え済み・送受信テスト完了(2026-04-21)✓
|
|
|
|
|
|
- **Stripe 本番化時**: index.html・index-b.html・index-c.html・index-d.html の 4ファイルにある `test_9B67sEbN3fowfMW4jwenS00` を本番 Payment Link URL に一括差し替え(Cursor 指摘 2026-04-22)
|
2026-04-21 10:40:55 +00:00
|
|
|
|
|
2026-04-22 00:03:01 +00:00
|
|
|
|
## Together legacy path 廃止(2026-04-22 完了)
|
2026-04-21 10:40:55 +00:00
|
|
|
|
|
2026-04-22 00:03:01 +00:00
|
|
|
|
- Docker ログで legacy hit 0件を確認の上、JWT 必須化済み(server.js `togetherEnsureMember`)
|
|
|
|
|
|
- JWT なしリクエストは 401 を返す
|
|
|
|
|
|
- Gemini 2.5-flash 503 フォールバック(→ 2.0-flash)を `archiveShare` + `rearchive` に追加済み
|
2026-04-19 07:49:21 +00:00
|
|
|
|
|
2026-04-05 14:25:19 +00:00
|
|
|
|
## 次にやること(優先順)
|
|
|
|
|
|
|
2026-04-19 07:49:21 +00:00
|
|
|
|
### posimai-boki(P1 — P0 完了+学習フロー強化済み)
|
|
|
|
|
|
1. **P1-1(ほぼ達成)**: 概念は「もっと詳しく」で折りたたみ済み。任意改善: `details/summary` への置き換え・アクセシビリティ微調整
|
|
|
|
|
|
2. **P1-2(一部達成)**: 「3ステップで学ぶ」(用語→仕訳イメージ→理解度)実装済み。残り: **既存 quiz のメタ分類**(難易タグ・出題意図)が必要ならデータ設計
|
|
|
|
|
|
3. **P1-3: 深掘りモーダル** — 比喩・長い補足のモーダル分離(未着手)
|
|
|
|
|
|
4. **技術負債(任意)**: 自動テスト、CSS の `index.html` 外だし、`categories.js` の分割、ビルド導入(ハッシュ付きアセット)
|
|
|
|
|
|
|
|
|
|
|
|
### posimai-boki P0 完了状態(2026-04-19 〜 更新)
|
|
|
|
|
|
- URL ?unit= 同期でリロード後も単元を復元 ✓
|
|
|
|
|
|
- 全 23 単元に examtips(試験対策メモ)✓
|
|
|
|
|
|
- freq/diff(頻出度・難易度)全単元設定 ✓
|
|
|
|
|
|
- ミス追跡(wrongUnits localStorage)✓
|
|
|
|
|
|
- ホームに「今日の学習」ブロック(苦手 + 未学習 を1タップで開始)✓
|
|
|
|
|
|
- サイドバーに苦手インジケーター ✓
|
|
|
|
|
|
- **弱点集中特訓**・**単元内 3 ステップ**・概念折りたたみ・ブロック並び(概念→要点→試験メモ→3ステップ→理解度)✓
|
|
|
|
|
|
- **データとアプリの分離**: `js/data/categories.js` / `drills.js` + `js/app.js` ✓
|
|
|
|
|
|
- **表示 HTML**: DOMPurify + `safeHtml()`、解説の保存時サニタイズ ✓
|
|
|
|
|
|
- **学習フロー UX**: 戻る=1枚前、学習フローを終了(理解度保持)、理解度をクリアして学ぶ、`#comprehension-quiz` へスクロール ✓
|
|
|
|
|
|
|
2026-04-20 13:31:07 +00:00
|
|
|
|
### Guard(方針確定: Web v1のみ・2026-04-20)
|
|
|
|
|
|
**v1 = Web PWA のみ。Tauri・VS Code拡張・CLI はすべて v1 タグ後のロードマップ。**
|
|
|
|
|
|
現行の main ブランチは Web のみを対象とする。Tauri/拡張のブランチは統合しない。
|
|
|
|
|
|
|
|
|
|
|
|
v1 残タスク:
|
|
|
|
|
|
1. **Web v1 完了条件の文書化** — 入力・出力・非機能(タイムアウト・APIキー未設定時)・免責表記を検証可能な形で定義する
|
2026-04-14 14:22:25 +00:00
|
|
|
|
|
|
|
|
|
|
### Guard 完成状態(2026-04-14)
|
|
|
|
|
|
- ルールエンジン(133ルール)✓
|
|
|
|
|
|
- 静的修正テンプレート(85ルール)✓
|
|
|
|
|
|
- VS Code で開く ✓
|
|
|
|
|
|
- CLI(`npx tsx cli/guard.ts`)✓
|
|
|
|
|
|
- VS Code 拡張(APIキー不要)✓
|
2026-04-13 01:13:22 +00:00
|
|
|
|
|
|
|
|
|
|
### Guard ビルド方法メモ(次回再ビルド時)
|
|
|
|
|
|
```bash
|
|
|
|
|
|
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
|
|
|
|
|
|
```
|
2026-04-13 01:10:00 +00:00
|
|
|
|
|
2026-04-18 00:55:54 +00:00
|
|
|
|
### MCP 設定(mai 作業)
|
|
|
|
|
|
1. **Stripe キー確認・ローテーション**
|
|
|
|
|
|
- Stripe ダッシュボード → Developers → Logs で 4/11 の API リクエストを確認(使用元の特定)
|
|
|
|
|
|
- 既存の `sk_test_...` キーをロールオーバー(無効化)
|
|
|
|
|
|
- 新しいテスト用シークレットキーを発行(名前: `posimai-mcp`)
|
|
|
|
|
|
- [.mcp.json](.mcp.json) の `FILL_IN: Stripe ダッシュボードの sk_test_...` を置換
|
|
|
|
|
|
2. **Vercel トークン発行**
|
|
|
|
|
|
- [vercel.com/account/tokens](https://vercel.com/account/tokens) → Create → 名前: `claude-code-mcp`、Scope: Full Account
|
|
|
|
|
|
- [.mcp.json](.mcp.json) の `FILL_IN: vercel.com/account/tokens...` を置換
|
|
|
|
|
|
3. **Claude Code 再起動** → vercel・stripe MCP が有効になる
|
|
|
|
|
|
|
2026-04-13 01:10:00 +00:00
|
|
|
|
### ビジネス化
|
2026-04-11 05:54:28 +00:00
|
|
|
|
1. **Eiji に Stripe sandbox テストをお願いする**(購入フロー確認)
|
2026-04-13 01:10:00 +00:00
|
|
|
|
2. **日本酒アプリを完成させて展開**(mai 最優先)
|
2026-04-11 05:54:28 +00:00
|
|
|
|
3. 特商法ページ記入(mai 作業 — 事業者名・住所・電話番号)
|
|
|
|
|
|
4. Store デザイン確定(Eiji と A/B/C/D から選定)
|
|
|
|
|
|
5. Stripe 本番モード切り替え(上記完了後)
|
2026-04-05 14:25:19 +00:00
|
|
|
|
|
2026-04-18 00:55:54 +00:00
|
|
|
|
## mai 作業待ち(AI では実行できない)
|
|
|
|
|
|
|
|
|
|
|
|
| タスク | 内容 | 優先度 |
|
|
|
|
|
|
|--------|------|--------|
|
2026-04-20 08:10:55 +00:00
|
|
|
|
| **article-keeper フォルダ削除** | Firebase プロジェクト削除済み(mai 完了)。キーは git 未追跡のため履歴汚染なし。エクスプローラーでフォルダ削除するだけ | 低(プロジェクト削除済みでキー無効) |
|
2026-04-18 00:55:54 +00:00
|
|
|
|
| Stripe sandbox テスト | Eiji に購入フロー確認依頼 | 中 |
|
2026-04-20 08:10:55 +00:00
|
|
|
|
| 特商法ページ記入 | tokushoho.html 作成済み。事業者名・住所・電話番号の**内容記入**が残っているか確認が必要 | 中 |
|
2026-04-18 00:55:54 +00:00
|
|
|
|
| Store デザイン確定 | Eiji と A/B/C/D から選定 | 中 |
|
|
|
|
|
|
|
2026-04-05 14:25:19 +00:00
|
|
|
|
## ブロック中
|
|
|
|
|
|
|
|
|
|
|
|
| ブロック | 待ち先 |
|
|
|
|
|
|
|---------|--------|
|
2026-04-11 05:54:28 +00:00
|
|
|
|
| Stripe sandbox テスト結果 | Eiji |
|
2026-04-10 08:11:58 +00:00
|
|
|
|
| premium 実装対象決定 | mai + Eiji の判断 |
|
2026-04-05 14:25:19 +00:00
|
|
|
|
| Store デザイン確定 | Eiji |
|
|
|
|
|
|
| Stripe 本番切り替え | Store 確定・特商法記入 |
|
|
|
|
|
|
|
2026-04-10 08:11:58 +00:00
|
|
|
|
## 保留中(着手条件あり)
|
|
|
|
|
|
|
|
|
|
|
|
| タスク | 条件 | 理由 |
|
|
|
|
|
|
|--------|------|------|
|
|
|
|
|
|
| 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-19 07:49:21 +00:00
|
|
|
|
| **Brain アクセントカラー確定** | mai 判断 | 2026-04-19 に indigo (`#818CF8`) → teal (`#6EE7B7`) へ変更。Posimai 標準に合わせたが、Brain は読書アプリとして indigo の方が雰囲気に合う可能性あり。indigo に戻す場合は `[data-app-id="posimai-brain"] { --accent: #818CF8; --accent-dim: rgba(129,140,248,.12); }` を style.css に追加。 |
|
|
|
|
|
|
|
2026-04-20 14:02:26 +00:00
|
|
|
|
## 直近でやったこと(2026-04-20 — AI キー BYOK 廃止・VPS プロキシ化)
|
|
|
|
|
|
|
|
|
|
|
|
### セキュリティ改善: Gemini BYOK 廃止
|
|
|
|
|
|
- **posimai-digest**: `gemini_api_key` localStorage を撤去。`summarize()` を `POST /brain/api/ai/generate`(JWT 認証)経由に変更
|
|
|
|
|
|
- **posimai-think**: `APP_ID-apikey` localStorage を撤去。`sendMessage()` を VPS プロキシ経由に変更。setup-screen をログインリンクに変更
|
|
|
|
|
|
- **server.js**: `POST /ai/generate` エンドポイント(認証必須・30req/h・60KB 上限・15秒タイムアウト)VPS 反映済み
|
|
|
|
|
|
- **CSP**: think の `connect-src` から `generativelanguage.googleapis.com` を削除
|
|
|
|
|
|
- 両アプリの設定パネルから Gemini API キー入力 UI を撤去
|
|
|
|
|
|
- デプロイ済み(Gitea + GitHub → Vercel 自動デプロイ)
|
|
|
|
|
|
|
2026-04-20 08:11:25 +00:00
|
|
|
|
## 直近でやったこと(2026-04-20 — 全体セキュリティ監査・修正)
|
2026-04-20 08:10:55 +00:00
|
|
|
|
|
2026-04-20 08:11:25 +00:00
|
|
|
|
### セキュリティ監査対応(全件デプロイ済み)
|
|
|
|
|
|
- **P1 Together API 認証強化**: `/together/groups` `/together/join` に JWT 照合追加。JWT 提示時に body の username と不一致なら 403(なりすまし防止)
|
|
|
|
|
|
- **P2 CSP + HSTS**: 全 31 アプリの vercel.json に `Content-Security-Policy` と `Strict-Transport-Security` を追加。デプロイ済み
|
|
|
|
|
|
- **P3 エラー情報露出修正**: TTS エンドポイント 2箇所・プロキシ 1箇所の `e.message`/`e.code` をクライアントレスポンスから除去
|
|
|
|
|
|
- **P4 JWT TTL 短縮**: 30日 → 7日(VPS 反映済み)
|
|
|
|
|
|
- **P5 Stripe Webhook 確認**: 署名検証(HMAC-SHA256 + timingSafeEqual + タイムスタンプ検証)実装済みを確認 ✓
|
|
|
|
|
|
|
|
|
|
|
|
### その他
|
2026-04-20 08:10:55 +00:00
|
|
|
|
- **pc-audit バグ修正 9件**: Sort-Object -Unique / netstat Address:Port 解析 / ConsentPromptBehaviorAdmin 未検出 / スキャンスキップ追跡 / IDE キーワードノイズ / RowsEnrichedSample 統一(40行) / レポート自動削除 / SYNOPSIS 修正 / viewer 行数統一
|
2026-04-20 08:11:25 +00:00
|
|
|
|
- **posimai-dashboard**: posimai-sc 用語インデックス・試験モードを timeline + projects.json に追加
|
2026-04-20 08:10:55 +00:00
|
|
|
|
|
2026-04-19 23:31:16 +00:00
|
|
|
|
## 直近でやったこと(2026-04-20 — posimai-sc 完了)
|
|
|
|
|
|
|
|
|
|
|
|
- **posimai-sc**: drills.js(S01〜S20 各2問)・manifest.json・sw.js・vercel.json・package.json 追加。Vercel プロジェクト接続・カスタムドメイン設定・エコシステム全登録([OK]確認済み)
|
|
|
|
|
|
- **Vercel Root Directory**: Vercel API PATCH で `rootDirectory: "posimai-sc"` に設定完了(2026-04-20)。以後 `git push` のみで本番更新可能
|
|
|
|
|
|
- **残タスク(任意)**: 教材ファクトチェック・logo.png の SC 専用差し替え
|
|
|
|
|
|
|
2026-04-19 07:49:21 +00:00
|
|
|
|
## 直近でやったこと(2026-04-18 — posimai-boki)
|
|
|
|
|
|
|
|
|
|
|
|
- **リポジトリ**: `posimai-boki` 独立リポジトリ(Gitea/GitHub)。`npm run deploy` = 両リモート push → Vercel 自動デプロイ
|
|
|
|
|
|
- **構成**: カリキュラムを `js/data/categories.js` / `drills.js`、Alpine 本体を `js/app.js` に分割。`sw.js` で該当 JS をプリキャッシュ
|
|
|
|
|
|
- **セキュリティ**: DOMPurify(固定版 + SRI)、`x-html` は `safeHtml` 経由、クイズ解説は保存時サニタイズ
|
|
|
|
|
|
- **UX**: 単元ブロック順、Step1 タップ進行、戻る=1枚前、「学習フローを終了」、弱点特訓は「特訓をやめる」、理解度クリアして学ぶ、Step3 から `#comprehension-quiz` へ誘導
|
|
|
|
|
|
- **STATUS**: 本節および「mai のPC から実行待ち」の posimai-boki 古い記述を整理
|
2026-04-10 08:11:58 +00:00
|
|
|
|
|
2026-04-14 14:22:25 +00:00
|
|
|
|
## 直近でやったこと(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 09:20:28 +00:00
|
|
|
|
## 直近でやったこと(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-19 23:03:11 +00:00
|
|
|
|
## 直近でやったこと(2026-04-19〜20 Together セキュリティ強化)
|
|
|
|
|
|
|
|
|
|
|
|
### Together 安全性修正(全て VPS 反映済み・Eiji/Nanami への影響なし)
|
|
|
|
|
|
- **JWT legacy fallback なりすまし穴修正**(`96f22b6`): legacy path は warn ログのみ、user_id 紐付きは厳格チェック
|
|
|
|
|
|
- **GET /together/groups/:groupId 認証なし invite_code 露出修正**(`222238f`): `?u=username` + `togetherEnsureMember` でメンバーのみ返却。フロントは `?u=${currentUser}` 送信済みで整合している
|
|
|
|
|
|
- **together_members.user_id バックフィル**: 起動時 SQL で `users` テーブルと username 一致行を自動紐付け
|
|
|
|
|
|
- **UI バグ修正**: 未読ドットに `event.stopPropagation()`、設定パネルに invite_code 表示、名前フィールド変更時データ消失を解消
|
|
|
|
|
|
|
2026-04-20 03:18:06 +00:00
|
|
|
|
### together_members.user_id 本番確認(2026-04-20)
|
|
|
|
|
|
- VPS の DB `posimai_brain` で `SELECT group_id, username, user_id FROM together_members` を実行。**`user_id` が NULL の行はなし**(全行に `maita` または `partner` が入っている)
|
|
|
|
|
|
- 参考: 当時の懸念どおり `users.user_id` / `users.name` と Together の `username` が一致しないと起動時 `UPDATE` だけでは紐付けられないが、現状データでは問題なし
|
|
|
|
|
|
|
2026-04-19 23:03:11 +00:00
|
|
|
|
### 残る既知のリスク(商用前に対応)
|
|
|
|
|
|
- グループ作成・参加エンドポイントはまだ認証なし(mai + Eiji のみ運用で許容)
|
2026-04-20 03:18:06 +00:00
|
|
|
|
- JWT 必須化(legacy path 完全削除)は運用判断(本番では user_id 列は全行埋まっていることを確認済み)
|
2026-04-19 23:03:11 +00:00
|
|
|
|
|
2026-04-11 14:05:28 +00:00
|
|
|
|
## 直近でやったこと(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 再起動で有効化される
|
|
|
|
|
|
|
2026-04-19 23:03:11 +00:00
|
|
|
|
### 残る既知の課題(2026-04-11 時点、一部は上記で解消済み)
|
2026-04-11 14:05:28 +00:00
|
|
|
|
- **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)
|
2026-04-11 05:54:28 +00:00
|
|
|
|
|
|
|
|
|
|
- **全アプリ認証統一**: `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 08:11:58 +00:00
|
|
|
|
## 直近でやったこと(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 ハードコード色修正
|
2026-04-19 07:49:21 +00:00
|
|
|
|
- **ドキュメント最新化**: server-refactor-plan.md マージ・atlas.json Supabase 削除/Gemini 追加・projects.json 更新・timeli
|