Files
deepseek-harness/docs/core-data-structures/session-query.zh.md
Ziya 5270dcd61d docs(i18n): core-data-structures and postmortem batch — 22 bilingual pairs
core-data-structures 18 篇(core.md 因超长仍在产出、随后补)、
postmortem 3 篇与 RFC 前门 README 配对;流水线 + 二遍校验产出。
生成文件 docs/rfc/INDEX.md(gen-rfc-index 产物)列入排除。中文侧
页内锚点统一指向英文侧锚名,满足配对门禁的链接目标一致规则。
2026-07-15 23:11:25 -07:00

2.0 KiB
Raw Blame History

Session Query

English | 中文

对实时优先的逻辑会话语料库进行精确读取。package契约定义了源优先级、动态可选持久化、克隆、surface 分类、有界窗口与类型化错误。全文搜索是一个独立提议的 SQLite 阶段。

源码:packages/session-query/session-query/src/types.ts

逻辑记录

SessionRecord 由跨语料库列表返回。它独立于克隆的实时优先 header 暴露源可用性。SessionEventRecord 是一个轻量的原始日志投影;分类使用与 model-history 推导相同的 foldSurface() 状态转换。

export type SessionEventSurface = 'current' | 'shadowed' | 'log-only'
export interface SessionRecord {
  header: SessionHeader
  live: boolean
  persisted: boolean
}
export interface SessionEventRecord {
  sessionId: SessionId
  seq: number
  type: SessionEventType
  time: number
  surface: SessionEventSurface
}

有界事件读取

请求指定一个原始 seq 以及可选的前后邻近数量。结果携带 SessionHeader 而非可用性标志,使已知的实时目标可以独立于持久化健康状态。

export interface SessionEventReadRequest {
  sessionId: SessionId
  seq: number
  before?: number
  after?: number
}
export interface SessionEventWindow {
  session: SessionHeader
  target: SessionEvent
  events: SessionEvent[]
  startSeq: number
  endSeq: number
}

错误

封闭的 code 联合类型区分请求校验、目标缺失、surface 日志格式错误、可选后端失败与源元数据矛盾。

export type SessionQueryErrorCode =
  | 'SESSION_QUERY_EVENT_NOT_FOUND'
  | 'SESSION_QUERY_INVALID_CONFIG'
  | 'SESSION_QUERY_INVALID_SURFACE'
  | 'SESSION_QUERY_INVALID_WINDOW'
  | 'SESSION_QUERY_PERSISTENCE_FAILED'
  | 'SESSION_QUERY_SESSION_NOT_FOUND'
  | 'SESSION_QUERY_SOURCE_CONFLICT'