Skip to content

release: 2.16.1#77

Merged
designcode merged 4 commits intoreleasefrom
main
Apr 8, 2026
Merged

release: 2.16.1#77
designcode merged 4 commits intoreleasefrom
main

Conversation

@designcode
Copy link
Copy Markdown
Collaborator

@designcode designcode commented Apr 8, 2026

Note

Medium Risk
Medium risk due to a major @tigrisdata/storage upgrade that changes API response shapes and pagination behavior, impacting multiple CLI list commands and their JSON/XML outputs. GitHub workflow changes auto-create/merge PRs, which could affect release process if misconfigured.

Overview
Adds a new GitHub Action (.github/workflows/sync-release-to-main.yaml) that, after a successful Release workflow on release, automatically opens (and merges) a PR from release into main when release is ahead.

Upgrades @tigrisdata/storage from 2.x to 3.0.0 and updates list-style commands (ls, buckets list, objects list, snapshots list, access-keys list, iam policies list) to always use formatPaginatedOutput, accept --limit/--page-token, and consistently emit pagination metadata (notably changing JSON output to { items, paginationToken? }). Fork discovery is updated to use the new forkInfo shape.

Updates CLI specs (src/specs.yaml) to document the new pagination flags for ls and snapshots list, and adjusts integration tests to match the new JSON output shape.

Reviewed by Cursor Bugbot for commit 7226291. Bugbot is set up for automated code reviews on this repo. Configure here.

designcode and others added 3 commits April 8, 2026 17:22
After each stable release on the release branch, this workflow
automatically creates and merges a PR from release to main,
ensuring release tags are reachable from main's history.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
chore: sync release to main
* fix: always show pagination token when more results exist

Remove the isPaginated gate from output decisions. The pagination token
and hint are now shown whenever the response indicates more items exist,
regardless of whether --limit or --page-token were explicitly passed.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: add pagination support to ls command

The ls command also uses list() and listBuckets() from the SDK but was
missing pagination flags and token display.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: use consistent JSON schema for all list commands

Always use formatPaginatedOutput so JSON output is consistently
{ "items": [...] } with optional paginationToken, rather than switching
between a bare array and wrapped object based on server response.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* feat: add pagination support to snapshots list

The storage SDK now supports pagination in listBucketSnapshots. Update
the snapshots list command to accept --limit and --page-token flags and
display the pagination token when more results exist.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: update @tigrisdata/storage with snapshot pagination support

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: update fork detection to use new SDK forkInfo API

The updated @tigrisdata/storage SDK replaced hasForks and
sourceBucketName with forkInfo.hasChildren and forkInfo.parents[].

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comment thread src/lib/access-keys/list.ts
* fix: update integration tests for new paginated JSON schema

JSON output from list commands now returns { items: [...] } instead of
a flat array. Update the two integration tests that parsed JSON output
as flat arrays to use parsed.items instead.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: update stale bucket cleanup to use paginated JSON schema

The beforeAll cleanup also parsed buckets list JSON as a flat array.
Silently failed in the catch block, leaving stale test buckets.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@designcode designcode merged commit a73fbf3 into release Apr 8, 2026
3 checks passed
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 7226291. Configure here.

Comment thread src/lib/buckets/list.ts
const isChildOf = info?.forkInfo?.parents?.some(
(p) => p.bucketName === forksOf
);
if (isChildOf) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inconsistent JSON output format for fork list commands

Medium Severity

The --forks-of path in buckets list and the forks list command still use formatOutput, which outputs a raw JSON array. Every other list command was migrated to formatPaginatedOutput, which wraps results in { "items": [...] }. This means buckets list --format json returns { "items": [...] } but buckets list --forks-of X --format json returns [...], creating an inconsistent JSON contract from the same command depending on flags.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 7226291. Configure here.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 8, 2026

🎉 This PR is included in version 2.16.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants