Releases: mr-mihu/dsh-dbhub-live
Releases · mr-mihu/dsh-dbhub-live
Release list
v4.0.0
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
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_UNREACHABLEisError。 - 隔离实例冷启动(tarball 安装 + 注入宕机环境):
dbhub 服务已加载(6 个工具),生成的 toml 每源含lazy = true。 npm run check+ 全部单元测试通过。
v3.1.2
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);工具描述保持产品中文约定。 - 英文 README(
README.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
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.client、peerDependencies、check/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流程完全兼容。