fix: persist chat uploads on /data volume (broken images) + prevent duplicate chat sockets
- Broken images: UPLOADS_DIR/REC_DIR/TRANS_DIR were server/<dir> INSIDE the image,
so every deploy.sh rebuild wiped uploaded files — old images 404'd ('broken
image') though their DB rows survived. Make them env-overridable and point prod
at /data/uploads|recordings|transcripts (persistent volume), matching DB/downloads.
NOTE: files already lost to prior rebuilds can't be recovered; new uploads persist.
- Duplicate notifications: harden connectChatWs — close/detach any prior socket
before opening a new one and keep a single pending reconnect timer, so a flaky
reconnect can't leave two live sockets delivering every event/notification twice.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+6
-3
@@ -3,9 +3,12 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const PUBLIC_DIR = path.join(__dirname, 'public');
|
||||
const REC_DIR = path.join(__dirname, 'recordings');
|
||||
const TRANS_DIR = path.join(__dirname, 'transcripts');
|
||||
const UPLOADS_DIR = path.join(__dirname, 'uploads');
|
||||
// Uploaded chat files, recordings and transcripts MUST live on the persistent volume (like the DB
|
||||
// and downloads). With the old in-image path, every deploy.sh rebuild wiped them — old images/files
|
||||
// then 404 ("broken image") while their DB rows survive. Overridable so prod points them at /data.
|
||||
const REC_DIR = process.env.REC_DIR || path.join(__dirname, 'recordings');
|
||||
const TRANS_DIR = process.env.TRANS_DIR || path.join(__dirname, 'transcripts');
|
||||
const UPLOADS_DIR = process.env.UPLOADS_DIR || path.join(__dirname, 'uploads');
|
||||
// Desktop installers + auto-update feed (latest.yml). Override with DOWNLOADS_DIR to point at a
|
||||
// mounted volume in production; IT drops the electron-builder dist/ output here.
|
||||
const DOWNLOADS_DIR = process.env.DOWNLOADS_DIR || path.join(__dirname, 'downloads');
|
||||
|
||||
Reference in New Issue
Block a user