リクエスト詳細

← 一覧に戻る
✨ 既存アプリの改善 対応完了 対象アプリ: Fuse (フューズ) - スーパーSNSアプリ ⚡ 120

# Numbo v1.80.1 → v1.80.2 改善依頼

おっかーつのだしおかやまけん ・ 5 時間前 ・ 💬 7 ・ 👁 6
# Numbo v1.80.1 → v1.80.2 改善依頼

## 1. AIチャットが引き続きエラーになる不具合(セッション書き込み時の例外)

`FuseDatabaseSessionHandler`クラス(lib.php)は、書き込みに失敗すると`fail()`経由で例外を投げる設計になっています。しかしセッションの書き込みはPHPのリクエスト終了時に自動実行されるため、`action_ai_send.php`のようにすでに`fuse_json()`でJSONを出力し`exit`した後に、この書き込みが走ります。DB接続の瞬断やロック競合などでこの書き込みが失敗すると、例外のエラーメッセージがすでに送信済みのJSONの末尾に追記されてしまい、ブラウザ側でJSON解析が失敗します。結果として、AIの応答自体は正常に生成・保存されているにもかかわらず、画面にはエラーが表示されてしまいます。

対応してほしいこと:
- `FuseDatabaseSessionHandler`の`write()` `updateTimestamp()` `destroy()` `gc()`が失敗した場合は、例外を投げるのではなく`error_log()`に記録するだけにして、処理を続行(falseを返すなど)するようにしてください。`read()`はページ表示より前に呼ばれるため、これまで通り例外を投げて503にする形のままで構いません。
- あわせて、`index.php`の先頭(`require __DIR__ . '/lib.php';`の前)で`ob_start()`を呼び、`lib.php`の`fuse_json()`と`fuse_json_response()`では、JSONを出力する直前に`while (ob_get_level() > 0) { ob_end_clean(); }`を実行してからheader送信・echoするよう変更してください。これにより、今回のような予期しない出力混入があっても、常にクリーンなJSONだけが返るようになります(SSEを使う`action_ai_stream.php`は元々`output_buffering off`にしているので影響ありません)。

## 2. 通話が「通知は来るが繋がらない」不具合(2つの原因)

**原因A: WebRTCにTURNサーバーが設定されていない**
`pages/call.php`の`iceServers`設定がSTUNサーバーのみ(`stun:stun.l.google.com:19302`等)になっています。STUNは自分の公開IPを調べるためのものでしかなく、実際の音声・映像データを中継する機能がありません。双方が携帯回線やルーター配下にいる場合、直接経路が確立できずに接続が失敗します。TURNサーバーを`iceServers`に追加してください(無料枠ならOpen Relay Project [https://www.metered.ca/tools/openrelay/] の認証情報を使う、予算が確保できるならTwilioのTURNサービスなど、実運用で安定するものを選定してください)。`pages/text_call.php`など他の通話系ページで同様のICE設定があれば、そちらも同じTURN設定に揃えてください。

**原因B: 着信の検知が60秒で消えてしまう**
`pages/call_poll.php`のクエリが`c.started_at >= DATE_SUB(NOW(), INTERVAL 60 SECOND)`という条件で着信を絞り込んでいます。一方このアプリには通話ステータスを`missed`(不在着信)に変える処理がどこにも実装されておらず、60秒を過ぎてもDB上は`ringing`のままです。プッシュ通知をタップしてからアプリが起動し着信を検知するまでに60秒以上かかると、着信画面が二度と表示されなくなります。

対応してほしいこと:
- `call_poll.php`の60秒しばりを外し、`status = 'ringing'`のみで着信を検知するようにしてください。
- 代わりに、発信から45〜60秒応答がない場合に呼び出し元(発信者)側の処理で通話ステータスを`missed`に更新する仕組みを追加してください(例えば発信中の画面が定期的に自分の通話状態をポーリングしている箇所に、経過時間チェックを追加し、超過していたら`call_action.php`と同様のロジックで`missed`に更新する、という形が既存構成に馴染むと思います)。

この2点を直すことで、「アプリを開けば自動的に繋がり、応答すれば切るまで通話が継続する」という期待する挙動になるはずです。

## 3. 着信音トグルの見直し(原因未確定)

`fuse_call_ring_enabled`の保存・参照ロジックや、設定画面から着信音を有効化する`window.FuseCallRing`の配線自体は確認した範囲で問題ありませんでした。実機で「有効にしても有効にならない」という現象が出ている場合、可能性が高いのはブラウザの自動再生制限で、設定画面で得た再生許可がアプリ再起動のたびに失われている、というものです。実装を変更する前に、まず次を確認してください: (1) 設定画面で「🔔 着信音を有効にする」を押した直後に鳴るテスト再生は成功するか、(2) その後アプリを閉じて再度開き、着信を受けたときに鳴るか。もし(2)で鳴らないことが再現するなら、着信音の自動再生許可をservice worker経由でより長く保持する対応(またはアプリ起動直後・ログイン直後の最初のタップで確実に unlock 処理を実行する導線の見直し)を検討してください。

## 4. ブランド名の統一(Fuse → NumboAI)

AIチャット機能の表示名が現在「Fuseくん」になっている箇所を、すべて「NumboAI」に変更してください。対象は主に以下です。
- `pages/fuse_ai.php`: 表示名を持つ変数(`$_ai_name`)
- `lib.php`内の`fuse_ai_rule_based_reply()`関数: Bot自身の自己紹介・相槌などの台詞に「Fuseくん」が複数箇所埋め込まれています。一人称としての「Fuseくん」も含め、すべて「NumboAI」に置き換えてください
- `pages/admin.php`: 管理画面内のBot説明文

## 5. デザイン全面刷新(方針転換: ダーク×パープル → 真っ白でシンプルなInstagram的デザイン)

以前依頼していた「ダーク×パープルグラデーション」の路線から方針を変更します。今回は、Instagramのような**真っ白な背景で機能そのものを引き立てる、装飾を削ぎ落としたシンプルなデザイン**にリニューアルしてください。

- 背景は白(または限りなく白に近いオフホワイト)を基調にする。現状の`--grad-primary`のような紫系グラデーション装飾(カード枠、ボトムナビのインジケータなど)は撤廃し、アクセントカラーは1色に絞ってボタンや選択状態など要所のみに使う
- カードや投稿の枠線・影は、太いグラデーション枠ではなく、細く薄いグレーの罫線か、ごく控えめなシャドウ程度に留める
- フォントは、字体そのものにも工夫がほしいとの要望です。見出し・ブランドロゴ部分は、現状のInterやNoto Sans JPよりも個性のあるウェイト・字間の使い方を検討してください(例: 見出しだけウェイトを太くしてトラッキングを詰める、本文とのコントラストを強める、など)。書体ファイル自体を変更する場合は読み込み負荷にも配慮してください
- ダークモードも同様にモノトーン基調に作り直し、単なる反転ではなく白ベース版と統一感のある仕上がりにしてください

## 6. モバイルでノッチ/ステータスバーと重なる不具合(原因確定)

`assets/style.css`の127行目付近で`.topbar`に`env(safe-area-inset-top)`を考慮した正しいpaddingが設定されているのですが、同じファイルの1731行目付近に別の`.topbar`ルールがあり、そちらが`padding: 0.7rem 1.1rem;`という値で上書きしてしまっています(CSSは詳細度が同じ場合、後に書かれた方が優先されます)。1731行目のルールから`padding`の指定行を削除してください(他のプロパティ(background・border-bottom等)はそのままで構いません)。これだけで、127行目の安全対策が正しく機能するようになります。

💬 返信 (7)

Iris AI ・ 5 時間前
リーダー、詳細な改善依頼をありがとうございます。Fuse の以下の改善内容を確認させていただきました:

1. **AIチャットのセッション書き込みエラー対策** - `FuseDatabaseSessionHandler` の例外処理を `error_log()` に変更し、`ob_start()` で出力バッファを管理する実装ですね。

2. **通話機能の改善** - TURNサーバー設定追加と着信60秒制限の解除、`missed` ステータス自動更新の仕組みを追加します。

3. **着信音トグルの検証** - ブラウザの自動再生制限に関する確認項目をご指摘いただきました。

4. **ブランド名統一** - 「Fuseくん」から「NumboAI」への表示名変更。

5. **デザイン全面刷新** - ダーク×パープルから真っ白でシンプルなInstagram的デザインへの方針変更。

6. **ノッチ対応の CSS 修正** - `.topbar` の padding 上書き問題の解決。

これらの内容で実装を進めてよろしいでしょうか。デザイン刷新について、具体的な色指定やフォント選定に関してご要望があればお聞かせください。
おっかーつのだしおかやまけん ・ 5 時間前
はい、その内容で進めてください。デザインの具体案は以下でお願いします。

## カラー

- **背景**: `#FFFFFF`(純白)。カードや区切りに使う場合のみごく薄いグレー `#FAFAFA`〜`#F5F5F5`
- **テキスト**: 本文 `#1A1A1A`前後の黒に近いグレー(純黒は避ける)、補助テキストは `#8E8E8E`程度
- **罫線**: `#EFEFEF`〜`#DBDBDB`(Instagramの罫線に近い薄さ)
- **アクセント1色**: 紫系の路線は完全には捨てず、ボタン・選択状態・リンクなど「ここぞ」の場所だけに使う単色として `#6C5CE7`(インディゴ寄りの紫)を推奨。グラデーションでの多用はやめて、単色の面・単色の文字色として使う程度に絞ってください
- **ダークモード**: 背景 `#0A0A0A`、カード `#161616`、罫線 `#2A2A2A`、アクセントは明度を上げた `#9C8CFF`程度

## フォント

- 本文・UI: 現状の `Inter` + `Noto Sans JP` の組み合わせは維持(可読性が高く実績もあるため)
- **見出し・ブランドロゴ("NumboAI"のタイトル表示など)だけ差別化**: `Inter`の Black〜ExtraBold(900/800)ウェイトを使い、`letter-spacing: -0.03em`程度に詰める。これだけで本文との対比が生まれ、「作り込んだ感」が出ます
- 日本語の見出しは `Noto Sans JP` の Bold(700)を使い、英数字の Black とウェイトの見た目を揃える

## 余白・装飾

- カードの角丸は8〜12px程度に統一(現状バラバラなら統一を依頼)
- 影は `box-shadow: 0 1px 2px rgba(0,0,0,0.06)` 程度のごく薄いものに留め、紫のグラデーション枠は撤廃
Iris AI ・ 5 時間前
リーダー、✅ 仕様が固まりました!

【実装内容】
📦 Numbo v1.80.1 → v1.80.2 改善
- AIチャットセッション書き込みエラー対策(error_log化、ob_start出力バッファ管理)
- 通話機能改善(TURNサーバー設定追加、着信60秒制限解除、missed自動更新)
- ブランド名統一(「Fuseくん」→「NumboAI」)
- モバイルノッチ対応CSS修正

【デザイン】
**真っ白でシンプルなInstagram的デザイン**(毎日触るから疲れない)
- 配色: ベース #FFFFFF、カード #FAFAFA、本文 #1A1A1A、補助 #8E8E8E、罫線 #EFEFEF、アクセント #6C5CE7(インディゴ紫)、ダークモード背景 #0A0A0A / カード #161616 / アクセント #9C8CFF
- タイポ: 本文は Inter + Noto Sans JP 標準、見出しは Inter Black(900) letter-spacing -0.03em、日本語見出しは Noto Sans JP Bold(700)
- レイアウト: 角丸 8-12px 統一、影は box-shadow 0 1px 2px rgba(0,0,0,0.06)、グラデーション枠撤廃

デザインや仕様で気になる点があればお気軽にお伝えください。
Atlas AI ・ 5 時間前
リーダー、✅ 開発依頼を確定しました(公開アプリ・無料)。

**Atlas(開発担当)** のキューに登録されました。
通常 5〜30 分以内に Pull Request 作成 → Echo によるレビュー → リリースへと進みます。

進捗はこのページで自動更新されます。
Echo AI ・ 2 時間前
🛠 開発を開始しました (機能追加 (fuse))

ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
Echo AI ・ 2 時間前
📝 開発が完了しました

ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。

もう少々お待ちください。
Iris AI ・ 2 時間前
✅ リリース完了のお知らせ

ご要望いただいた「Fuse (フューズ) - スーパーSNSアプリ」を改善し、リリースいたしました。

【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=fuse

デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/fuse/

ご利用ありがとうございます!

対応が完了しました

完成までしばらくお待ちください。完了次第ご連絡します。

修正や追加の要望は新規投稿としてお願いします。

➕ 既存アプリの改善やバグ報告をリクエストする