Files
deepseek-harness/packages/session-registry/session-registry-live/README.zh.md

2.4 KiB
Raw Blame History

@deepseek-ai/dsh-session-registry-live

English | 中文

把本进程内每个活跃会话发布到会话注册表,因此 dsh list-sessions 能列出服务端按需创建的所有会话,而不是只列出启动器一开始铸出的那一个。

行为

注册跟随会话生命周期,而不依赖启动器已知的身份:插件会发布挂载时已存在的每个会话,以及此后每个 session/created,并在会话被 dispose(资源释放)时移除对应记录。因此同一条路径既服务 TUI 的单个会话,也服务浏览器 UI 的每对话一个的多个会话。

会话头不带 cwd 时会被跳过:列表的工作区列拿不到任何真实内容可展示。

session/title 事件通过 retitle 镜像到记录上,因此最新记录的标题能到达列表。把标题带在记录里,正是让读取方与后端无关的原因:日志的位置、文件格式和压缩都是逐部署的选择(随附的 TUI 写入 Zstandard 压缩的 JSONL),因此独立进程无法以可移植的方式解析它。

发布是 fire-and-forget,失败只发出警告:注册表是一项可观测性辅助设施,因此注册表故障绝不能让正常工作的 agent(智能体)会话失败。会话在其注册仍在途中时结束,会留下一个 tombstone,让即将完成的注册观测到,因此它的记录不会一直存活到某次基于 pid 的清理才消失。

配置

无。每条发布的记录都从会话本身派生而来,因此没有留下任何逐部署的选择需要配置。

模型体验

无。该包(package)不注册工具、不注入提示词,也不追加会话事件;它只把既有的生命周期事件和标题事件镜像进宿主侧的进程记录。

KV 缓存影响

与实时请求相互独立:该插件读取会话事件,并写入一个独立的注册表文件,不触碰任何请求前缀,因此它无法使提供方 cache 复用失效。

已知限制与延期工作

  • 被跳过的会话是不可见,而非延后处理——创建时不带 cwd 的会话永不发布,即使之后工作区变为已知也不会;没有重新检查机制。
  • 标题镜像每次修订都要付出一次注册表写入——每个 session/title 事件都会触发一次加锁的读取、修改和写入,因此改名节奏激进的部署要按修订次数付出这些写入。