feat(workbench): implement cleanup for history images to retain references after asset deletion

This commit is contained in:
HouYunFei
2026-08-06 15:21:59 +08:00
parent ca47eb6aaa
commit a4074f7413
4 changed files with 13 additions and 0 deletions
+10
View File
@@ -14,6 +14,8 @@ export type UploadedImage = {
};
const store = localforage.createInstance({ name: "infinite-canvas", storeName: "image_files" });
const imageLogStore = localforage.createInstance({ name: "infinite-canvas", storeName: "image_generation_logs" });
const videoLogStore = localforage.createInstance({ name: "infinite-canvas", storeName: "video_generation_logs" });
const objectUrls = new Map<string, string>();
export async function uploadImage(input: string | Blob): Promise<UploadedImage> {
@@ -67,6 +69,14 @@ export async function deleteStoredImages(keys: Iterable<string>) {
export async function cleanupUnusedImages(usedData: unknown) {
const usedKeys = collectImageStorageKeys(usedData);
await Promise.all([
imageLogStore.iterate((value) => {
collectImageStorageKeys(value, usedKeys);
}),
videoLogStore.iterate((value) => {
collectImageStorageKeys(value, usedKeys);
}),
]);
const unused: string[] = [];
await store.iterate((_value, key) => {
if (!usedKeys.has(key)) unused.push(key);