Skip to content

Releases: mr-mihu/dsh-dbhub-live

v4.0.0

Choose a tag to compare

@mr-mihu mr-mihu released this 07 Sep 01:15

dsh-dbhub-live v4.0.0

大版本架构重构:零知识凭据 + 一次性进程执行

核心变化

  • 零知识模型契约:密码/用户名/完整 DSN 永不进入模型上下文;模型只见 source 句柄与元数据(类型/主机/端口/库名)
  • 无常驻 dbhub 服务:每次调用 spawn 一条一次性进程,跑完即杀——天然并发、故障隔离、多实例安全
  • 模型工具收缩为恒定 4 个:dbhub_configure / dbhub_list_sources / dbhub_execute_sql / dbhub_search_objects
  • source 解析精确优先:多环境(…_demo 等)不再错连到 default 连接
  • 配置交互:已配置且可连通→自动确认、零输入;校验失败才提问,并提供「使用现有连接」确认项;「仅填密码」仅在非密信息齐备时提供;保存后宿主侧自动连通性校验随回执返回
  • 设置卡片:连接摘要实时刷新、连接测试秒回、无重复取消项
  • 原子持久化(tmp+rename)、按 DSH_HOME 实例隔离

破坏性变更(相对 3.x)

  • 移除 dbhub_query / dbhub_query_objects(内联 DSN 会泄漏密码,取消)
  • 凭据录入/修改只允许经界面输入,configure 不再接受 dsn 参数
  • 移除常驻服务相关配置(空闲回收等)

安装

  • dsh plugin --profile web add dsh-dbhub-live@4.0.0 (npm 发布后可 npm 安装)
  • 或本地:dsh plugin --profile web add dsh-dbhub-live-4.0.0.tgz(本 Release 附件)

v3.1.3

Choose a tag to compare

@mr-mihu mr-mihu released this 29 Aug 08:13

v3.1.3

多环境故障隔离:一个环境的数据库连不上,不再拖垮整个插件。

修复

  • 常驻服务多源启动崩溃(3.1.2 事故):dbhub 对启动时登记的源是串行即连、一源拒连整进程 Fatal 退出——配置了第二个环境(如测试库 ECONNREFUSED)后,连正常环境的工具也全部不可用,报错表现为 dbhub exited (code 1) … Fatal error: connect ECONNREFUSED <host>:<port>。现在生成的 dbhub.toml 每个源带 lazy = true(dbhub ≥1.2 原生懒连接,老版本会忽略该字段、行为不变):启动只登记不连库,execute_sql_<id> 等工具照常注册;不可达的环境仅在该环境自己的查询上返回 SOURCE_UNREACHABLE 连接错误,其余环境与常驻服务不受影响。
  • 连接失败的结果现在也附带目标环境标签(主机/端口/库,密码打码),首次懒连失败时能一眼看清是哪个环境不可达。

变化

  • dbhub_execute_sql / dbhub_list_sources 描述与文案注明:连接按环境懒建立,列出的 source 不代表数据库当前可达(卡片 🟢 仅代表服务在线)。
  • 状态卡片「运行中」语义更明确:服务在线 ≠ 每个环境可达,以查询实际返回为准。

安装与更新

# 安装
dsh plugin --profile web add dsh-dbhub-live

# 更新(写明当前发布的版本号)
dsh plugin --profile web update dsh-dbhub-live@3.1.3

更新后重启 dsh web 生效。

验证

  • 真实 dbhub 1.2.1 协议级 A/B:旧 toml(eager)精确复现启动 Fatal 退出;新 toml(lazy)下存活源在宕机源调用前后均正常应答,宕机源返回 SOURCE_UNREACHABLE isError。
  • 隔离实例冷启动(tarball 安装 + 注入宕机环境):dbhub 服务已加载(6 个工具),生成的 toml 每源含 lazy = true
  • npm run check + 全部单元测试通过。

v3.1.2

Choose a tag to compare

@mr-mihu mr-mihu released this 29 Aug 01:08

v3.1.2

可配置参数 UI、工作区连接管理、恒定工具声明、多语言与一批实战修复。

新增

  • 设置卡片(整行折叠,原生观感):折叠态一行展示运行状态徽章(🟢/🟡/🔴/⚪)、环境数量与启用/禁用开关;展开后分「状态 / 配置 / 工作区连接」三块。
  • 可配置参数:自动更新间隔(天)、空闲回收(分钟)在卡片内直接编辑、保存即时生效并持久化;优先级:用户设置 > 进程环境变量 > 内置默认。自动安装包收敛为环境变量旋钮(DSH_DBHUB_PACKAGE)。
  • 工作区连接管理:卡片内列出工作区 × 环境的连接(打码 DSN、source 值、已保存/自动徽章),支持新增(同一工作区多环境)、修改(自动项改为手动即转已保存)、删除;变更即时生效(常驻服务重启并重注册)。
  • dbhub_list_sources 工具:模型可随时枚举全部已注册连接源与对应 source 值。
  • 恒定工具声明:常驻查询合并为 dbhub_execute_sql(source, …) / dbhub_search_objects(source, …),工具声明固定 6 个,不随工作区/环境数量膨胀上下文。
  • 多语言:卡片文案与宿主反馈/日志跟随 dsh 界面语言(zh/en,读取 locale.preference);工具描述保持产品中文约定。
  • 英文 READMEREADME.en.md,双语同步规则入 AGENTS.md)。

修复

  • 修复 spawnServer 引用未导入的 DATA_DIR(启用时「启动 dbhub 失败」)。
  • 修复无数据源时空指纹绕过 toml 直接 spawn 的问题(零源恒不拉起进程)。
  • 修复设置接线回调引用 apply() 局部 subprocess 导致 ReferenceError 静默杀死发布链路(状态卡片不更新、工作区连接不刷新)。
  • 卡片连接编辑后即时重启服务重注册工具;dbhub_query 拒绝 **** 脱敏密码并引导使用常驻工具。
  • @deepseek-ai/schemastery 动态导入 + 内置最小 schema 兜底:本地目录(symlink)安装不再因裸导入解析失败而启动失败。
  • 初始化健壮性:DSH_HOME 实例隔离;store v2(environments)+ v1 自动迁移;目录被删自动重建;写入被拦截仅告警并内存态继续;dbhub.toml 失败可见化并自动重试;__proto__ 防原型污染。

兼容与升级

  • 数据仍在 $DSH_HOME/storages/dsh-dbhub-live/;v1 格式 credentials.json 启动时自动迁移为 {environments:{default:…}}
  • 工具名变化:dbhub_execute_sql_<工作区>dbhub_execute_sql(source=<工作区>)(source 值见 dbhub_list_sources)。
  • 调试包版本策略入 AGENTS.md(内部调试 3.1.1-dev.N,发布用正式号)。

v3.0.0

Choose a tag to compare

@mr-mihu mr-mihu released this 27 Aug 09:56

v3.0.0

模块化重构 + 懒加载 + 实时状态卡片 + 初始化健壮性。遵循官方 DeepSeek Harness 插件规范打包。

新增与改进

  • 模块化重构:单文件 lib/index.mjs 拆分为 config/state/runtime/mcp/adhoc/collect/tools 单向依赖模块;node:test 单元测试 25 个。
  • 懒加载启动:boot 不阻塞 GUI,工具立即注册;环境初始化推迟到首次调用(并发查询共享一次初始化并自动等待就绪)。
  • 启用 / 禁用开关:持久化到 credentials.json;禁用时所有 dbhub 工具立即返回「插件已禁用」并释放常驻进程,重开即用。
  • 浏览器状态卡片(设置 → 插件 → dsh-dbhub-live):🟢/🟡/🔴 状态徽章、已注册工具数、工作模式(懒加载)、最近错误(红色)、启用/禁用开关;手写 lazy-CJS client bundle,无构建步骤。
  • 初始化健壮性:按 $DSH_HOME 实例隔离存储;升级/手改遗留配置自动清洗并一次性回写迁移(normalizeStore/normalizeRuntime,未知字段向前兼容);运行目录被删除自动重建;写入被拦截仅告警并继续内存态运行;dbhub.toml 写入失败成为可见初始化错误并自动重试;__proto__ 键防原型污染。
  • 打包规范化exports././client/cordis.patch.yml)、dsh.clientpeerDependenciescheck/test 脚本,符合官方插件规范;@deepseek-ai/schemastery 弹性依赖(动态 import + 内置最小 schema 兜底),本地目录链路安装不会启动失败。

Bug 修复

  • 修复 spawnServer 引用未导入的 DATA_DIR(禁用→启用时报「启动 dbhub 失败: DATA_DIR is not defined」)。
  • 修复无工作区数据源时可能绕过 toml 直接拉起 dbhub 进程的问题(零源早退移到指纹判断之外,空 [[sources]] 永不写入)。已同步到 AGENTS.md 防回归。

数据与兼容

  • 数据仍在 $DSH_HOME/storages/dsh-dbhub-live/(v2 遗留的 credentials.json/runtime.json 在启动时自动规范化迁移,无需手工处理)。
  • 现有工作区持久连接与 dbhub_configure 流程完全兼容。