fix(wechat): isolate stale images and page links
Memind CI / Test, build, and release guards (pull_request) Successful in 2m36s
Memind CI / Test, build, and release guards (pull_request) Successful in 2m36s
This commit is contained in:
+14
-2
@@ -50,12 +50,22 @@ export function ensureUserZoneDirs(workspaceRoot) {
|
||||
}
|
||||
|
||||
/** 上传完成后镜像到 MindSpace/<user>/<category>/文件名 */
|
||||
export function mirrorAssetToZone({ workspaceRoot, categoryCode, filename, sourcePath }) {
|
||||
export function mirrorAssetToZone({
|
||||
workspaceRoot,
|
||||
categoryCode,
|
||||
filename,
|
||||
sourcePath,
|
||||
overwrite = true,
|
||||
}) {
|
||||
if (!UPLOAD_ZONE_CODES.includes(categoryCode)) return null;
|
||||
if (!sourcePath || !fs.existsSync(sourcePath)) return null;
|
||||
ensureUserZoneDirs(workspaceRoot);
|
||||
const dest = resolveZoneFilePath(workspaceRoot, categoryCode, filename);
|
||||
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
||||
// Layout bootstrap is a recovery/backfill path. Re-copying every canonical
|
||||
// asset on every chat request changes workspace mtimes, can overwrite a
|
||||
// newer Agent edit, and makes historical HTML look newly generated.
|
||||
if (!overwrite && fs.existsSync(dest)) return dest;
|
||||
fs.copyFileSync(sourcePath, dest);
|
||||
return dest;
|
||||
}
|
||||
@@ -165,7 +175,8 @@ export async function syncUserZonesFromAssets(pool, storageRoot, userId, workspa
|
||||
FROM h5_assets a
|
||||
JOIN h5_space_categories c ON c.id = a.category_id AND c.user_id = a.user_id
|
||||
JOIN h5_asset_versions v ON v.id = a.current_version_id
|
||||
WHERE a.user_id = ? AND a.status <> 'deleted' AND c.category_code IN (${placeholders})`,
|
||||
WHERE a.user_id = ? AND a.status <> 'deleted' AND c.category_code IN (${placeholders})
|
||||
ORDER BY a.updated_at DESC`,
|
||||
[userId, ...UPLOAD_ZONE_CODES],
|
||||
);
|
||||
for (const row of rows) {
|
||||
@@ -175,6 +186,7 @@ export async function syncUserZonesFromAssets(pool, storageRoot, userId, workspa
|
||||
categoryCode: row.category_code,
|
||||
filename: row.original_filename,
|
||||
sourcePath,
|
||||
overwrite: false,
|
||||
});
|
||||
}
|
||||
return { workspaceRoot, mirrored: rows.length };
|
||||
|
||||
Reference in New Issue
Block a user