Skip to content

数据与持久化

会话数据模型

核心数据类型为 TranscriptSession

字段类型说明
idstring唯一标识符
schemaVersionnumber当前为 3
titlestring显示标题
date / timestringYYYY-MM-DD / HH:mm
transcriptstring纯文本转录
translatedTranscriptTranscriptTranslationData可选翻译文本
durationnumber持续时间(毫秒)
tokensTranscriptTokenData[]带时间戳的 Token
speakersTranscriptSpeaker[]说话人标签
segmentsTranscriptSegment[]带时间戳的分段
postProcessTranscriptPostProcessAI 简报输出
askHistoryTranscriptAskTurn[]问答对话轮次
mindMapTranscriptMindMap思维导图数据
topicIdstring关联主题
tagIdsstring[]关联标签
providerIdstring使用的 ASR Provider
statusTranscriptSessionStatusrecordinginterruptedcompleted

存储架构

┌─────────────────────────────────────────┐
│  sessionStore (Zustand)                  │
│  运行时状态 + sessions 数组               │
│  ↕ 读/写                                 │
├──────────────────────────────────────────┤
│  sessionRepository(内存缓存)            │
│  cachedSessions: TranscriptSession[]     │
│  ↕ 异步持久化                             │
├──────────────────────────────────────────┤
│  sessionStorage (IndexedDB)              │
│  DB: 'delive-app', store: 'sessions'     │
│  索引: 'updatedAt'(排序检索)             │
└──────────────────────────────────────────┘

IndexedDB Schema

数据库 delive-app 版本 3,包含四个对象存储:

存储Key Path索引内容
sessionsidupdatedAt转录会话
metakey迁移标志
settingsid设置镜像
tagsid标签镜像

localStorage 键

内容
desktoplive_settings应用设置(权威来源)
desktoplive_tags标签
desktoplive_topics主题
language界面语言
theme明暗模式偏好

设置和标签 镜像 到 IndexedDB 以实现冗余。启动时如果 localStorage 为空但 IndexedDB 有数据,则从 IDB 恢复。

INFO

主题 存储在 localStorage 中,不包含在备份/导出中。

会话生命周期

创建

sessionStore.startNewSession() 通过 sessionRepository.createDraft() 创建草稿,状态为 recording,空转录和元数据。

自动保存

每个转录事件触发 scheduleCurrentSessionAutosave()1200ms 防抖。仅在快照有实质内容时才持久化。

完成

sessionStore.endCurrentSession() 调用 sessionRepository.completeSession() 设置 status: 'completed'。如果会话无内容,则删除草稿。

恢复

loadSessions() 时,任何 status: 'recording' 的会话被标记为 interruptedwasInterrupted: true。第一个有内容的中断会话成为 recoverySession。用户可以恢复或忽略。

备份与导入

  • 导出exportAllData() → 包含会话、标签和设置的 JSON 文件
  • 覆盖导入:替换所有数据(保留现有 API Key)
  • 合并导入:仅按 ID 添加新会话和标签
  • 规范化:导入时验证和修复数据结构

Released under the Apache 2.0 License.