Skip to main content

Rabetbase CLI Changelog

This page documents user-facing version updates for Rabetbase CLI. The focus is on what you can do now, what improved, and what bugs were fixed.


v2.1.6 (2026-04-21)

Highlights

  • --jq installation is now much more reliable: The CLI now bundles jq as a sidecar, so installation no longer depends on node-jq downloading binaries from GitHub. The resolution order is JQ_PATH -> bundled jq -> jq on PATH`, which is much more stable for China-based networks, offline mirrors, and CI environments.
  • The development CLI can now inspect live data directly: Added rabetbase data filter and rabetbase data getOne, so developers can verify real dataset records and response shapes without switching to the runtime CLI.
  • Machine-readable contracts were updated together: rabetbase schema and --help now expose the new data service and the current jq behavior, making AI agents, automation scripts, and documentation easier to keep aligned.

Fixes & Improvements

  • JQ override behavior is more predictable: If JQ_PATH is explicitly set but invalid, the CLI now fails fast instead of silently falling back to another jq binary.
  • Fewer installation failures overall: Installation is no longer blocked by external binary downloads being filtered or unavailable.

v2.1.5 (2026-04-17)

Highlights

  • More consistent installation experience: Documentation, scaffolding, upgrade flows, and the Skill installation commands in CLI output now stay consistent -- no more "one way here, another way there."
  • Fewer surprises when following documentation: If you are setting up for the first time or writing onboarding instructions for teammates, this version reduces confusion caused by inconsistent command examples.

v2.1.4 (2026-04-17)

Highlights

  • Quieter SQL pulls: Running sql pull no longer generates a bunch of irrelevant file changes due to "sync timestamp changed."
  • Prompts only when something actually changed: Behavior is now closer to what users expect -- only changes to the SQL content itself trigger downstream processing.

v2.1.3 (2026-04-17)

Highlights

  • Capabilities from v2.1.3-beta.0 are now stable: If you were already trying page generation, SQL lifecycle management, menu sync, and version strategies, this release means those features are ready for production use.

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

Highlights

  • Standard page generation scales to larger tasks: Page generation now runs asynchronously, so long-running jobs no longer block the terminal -- better suited for AI agents, automation pipelines, and multi-user collaboration.
  • More complete local SQL management: You can manage SQL creation, sync, and state locally in a more natural way instead of treating it as a one-off script.
  • Unified BFF / SQL commands: Creation commands now use the create semantic consistently, lowering the learning curve and matching user intuition.
  • Menu sync results are easier to automate: The returned result after synchronization is better structured for downstream automation.
  • Clearer upgrade strategy: The CLI now supports more explicit version hints and upgrade strategies, reducing "I upgraded but got the wrong version" situations.

Fixes & Improvements

  • Fewer failures from inconsistent API responses: The CLI handles backend response formats more robustly in BFF, menu, SQL, and database connection features.
  • More predictable upgrade results: cli update is less likely to install a version you did not intend.

v2.1.2 (2026-04-14)

Highlights

  • Capabilities from v2.1.2-beta are now stable: If you were already trying the new configuration system, multi-app rules, and database connection compatibility fixes, this version is a more reliable baseline.

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

Highlights

  • A pre-release housekeeping version: Minimal user-visible changes; primarily aimed at making the upcoming stable release cleaner and more reliable.

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

Highlights

  • More reliable database connection creation: If you encountered "created successfully but CLI couldn't retrieve the result," this version fixes those compatibility issues.
  • Fewer broken follow-up actions: Post-creation steps such as automatic analysis connect more smoothly.

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

Highlights

  • Beta validation release: Primarily for wrapping up and validating the v2.1.2-beta.0 batch of changes. No new user-facing features.

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

Highlights

  • Clearer multi-app experience: The relationship between default app, project config, and global config is easier to understand, and it is harder to "connect to the wrong app."
  • Smoother legacy project migration: Many legacy configurations are automatically normalized to the new structure during reads, so users do not need to clean up manually before continuing.
  • More useful doctor output: You now see "the final effective configuration," making it more intuitive to troubleshoot config issues.
  • More consistent command naming: Names like app remote and api generate better match user expectations, reducing "I can't tell what this command does."

Fixes & Improvements

  • Fixed default app selection errors: Especially when a project already has a config, it no longer gets silently overridden by the global default app.
  • Fixed ambiguity when switching apps in multi-app setups: app use results now match user expectations.

v2.1.1 (2026-04-09)

Highlights

  • More accurate BFF template examples: The ENDPOINT type API path examples now align with the current platform conventions, making it easier to get started after creating a new script.

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

v2.1.1-beta.0 is an important starting point for the 2.1.x cycle: database connection capabilities took shape, and the configuration and multi-app experience began converging.

Highlights

  • Database connections are truly usable now: You can more completely manage database connections, test them, initiate schema analysis, and view tables and diffs -- all from the CLI.
  • Friendlier default output: Commands like api list now display in a more human-readable format when no explicit format is specified.
  • Clearer multi-app and config boundaries: The relationship between project config, global config, and default apps is starting to converge, reducing misconfigurations.
  • More complete Skill integration: If you integrate the CLI with AI assistants or agents, this version is noticeably smoother.

Fixes & Improvements

  • Reduced risk of accidentally writing config: In inappropriate directories, the CLI no longer silently writes a config file you did not want.
  • Fixed default app resolution anomalies: In single-app legacy config scenarios, the global default app is no longer incorrectly applied.

v2.0.13 (2026-04-06)

New Features

  • sql pull command: Added rabetbase sql pull to batch-pull custom SQL from the remote to the .rabetbase/sql/ directory. Supports --sqlcode / --name filtering, --force overwrite, and --dry-run preview; interactive mode confirms before overwriting; files include @lovrabet header comments; duplicate names auto-append the sqlCode suffix.
  • sql/shared.ts shared module: Extracted resolveSqlLocalDir, safeSqlFileBaseName, assignSqlFileNames, and buildPulledSqlFileContent for reuse by pull and subsequent commands.

Bug Fixes

  • Path anchoring failure in subdirectories: Running commands in a project subdirectory caused the CLI to fail to find .rabetbase.json, leading to config read failures. Added findProjectRootDirectory(), which walks upward from cwd to locate the directory containing the config file.
  • sql list blocked by insufficient permissions: When users lacked the listDatasets API permission, rabetbase sql list would error and exit. Fixed to silently fall back to displaying the raw dbId on failure.

v2.0.12 (2026-04-05)

New Features

  • Project-level inherit: false config isolation: Added a top-level inherit field (default true) to project .rabetbase.json. When set to false, the CLI stops reading ~/.rabetbase.json for merging, ensuring complete project config isolation.

v2.0.11 (2026-04-05)

New Features

  • upgrade --yes fully non-interactive upgrade: Passes the --yes flag through to skills remove / skills add subcommands, supporting an automated upgrade flow without human confirmation.

v2.0.10 (2026-04-05)

New Features

  • api --global switch: rabetbase api list / rabetbase api pull now support a --global flag. By default, only project-level .rabetbase.json apps are resolved; passing --global uses the global + project merged config.
  • DEFAULT_API_DIR constant: Extracted DEFAULT_API_DIR = "./src/api" to constant/paths.ts, eliminating multiple hardcoded magic strings.
  • getMultiAppConfigs scope parameter: Added a scope parameter (project | merged) to read apps by config level.

Bug Fixes

  • Cross-project global apps leaking through: Running rabetbase api list in project A's directory would incorrectly display apps from the global config belonging to project B. Fixed to read only project-level apps by default; --global explicitly opts into the merged view.
  • api pull multi-app branch missing apiDir fallback: Multi-app mode output directories used hardcoded values instead of profile or context apiDir. Added the full fallback chain.

v2.0.9 (2026-04-05)

New Features

  • @/ path alias: Added baseUrl + paths configuration to tsconfig, replacing relative path imports with @/* aliases across many files.
  • Simplified output formats: Removed the table output format; OutputFormat narrowed to json | pretty | compress; added normalizeLegacyOutputFormat() for backward compatibility.

Bug Fixes

  • Duplicate jq error message prefix: Fixed the jq: jq: error: ... duplicate prefix display.
  • --jq with pretty format causing spurious errors: Automatically switches to json format when --jq is detected.
  • Incomplete execFileSync stderr capture: Explicitly specified stdio to ensure complete failure output capture.

v2.0.8 (2026-04-04)

New Features

  • schema command: Added rabetbase schema, exporting machine-readable command metadata JSON sourced from --help, for LLM agents, IDE plugins, and CI toolchains to automatically discover all commands, flags, and risk levels.
  • --jq global flag: Added global --jq <expr>, which applies jq filtering to output when combined with --format json/compress.
  • --format compress: Added the compress output format -- single-line compact JSON envelope without whitespace indentation to minimize token overhead.
  • app list structure upgrade: Return structure upgraded to { items, meta }, each app annotated with definedIn (global / project / both), and meta includes config file paths and default source info.
  • app positional arguments: app add <name> / use <name> / remove <name> now use positional arguments instead of the --name flag; app remove risk level raised to high-risk-write.
  • dataset detail expansion: Now parses requestBody / responseBody JSON, dbtable summary, relatedPages, formatRules, validateRules, extend, doVersion, and columnCodeListWithDeleted.
  • Layered config architecture: Context config loading refactored to loadRawConfigLayers() / readRawConfigWithLayers() / inspectCliConfigJsonFile(), distinguishing missing / empty / error on JSON parse failure and printing stderr warnings.
  • doctor Config JSON diagnostics: Added a config file JSON syntax check section, diagnosing global/project config file validity.

Bug Fixes

  • Config file JSON parse errors silently swallowed: When .rabetbase.json had syntax errors, the CLI silently ignored the file. After refactoring, parse failures now output a stderr warning.
  • app use unable to find globally configured apps in project directory: Fixed name validation logic to use the global + project merged view.
  • app add --format flag conflicting with pipeline-level --format: Renamed the app default format flag to --defaultFormat.

Document updated: 2026-04-21 Versions covered: 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 through v2.1.2-beta.3, v2.1.1, v2.1.1-beta.0, v2.1.0, v2.0.8 through v2.0.13 Repository: rabetbase-cli