morlay/dsh-plugin--packages-session-session-rdb ↗★ 9

@morlay/session-rdb

RDB durable session backend for DeepSeek Harness: implements both session-persistence and session-branch (rewind / retry / fork) providers. 支持SQLite和PostgreSQL,实现会话的持久化存储与分支管理,适合需要高可靠数据存储的用户。

Package
@morlay/session-rdb
Compatibility
Unverified
Harness peer range
workspace:*
Cordis peer range
workspace:*
Version
0.0.21-alpha.4
License
MIT
Last updated
Sep 20, 2026

Other repositories with this package name

Install

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:morlay/dsh-plugin#17db2e513964877a60c0d965cb6696c6539337f8&path:packages/session/session-rdb

配置

配置写在 ${DSH_HOME}/settings.yaml,settings namespace 为插件短名 session-rdb(与 cordis 插件 name 一致):

session-rdb:
  type: sqlite
  # path 省略时回落 cordis.patch.yml 的默认($DSH_HOME/sessions/sessions.sqlite,
  # 由 bundle patch 的 !!js 表达式求值);自定义路径请用绝对路径字符串。
  path: /absolute/path/to/sessions.sqlite
  journalMode: wal
  busyTimeout: 5000

settings.yaml 是纯 YAML(settings-local 用 yaml 库解析),不支持 !!js JS 表达式——!!js dshHomePath(...) 会被当作字面字符串。!!js 只在 cordis.patch.yml(bundle patch 层,loader 求值)有效。

字段即 Config 判别联合(见下);未写出的字段回落到 bundle patch / cordis.yml 的 config 默认值。PostgreSQL:

session-rdb:
  type: postgres
  connectionString: postgres://user:pass@localhost:5432/sessions

Config 类型:

type Config =
  | {
      type: "sqlite";
      /** SQLite 数据库文件路径;`:memory:` 用于测试。 */
      path: string;
      /** journal_mode:`wal`(默认)/ `delete` / `truncate` / `persist`。 */
      journalMode?: "wal" | "delete" | "truncate" | "persist";
      /** 写锁竞争等待毫秒数(默认 5000)。 */
      busyTimeout?: number;
    }
  | {
      type: "postgres";
      /** node-postgres 连接串;首次打开自动建表并写入 store 身份。 */
      connectionString: string;
      /** 目标 schema(默认 public,必须已存在)。 */
      schema?: string;
    };