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
+5
View File
@@ -16,6 +16,8 @@ export type RunSnapshot = {
bookId: string;
label: string;
kind: SnapshotKind;
/** 游玩存档所属的产物(instance)id */
instanceId?: string;
/** skill 包 id(兼容旧字段名) */
orchestratorId?: string;
runtimeSession: RuntimeSession;
@@ -32,6 +34,8 @@ export type RunSnapshotMeta = {
bookId: string;
label: string;
kind: SnapshotKind;
/** 游玩存档所属的产物(instance)id */
instanceId?: string;
/** skill 包 id(兼容旧字段名) */
orchestratorId?: string;
createdAt: string;
@@ -44,6 +48,7 @@ export function toRunSnapshotMeta(snapshot: RunSnapshot): RunSnapshotMeta {
bookId: snapshot.bookId,
label: snapshot.label,
kind: snapshot.kind,
instanceId: snapshot.instanceId,
orchestratorId: snapshot.orchestratorId,
createdAt: snapshot.createdAt,
note: snapshot.note,