Skip to content
Merged
Show file tree
Hide file tree
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -694,8 +694,8 @@ and `idempotencyKey`; the key does not make the API replay the append.

Set `apiVersion` on a client or a single request. Use a date-form API revision,
such as `2026-09-22`. The SDK sends it as the `Polymorfa-Version` header.
Native calls default to `2026-09-22`; the API accepts explicit revisions from
`2026-03-20` and rejects earlier pins.
Native calls default to `2026-09-22`, which is also the oldest revision the API
accepts. Earlier pins, including `2026-03-20`, return a `400` error.

Every client exposes `raw.request<T>()` for deliberate API escape hatches:

Expand Down
4 changes: 2 additions & 2 deletions contracts/doc-snippets.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"schemaVersion": 1,
"sourceCommit": "f33cd3b9a949f8db495405d0733ca0bcdb4bd3bc",
"sourceFilesSha256": "7af428a30b1becaf20b3e9ce407cc0742d49353fac60a43aba71e568642a12c3",
"sourceCommit": "4555c67a8ece59484dcb6b43ab3ad5adfe10bcbc",
"sourceFilesSha256": "122eaf7a51d30047d5c6a1a899e579fa97820d8020329ce297722240826944c2",
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
"apiVersion": "2026-09-22",
"apiSourceCommit": "171a9683ff45d11a4b5d3917dc428ad2722b0d99",
"specs": {
Expand Down
2 changes: 1 addition & 1 deletion examples/full-platform/lib/polymorfa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ let bridgeClient: BridgeClient | undefined;
function shared(): SharedClientOptions {
const baseUrl = env.baseUrl();
return {
apiVersion: "2026-03-20",
apiVersion: "2026-09-22",
...(baseUrl === undefined ? {} : { baseUrl }),
};
}
Expand Down
11 changes: 11 additions & 0 deletions internal/agent-sessions/2026-10-28-sdk358-rebase.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# SDK358 current-main rebase

Collaborator: purpshell. Agent: gpt-6.1-sol, xhigh, through T3 Code. Thread: 7793bd59-7f5e-4ad0-bcf2-8da9ea202931. This is a hand-authored checkpoint of selected visible source and tool evidence, with a capture gap for the full transcript. No hidden reasoning, credentials or customer data is included.

The user authorized guarded rebases of existing owning PRs, preserving old heads and authored changes. SDK358 old 40483fcda9bdc3adc520a0ed1a23a371907aaf36 on base d2c5b3dfe4b13dee6d7a07b96df213e47ef8130a was rebased with --rebase-merges onto actual main 3b222dcad98b25da4b5b2e0c0b367988eca95e99. Rebased source: 4555c67a8ece59484dcb6b43ab3ad5adfe10bcbc. Old source is retained at backup/rebase-20261028-sdk358-40483fcd and in a private patch, bundle, author record and range-diff. The held local checkout/index remained unchanged.

The six authored changes correct examples and rejection fixtures to API 2026-09-22. Public native SDK implementations and wire signatures are unchanged in all six languages. Package README/tests are included in the genuine snippet input digest, so recipes now bind the rebased source and the generator produced the catalog. All 186 program/request entries, package metadata, API171 source and specification hashes are byte-equivalent to the accepted main catalog; only SDK source provenance changes. Release status remains source-only, with no registry installation instructions.

Fresh Node 24 checks passed: both affected transport files, catalog generation/drift/regression tests, strict coverage and formatting. Full six-language physical-package snippet verification was not run: the repository verifier invokes installers and those effects are outside this admission. Old compiler evidence is historical, not exact-head acceptance. Natural hosted checks and independent review must qualify the rewritten head.

Impact: API contract date/source/hashes stay pinned; all six SDK runtime surfaces are unchanged; CLI and Docs consumers receive no new pin or broad binding from this rebase; feature release and package publication remain held. No Admin/API authorization, runner, Temporal, audit, Inspector, Console, Connect, Help Center or marketing runtime changed. ZK custody, QuickLink and its browser pairing tunnel are unaffected because this delta contains only the six documented example/test files and snippet provenance. Registry, staging, production and customer availability are not established. Roadmap records were not reconciled in this mechanical task. Release retains merge execution.
2 changes: 1 addition & 1 deletion packages/browser/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ await messaging.messages.send({
Native Messaging requests default to `Polymorfa-Version: 2026-09-22`, matching
the `whatsapp_ids` message-reference object. A temporary optional `whatsapp_id`
output alias remains for older consumers. An explicit version header in request
options is preserved; versions before `2026-03-20` return the API error without an automatic
options is preserved; versions before `2026-09-22` return the API error without an automatic
upgrade or resend. Raw Graph-compatible paths and same-origin application
handlers receive no default native version header. Client-token permissions and
Hybrid preview restrictions still apply.
Expand Down
6 changes: 3 additions & 3 deletions packages/browser/test/transport.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ describe("BrowserTransport", () => {
error: {
code: "invalid_parameter",
message:
"API version 2026-03-19 is no longer supported. Minimum: 2026-03-20",
"API version 2026-03-20 is no longer supported. Minimum: 2026-09-22",
param: "Polymorfa-Version",
},
},
Expand All @@ -109,13 +109,13 @@ describe("BrowserTransport", () => {
conversation: { phoneNumber: "+15551234567" },
content: { text: "Hello" },
},
{ headers: { "Polymorfa-Version": "2026-03-19" } },
{ headers: { "Polymorfa-Version": "2026-03-20" } },
),
).rejects.toMatchObject({ code: "invalid_parameter", status: 400 });
expect(fetch).toHaveBeenCalledOnce();
expect(
new Headers(fetch.mock.calls[0]?.[1]?.headers).get("polymorfa-version"),
).toBe("2026-03-19");
).toBe("2026-03-20");
});

it("excludes raw Graph and application routes from the native default", async () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/typescript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ const platform = new Client({
type: "organizationApiKey",
value: process.env.POLYMORFA_PLATFORM_API_KEY!,
},
apiVersion: "2026-03-20",
apiVersion: "2026-09-22",
});

const project = platform.project("project_123");
Expand Down
8 changes: 4 additions & 4 deletions packages/typescript/test/transport.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,13 +174,13 @@ describe("HttpTransport", () => {
status: 400,
headers: {
"content-type": "application/json",
"polymorfa-version": "2026-03-19",
"polymorfa-version": "2026-03-20",
},
body: JSON.stringify({
error: {
code: "invalid_parameter",
message:
"API version 2026-03-19 is no longer supported. Minimum: 2026-03-20",
"API version 2026-03-20 is no longer supported. Minimum: 2026-09-22",
param: "Polymorfa-Version",
},
}),
Expand All @@ -189,11 +189,11 @@ describe("HttpTransport", () => {
makeTransport(server.url, { maxNetworkRetries: 2 }).request({
method: "GET",
path: "/messaging/number/hybrid-link",
headers: { "Polymorfa-Version": "2026-03-19" },
headers: { "Polymorfa-Version": "2026-03-20" },
}),
).rejects.toMatchObject({ code: "invalid_parameter", status: 400 });
expect(server.requests).toHaveLength(1);
expect(server.requests[0]?.headers["polymorfa-version"]).toBe("2026-03-19");
expect(server.requests[0]?.headers["polymorfa-version"]).toBe("2026-03-20");
});

it("keeps API version options ahead of raw headers for JSON and streaming calls", async () => {
Expand Down
2 changes: 1 addition & 1 deletion scripts/doc-snippets/recipes.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// Requests come from the pinned OpenAPI and existing native wire fixtures.
// Calls are handwritten in the language modules. Never derive arguments from
// contracts/coverage.json's display-only method names.
export const sourceCommit = "f33cd3b9a949f8db495405d0733ca0bcdb4bd3bc";
export const sourceCommit = "4555c67a8ece59484dcb6b43ab3ad5adfe10bcbc";
export const apiVersion = "2026-09-22";
export const languages = [
"typescript",
Expand Down
Loading