@morlay/session-persistence-rdb:DeepSeek Harness 的 RDB 持久會話後端

前言

DSH 的插件化結構裏,會話持久化可以由後端插件提供。@morlay/session-persistence-rdb 面向需要把會話持久化落到 SQLite 或 PostgreSQL 的使用場景:它作爲 DSH 插件接入,提供 RDB durable session persistence backend,並通過配置選擇數據庫後端。

插件定位

@morlay/session-persistence-rdb 是 morlay 維護的 DeepSeek Harness 插件,許可證爲 MIT。它的核心定位是:爲 ctx.sessionPersistence 提供 SQLite / PostgreSQL 持久會話後端。

核心能力

下面列出該插件已確認提供的能力:

  • 提供 RDB(SQLite / PostgreSQL)持久會話後端,接口爲 ctx.sessionPersistence
  • 通過 drizzle 實現 PersistenceBackend<number>
  • 複用上游 PersistenceCoordinator 與契約測試套件。
  • 支持在配置中選擇 SQLite 或 PostgreSQL 後端。

安裝與啓用

安裝前先處理認證。GitHub Packages 的 registry 要求認證,公開包也一樣。需要在 profile 的 .npmrc 中爲 npm.pkg.github.com 配置訪問 token,例如:

//npm.pkg.github.com/:_authToken=<token>

確認 token 可用後,將插件安裝到目標 DSH profile。下面示例安裝到 web profile,並把 registry 限定在 @morlay scope:

dsh plugin --profile=web add "@morlay/session-persistence-rdb@^0.0.1" --config.@morlay:registry=https://npm.pkg.github.com/

這裏不要使用全局 --registry。如果全局指向 GitHub Packages,@deepseek-ai/* 等依賴也可能被解析到 GitHub Packages,導致安裝失敗。

典型用法

啓用後,在 settings.yaml 中使用 session-persistence-rdb namespace 配置後端類型。

SQLite 後端

配置字段包括 typepathjournalModebusyTimeout。示例結構如下:

session-persistence-rdb:
  type: sqlite
  path: <SQLite 文件路徑>
  journalMode: <journalMode 值>
  busyTimeout: <毫秒數>

PostgreSQL 後端

配置字段包括 typeconnectionString。示例結構如下:

session-persistence-rdb:
  type: postgres
  connectionString: <PostgreSQL 連接串>

settings.yaml 是純 YAML,不支持 !!js JS 表達式。!!js 只在 cordis.patch.yml(bundle patch 層,loader 求值)有效。

適用場景與注意

這個插件適合需要 SQLite 或 PostgreSQL 持久會話後端的 DSH 使用方。使用前注意:

  • 許可證爲 MIT。
  • 插件以當前 dsh 進程權限運行;安裝前應檢查源碼與許可證。
  • GitHub Packages 安裝需要 .npmrc token。
  • registry 必須限定在 @morlay scope,避免影響 @deepseek-ai/* 等依賴解析。
  • settings.yaml 不支持 !!js,不要把 !!js 表達式寫入該文件。

資源

  • GitHub:https://github.com/morlay/session-persistence-rdb.git
  • 社區目錄:本文未確認具體 URL。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜