Fix project isolation: Make loadChatHistory respect active project sessions
- Modified loadChatHistory() to check for active project before fetching all sessions - When active project exists, use project.sessions instead of fetching from API - Added detailed console logging to debug session filtering - This prevents ALL sessions from appearing in every project's sidebar Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
60
apply_cache_busting.sh
Normal file
60
apply_cache_busting.sh
Normal file
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# Comprehensive Cache-Busting Implementation
|
||||
|
||||
set -e
|
||||
|
||||
SERVER_FILE="/home/uroma/obsidian-web-interface/server.js"
|
||||
echo "[CACHE-BUSTING] Applying modifications to $SERVER_FILE"
|
||||
|
||||
# Create backup
|
||||
cp "$SERVER_FILE" "${SERVER_FILE}.cache-bust-backup"
|
||||
|
||||
# 1. Add cache-busting configuration after SESSION_SECRET (line 36)
|
||||
sed -i '/const SESSION_SECRET = .*/a\
|
||||
\
|
||||
// ============================================================\
|
||||
// CACHE-BUSTING CONFIGURATION\
|
||||
// ============================================================\
|
||||
// Build timestamp forces browser to reload all assets on server restart\
|
||||
const BUILD_TIMESTAMP = Date.now();\
|
||||
const ASSET_VERSION = `v=${BUILD_TIMESTAMP}`;\
|
||||
\
|
||||
console.log(`[CACHE-BUSTING] Build timestamp initialized: ${BUILD_TIMESTAMP}`);\
|
||||
console.log(`[CACHE-BUSTING] All JavaScript files will be served with ?${ASSET_VERSION}`);' "$SERVER_FILE"
|
||||
|
||||
# 2. Add middleware import after database import (line 12)
|
||||
sed -i "/const { db } = require('.\\/services\\/database');/a\\\
|
||||
// Cache-busting middleware\\
|
||||
const { createCacheBustingMiddleware } = require('./cache-bust-middleware');" "$SERVER_FILE"
|
||||
|
||||
# 3. Add middleware application after session middleware
|
||||
# Find the line with "name: 'connect.sid'" and add middleware after the closing });
|
||||
sed -i "/name: 'connect.sid'/,/});/{
|
||||
/});/a\\
|
||||
\\
|
||||
// Apply cache-busting middleware to HTML responses\\
|
||||
app.use(createCacheBustingMiddleware(ASSET_VERSION));
|
||||
}" "$SERVER_FILE"
|
||||
|
||||
# 4. Update static file configuration to remove ETag and enhance cache headers
|
||||
sed -i '/\/\/ Serve static files (must come after specific routes)/,/etag: false/,/setHeaders: (res, filePath) => {/,/}$/{
|
||||
/\/\// Disable caching for JS files to prevent browser from serving stale code/c\
|
||||
// Disable caching for JS files to prevent browser from serving stale code\
|
||||
// CRITICAL: Cache-busting via query parameters (ASSET_VERSION) ensures fresh content
|
||||
/if (filePath.endsWith('\''js'\''))/c\
|
||||
// Disable caching for all JavaScript and CSS files\
|
||||
if (filePath.endsWith('\''js'\'') || filePath.endsWith('\''css'\'')) {
|
||||
/res.setHeader('\''Pragma'\'', '\''no-cache'\'');/a\
|
||||
res.removeHeader('\''ETag'\'');
|
||||
}' "$SERVER_FILE"
|
||||
|
||||
echo "[CACHE-BUSTING] Modifications applied successfully!"
|
||||
echo "[CACHE-BUSTING] Testing syntax..."
|
||||
|
||||
if node -c "$SERVER_FILE" 2>&1; then
|
||||
echo "[CACHE-BUSTING] ✓ Syntax is valid"
|
||||
else
|
||||
echo "[CACHE-BUSTING] ✗ Syntax error detected, restoring backup"
|
||||
cp "${SERVER_FILE}.cache-bust-backup" "$SERVER_FILE"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user