a620906209
|
6b3a0816f5
|
fix: 聊天室樂觀更新 + private channel fallback
問題:presence channel 在另一方加入的瞬間可能短暫抖動,
導致雙方都收不到 MessageSent event,訊息消失需重整。
三項修正:
1. sendText 樂觀更新:訊息送出後立即顯示暫存訊息,
不依賴 WebSocket event 才出現。
2. MessageSent handler deduplication:自己的訊息收到
event 時,替換暫存訊息而非重複 push。
3. Private channel fallback:receiver 的 private channel
收到 notification.created 時,補拉一次訊息歷史,
確保 presence channel 失效時仍能同步。使用
stopListening 避免干擾 notifications store 的訂閱。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-28 17:59:10 +08:00 |
|
a620906209
|
1ba4ca893a
|
fix: 修正即時聊天室 presence channel 間歇性失效
三個根本原因:
1. updateEchoToken() 呼叫 disconnect/connect 會中斷已訂閱的
presence channel,改為只更新 auth header(不重連)。
同時將 setAuth() 的呼叫順序改為先 updateEchoToken() 再
startRealtime(),確保訂閱時使用最新 token。
2. BookingPresenceChannel::join() 未對 schedule null 做防守,
載入後若 schedule 不存在會 500,導致 auth 靜默失敗。
3. WebSocket 重連後 presence channel 不會自動恢復,
在 BookingChat 加入 reconnected 事件處理,重連後重訂閱。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-28 17:46:15 +08:00 |
|
a620906209
|
6286399a3b
|
fix: 修正 VITE_API_URL 預設值 typo(spack → space)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-28 17:28:17 +08:00 |
|
a620906209
|
f80319109c
|
fix: entrypoint 先啟動 php-fpm,init 任務移至背景
將 wait_for_mysql、migration、cache:clear 等耗時操作移至背景
subshell 執行,php-fpm 不再等待它們完成才啟動。
解決每次 docker restart 後 php-fpm 尚未就緒時 Nginx 回傳
502(無 CORS headers),前端看到 CORS error 的問題。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-28 17:23:59 +08:00 |
|
a620906209
|
4cf83375f3
|
fix: 避免 entrypoint 覆寫 .env 的 DB 憑證
僅保留 DB_HOST 強制設為 db(Docker service name),
移除對 DB_USERNAME / DB_DATABASE / DB_PASSWORD 的覆寫。
原本透過 container 環境變數回寫 .env 的機制會在密碼含
特殊字元時因 shell 展開截斷,導致 DB_PASSWORD 被清空。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-28 17:07:29 +08:00 |
|