mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-05 04:19:02 +08:00
fix(upgrades): add check for empty content in error block creation during upgrade to v7
This commit is contained in:
parent
636c788e2b
commit
5fe1d077e3
@ -9,6 +9,7 @@ import type {
|
|||||||
} from '@renderer/types/newMessage'
|
} from '@renderer/types/newMessage'
|
||||||
import { AssistantMessageStatus, MessageBlockStatus } from '@renderer/types/newMessage'
|
import { AssistantMessageStatus, MessageBlockStatus } from '@renderer/types/newMessage'
|
||||||
import { Transaction } from 'dexie'
|
import { Transaction } from 'dexie'
|
||||||
|
import { isEmpty } from 'lodash'
|
||||||
|
|
||||||
import {
|
import {
|
||||||
createCitationBlock,
|
createCitationBlock,
|
||||||
@ -258,12 +259,14 @@ export async function upgradeToV7(tx: Transaction): Promise<void> {
|
|||||||
|
|
||||||
// 10. Error Block (Status is ERROR)
|
// 10. Error Block (Status is ERROR)
|
||||||
if (oldMessage.error && typeof oldMessage.error === 'object' && Object.keys(oldMessage.error).length > 0) {
|
if (oldMessage.error && typeof oldMessage.error === 'object' && Object.keys(oldMessage.error).length > 0) {
|
||||||
const block = createErrorBlock(oldMessage.id, oldMessage.error, {
|
if (isEmpty(oldMessage.content)) {
|
||||||
createdAt: oldMessage.createdAt,
|
const block = createErrorBlock(oldMessage.id, oldMessage.error, {
|
||||||
status: MessageBlockStatus.ERROR // Error block status is ERROR
|
createdAt: oldMessage.createdAt,
|
||||||
})
|
status: MessageBlockStatus.ERROR // Error block status is ERROR
|
||||||
blocksToCreate.push(block)
|
})
|
||||||
messageBlockIds.push(block.id)
|
blocksToCreate.push(block)
|
||||||
|
messageBlockIds.push(block.id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 11. Create the New Message reference object (Add usage/metrics assignment)
|
// 11. Create the New Message reference object (Add usage/metrics assignment)
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import db from '@renderer/databases'
|
import db from '@renderer/databases'
|
||||||
|
import { upgradeToV7 } from '@renderer/databases/upgrades'
|
||||||
import i18n from '@renderer/i18n'
|
import i18n from '@renderer/i18n'
|
||||||
import store from '@renderer/store'
|
import store from '@renderer/store'
|
||||||
import { setWebDAVSyncState } from '@renderer/store/backup'
|
import { setWebDAVSyncState } from '@renderer/store/backup'
|
||||||
@ -361,7 +362,7 @@ export function stopAutoSync() {
|
|||||||
export async function getBackupData() {
|
export async function getBackupData() {
|
||||||
return JSON.stringify({
|
return JSON.stringify({
|
||||||
time: new Date().getTime(),
|
time: new Date().getTime(),
|
||||||
version: 3,
|
version: 4,
|
||||||
localStorage,
|
localStorage,
|
||||||
indexedDB: await backupDatabase()
|
indexedDB: await backupDatabase()
|
||||||
})
|
})
|
||||||
@ -390,6 +391,14 @@ export async function handleData(data: Record<string, any>) {
|
|||||||
if (data.version >= 2) {
|
if (data.version >= 2) {
|
||||||
localStorage.setItem('persist:cherry-studio', data.localStorage['persist:cherry-studio'])
|
localStorage.setItem('persist:cherry-studio', data.localStorage['persist:cherry-studio'])
|
||||||
await restoreDatabase(data.indexedDB)
|
await restoreDatabase(data.indexedDB)
|
||||||
|
|
||||||
|
if (data.version === 3) {
|
||||||
|
await db.transaction('rw', db.tables, async (tx) => {
|
||||||
|
await db.table('message_blocks').clear()
|
||||||
|
await upgradeToV7(tx)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
window.message.success({ content: i18n.t('message.restore.success'), key: 'restore' })
|
window.message.success({ content: i18n.t('message.restore.success'), key: 'restore' })
|
||||||
setTimeout(() => window.api.reload(), 1000)
|
setTimeout(() => window.api.reload(), 1000)
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user