@aexhq/sdk 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/version.d.ts CHANGED
@@ -6,4 +6,4 @@
6
6
  *
7
7
  * Used by the (future) User-Agent header on outbound SDK requests.
8
8
  */
9
- export declare const SDK_VERSION = "0.14.0";
9
+ export declare const SDK_VERSION = "0.15.0";
package/dist/version.js CHANGED
@@ -6,5 +6,5 @@
6
6
  *
7
7
  * Used by the (future) User-Agent header on outbound SDK requests.
8
8
  */
9
- export const SDK_VERSION = "0.14.0";
9
+ export const SDK_VERSION = "0.15.0";
10
10
  //# sourceMappingURL=version.js.map
package/docs/release.md CHANGED
@@ -10,7 +10,14 @@ source of truth. The workflow publishes to npm and runs post-publish install
10
10
  checks, but it does not create git tags or GitHub Releases, keeping the remote
11
11
  repository on a clean `main` branch unless tags are added deliberately later.
12
12
 
13
- ## How to ship a release
13
+ ## How to ship a release (canary → validate → promote)
14
+
15
+ The default flow publishes a **canary** first, validates it against the real
16
+ platform (aex-platform's local + prod cross-service suite installs
17
+ `@aexhq/sdk@canary` and exercises it like a user), and only then promotes the
18
+ **same bytes** to `latest`. Because npm versions are immutable, the version the
19
+ platform tested is byte-for-byte the version users get — there is no second
20
+ publish.
14
21
 
15
22
  1. Bump the publishable package manifests to the next shared semver:
16
23
  `packages/contracts/package.json`, `packages/conformance/package.json`,
@@ -18,12 +25,25 @@ repository on a clean `main` branch unless tags are added deliberately later.
18
25
  `packages/sdk/src/version.ts` to match.
19
26
  2. Land the change on `main` with any companion code or docs.
20
27
  3. Confirm CI is green.
21
- 4. Run the **Release** workflow from `main` and choose the npm dist-tag
22
- (`latest` or `next`).
28
+ 4. Run the **Release** workflow from `main` with dist-tag **`canary`**. This
29
+ publishes `@aexhq/sdk@<version>` under the `canary` tag `latest` is
30
+ untouched, so `npm install @aexhq/sdk` users are unaffected.
31
+ 5. Run the platform release against the canary: in **aex-platform**, dispatch
32
+ `deploy.yml` with `sdk_version=<version>` (threads `AEX_USER_TEST_SDK_VERSION`
33
+ into the suite). The local plane gates prod, and both planes' user-tests run
34
+ against `@aexhq/sdk@<version>`.
35
+ 6. On a green platform release, run the **Promote** workflow
36
+ (`promote.yml`) with `version=<version>`. It runs
37
+ `npm dist-tag add @aexhq/{contracts,conformance,cli,sdk}@<version> latest` —
38
+ a pure re-tag, never a re-publish.
39
+
40
+ Shortcut: choosing dist-tag `latest` (or `next`) at step 4 publishes straight to
41
+ that tag and skips the canary/promote gate — use it only for docs-only or
42
+ out-of-band releases where the platform suite is not the gate.
23
43
 
24
44
  If any package at `<version>` already exists on npm, the release workflow fails
25
- before publishing. A failed release is fixed by bumping to a higher version and
26
- running the workflow again.
45
+ before publishing (this is also what forbids a re-publish promotion must be a
46
+ re-tag). A failed release is fixed by bumping to a higher version.
27
47
 
28
48
  ## Release pipeline
29
49
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aexhq/sdk",
3
- "version": "0.14.0",
3
+ "version": "0.15.0",
4
4
  "description": "TypeScript SDK for running autonomous agent sessions across providers (Anthropic, OpenAI, DeepSeek, Gemini, Mistral) behind one interface.",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -26,7 +26,7 @@
26
26
  "examples"
27
27
  ],
28
28
  "devDependencies": {
29
- "@aexhq/contracts": "0.14.0"
29
+ "@aexhq/contracts": "0.15.0"
30
30
  },
31
31
  "engines": {
32
32
  "node": ">=20"