From 083baed5338cd486bf5fc26f99c5f0e7c1583804 Mon Sep 17 00:00:00 2001 From: Saatvik Arya Date: Thu, 5 Nov 2026 12:59:20 +0530 Subject: [PATCH 1/2] chore(deps): propagate Samva SDK 0.35 and CLI 0.30 --- .tegami/2026-11-05-sdk-035.md | 10 ++++ README.md | 8 +-- bun.lock | 50 +++++++++---------- cookbooks/effect-sdk.md | 2 +- cookbooks/inbound-email.md | 13 +++++ cookbooks/mailboxes.md | 2 +- cookbooks/supabase-auth.md | 2 +- cookbooks/tsx-templates.md | 2 +- examples/astro-email/package.json | 2 +- examples/better-auth-nextjs/package.json | 2 +- examples/clerk-webhook/package.json | 2 +- examples/effect-sdk/package.json | 2 +- examples/email-sdk/package.json | 2 +- examples/hono-cloudflare-workers/package.json | 2 +- examples/inbound-email-replies/package.json | 2 +- examples/mailbox-agent/package.json | 2 +- examples/nextjs-transactional/package.json | 2 +- examples/react-email-samva/package.json | 2 +- examples/supabase-auth-hook/deno.json | 2 +- examples/supabase-auth-hook/package.json | 2 +- examples/sveltekit-transactional/package.json | 2 +- .../tanstack-start-transactional/package.json | 2 +- examples/tsx-template-samva/README.md | 2 +- examples/tsx-template-samva/package.json | 2 +- packages/better-auth/README.md | 2 +- packages/better-auth/package.json | 4 +- packages/email-sdk/README.md | 2 +- packages/email-sdk/package.json | 4 +- plugins/samva/README.md | 24 +++++++++ 29 files changed, 101 insertions(+), 56 deletions(-) create mode 100644 .tegami/2026-11-05-sdk-035.md diff --git a/.tegami/2026-11-05-sdk-035.md b/.tegami/2026-11-05-sdk-035.md new file mode 100644 index 0000000..5a33fa9 --- /dev/null +++ b/.tegami/2026-11-05-sdk-035.md @@ -0,0 +1,10 @@ +--- +packages: + "@samva/better-auth": minor + "@samva/email-sdk": minor +--- + +## Require Samva SDK 0.35 + +Both adapters now require `samva@^0.35.0` and validate against SDK 0.35.0. +Only the current SDK minor is supported; upgrade Samva alongside the adapter. diff --git a/README.md b/README.md index cb2f011..c422612 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Samva Open-source packages, examples, cookbooks, and agent plugins for integrating -[Samva](https://samva.dev) into real applications. +[Samva](https://samva.dev), the email and WhatsApp API, into real applications. Use these to send transactional email, connect auth email flows, work with templates, handle delivery events, and verify signed webhooks. Ask questions @@ -14,9 +14,9 @@ about the code on [DeepWiki](https://deepwiki.com/SamvaHQ/samva). - `cookbooks/*.md` — documentation-first, copy-pasteable recipes. - `plugins/*` — coding-agent plugins and public documentation. -While Samva is 0.x, the maintained integrations support only the current SDK minor: 0.34. Workspace -packages require `samva@^0.34.0` as a peer and test against `0.34.0`. Examples use -`samva@^0.34.0`; copyable external import maps pin `samva@0.34.0`. +While Samva is 0.x, the maintained integrations support only the current SDK minor: 0.35. Workspace +packages require `samva@^0.35.0` as a peer and test against `0.35.0`. Examples use +`samva@^0.35.0`; copyable external import maps pin `samva@0.35.0`. ## Package integrations diff --git a/bun.lock b/bun.lock index a986d9b..2656367 100644 --- a/bun.lock +++ b/bun.lock @@ -22,7 +22,7 @@ "dependencies": { "@astrojs/cloudflare": "^14.4.4", "astro": "^7.4.5", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@astrojs/check": "^0.9.12", @@ -40,7 +40,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/node": "^26.6.6", @@ -59,7 +59,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "server-only": "^0.0.1", }, "devDependencies": { @@ -74,7 +74,7 @@ "version": "0.0.0", "dependencies": { "effect": "4.1.2", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/bun": "^1.4.4", @@ -86,7 +86,7 @@ "dependencies": { "@opencoredev/email-sdk": "^3.0.1", "@samva/email-sdk": "workspace:*", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/bun": "^1.4.4", @@ -97,7 +97,7 @@ "version": "0.0.0", "dependencies": { "hono": "^4.13.16", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@cloudflare/workers-types": "^5.20261104.1", @@ -109,7 +109,7 @@ "name": "inbound-email-replies-samva", "version": "0.0.0", "dependencies": { - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/node": "^26.6.6", @@ -121,7 +121,7 @@ "name": "mailbox-agent-samva", "version": "0.0.0", "dependencies": { - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/bun": "^1.4.4", @@ -137,7 +137,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "server-only": "^0.0.1", }, "devDependencies": { @@ -154,7 +154,7 @@ "react": "^19.3.1", "react-dom": "^19.3.1", "react-email": "^6.11.6", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@types/node": "^26.6.6", @@ -169,7 +169,7 @@ "react": "^19.3.1", "react-dom": "^19.3.1", "react-email": "^6.11.6", - "samva": "^0.34.0", + "samva": "^0.35.0", "standardwebhooks": "^1.1.1", }, "devDependencies": { @@ -183,7 +183,7 @@ "name": "sveltekit-transactional-samva", "version": "0.0.0", "dependencies": { - "samva": "^0.34.0", + "samva": "^0.35.0", }, "devDependencies": { "@sveltejs/adapter-node": "^6.0.1", @@ -203,7 +203,7 @@ "@tanstack/react-start": "^1.169.4", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "zod": "^4.6.7", }, "devDependencies": { @@ -223,7 +223,7 @@ "@samva/markup": "^0.22.1", }, "devDependencies": { - "@samva/cli": "^0.29.2", + "@samva/cli": "^0.30.0", "@samva/vite": "^0.22.1", "@types/node": "^26.6.6", "typescript": "^7.0.2", @@ -236,12 +236,12 @@ "devDependencies": { "@react-email/render": "^2.2.0", "better-auth": "^1.7.17", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "peerDependencies": { "@react-email/render": "^2.0.0", "better-auth": "^1.7.2", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "optionalPeers": [ "@react-email/render", @@ -252,11 +252,11 @@ "version": "0.12.0", "devDependencies": { "@opencoredev/email-sdk": "^3.0.1", - "samva": "^0.34.0", + "samva": "^0.35.0", }, "peerDependencies": { "@opencoredev/email-sdk": "^3.0.1", - "samva": "^0.34.0", + "samva": "^0.35.0", }, }, }, @@ -751,15 +751,13 @@ "@samva/better-auth": ["@samva/better-auth@workspace:packages/better-auth"], - "@samva/cli": ["@samva/cli@0.29.2", "", { "optionalDependencies": { "@samva/cli-darwin-arm64": "0.29.2", "@samva/cli-darwin-x64": "0.29.2", "@samva/cli-linux-arm64": "0.29.2", "@samva/cli-linux-x64": "0.29.2" }, "bin": { "samva": "bin/samva.cjs" } }, "sha512-sybGjDbmuh+la3VM8/650+s+4lBV2GZB4sCQQS1Ca5/h1uA81llC1wkk96TDEXfc8ZzR4OtruoAHdAw9Lt71IA=="], + "@samva/cli": ["@samva/cli@0.30.0", "", { "optionalDependencies": { "@samva/cli-darwin-arm64": "0.30.0", "@samva/cli-darwin-x64": "0.30.0", "@samva/cli-linux-arm64": "0.30.0", "@samva/cli-linux-x64": "0.30.0" }, "bin": { "samva": "bin/samva.cjs" } }, "sha512-RjGYtMTVQJM07FV7klAXIN4LngG7zbsBKYVoF5PKF1inAB2jY2jHBOr+tA2G5oUvId5OrK0AXSDhixpTRAnoPA=="], - "@samva/cli-darwin-arm64": ["@samva/cli-darwin-arm64@0.29.2", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Dcuct4Q98D9QfYDuVhJ/szLzdeyPfgV7nBbkE20m7gIJJuA1e0lEmjLZlIfemklP8d2FJHW9I6YKaMj+5HuLTw=="], + "@samva/cli-darwin-arm64": ["@samva/cli-darwin-arm64@0.30.0", "", { "os": "darwin", "cpu": "arm64" }, "sha512-hRUq7o7/ZXfrlUJFyuOCoIaIXevGrkBjwbZWodqu8LxG91N/OldzMXsPb4mbnfOqjANsnAqCLPelspbqWAMbRA=="], - "@samva/cli-darwin-x64": ["@samva/cli-darwin-x64@0.29.2", "", { "os": "darwin", "cpu": "x64" }, "sha512-A+Eop1DzfXXHjM7mTOmSWYV7Vj9kgirFsMbu4GKHilQ4QF+b+hdk5HquDMtrIw9s6rCBK71WKRAnusS3dwY0cg=="], + "@samva/cli-darwin-x64": ["@samva/cli-darwin-x64@0.30.0", "", { "os": "darwin", "cpu": "x64" }, "sha512-OvLfJxEP/dswwnAhK/OZHNqPEm5vOxyFNWj3NHCLr71YimCnQwhb8DMptshrXHh3b13460lhsOWBDg39cRpkWA=="], - "@samva/cli-linux-arm64": ["@samva/cli-linux-arm64@0.29.2", "", { "os": "linux", "cpu": "arm64" }, "sha512-buw9UkzZxSpxGxebU/6UQagYO8VwrX0+8GyK0G3bxMrYbynj327+y7tyokHhBfbE5vo6d8GKcHKmqwm05Au7Mw=="], - - "@samva/cli-linux-x64": ["@samva/cli-linux-x64@0.29.2", "", { "os": "linux", "cpu": "x64" }, "sha512-FjJ3C63l6nrafqXGyNQIkdubfbEd0YZQz2F4ovcvdAhiKne7SRWYnoKMkFBTGArME+TOoNA2yshAQvx9v0n3uw=="], + "@samva/cli-linux-x64": ["@samva/cli-linux-x64@0.30.0", "", { "os": "linux", "cpu": "x64" }, "sha512-m6VCpPfNpUhprHq0YwTbHE0fnMIzT/kyz+a7mCCYCtgxmv847rHmnAB7AlBiwz4UU/x/rQQ5EVIaeAGvtEZPAQ=="], "@samva/email-sdk": ["@samva/email-sdk@workspace:packages/email-sdk"], @@ -767,7 +765,7 @@ "@samva/vite": ["@samva/vite@0.22.1", "", { "dependencies": { "@samva/markup": "^0.22.1" }, "peerDependencies": { "vite": "^8.2.2" } }, "sha512-B+AYD2zfeI0TfJTaXSS49+oN7GrHm/iGtydEKaf92PDimk1ZDiXiUc76cygzFqlzS7iX/Px+HocS8J4hTNJxiA=="], - "@samva/webhooks": ["@samva/webhooks@0.34.0", "", { "peerDependencies": { "effect": "^4.0.4" }, "optionalPeers": ["effect"] }, "sha512-S5WkAPteXr3Ns3z49JFvKgyz8hkSQv0ilpXgro/u6Ai2carVz2J2Csh067rfZlw3S6psUy/2MqfESfqa/1EaOA=="], + "@samva/webhooks": ["@samva/webhooks@0.35.0", "", { "peerDependencies": { "effect": "^4.0.4" }, "optionalPeers": ["effect"] }, "sha512-bEAlLSMiENSxZO1pWB0YsJ+WBuEjQKFHuQWB+cCqRkf1fAHXiAcCk9fiMpxSl8DKDdliOQsAE1BCpb2hM4J16g=="], "@selderee/plugin-htmlparser2": ["@selderee/plugin-htmlparser2@0.12.0", "", { "dependencies": { "domelementtype": "~2.3.0", "domhandler": "~5.0.3" }, "peerDependencies": { "selderee": "~0.12.0" } }, "sha512-oELmoyA6ML9jDRMV3kgcMQFKxUfBU0yFVn6yTctVaLT5ygXnxH52I3TZEgV9EhXJC68/uFvE5Daj1/25c0Xa/A=="], @@ -1587,7 +1585,7 @@ "sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="], - "samva": ["samva@0.34.0", "", { "dependencies": { "@samva/webhooks": "0.34.0" }, "peerDependencies": { "effect": "^4.0.4" }, "optionalPeers": ["effect"] }, "sha512-iBMPmysuDADHuQUZAIJkHYDzFWEi9chWTpXvUsUKrcewJgcXB/s56AAb6Uaa3ejtd31vntsN79meDWX+1q3gXw=="], + "samva": ["samva@0.35.0", "", { "dependencies": { "@samva/webhooks": "0.35.0" }, "peerDependencies": { "effect": "^4.0.4" }, "optionalPeers": ["effect"] }, "sha512-A1W5xaplftRrpI5r5XxzpbzmbsXWrEVSueHlGK32Q5l+aK+8/4H3op73MIpZYBEbgiQ+CHXChmHcYuncdU5b4w=="], "satteri": ["satteri@0.10.5", "", { "dependencies": { "@types/estree-jsx": "^1.0.5", "@types/hast": "^3.0.5", "@types/mdast": "^4.0.4", "@types/unist": "^3.0.3" }, "optionalDependencies": { "@bruits/satteri-darwin-arm64": "0.10.5", "@bruits/satteri-darwin-x64": "0.10.5", "@bruits/satteri-linux-arm64-gnu": "0.10.5", "@bruits/satteri-linux-arm64-musl": "0.10.5", "@bruits/satteri-linux-x64-gnu": "0.10.5", "@bruits/satteri-linux-x64-musl": "0.10.5", "@bruits/satteri-wasm32-wasi": "0.10.5", "@bruits/satteri-win32-arm64-msvc": "0.10.5", "@bruits/satteri-win32-x64-msvc": "0.10.5" } }, "sha512-Ao1LKpAEa9Wdg0otgbVKViZHEq9ebdXe4DMrp3s9vQAU0HNIuHnFEuMuOcm0ZIXyV0Yzxj91NvhLpvXZJO/5ZQ=="], diff --git a/cookbooks/effect-sdk.md b/cookbooks/effect-sdk.md index 5b56242..623807e 100644 --- a/cookbooks/effect-sdk.md +++ b/cookbooks/effect-sdk.md @@ -13,7 +13,7 @@ The payload is the same. This cookbook covers the Effect runtime. ## Setup ```sh -bun add samva@^0.34.0 effect@4.1.2 +bun add samva@^0.35.0 effect@4.1.2 ``` Keep `SAMVA_API_KEY` on the server. diff --git a/cookbooks/inbound-email.md b/cookbooks/inbound-email.md index c4c4cec..5c34e58 100644 --- a/cookbooks/inbound-email.md +++ b/cookbooks/inbound-email.md @@ -46,6 +46,19 @@ unknownRecipientMailboxId })` to a mailbox that is active and has an address on or pass `null` to drop them without a bounce. Domain reads return the current value, and a catch-all webhook endpoint takes precedence over it. +To remove that webhook without disabling receiving, pass `endpointId: null`: + +```ts +await samva.email.updateCatchAllConfig({ + domainId: process.env.SAMVA_DOMAIN_ID!, + endpointId: null, + unknownRecipientMailboxId: process.env.SAMVA_MAILBOX_ID!, +}); +``` + +Omitted settings stay unchanged. With no webhook or unknown-recipient mailbox, +unknown addresses are dropped without a bounce. + Store the signing secret securely when the endpoint is created. Read the current secret again with `samva.webhooks.getSecret({ id: endpoint.endpoint.id })`; the response includes `secret`, `createdAt`, and `previousExpiresAt`. Reading it requires webhook update permission, the same diff --git a/cookbooks/mailboxes.md b/cookbooks/mailboxes.md index 6c8cb4e..0918058 100644 --- a/cookbooks/mailboxes.md +++ b/cookbooks/mailboxes.md @@ -21,7 +21,7 @@ The tests use fakes, so the whole flow runs without an account. Full reference: bun add samva ``` -These examples use `samva@^0.34.0`. Extension helpers are part of the SDK at +These examples use `samva@^0.35.0`. Extension helpers are part of the SDK at `samva/mailbox`, `samva/mailbox/test`, and `samva/mailbox/webhook`; the standalone `@samva/mailbox` package is deprecated in its favour. diff --git a/cookbooks/supabase-auth.md b/cookbooks/supabase-auth.md index db7d9ad..df96038 100644 --- a/cookbooks/supabase-auth.md +++ b/cookbooks/supabase-auth.md @@ -30,7 +30,7 @@ For a Supabase Edge Function, map those imports in `deno.json`: "react": "npm:react@19.3.1", "react/jsx-runtime": "npm:react@19.3.1/jsx-runtime", "react-email": "npm:react-email@6.11.6", - "samva": "npm:samva@0.34.0", + "samva": "npm:samva@0.35.0", "standardwebhooks": "npm:standardwebhooks@1.1.1" } } diff --git a/cookbooks/tsx-templates.md b/cookbooks/tsx-templates.md index 21c79e9..7dd73ab 100644 --- a/cookbooks/tsx-templates.md +++ b/cookbooks/tsx-templates.md @@ -9,7 +9,7 @@ runnable version of this page. ```sh bun add @samva/markup@^0.22.0 -bun add --dev @samva/cli@^0.29.0 @samva/vite@^0.22.0 vite typescript +bun add --dev @samva/cli@^0.30.0 @samva/vite@^0.22.0 vite typescript ``` The `samva` executable comes from `@samva/cli`; run it through your package runner so the local diff --git a/examples/astro-email/package.json b/examples/astro-email/package.json index e386d46..39b35a5 100644 --- a/examples/astro-email/package.json +++ b/examples/astro-email/package.json @@ -14,7 +14,7 @@ "dependencies": { "@astrojs/cloudflare": "^14.4.4", "astro": "^7.4.5", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@astrojs/check": "^0.9.12", diff --git a/examples/better-auth-nextjs/package.json b/examples/better-auth-nextjs/package.json index c1bb705..d8241ed 100644 --- a/examples/better-auth-nextjs/package.json +++ b/examples/better-auth-nextjs/package.json @@ -16,7 +16,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/node": "^26.6.6", diff --git a/examples/clerk-webhook/package.json b/examples/clerk-webhook/package.json index 19f4219..4d0fbc1 100644 --- a/examples/clerk-webhook/package.json +++ b/examples/clerk-webhook/package.json @@ -16,7 +16,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "server-only": "^0.0.1" }, "devDependencies": { diff --git a/examples/effect-sdk/package.json b/examples/effect-sdk/package.json index 4d6b66a..da26629 100644 --- a/examples/effect-sdk/package.json +++ b/examples/effect-sdk/package.json @@ -13,7 +13,7 @@ }, "dependencies": { "effect": "4.1.2", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/bun": "^1.4.4" diff --git a/examples/email-sdk/package.json b/examples/email-sdk/package.json index 9a3fef5..0bb438c 100644 --- a/examples/email-sdk/package.json +++ b/examples/email-sdk/package.json @@ -12,7 +12,7 @@ "dependencies": { "@opencoredev/email-sdk": "^3.0.1", "@samva/email-sdk": "workspace:*", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/bun": "^1.4.4" diff --git a/examples/hono-cloudflare-workers/package.json b/examples/hono-cloudflare-workers/package.json index 897f584..4a25708 100644 --- a/examples/hono-cloudflare-workers/package.json +++ b/examples/hono-cloudflare-workers/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "hono": "^4.13.16", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@cloudflare/workers-types": "^5.20261104.1", diff --git a/examples/inbound-email-replies/package.json b/examples/inbound-email-replies/package.json index 9638910..b9c11a9 100644 --- a/examples/inbound-email-replies/package.json +++ b/examples/inbound-email-replies/package.json @@ -9,7 +9,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/node": "^26.6.6", diff --git a/examples/mailbox-agent/package.json b/examples/mailbox-agent/package.json index a99e944..37caf92 100644 --- a/examples/mailbox-agent/package.json +++ b/examples/mailbox-agent/package.json @@ -11,7 +11,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/bun": "^1.4.4", diff --git a/examples/nextjs-transactional/package.json b/examples/nextjs-transactional/package.json index 448a888..bc750ec 100644 --- a/examples/nextjs-transactional/package.json +++ b/examples/nextjs-transactional/package.json @@ -13,7 +13,7 @@ "next": "^16.4.5", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "server-only": "^0.0.1" }, "devDependencies": { diff --git a/examples/react-email-samva/package.json b/examples/react-email-samva/package.json index f666f64..f66fd80 100644 --- a/examples/react-email-samva/package.json +++ b/examples/react-email-samva/package.json @@ -14,7 +14,7 @@ "react": "^19.3.1", "react-dom": "^19.3.1", "react-email": "^6.11.6", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@types/node": "^26.6.6", diff --git a/examples/supabase-auth-hook/deno.json b/examples/supabase-auth-hook/deno.json index c882e55..76b63dd 100644 --- a/examples/supabase-auth-hook/deno.json +++ b/examples/supabase-auth-hook/deno.json @@ -7,7 +7,7 @@ "react": "npm:react@19.3.1", "react/jsx-runtime": "npm:react@19.3.1/jsx-runtime", "react-email": "npm:react-email@6.11.6", - "samva": "npm:samva@0.34.0", + "samva": "npm:samva@0.35.0", "standardwebhooks": "npm:standardwebhooks@1.1.1" }, "tasks": { diff --git a/examples/supabase-auth-hook/package.json b/examples/supabase-auth-hook/package.json index d136669..0ed068b 100644 --- a/examples/supabase-auth-hook/package.json +++ b/examples/supabase-auth-hook/package.json @@ -14,7 +14,7 @@ "react": "^19.3.1", "react-dom": "^19.3.1", "react-email": "^6.11.6", - "samva": "^0.34.0", + "samva": "^0.35.0", "standardwebhooks": "^1.1.1" }, "devDependencies": { diff --git a/examples/sveltekit-transactional/package.json b/examples/sveltekit-transactional/package.json index 9172c3a..8a858ed 100644 --- a/examples/sveltekit-transactional/package.json +++ b/examples/sveltekit-transactional/package.json @@ -14,7 +14,7 @@ "typecheck": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json" }, "dependencies": { - "samva": "^0.34.0" + "samva": "^0.35.0" }, "devDependencies": { "@sveltejs/adapter-node": "^6.0.1", diff --git a/examples/tanstack-start-transactional/package.json b/examples/tanstack-start-transactional/package.json index c808702..1ece973 100644 --- a/examples/tanstack-start-transactional/package.json +++ b/examples/tanstack-start-transactional/package.json @@ -16,7 +16,7 @@ "@tanstack/react-start": "^1.169.4", "react": "^19.3.1", "react-dom": "^19.3.1", - "samva": "^0.34.0", + "samva": "^0.35.0", "zod": "^4.6.7" }, "devDependencies": { diff --git a/examples/tsx-template-samva/README.md b/examples/tsx-template-samva/README.md index 6b01837..b6993cf 100644 --- a/examples/tsx-template-samva/README.md +++ b/examples/tsx-template-samva/README.md @@ -2,7 +2,7 @@ Author Samva emails as an ordinary TSX project: two `defineTemplate` entries, a project theme, and the Samva CLI loop for checking, rendering, previewing, and publishing them. The project pins -`@samva/markup@^0.22.0`, `@samva/vite@^0.22.0`, and `@samva/cli@^0.29.0`, the toolchain a customer +`@samva/markup@^0.22.0`, `@samva/vite@^0.22.0`, and `@samva/cli@^0.30.0`, the toolchain a customer installs. ```sh diff --git a/examples/tsx-template-samva/package.json b/examples/tsx-template-samva/package.json index e2f9167..1699a06 100644 --- a/examples/tsx-template-samva/package.json +++ b/examples/tsx-template-samva/package.json @@ -14,7 +14,7 @@ "@samva/markup": "^0.22.1" }, "devDependencies": { - "@samva/cli": "^0.29.2", + "@samva/cli": "^0.30.0", "@samva/vite": "^0.22.1", "@types/node": "^26.6.6", "typescript": "^7.0.2", diff --git a/packages/better-auth/README.md b/packages/better-auth/README.md index 6b40c78..c2b522e 100644 --- a/packages/better-auth/README.md +++ b/packages/better-auth/README.md @@ -3,7 +3,7 @@ `@samva/better-auth` wires Better Auth email callbacks to the Samva SDK. It covers email verification, password reset, change-email confirmation, delete-account confirmation, email OTP, two-factor OTP, magic links, and -organization invitations. Requires `samva@^0.34.0`. Only the current SDK minor is +organization invitations. Requires `samva@^0.35.0`. Only the current SDK minor is supported while Samva is 0.x. ```ts diff --git a/packages/better-auth/package.json b/packages/better-auth/package.json index d2aa72b..444a231 100644 --- a/packages/better-auth/package.json +++ b/packages/better-auth/package.json @@ -49,12 +49,12 @@ "devDependencies": { "@react-email/render": "^2.2.0", "better-auth": "^1.7.17", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "peerDependencies": { "@react-email/render": "^2.0.0", "better-auth": "^1.7.2", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "peerDependenciesMeta": { "@react-email/render": { diff --git a/packages/email-sdk/README.md b/packages/email-sdk/README.md index 1854b7f..186a156 100644 --- a/packages/email-sdk/README.md +++ b/packages/email-sdk/README.md @@ -2,7 +2,7 @@ Provider-owned Samva community adapter for [Email SDK](https://email-sdk.dev). It targets `@opencoredev/email-sdk@^3.0.1` -and `samva@^0.34.0`. +and `samva@^0.35.0`. This adapter is maintained by Samva as a community integration; it is not an official built-in Email SDK adapter. diff --git a/packages/email-sdk/package.json b/packages/email-sdk/package.json index a8de89b..0dd824d 100644 --- a/packages/email-sdk/package.json +++ b/packages/email-sdk/package.json @@ -47,11 +47,11 @@ }, "devDependencies": { "@opencoredev/email-sdk": "^3.0.1", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "peerDependencies": { "@opencoredev/email-sdk": "^3.0.1", - "samva": "^0.34.0" + "samva": "^0.35.0" }, "engines": { "node": ">=22" diff --git a/plugins/samva/README.md b/plugins/samva/README.md index 393deea..52bf4ff 100644 --- a/plugins/samva/README.md +++ b/plugins/samva/README.md @@ -41,3 +41,27 @@ published ChatGPT plugin, direct Claude MCP connection, authentication and permission boundaries, and synthetic verification examples. Run `bun run validate:agent-plugin` from the repository root for the automated packaging checks. + +## SDK and CLI compatibility + +Use `samva@^0.35.0` and `@samva/cli@^0.30.0` with this repository's guidance. +Samva is the email and WhatsApp API; the mailbox and transactional examples here +use email explicitly. Shared template and message reads can also return WhatsApp +and SMS channels, so inspect the channel before using email content. + +Request bodies, including nested objects and CLI JSON input, must contain only +fields declared by the operation. Build mutation input explicitly rather than +spreading a read response; webhook updates use `eventTypes`, not `events`. +Omit absent optional query and header parameters instead of passing `null`. +Nullable body fields remain valid: `email.updateCatchAllConfig` accepts +`endpointId: null` to clear the webhook while keeping receiving enabled. + +CLI template list/get commands read every channel. Webhook endpoint stats expose +`latestAttempt` (which can be null). Hosted agent create/replace-draft definitions +require `reasoning` (`auto` preserves the default); `model` can be an alias or a +catalog id, and `knowledgeSourceIds` is optional. Agent reads report owner/credit +pauses and spend-cap state. The mailbox-agent example runs its own event loop; +it does not create or replace hosted agents. + +The bundled skill remains the immutable snapshot identified in `provenance.json`; +apply the compatibility guidance above when using its SDK and CLI references. From a62205de7569fa283f4c97fb246551c9dd854faf Mon Sep 17 00:00:00 2001 From: Saatvik Arya Date: Thu, 5 Nov 2026 13:13:16 +0530 Subject: [PATCH 2/2] docs(plugin): describe non-email channels without naming gated ones --- plugins/samva/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/samva/README.md b/plugins/samva/README.md index 52bf4ff..d295f16 100644 --- a/plugins/samva/README.md +++ b/plugins/samva/README.md @@ -46,8 +46,8 @@ packaging checks. Use `samva@^0.35.0` and `@samva/cli@^0.30.0` with this repository's guidance. Samva is the email and WhatsApp API; the mailbox and transactional examples here -use email explicitly. Shared template and message reads can also return WhatsApp -and SMS channels, so inspect the channel before using email content. +use email explicitly. Shared template and message reads can return channels other +than email, so inspect the channel before using email content. Request bodies, including nested objects and CLI JSON input, must contain only fields declared by the operation. Build mutation input explicitly rather than