auto-save 2026-05-20 22:54 (~3)
This commit is contained in:
@@ -13,12 +13,13 @@ export const dynamic = 'force-dynamic';
|
||||
const PACK_KINDS: PackKind[] = PACK_ORDER;
|
||||
|
||||
async function persistPackProgress(session: GenSession, imageId: string, pack: AssetPack) {
|
||||
session.characterSpec = pack.characterSpec;
|
||||
session.packs = [
|
||||
...(session.packs ?? []).filter(existing => !(existing.kind === pack.kind && existing.sourceImageId === imageId)),
|
||||
const latest = await loadSession(session.id) ?? session;
|
||||
latest.characterSpec = pack.characterSpec;
|
||||
latest.packs = [
|
||||
...(latest.packs ?? []).filter(existing => !(existing.kind === pack.kind && existing.sourceImageId === imageId)),
|
||||
{ ...pack, assets: [...pack.assets] },
|
||||
];
|
||||
await saveSession(session);
|
||||
await saveSession(latest);
|
||||
}
|
||||
|
||||
function isCompletePack(pack: AssetPack, imageId: string): boolean {
|
||||
@@ -140,16 +141,17 @@ export async function POST(req: Request) {
|
||||
});
|
||||
},
|
||||
});
|
||||
baseSession.characterSpec = pack.characterSpec;
|
||||
baseSession.packs = [
|
||||
...(baseSession.packs ?? []).filter(existing => !(existing.kind === kind && existing.sourceImageId === imageId)),
|
||||
const latestSession = await loadSession(baseSession.id) ?? baseSession;
|
||||
latestSession.characterSpec = pack.characterSpec;
|
||||
latestSession.packs = [
|
||||
...(latestSession.packs ?? []).filter(existing => !(existing.kind === kind && existing.sourceImageId === imageId)),
|
||||
pack,
|
||||
];
|
||||
baseSession.exports = [
|
||||
...(baseSession.exports ?? []).filter(existing => !(existing.packKind === kind && existing.source.sourceImageId === imageId)),
|
||||
latestSession.exports = [
|
||||
...(latestSession.exports ?? []).filter(existing => !(existing.packKind === kind && existing.source.sourceImageId === imageId)),
|
||||
manifest,
|
||||
];
|
||||
await saveSession(baseSession);
|
||||
await saveSession(latestSession);
|
||||
recordEvent({
|
||||
action: 'pack.generate_completed',
|
||||
sessionId,
|
||||
|
||||
@@ -27,11 +27,12 @@ export async function POST(req: Request) {
|
||||
});
|
||||
const generated = await generateTextAssets({ session, templateIds: body.templateIds });
|
||||
const nextIds = new Set(generated.textAssets.map(asset => asset.templateId));
|
||||
session.textAssets = [
|
||||
...(session.textAssets ?? []).filter(asset => !nextIds.has(asset.templateId)),
|
||||
const latest = await loadSession(session.id) ?? session;
|
||||
latest.textAssets = [
|
||||
...(latest.textAssets ?? []).filter(asset => !nextIds.has(asset.templateId)),
|
||||
...generated.textAssets,
|
||||
];
|
||||
await saveSession(session);
|
||||
await saveSession(latest);
|
||||
recordEvent({
|
||||
action: 'text.generate_completed',
|
||||
sessionId: session.id,
|
||||
|
||||
Reference in New Issue
Block a user