Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions docs/release-notes/v0.2.10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# TiDB Cloud CLI v0.2.10

This release adds the Azure Central US TiDB Cloud Filesystem placement, makes Filesystem-only placements fail closed for TiDB Cloud Starter commands, and fixes two Filesystem data-plane bugs. It is validated against the published Drive9 companion build `d39a6d1`.

## What's new

- TiDB Cloud Filesystem now includes the built-in `azure-centralus` placement (`https://azure-centralus.drive9.ai`). `ti configure`, `--region`, the installers, and telemetry accept the code. [ti #76](https://github.com/tidbcloud/ti-cli/pull/76)
- `azure-centralus` is a Filesystem-only placement. `ti fs` commands route to the Azure endpoint, while `ti db` commands reject the placement during local validation with `placement "azure-centralus" serves TiDB Cloud Filesystem only, not TiDB Cloud Starter` instead of sending an unsupported region to the TiDB Cloud Starter API.
- `gcp-us-east1` now follows the same Filesystem-only rule. `ti db` commands fail locally for `gcp-us-east1` instead of sending `regions/gcp-us-east1` to the Starter API. Filesystem usage of `gcp-us-east1` is unchanged, and it remains a valid value for `ti configure`, `--region`, and stored Filesystem credentials.

Both placements stay available for Filesystem commands and local configuration; only TiDB Cloud Starter placement validation rejects them.

## Bug fixes

- `ti fs copy-file` no longer replaces an existing remote destination unless `--overwrite` is explicit. Uploads from a local path or stdin probe the destination first and fail with `fs.target_exists`, matching the direct copy path. `--overwrite`, `--append`, and `--resume` keep their documented behavior. [ti #74](https://github.com/tidbcloud/ti-cli/pull/74)
- `ti fs list-files`, `ti fs find-files`, and `ti fs search-file-content` keep spaces in names and paths. Companion output was parsed by splitting on whitespace, so a file named `alpha beta.txt` was reported as `alpha` and paths with spaces were truncated. [ti #75](https://github.com/tidbcloud/ti-cli/pull/75)

## Upgrade from v0.2.9

Drain FUSE mounts and unmount all active Filesystem and Vault mounts before replacing the binaries. On macOS or Linux with a ti-owned installation, run:

```bash
ti update --check
ti update --target-version v0.2.10
ti --version
"$(dirname "$(command -v ti)")/ti-drive9" version
```

New installations and reinstalls can use the version-specific installer:

```bash
curl -fsSL https://github.com/tidbcloud/ti-cli/releases/download/v0.2.10/install.sh | sh -s -- --version v0.2.10 --yes
export PATH="$HOME/.ti/bin:$PATH"
ti --version
"$HOME/.ti/bin/ti-drive9" version
```

For a custom installation directory, pass `--install-dir` with that directory. On Windows, rerun the PowerShell installer because in-place self-update is unsupported:

```powershell
$script = "$env:TEMP\install-ti.ps1"
iwr https://github.com/tidbcloud/ti-cli/releases/download/v0.2.10/install.ps1 -OutFile $script
powershell -ExecutionPolicy Bypass -File $script -Version v0.2.10 -Yes
$env:Path = "$HOME\.ti\bin;$env:Path"
ti --version
& "$HOME\.ti\bin\ti-drive9.exe" version
```

The companion is downloaded separately from mutable Drive9 endpoints and is not pinned to the ti version. Record both installed versions when reporting an issue. Pinning or rolling back ti does not pin or roll back Drive9.

## Use the Azure Central US Filesystem region

```bash
ti configure --non-interactive --region-code azure-centralus \
--tidb-cloud-public-key "$TIDB_CLOUD_PUBLIC_KEY" \
--tidb-cloud-private-key "$TIDB_CLOUD_PRIVATE_KEY"

ti --region azure-centralus fs list-file-systems
```

## Drive9 companion

The companion is downloaded separately from mutable Drive9 endpoints and is not pinned to the ti version. This release was prepared against the published build `d39a6d1` (`git_hash d39a6d1b3ba1d3e23fc75b8d530259c861855702`, built 2026-10-08). Recheck the endpoints before publishing, because these artifacts can change:

| Artifact | SHA-256 |
| --- | --- |
| `drive9-darwin-amd64` | `5f33ba5937eb4771fb9109529706413f4bb3c501f4f673e0be9a8b5a0874f811` |
| `drive9-darwin-arm64` | `84c53cf948eb7a1b5cd8aeb2484bbcf4d81018b0fcbe5b7ffa4d55a39e2eb1c1` |
| `drive9-linux-amd64` | `e8b8c7245c46e855fd37eaf6e05386d6fc492b51ecc4b40686ffd81de304378d` |
| `drive9-linux-arm64` | `275c83194cd28ed75b2b4d1a9071df8ca86583a03248322f4567579710235e28` |
| `drive9-windows-amd64.exe` | `e2df1caec1b806f26096bf9763d4f87209708772eb23a262e5041823a603a7f9` |

`https://releases.drive9.ai/latest/SHA256SUMS` and `https://drive9.ai/releases/checksums.txt` agree on these five ti targets, and both `version` files report `d39a6d1`. The checksum-verified `drive9-linux-amd64` download exposes the required surface: `drive9 fs layer` includes `fork`, `chain`, and `delete`, and `drive9 mount` accepts `-layer` and `-checkpoint`.

Upgrading to v0.2.10 refreshes the companion through the installer or `ti update`, which validates the companion and its required capabilities before replacing anything. Users already on v0.2.9 cannot refresh the companion alone, because `ti update` stops when the ti version is unchanged; this patch release provides the normal update path. `d39a6d1` identifies the upstream build used for release preparation, not a dependency pin. Pinning or rolling back ti does not pin or roll back Drive9.

Loading