Skip to content

Commit 89a6879

Browse files
committed
chore(changeset): carry the BREAKING banner on the install answer narrowing
A non-protocol breaking change ships patch and keeps its banner; the line follows the spelling the other narrowing changesets use. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01L6bhgVugtCCwBs98FeR27P
1 parent 3789cc3 commit 89a6879

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

‎.changeset/30464-install-response-bare-row.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ fix(spec): `PackageInstallResponseSchema` declares the installed row that `POST
77
Clause-②: yes (narrowing)
88
Metadata-protocol: none
99

10+
**BREAKING** accept-set narrowing at the install answer contract (`@objectstack/spec`): `PackageInstallResponseSchema` refuses the `{ package }` wrapper it accepted, and `PackageInstallResponse['data']` no longer declares `package`, `dependencyResolution`, `namespaceConflicts` or `message`.
11+
1012
`POST /api/v1/packages` answers `{ success: true, data: <row> }` with status `201`, where the row is the `InstalledPackage` the registry recorded. `PackageInstallResponseSchema` (the output `PackageApiContracts.installPackage` binds) declared `data: { package, dependencyResolution?, namespaceConflicts?, message? }` instead. No surface sent that wrapper, so code written against the contract read `data.package` and got `undefined`. The first-party client already followed the wire: `client.packages.install` resolves to `InstalledPackage`.
1113

1214
- **FROM** `data: { package: InstalledPackage, dependencyResolution?, namespaceConflicts?, message? }` **TO** `data: InstalledPackage`. The name, the type names (`PackageInstallResponse`, `PackageInstallResponseParsed`) and the binding are unchanged. The server's answer is unchanged.

0 commit comments

Comments
 (0)