Skip to content

chore: release v0.6.1 - #103

Merged
ergofobe merged 1 commit into
mainfrom
pin-sdk-v0.5.1
Sep 15, 2026
Merged

ergofobe merged 1 commit into
mainfrom
pin-sdk-v0.5.1

Conversation

@ergofobe

Copy link
Copy Markdown
Owner

Pin move to the v0.5.1 tag plus the version bump, in one PR because both are release mechanics for the same patch.

Why v0.5.1 of the SDK exists

The wire-boolean fix landed on SDK main as cb814ad, and #102 pinned the server there — legal between releases. But a consumer's release must name an SDK release, so shipping this meant cutting imogen-sdk v0.5.1 first and moving the pin onto the tag. That SDK release carries nothing but the fix.

git submodule status now reads imogen-sdk (v0.5.1). The only difference between the tag and the main commit it replaces is version files — verified by diffing them.

What this ships to users

Two live correctness defects in v0.6.0, both wire-boolean truthiness, both measured rather than inferred:

?includeHidden=false was read as true (#100, fixed in #101). Every SDK port defaults includeHidden to false and sends it, so an ordinary people.list() carried ?includeHidden=false — which arrived as true and went straight to listPeople. Hiding a person never hid them. That schema is declared here rather than in @imogen/shared, so it needed a server-side fix.

The same defect in the SDK's own schemas (#102) meant:

  • ?trashed=false returned only trashed assets
  • ?favorite=false returned only favourites
  • an upload carrying favorite=false was favourited

Reachable from the shipped Rust client. That half could not be fixed here — redeclaring the SDK's fields is what CLAUDE.md forbids — so moving the pin is what actually delivers it.

Ranges and lockfile

The ^0.5.0 ranges already admit 0.5.1, so no manifest range moves. bun.lock needs no regeneration — confirmed before and after the bump, diff empty both times.

Verification

930 pass
0 fail
2021 expect() calls
Ran 930 tests across 48 files.

plus bun run --filter '@imogen/web' build exit 0, run both at the pin move and again after the version bump.

sdk-contract.test.ts — the only place the SDK and server meet — passes against the tag.

Review

Exempt: the pin move's substance was reviewed in #102, including an independent confirming review that re-derived its claims rather than accepting them (it verified the ?trashed=false chain through four independent links, swept the generated OpenAPI document for anyOf regressions, and overruled two reviewers on a .meta() claim it could not reproduce). This PR adds the tag move and version strings on top of that.

🤖 Generated with Claude Code

Moves the SDK pin from main@cb814ad to the v0.5.1 tag, and bumps every version
location. A consumer release must name an SDK release, so the pin had to stop
being a main commit before this could be tagged; v0.5.1 exists for that reason
and carries nothing but the fix below.

A patch: both changes since v0.6.0 are bug fixes.

What it ships:

  - includeHidden=false was read as true, so hidden people were returned to
    every client on every call (#100). Fixed server-side in #101, because that
    schema is declared here rather than in @imogen/shared.

  - The same defect in the SDK's own schemas meant ?trashed=false returned only
    trashed assets, ?favorite=false only favourites, and an upload carrying
    favorite=false was favourited (#102). That half could only be fixed by
    moving the pin, which is what this release delivers to users.

The ^0.5.0 ranges still admit 0.5.1, so no manifest range moves and bun.lock
needs no regeneration -- verified both before and after.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ergofobe
ergofobe merged commit 9b258ed into main Sep 15, 2026
4 checks passed
@ergofobe
ergofobe deleted the pin-sdk-v0.5.1 branch September 15, 2026 22:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant