diff --git a/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.test.ts b/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.test.ts index 75d1dce7473..e97ee88bd5b 100644 --- a/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.test.ts +++ b/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.test.ts @@ -150,3 +150,13 @@ it('preserves the open recovered draft when another writer deletes it', async () await loadCreationDrafts(true) expect(useCreationDraftSession.getState().entries).toEqual({}) }) + +it('retains discovered buffer identity and revision when the database record changes', async () => { + database.listDrafts.mockResolvedValue([{ ...draft('original'), revision: 1 }]) + await loadCreationDrafts() + const original = useCreationDraftSession.getState().entries['create-1'] + database.listDrafts.mockResolvedValue([{ ...draft('external update'), revision: 2 }]) + await loadCreationDrafts(true) + expect(useCreationDraftSession.getState().entries['create-1']).toBe(original) + expect(original.storedRevision).toBe(1) +}) diff --git a/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.ts b/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.ts index b5cb711bd09..d63e7e3869d 100644 --- a/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.ts +++ b/src/renderer/src/lib/workspace-creation-drafts/creation-draft-session.ts @@ -63,7 +63,7 @@ export function loadCreationDrafts(refresh = false): Promise { } } for (const draft of drafts) { - if (!entries[draft.id] || isUntouched(draft.id)) { + if (!entries[draft.id]) { entries[draft.id] = fromStored(draft) } }