跳到主要内容

Rabetbase CLI Changelog

这里记录 Rabetbase CLI 面向用户可感知的版本更新。重点关注:你现在能做什么、体验变好了哪里、哪些问题被修掉了。


v2.1.6(2026-04-21)

本次重点

  • --jq 安装链路彻底稳定了:CLI 现在内置 jq sidecar,安装时不再依赖 node-jq 去 GitHub 下载二进制。默认查找顺序为 JQ_PATH → CLI 内置 jq → PATH 上的 jq,更适合中国网络环境、离线镜像和 CI 场景。
  • 研发态 CLI 也能直接查真实数据了:新增 rabetbase data filterrabetbase data getOne,开发者可以在不切到运行态 CLI 的情况下直接确认数据集里的真实记录与返回结构。
  • 机器可读契约同步更新rabetbase schema / --help 现在会一起暴露新的 data service 与 jq 行为描述,AI Agent、脚本和文档都更容易对齐到同一套命令面。

修复与优化

  • JQ 覆盖逻辑更可预期:如果显式设置了 JQ_PATH 但路径无效,CLI 会直接报错,不会静默回退到别的 jq。
  • 安装失败面更小:不再因为外部二进制下载被拦截,导致整个 CLI 安装失败。

v2.1.5(2026-04-17)

本次重点

  • 安装体验更统一了:文档、脚手架、升级流程和 CLI 输出里的 Skill 安装命令现在保持一致,不再出现“这里一个写法、那里一个写法”的情况。
  • 照着文档执行更不容易出错:如果你是第一次安装,或者在给同事写接入说明,这个版本会减少命令示例不一致带来的困惑。

v2.1.4(2026-04-17)

本次重点

  • SQL 拉取更安静了:执行 sql pull 时,不会再因为“同步时间变了”这种无关差异,让你看到一堆并不重要的文件改动。
  • 真正有变化才提示你:现在更接近用户预期,只有 SQL 内容本身变了,才会触发后续处理。

v2.1.3(2026-04-17)

本次重点

  • v2.1.3-beta.0 的能力正式转正:如果你之前已经在试用页面生成、SQL 生命周期管理、菜单同步和版本策略,这个版本意味着这些能力进入更稳定的可用阶段。

v2.1.3-beta.0(2026-04-16)

本次重点

  • 标准页面生成更适合大任务了:页面生成进入异步工作流,长时间生成不再需要死等,更适合 AI Agent、自动化流水线和多人协作场景。
  • 本地 SQL 管理更完整了:你可以更自然地在本地管理 SQL 的创建、同步和状态,而不是把它当成一次性脚本。
  • BFF / SQL 命令更统一:创建命令开始统一到 create 语义,学习成本更低,也更符合直觉。
  • 菜单同步结果更好接后续流程:同步完成后,返回结果更适合继续做自动化处理。
  • 升级策略更清晰:CLI 开始支持更明确的版本提示和升级策略,减少“明明升级了却不是预期版本”的情况。

修复与优化

  • 减少接口返回不一致导致的失败:在 BFF、菜单、SQL、数据库连接这类能力上,CLI 对后端返回格式更稳了。
  • 升级结果更可预期cli update 不再容易装到一个“不是你想要的版本”。

v2.1.2(2026-04-14)

本次重点

  • v2.1.2-beta 这一轮能力正式稳定:如果你之前已经在试用新的配置体系、多应用规则和数据库连接兼容修复,这个版本可以作为更稳的落地版本使用。

v2.1.2-beta.3(2026-04-14)

本次重点

  • 这是一次发布前收口版本:对用户可见功能变化不大,主要是为了让后续稳定版更干净、更稳定。

v2.1.2-beta.2(2026-04-14)

本次重点

  • 数据库连接创建更稳了:如果你在创建 DB 连接时遇到过“明明创建成功了,CLI 却拿不到结果”的问题,这个版本重点修了这类兼容问题。
  • 后续动作更不容易断:数据库连接创建完成后,自动分析等后续步骤衔接更稳定。

v2.1.2-beta.1(2026-04-12)

本次重点

  • Beta 验证版:主要用于收口和验证 v2.1.2-beta.0 这一轮大改动,本身没有新增用户功能。

v2.1.2-beta.0(2026-04-12)

本次重点

  • 多应用体验明显变清晰了:默认应用、项目配置、全局配置之间的关系更容易理解,也更不容易“连错应用”。
  • 旧项目迁移更自然:很多 legacy 配置会在读取阶段自动收敛成新结构,用户不需要先手动整理一遍才能继续用。
  • doctor 更有用了:现在看到的是“最终实际生效的配置”,排查配置问题更直观。
  • 命令命名更统一:像 app remoteapi generate 这类命名更贴近用户心智,减少“命令名看不懂职责”的问题。

修复与优化

  • 修复默认应用容易选错的问题:尤其是项目已有配置时,不会再莫名其妙被全局默认应用覆盖。
  • 修复多应用场景下切换应用的歧义app use 的结果更符合用户预期。

v2.1.1(2026-04-09)

本次重点

  • BFF 模板示例更准确了:ENDPOINT 类型接口路径的示例和平台当前约定保持一致,新建脚本后更容易直接上手。

v2.1.1-beta.0(2026-04-09)

v2.1.1-beta.02.1.x 这一轮的重要起点:数据库连接能力开始成型,配置与多应用体验也开始明显收敛。

本次重点

  • 数据库连接开始真正可用:你可以在 CLI 里更完整地管理数据库连接、测试连接、发起结构分析、查看表和差异。
  • 默认输出更友好了:像 api list 这类命令在未显式指定格式时,展示更适合人直接阅读。
  • 多应用和配置边界更清晰:项目配置、全局配置、默认应用之间的关系开始收敛,减少误操作。
  • Skill 配套更完整:如果你把 CLI 接进 AI 助手或 Agent,这一版开始明显更顺手。

修复与优化

  • 减少误写配置的风险:在不合适的目录里,CLI 不会再默默写出一份你并不想要的配置。
  • 修复默认应用解析异常:单应用老配置场景下,不会再错误套用全局默认应用。

v2.0.13(2026-04-06)

新功能

  • sql pull 命令:新增 rabetbase sql pull,从远端批量拉取自定义 SQL 到 .rabetbase/sql/ 目录。支持 --sqlcode / --name 过滤、--force 强制覆盖、--dry-run 预览;交互模式下覆盖前二次确认;文件含 @lovrabet 头注释,同名冲突自动追加 sqlCode 后缀。
  • sql/shared.ts 公共模块:抽取 resolveSqlLocalDirsafeSqlFileBaseNameassignSqlFileNamesbuildPulledSqlFileContent,供 pull 及后续命令复用。

Bug 修复

  • 子目录执行命令时路径锚定失败:在项目子目录下运行命令时,CLI 无法找到 .rabetbase.json,导致配置读取失败。新增 findProjectRootDirectory(),从 cwd 向上查找含配置文件的目录。
  • sql list 权限不足时阻断列表展示:当用户对 listDatasets API 无权限时,rabetbase sql list 直接报错退出。修复后失败时静默回退为展示原始 dbId

v2.0.12(2026-04-05)

新功能

  • 项目级 inherit: false 配置隔离:项目 .rabetbase.json 新增顶层字段 inherit(默认 true),设为 false 时不再读取 ~/.rabetbase.json 进行合并,保证项目配置完全隔离。

v2.0.11(2026-04-05)

新功能

  • upgrade --yes 全流程非交互升级:将 --yes 标志透传至 skills remove / skills add 子命令,支持无需人工确认的自动化升级流程。

v2.0.10(2026-04-05)

新功能

  • api --global 开关rabetbase api list / rabetbase api pull 新增 --global flag。默认仅从项目级 .rabetbase.json 解析 apps,传入 --global 时使用全局 + 项目合并配置。
  • DEFAULT_API_DIR 常量统一:提取 DEFAULT_API_DIR = "./src/api"constant/paths.ts,消除多处硬编码魔法字符串。
  • getMultiAppConfigs scope 参数:新增 scope 参数(project | merged),支持按配置层级读取 apps。

Bug 修复

  • 跨项目全局 apps 意外混入:在项目 A 目录下运行 rabetbase api list,会意外显示全局配置中属于项目 B 的 apps。修复后默认仅读项目级 apps,需 --global 显式选择合并视图。
  • api pull 多应用分支缺少 apiDir fallback:多应用模式下输出目录使用硬编码而非 profile 或 context 中的 apiDir,补齐完整 fallback 链。

v2.0.9(2026-04-05)

新功能

  • @/ 路径别名tsconfig 新增 baseUrl + paths 配置,全量替换大量文件中的相对路径导入为 @/* 别名。
  • 输出格式精简:移除 table 输出格式,OutputFormat 收窄为 json | pretty | compress;新增 normalizeLegacyOutputFormat() 兼容旧配置。

Bug 修复

  • jq 错误消息前缀重复:修复 jq: jq: error: ... 这类重复前缀显示。
  • --jq 搭配 pretty 格式时报无意义错误:检测到 --jq 时自动切换为 json 格式。
  • execFileSync stderr 捕获不完整:显式指定 stdio,确保完整捕获失败输出。

v2.0.8(2026-04-04)

新功能

  • schema 命令:新增 rabetbase schema,导出与 --help 同源的机器可读命令元数据 JSON,供 LLM Agent、IDE 插件及 CI 工具链自动发现所有命令、Flag 及风险等级。
  • --jq 全局 Flag:新增全局 --jq <expr>,搭配 --format json/compress 对输出执行 jq 过滤。
  • --format compress:新增 compress 输出格式,单行紧凑 JSON 信封,去掉空白缩进以最小化 token 开销。
  • app list 结构升级:返回结构升级为 { items, meta },每个 app 标注 definedInglobal / project / both),meta 包含配置文件路径与默认来源信息。
  • app 位置参数app add <name> / use <name> / remove <name> 统一使用位置参数替代 --name flag;app remove 风险等级提升为 high-risk-write
  • dataset detail 扩充:解析 requestBody / responseBody JSON、dbtable 摘要、relatedPagesformatRulesvalidateRulesextenddoVersioncolumnCodeListWithDeleted
  • 配置分层架构:context 配置加载重构为 loadRawConfigLayers() / readRawConfigWithLayers() / inspectCliConfigJsonFile(),JSON 解析失败时区分 missing / empty / error 并写 stderr 提示。
  • doctor Config JSON 诊断:新增配置文件 JSON 语法检测段,诊断全局/项目配置文件合法性。

Bug 修复

  • 配置文件 JSON 解析错误被静默吞掉.rabetbase.json 存在语法错误时 CLI 静默忽略该文件。重构后解析失败会输出 stderr 警告。
  • app use 在项目目录下找不到全局配置的 app:修复名称校验逻辑,改用全局 + 项目合并视图。
  • app add --format flag 与管线级 --format 冲突:应用默认格式 flag 更名为 --defaultFormat

文档更新时间:2026-04-21
涉及版本:v2.1.6v2.1.5v2.1.4v2.1.3v2.1.3-beta.0v2.1.2v2.1.2-beta.0v2.1.2-beta.3v2.1.1v2.1.1-beta.0v2.1.0v2.0.8v2.0.13
仓库:rabetbase-cli