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 filter与rabetbase data getOne,开发者可以在不切到运行态 CLI 的情况下直接确认数据集里的真实记录与返回结构。 - 机器可读契约同步更新:
rabetbase schema/--help现在会一起暴露新的dataservice 与 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 remote、api generate这类命名更贴近用户心智,减少“命令名看不懂职责”的问题。
修复与优化
- 修复默认应用容易选错的问题:尤其是项目已有配置时,不会再莫名其妙被全局默认应用覆盖。
- 修复多应用场景下切换应用的歧义:
app use的结果更符合用户预期。
v2.1.1(2026-04-09)
本次重点
- BFF 模板示例更准确了:ENDPOINT 类型接口路径的示例和平台当前约定保持一致,新建脚本后更容易直接上手。
v2.1.1-beta.0(2026-04-09)
v2.1.1-beta.0是2.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 公共模块:抽取
resolveSqlLocalDir、safeSqlFileBaseName、assignSqlFileNames、buildPulledSqlFileContent,供pull及后续命令复用。
Bug 修复
- 子目录执行命令时路径锚定失败:在项目子目录下运行命令时,CLI 无法找到
.rabetbase.json,导致配置读取失败。新增findProjectRootDirectory(),从cwd向上查找含配置文件的目录。 - sql list 权限不足时阻断列表展示:当用户对
listDatasetsAPI 无权限时,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新增--globalflag。默认仅从项目级.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格式。execFileSyncstderr捕获不完整:显式指定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 标注definedIn(global/project/both),meta包含配置文件路径与默认来源信息。 - app 位置参数:
app add <name>/use <name>/remove <name>统一使用位置参数替代--nameflag;app remove风险等级提升为high-risk-write。 - dataset detail 扩充:解析
requestBody/responseBodyJSON、dbtable摘要、relatedPages、formatRules、validateRules、extend、doVersion、columnCodeListWithDeleted。 - 配置分层架构: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.6、v2.1.5、v2.1.4、v2.1.3、v2.1.3-beta.0、v2.1.2、v2.1.2-beta.0~v2.1.2-beta.3、v2.1.1、v2.1.1-beta.0、v2.1.0、v2.0.8~v2.0.13
仓库:rabetbase-cli