omdsh-dev/session-teleport ↗★ 2
@mattheliu/session-teleport
PostgreSQL-backed single-writer session handoff service for DeepSeek Harness
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:omdsh-dev/session-teleport说明文档
阅读完整 README ↗session-teleport
DeepSeek Harness 多设备 Session 接力插件。PostgreSQL 是唯一在线权威;同一时间只有一台设备持有写入凭据,移交后旧凭据立即被 writer_epoch 拒绝。
这是独立插件仓库,只分发 BSD-3-Clause 许可下的 Session Teleport 代码。
DSH peer packages 是外部依赖,保留各自许可,不在本仓库中复制、镜像或重新授权。
本包保留 private: true,避免本地发布演练误触 npm 发布;受支持的插件源是
https://github.com/omdsh-dev/session-teleport,安装时必须固定到完整 commit。
当前适配器使用 npm next 包做严格编译基线:@deepseek-ai/cordis@4.0.1-rc.4,
以及 @deepseek-ai/dsh-session、@deepseek-ai/dsh-session-persistence、
@deepseek-ai/dsh-session-persistence-jsonl 的 0.1.0-rc.6。这些精确版本只用于
开发和验证;安装时仍由目标 DSH 环境按 peerDependencies 提供兼容版本。
能做什么
- 原样保存 JSON event envelope,包括扩展字段。
- 在单个事务中校验 writer、revision、next seq 和连续事件序号。
- 通过 idempotency key 与请求摘要安全重认“已提交但响应丢失”的重试。
- 生成一次性、限时 handoff code;接管后旧 writer token 被 fencing。
- 旧设备丢失时可由独立管理员凭据执行显式恢复接管,并审计每次 writer 变化。
- 可对既有 Session 做无写入 dry-run、单事务导入和受约束的回滚切换。
- 可从旧 DSH Profile 临时挂载只读 overlay,经
inspect()抓取 Session, 不必手写 TypeScript,也不解析 JSONL/SQLite 物理文件。 - 提供计划优先的
install / upgrade / uninstall / doctor生命周期工具; 只接受完整 commit pin,结构校验失败会恢复旧依赖。 - 提供一致快照、增量读取与 SSE 观察端点。
- 提供 DSH
PersistenceBackendadapter 和 profile bundle patch。 - 将每个 Session 的 writer credential 保存为本机 0600 原子文件。
- 在非 loopback 监听时强制配置服务 Bearer token。
架构
DSH device A ─┐
DSH device B ─┼─ HTTP/SSE Teleport service ─ PostgreSQL
observer ─┘
客户端不直接连接 PostgreSQL。PostgreSQL 负责事务、行锁、CAS、writer fencing 和幂等记录;SSE 只是通知通道,客户端仍从权威表读取数据。
安装插件
首次安装从目标 commit 的本地 checkout 运行生命周期工具。默认只输出计划:
node dist/plugin-cli.js install --profile web --revision
node dist/plugin-cli.js install --profile web --revision \
--apply --profile-stopped --cutover-safe
目标环境需要通过其正常、受支持的软件源解析匹配版本的 @deepseek-ai peer
packages。本仓库不分发这些依赖,也不要求把软件源配置或访问凭据放入仓库。
为运行该 profile 的每台设备配置:
export DSH_TELEPORT_ENABLE=1
export DSH_TELEPORT_URL=https://teleport.example.com
export DSH_TELEPORT_API_TOKEN=a-long-random-service-token
export DSH_TELEPORT_DEVICE_ID=office-mac
# 可选:启动健康检查超时,默认 5000 毫秒
export DSH_TELEPORT_HEALTH_TIMEOUT_MS=5000
仅安装 bundle 不会切换 Session authority:默认仍使用 RC.6 自带 JSONL,Teleport
adapter 保持禁用。先启动 Teleport 服务并验证 /health,再停止 profile、设置
DSH_TELEPORT_ENABLE=1 并重启,才会关闭 JSONL、启用 Teleport。显式启用后如果
服务不可达,profile 会拒绝启动,不会静默回退到另一份权威存储。