Skip to content

Caatinga v3.12.0

Latest

Choose a tag to compare

@Dione-b Dione-b released this 03 Oct 01:52
· 25 commits to main since this release
b3ae0ca

Caatinga v3.12.0

Status

Stable minor release on top of 3.10.3. 3.11.0 was tagged but never published to npm, so this is the first npm release that ships the 3.11.0 changes as well — upgrading from 3.10.3 picks up both. Minor because @caatinga/client adds public API (wallet-less reads).

Packages

  • @caatinga/cli@3.12.0
  • @caatinga/core@3.12.0
  • @caatinga/client@3.12.0
  • @caatinga/zk@3.12.0
npm install -g @caatinga/cli@latest

Compatibility

  • Node.js 22+
  • Stellar CLI minimum 23.0.0, last tested 28.0.0
  • Rust 1.91.1+ with the wasm32v1-none target (not 1.91.0)
  • @stellar/stellar-sdk ^16.0.1 (templates)

New

  • Reads without a wallet. read() and simulate() no longer need a connected wallet, and CaatingaClientConfig.wallet is optional (it is still required for invoke()). The simulation source account is, in order: the per-call sourceAccount option, the connected wallet's public key, readSourceAccount from the client config, then the exported DEFAULT_READ_SOURCE_ACCOUNT (the Stellar null account, never sent to RPC). Invalid source values throw CAATINGA_INVALID_CONFIG. (#239, #270)
  • Network origin in every command. Commands print Network: <name> (config) or (flag) up front, so it is clear which network a run targeted. (#244, #269)

Fixes

  • ctg wire with only postDeployRead hooks. ctg wire printed "No postDeploy hooks configured" and ran nothing, and full-graph ctg deploy skipped wiring unless a postDeploy array existed. Both now run when either list has hooks. (#243, #286)
  • New projects start on artifacts schema v2. The react-vite-counter and zk-starter templates shipped "version": 1, so template projects stayed on v1 until their first upgrade or redeploy. Templates now ship v2, and scaffolding migrates any template that still ships v1 (for example a custom one via CAATINGA_TEMPLATES_DIR). Existing projects are not touched. (#280, #287)
  • walletStubPnpmWorkspaceYaml() works on pnpm 9. Its output now starts with packages: []; without it pnpm 9 aborted with "packages field missing or empty" in standalone apps. (#279, #284)
  • ctg inspect shows why a contract is unreachable. The on-chain detail now includes the Stellar CLI diagnostics when the probe fails. (#272)
  • Deploy recovery on custom networks. Recovery no longer masks CAATINGA_DEPLOY_FAILED with CAATINGA_NETWORK_NOT_FOUND on networks without a Horizon mapping. (#234, #271)
  • Inspection paths. Contract inspection falls back to the configured WASM path when the artifact path is missing; inspectContract().localWasm.path reports the absolute path that was hashed. (#249)
  • Help text. ctg status --strict and ctg doctor --strict-bindings now say they fail on any binding status other than fresh (stale, missing, or unknown). Behavior unchanged. (#281, #285)

Also in this release (from 3.11.0)

See the v3.11.0 notes for details: clean ctg identity export stdout, a working ctg estimate deploy on the selected network, ctg ci run in user projects, Freighter v4 error handling, templates that follow the deployed network via VITE_CAATINGA_*, the new CAATINGA_WALLET_NETWORK_MISMATCH, and the frontend.env network source key.

Behavior changes

  • An empty --network "" (for example --network "$NET" with $NET unset in CI) now fails with CAATINGA_NETWORK_NOT_FOUND instead of silently using defaultNetwork.
  • Projects with only postDeployRead hooks now have them run by full-graph ctg deploy (skip with --no-wire) and by ctg wire.
  • ctg init / ctg zk init write caatinga.artifacts.json with "version": 2.

Known issue

  • ctg doctor prints a STELLAR_SDK_UNTESTED_VERSION advisory in new projects, because ^16.0.1 resolves to 16.3.x while the last-tested version is still 16.0.1. It is informational and does not block; a patch will raise the last-tested version.

Full changelog: v3.10.3...v3.12.0