claude-memory/project_status.md

10 KiB
Raw Blame History

name description type
プロジェクト現状・残タスク・次ステップ 2026-03-16 全アプリ品質監査完了。ponshu-room は Flutter との乖離解消まで保留。 project

完了済み〜2026-03-15 全セッション)

インフラ・設定

  • Docker Compose の .env 分離Synology
  • Magic Link キー保存先を全アプリで posimai_api_key に統一
  • theme-color を全アプリで Teal (#6EE7B7) に統一
  • server.js CORS wildcardposimai-*.vercel.app対応 → デプロイ済み
  • Gemini モデル: gemini-3.1-flash-lite → gemini-2.0-flash-liteJournal AI tag 修正)

posimai-daily 改修2026-03-15

  • Feed 欄を Brain API → posimai-feed.vercel.app/api/feed に変更(常に最新)
  • VOICEVOX TTS 実装AudioContext エンジン、AbortController、fallback
  • 話者選択 UI設定パネルに 6 話者ボタン)
  • SW v3skipWaiting + clients.claim
  • API キー移行スクリプトposimai_api_key → posimai-daily-apikey
  • NAS Infrastructure ページposimai-dashboard追加
  • Sidebar に NAS Infrastructure リンク追加

Dashboard 機能追加

  • Ecosystem Map / Timeline / Boilerplates / Access Guide / NAS Infrastructure
  • Sidebar 各ページへのリンク追加

新アプリ実装

  • posimai-digest, posimai-clean, posimai-ambient, posimai_widget, posimai-widget-dl

posimai-daily VOICEVOX TTS 問題2026-03-15 解決済み)

根本原因(確定)

VOICEVOX の合成速度が遅すぎたNAS の CPU が弱い):

  • 短文 "テスト": 13 秒
  • ニュース記事30 文字): 67 秒
  • キャッシュ HIT: 0.005 秒

Tailscale Funnel が数秒のタイムアウトで接続を切断 → browser に response が届かず pending のまま。

解決策2026-03-15 実装・デプロイ済み)

バックグラウンドウォームアップ方式:

  1. server.js に POST /brain/api/tts/warmup エンドポイント追加
    • 即座に 202 を返すFunnel タイムアウトなし)
    • VOICEVOX をバックグラウンドでシリアル合成してキャッシュに入れる
  2. index.html で Feed 読み込み後に warmup を fire-and-forget で呼ぶ
  3. #tts-status に「音声準備中...」→「音声準備完了」を表示

ウォームアップ時間の目安

  • 記事ごとに 13〜70 秒(テキスト長による)
  • 全 6 テキスト5 記事 + 締め): 2〜5 分
  • ユーザーが記事を読んでいる間に完了するケースが多い
  • 未完了でも Web Speech API フォールバックが動く

現在のコード状態

  • server.js: ttsSynthesize() ヘルパー + /tts/warmup エンドポイント追加済み
  • posimai-daily/index.html: warmup 呼び出し + #tts-status 表示ロジック追加済み
  • posimai-daily/api/tts.js: Vercel プロキシ(未使用、残置)

バックアップ現状2026-03-17 調査)

安全Gitea + GitHub 二重保存済み)

  • 全 posimai-* アプリ 22個 → gitea / github リモート両方あり確認済み
  • ponshu-room → 同上

Step 2 完了済み2026-03-17

Step 2 追加対応完了2026-03-17

  • claude-settings.jsonposimai-root に追加(~/.claude/settings.json のバックアップ)
  • CLAUDE.md にディザスタリカバリセクション追記(新マシン復元手順 + 各リポジトリ更新コマンド)
  • posimai-root に commit & push 済みgitea + github

バックアップ後の残リスク

  • memory 変更時は手動で push が必要(自動化なし)
    cd ~/.claude/projects/c--Users-maita-posimai-project/memory
    git add . && git commit -m "chore: update memory"
    git push gitea main && git push github main
    
  • claude-settings.json は手動コピー更新settings.json 変更時は posimai-root にも反映する)

Step 1 完了済み2026-03-17

  • posimai-dashboard: Header.tsx 末尾改行コミット・push 済み
  • posimai-tech-events: theme-color media query 修正・gas-proxy-setup.md コミット・push 済み
  • posimai-hotels: 改行コード差分のみ → git restore で戻した(変更なし)

全プロジェクト精査結果2026-03-17

[CRITICAL] 即対応必須2026-03-17 全対応済み)

  • C-1 posimai-pulse/sw.js — origin チェック追加済み
  • C-2 posimai-lens/sw.js — 同上
  • C-3 posimai-tech-events/sw.js — origin チェック追加済み
  • C-4 server.js /together/share — URL プロトコル検証追加済みhttp/https のみ許可)
  • H-1 posimai-ambient/index.html — theme-color media query 追加済み
  • H-3 posimai-together/index.html — marked@9.1.6 + DOMPurify@3.1.6 追加・sanitize 実装済み
  • M-3 server.js /together/react — type バリデーション追加済みlike/star/fire のみ)

[MEDIUM] 設計不整合2026-03-17 対応済み)

  • M-1 #6EE7B7 ハードコード → pulse/diff/habit/lens の brand-logo gradient + heatmap を var(--accent) に置換
  • M-2 border-radius: 8px 精査完了2026-03-17。変更すべきカード系3箇所のみ修正hotels/.site-row / together/.group-info-box / feed/.pack-card。残りはフォーム/ボタン/バッジで意図的8px。
  • M-4 posimai-diff/sw.js, posimai-timer/sw.js — origin チェック追加済み

[LOW] Tech debt2026-03-17 全対応済み)

  • L-1 posimai-brain/sw.js — 重複 fetch リスナー削除、v23 に更新・デプロイ済み
  • L-4 Dashboard Timeline に 2026-03-17 セキュリティ監査エントリ追加・デプロイ済み
  • L-5 server.js コメント・起動ログの絵文字削除済みdeploy-server.sh 要実行)

[NEW CRITICAL] 2026-03-17 発見・対応済み

  • posimai-daily/sw.js — クロスオリジン API レスポンスキャッシュバグHabit と同パターン)→ origin チェック追加、v11 に更新・デプロイ済み

確認済み(対応不要)

  • Lucide バージョン: 全アプリ @0.344.0 固定済み
  • manifest.json / sw.js: 全PWAアプリで存在確認済み
  • 絵文字: HTML ファイルでは検出なし

残タスク(手動・未対応)

  • ai_proxy コンテナ削除済みContainer Manager + ai-proxy/ ai-proxy-data/ ディレクトリも削除)
  • posimai_widget APK 実機インストール・ウィジェット動作テスト
  • Magic Link 動作確認(ブラウザで手動テスト)
  • Lucide アイコン — 全アプリ既に @0.344.0 固定済みと確認(残タスクは誤記)

ponshu-room PWA — 保留中2026-03-16

状態: Flutter ネイティブアプリとの UI/UX 乖離が大きく、再設計が必要なため保留。

問題点3つ:

  1. テーマが根本的に違うPosimai Teal → Washi 琥珀に要変更)
  2. Sakenowa 自動マッチング6軸フレーバーが未実装
  3. MBTI・ゲーミフィケーションが未実装

再開時の参照先: ponshu-room/ROADMAP.md(全詳細・優先度・実装チェックリスト記載)

再開時の作業順:

  1. CSS を Washi テーマへ書き換え(最速で効果大)
  2. データモデル拡張Sakenowa フィールド追加)
  3. Sakenowa API 連携(公開 API、認証不要
  4. グリッド/リスト切替
  5. MBTI・ゲーミフィケーション後回し可

触ってはいけないもの: ponshu_room_lite/Flutter 版本体、読み取り専用参照のみ)

posimai-together 実装状況2026-03-17 完了)

完了済み

  • DB テーブルtogether_groups/members/shares/reactions/commentsクリーンリセット migration 追加
  • 設定モーダル統合3モーダル → 1モーダル、タブ切替
  • Quick CaptureWeb Share Target API、GET method
  • インライン Reader SheetJina Reader + marked.js
  • AI 要約スケルトンarchive_status: pending/done/failed
  • Bubble BoardCanvas アニメーション)
  • 30秒ポーリング + 新着バナー

Gemini API キー管理2026-03-17 完了)

  • GEMINI_TOGETHER_API_KEY/volume1/docker/posimai_lab/.env に追加(GEMINI_API_KEY と同値)
  • docker-compose.ymlposimai-api サービスに GEMINI_TOGETHER_API_KEY 環境変数追加
  • docker compose up -d --no-deps posimai-api で再起動・動作確認済みhealth: ok, gemini: true

Gemini サーバー側管理の中長期計画

  • posimai-think → server.js の /think/chat エンドポイント経由に移行GEMINI_THINK_API_KEY
  • posimai-digest → server.js の /digest/summarize 経由に移行GEMINI_DIGEST_API_KEY
  • ponshu-room → server.js の /ponshu/analyze 経由に移行GEMINI_PONSHU_API_KEY
  • 各アプリのキー入力 UI は廃止

確定済み「対応不要」

  • ?init_key= URL: 廃止しない。Magic Link 方式は意図的設計
  • Jina Reader SPOF: 対応済み。AbortSignal.timeout(15000) + OGP フォールバック実装済み
  • レポ化・Firebase SSO: 個人利用規模では不要

重要なシステム情報

Dashboard 認証

  • Basic 認証: middleware.ts で実装
  • デフォルト: mai / posimai
  • Vercel 環境変数: BASIC_AUTH_USER / BASIC_AUTH_PASSWORD

デザインシステム v2

  • Dark: bg #0D0D0D / surface #1A1A1A / accent #6EE7B7Teal
  • Light: bg #F9FAFB / surface #FFFFFF / accent #059669Emerald-600
  • アプリ別例外: journal/site = #80CAEESky Blue
  • フォント: Inter 300/400/500/600 / アイコン: Lucide / 絵文字禁止
  • radius: 12px

Synology インフラ