Keep creation as a living DAG and archive playable products separately.

Opening accept no longer locks the graph; session.json stays creation-only while play starts from an instance snapshot. Sidebar products nest run saves, and play reading fills the feed at a denser type size.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-01 00:52:05 +08:00
co-authored by Cursor
parent bd5d88abfa
commit f37388761b
22 changed files with 930 additions and 303 deletions
+18
View File
@@ -25,6 +25,7 @@ import {
spawnRepeatableCreationStep,
spawnInstanceFromPrototype,
hasSelectableCreationWork,
hasAcceptedCloserStep,
removeUnstartedInstance,
looksLikeCreationFlowDoc,
parseCreationFlow,
@@ -1269,4 +1270,21 @@ modules:
if ("error" in ok) return;
expect(ok.step.depends_on).toEqual(["生成规则#1"]);
});
it("detects accepted closer step", () => {
const flow = parseCreationFlow(
JSON.stringify({
steps: [
{
id: "开场白与开场变量",
name: "开场白与开场变量",
depends_on: [],
},
],
}),
);
expect(hasAcceptedCloserStep(flow, [])).toBe(false);
expect(hasAcceptedCloserStep(flow, ["开场白与开场变量"])).toBe(true);
expect(hasAcceptedCloserStep(null, ["开场白与开场变量"])).toBe(true);
});
});