From 9448a5f6c6eb988b15538a292fe7bd49708639bc Mon Sep 17 00:00:00 2001 From: posimai Date: Thu, 19 Mar 2026 10:40:46 +0900 Subject: [PATCH] chore: update project_status - together UI/UX overhaul complete, pending tasks --- project_status.md | 220 ++++++++++++---------------------------------- 1 file changed, 57 insertions(+), 163 deletions(-) diff --git a/project_status.md b/project_status.md index 7ba4674..c84ab58 100644 --- a/project_status.md +++ b/project_status.md @@ -1,188 +1,81 @@ --- name: プロジェクト現状・残タスク・次ステップ -description: 2026-03-16 全アプリ品質監査完了。ponshu-room は Flutter との乖離解消まで保留。 +description: 2026-03-19 posimai-together UI/UX 全面改善完了。server.js に DELETE エンドポイント追加(deploy-server.sh 要実行)。 type: project --- -## 完了済み(〜2026-03-15 全セッション) +## 完了済み(2026-03-19 このセッション) -### インフラ・設定 -- Docker Compose の .env 分離(Synology) -- Magic Link キー保存先を全アプリで posimai_api_key に統一 -- theme-color を全アプリで Teal (#6EE7B7) に統一 -- server.js CORS wildcard(posimai-*.vercel.app)対応 → デプロイ済み -- Gemini モデル: gemini-3.1-flash-lite → gemini-2.0-flash-lite(Journal AI tag 修正) +### posimai-together UI/UX 全面改善(デプロイ済み) +- **FAB**(右下固定投稿ボタン)— フィードスクロール中でも常時表示 +- **Web Share Target JS接続** — OS シェアメニューから Together を選ぶと URL 自動入力 +- **PC Bottom Sheet 最大幅** — 560px 中央固定・角丸(全画面拡張廃止) +- **URLインラインプレビュー** — 貼り付け直後に favicon+ドメイン表示 +- **一言メモ折りたたみ** — デフォルト非表示、「メモを追加」でトグル +- **招待リンク** — 設定画面に「招待リンクをコピー」ボタン。`?invite=CODE` で自動入力 +- **タグフィルターバー** — 横スクロール化(タグが増えても縦圧迫なし) +- **投稿削除** — 自分の投稿のみ trash-2 アイコンで削除(確認ダイアログ付き) +- **AIタグフィルター** — タグをタップしてフィード絞り込み +- **タイトル自動取得** — URL投稿時に Jina Reader からタイトルを DB 保存して表示 -### posimai-daily 改修(2026-03-15) -- Feed 欄を Brain API → `posimai-feed.vercel.app/api/feed` に変更(常に最新) -- VOICEVOX TTS 実装(AudioContext エンジン、AbortController、fallback) -- 話者選択 UI(設定パネルに 6 話者ボタン) -- SW v3(skipWaiting + 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 +### server.js 追加(未デプロイ — deploy-server.sh 要実行) +- `DELETE /together/share/:id` エンドポイント追加(username 一致チェック付き) +- **注意**: AIタグ生成プロンプト(archiveShare の Gemini prompt を JSON 返却に変更)はまだ未実装 --- -## posimai-daily VOICEVOX TTS 問題(2026-03-15 解決済み) +## 残タスク(優先度順) -### 根本原因(確定) -VOICEVOX の合成速度が遅すぎた(NAS の CPU が弱い): -- 短文 "テスト": 13 秒 -- ニュース記事(30 文字): 67 秒 -- キャッシュ HIT: 0.005 秒 +### 要 deploy-server.sh +- [ ] `bash deploy-server.sh` を実行して DELETE エンドポイントを本番反映 -Tailscale Funnel が数秒のタイムアウトで接続を切断 → browser に response が届かず pending のまま。 +### 未実装(server.js) +- [ ] **AIタグ自動付与** — archiveShare の Gemini プロンプトを JSON 返却に変更して `tags` カラムに保存 + - 現状: `tags` カラムは空のまま(フロントのフィルターUIは実装済み) + - 実装方法: プロンプトを `{"summary":"...","tags":["タグ1","タグ2"]}` 返却に変更し、JSON.parse してDBに保存 -### 解決策(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) -- `posimai-root` リポジトリ: gitea/github 両方に push 済み - - 内容: CLAUDE.md, AGENTS.md, _template/, deploy-server.sh, scripts/, server.js, .gitignore - - Gitea: http://100.76.7.3:3000/mai/posimai-root - - GitHub: https://github.com/posimai/posimai-root (private) -- `claude-memory` リポジトリ: gitea/github 両方に push 済み - - 内容: memory/ 以下の全 .md ファイル(8ファイル) - - Gitea: http://100.76.7.3:3000/mai/claude-memory - - GitHub: https://github.com/posimai/claude-memory (private) - -### Step 2 追加対応完了(2026-03-17) -- `claude-settings.json` を `posimai-root` に追加(`~/.claude/settings.json` のバックアップ) -- CLAUDE.md にディザスタリカバリセクション追記(新マシン復元手順 + 各リポジトリ更新コマンド) -- `posimai-root` に commit & push 済み(gitea + github) - -### バックアップ後の残リスク -- memory 変更時は手動で push が必要(自動化なし) - ```bash - 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 全対応済み) -- [x] **C-1** posimai-pulse/sw.js — origin チェック追加済み -- [x] **C-2** posimai-lens/sw.js — 同上 -- [x] **C-3** posimai-tech-events/sw.js — origin チェック追加済み -- [x] **C-4** server.js /together/share — URL プロトコル検証追加済み(http/https のみ許可) -- [x] **H-1** posimai-ambient/index.html — theme-color media query 追加済み -- [x] **H-3** posimai-together/index.html — marked@9.1.6 + DOMPurify@3.1.6 追加・sanitize 実装済み -- [x] **M-3** server.js /together/react — type バリデーション追加済み(like/star/fire のみ) - -### [MEDIUM] 設計不整合(2026-03-17 対応済み) -- [x] **M-1** #6EE7B7 ハードコード → pulse/diff/habit/lens の brand-logo gradient + heatmap を var(--accent) に置換 -- [x] **M-2** border-radius: 8px 精査完了(2026-03-17)。変更すべきカード系3箇所のみ修正(hotels/.site-row / together/.group-info-box / feed/.pack-card)。残りはフォーム/ボタン/バッジで意図的8px。 -- [x] **M-4** posimai-diff/sw.js, posimai-timer/sw.js — origin チェック追加済み - -### [LOW] Tech debt(2026-03-17 全対応済み) -- [x] **L-1** posimai-brain/sw.js — 重複 fetch リスナー削除、v23 に更新・デプロイ済み -- [x] **L-4** Dashboard Timeline に 2026-03-17 セキュリティ監査エントリ追加・デプロイ済み -- [x] **L-5** server.js コメント・起動ログの絵文字削除済み(deploy-server.sh 要実行) - -### [NEW CRITICAL] 2026-03-17 発見・対応済み -- [x] **posimai-daily/sw.js** — クロスオリジン API レスポンスキャッシュバグ(Habit と同パターン)→ origin チェック追加、v11 に更新・デプロイ済み - -### 確認済み(対応不要) -- Lucide バージョン: 全アプリ @0.344.0 固定済み -- manifest.json / sw.js: 全PWAアプリで存在確認済み -- 絵文字: HTML ファイルでは検出なし - ---- - -## 残タスク(手動・未対応) -- [x] ai_proxy コンテナ削除済み(Container Manager + ai-proxy/ ai-proxy-data/ ディレクトリも削除) +### 手動テスト(未着手) - [ ] posimai_widget APK 実機インストール・ウィジェット動作テスト - [ ] Magic Link 動作確認(ブラウザで手動テスト) -- [x] Lucide アイコン — 全アプリ既に @0.344.0 固定済みと確認(残タスクは誤記) -## ponshu-room PWA — 保留中(2026-03-16) +### Gitea 手動作業 +- [ ] Gitea に `posimai-ui` リポジトリ手動作成 → `cd posimai-ui && git push gitea main` -**状態**: Flutter ネイティブアプリとの UI/UX 乖離が大きく、再設計が必要なため保留。 +--- -**問題点(3つ)**: -1. テーマが根本的に違う(Posimai Teal → Washi 琥珀に要変更) -2. Sakenowa 自動マッチング(6軸フレーバー)が未実装 -3. MBTI・ゲーミフィケーションが未実装 +## 完了済み(2026-03-19 前チャット) -**再開時の参照先**: `ponshu-room/ROADMAP.md`(全詳細・優先度・実装チェックリスト記載) +### 24時間自動化インフラ +- deploy-server.sh 完全無人化(SSH鍵認証 + docker グループ) +- create-app.sh(新規アプリ1コマンド自動化) +- _template-minimal/(ツール系アプリ用テンプレート) +- memory 自動 push Hook(settings.json PostToolUse) +- Aider on Synology(Docker コンテナ方式、~/aider-run.sh) -**再開時の作業順**: -1. CSS を Washi テーマへ書き換え(最速で効果大) -2. データモデル拡張(Sakenowa フィールド追加) -3. Sakenowa API 連携(公開 API、認証不要) -4. グリッド/リスト切替 -5. MBTI・ゲーミフィケーション(後回し可) +### posimai-ui デザインシステム新設 +- URL: `https://posimai-ui.vercel.app/v1/base.css` / `base.js` +- _template-minimal を posimai-ui 参照に更新済み +- Gitea リポジトリのみ未作成(GitHub は作成済み) -**触ってはいけないもの**: `ponshu_room_lite/`(Flutter 版本体、読み取り専用参照のみ) +--- -## posimai-together 実装状況(2026-03-17 完了) +## 完了済み(2026-03-17 全アプリ品質監査) -### 完了済み -- DB テーブル(together_groups/members/shares/reactions/comments)クリーンリセット migration 追加 -- 設定モーダル統合(3モーダル → 1モーダル、タブ切替) -- Quick Capture(Web Share Target API、GET method) -- インライン Reader Sheet(Jina Reader + marked.js) -- AI 要約スケルトン(archive_status: pending/done/failed) -- Bubble Board(Canvas アニメーション) -- 30秒ポーリング + 新着バナー +### CRITICAL(全対応済み) +- SW クロスオリジンキャッシュバグ修正(pulse / lens / tech-events / diff / timer / daily / brain) +- together に DOMPurify + marked XSS対策 +- server.js URL プロトコル検証・reaction type バリデーション +- posimai-daily/sw.js クロスオリジンAPIキャッシュバグ修正(v11) -### Gemini API キー管理(2026-03-17 完了) -- `GEMINI_TOGETHER_API_KEY` を `/volume1/docker/posimai_lab/.env` に追加(`GEMINI_API_KEY` と同値) -- `docker-compose.yml` の `posimai-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 は廃止 +### インフラ整理 +- ai_proxy コンテナ・ディレクトリ完全削除 +- GEMINI_TOGETHER_API_KEY を Synology .env + docker-compose に追加 +- CLAUDE.md / AGENTS.md Timeline 更新ルール強化(「任意」→「必須」) --- ## 確定済み「対応不要」 -- `?init_key=` URL: **廃止しない**。Magic Link 方式は意図的設計 -- Jina Reader SPOF: **対応済み**。AbortSignal.timeout(15000) + OGP フォールバック実装済み +- `?init_key=` URL: 廃止しない(Magic Link 意図的設計) - モノレポ化・Firebase SSO: 個人利用規模では不要 ## 重要なシステム情報 @@ -196,13 +89,14 @@ Tailscale Funnel が数秒のタイムアウトで接続を切断 → browser - Dark: bg #0D0D0D / surface #1A1A1A / accent #6EE7B7(Teal) - Light: bg #F9FAFB / surface #FFFFFF / accent #059669(Emerald-600) - アプリ別例外: journal/site = #80CAEE(Sky Blue) -- フォント: Inter 300/400/500/600 / アイコン: Lucide / 絵文字禁止 -- radius: 12px +- radius: 12px / フォント: Inter / アイコン: Lucide / 絵文字禁止 ### Synology インフラ - NAS IP(Tailscale): 100.76.7.3 -- Docker binary: /var/packages/ContainerManager/target/usr/bin/docker -- Tailscale binary: /var/packages/Tailscale/target/bin/tailscale -- Brain API: http://127.0.0.1:8090/brain/api (ホスト上), posimai_api コンテナ -- VOICEVOX: http://127.0.0.1:50021 (ホスト上), コンテナ名 voicevox:50021 +- Brain API: http://127.0.0.1:8090/brain/api、コンテナ名 posimai-api +- VOICEVOX: http://127.0.0.1:50021、コンテナ名 voicevox:50021 - Tailscale Funnel: /brain → http://127.0.0.1:8090, / → http://127.0.0.1:3000 + +### ponshu-room 保留中 +- 状態: Flutter版との UI/UX 乖離・Sakenowa 連携・Washi テーマ対応が必要で保留 +- 再開時: `ponshu-room/ROADMAP.md` を参照