diff --git a/.changeset/author-is-system.md b/.changeset/author-is-system.md deleted file mode 100644 index 5e93421c..00000000 --- a/.changeset/author-is-system.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"chat": patch -"@chat-adapter/slack": patch ---- - -Add optional `isSystem` field to the normalized message `Author` type to distinguish platform-generated messages from humans and bots. The Slack adapter now sets `isSystem: true` for messages authored by Slack's reserved `USLACK` user (e.g. "@user archived the channel" notifications in DMs), so consumers no longer need to hard-code Slack-specific user IDs. diff --git a/.changeset/calm-users-email.md b/.changeset/calm-users-email.md deleted file mode 100644 index e0c75040..00000000 --- a/.changeset/calm-users-email.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@chat-adapter/teams": patch ---- - -Fall back to Microsoft Graph's user principal name when a Teams user has no mail address. diff --git a/.changeset/gchat-endpoint-url-audience.md b/.changeset/gchat-endpoint-url-audience.md deleted file mode 100644 index 77a8a1c3..00000000 --- a/.changeset/gchat-endpoint-url-audience.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -"@chat-adapter/gchat": patch ---- - -fix(gchat): accept `endpointUrl` as a direct-webhook verifier and verify each token type correctly - -When a Google Chat app's connection setting **Authentication audience** is set -to **HTTP endpoint URL** — Google's recommended option for HTTP-hosted apps -not behind Cloud Run IAM, and the only mode available for Workspace Add-on -Chat apps — incoming tokens are Google OIDC ID tokens whose `aud` is the -endpoint URL rather than the GCP project number. Previously the adapter only -verified against `googleChatProjectNumber`, so URL-audience tokens always -failed with 401 Unauthorized. The adapter now accepts `endpointUrl` as a -direct-webhook verifier (including in the constructor's fail-closed check), -validating the OIDC token's audience plus the Google Chat issuer email claims -(`chat@system.gserviceaccount.com`, or the -`service-{projectNumber}@gcp-sa-gsuiteaddons.iam.gserviceaccount.com` service -identity for Workspace Add-on Chat apps) with `email_verified: true` — a -public endpoint URL audience alone is not sufficient to forge a request. - -Project-number-audience tokens are now verified per Google's reference -implementation: they are JWTs self-signed by -`chat@system.gserviceaccount.com`, so the adapter checks them against that -service account's X.509 certificates with issuer -`chat@system.gserviceaccount.com` (previously it used `verifyIdToken`, which -only accepts Google OIDC issuers and certs and therefore rejected every real -project-number token). When both verifiers are configured, either token type -is accepted. - -The adapter still infers an endpoint URL from incoming requests for -button-click action routing only — that inferred value is never used as a -JWT verification audience, and inference now only happens after a request -has passed verification (or verification was explicitly disabled), because -`request.url` derives from the attacker-controllable `Host` header in -serverless runtimes. diff --git a/.changeset/state-pg-set-if-not-exists-ttl.md b/.changeset/state-pg-set-if-not-exists-ttl.md deleted file mode 100644 index 8f8c7721..00000000 --- a/.changeset/state-pg-set-if-not-exists-ttl.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@chat-adapter/state-pg": patch ---- - -Fix `setIfNotExists()` so it can claim a cache key whose existing row has expired. Previously the query used `ON CONFLICT DO NOTHING`, so an expired row in `chat_state_cache` still blocked acquisition until opportunistic cleanup deleted it — diverging from the memory and Redis adapters, which treat expired entries as absent. Keys stored without a TTL remain permanent and are never overwritten. diff --git a/.changeset/teams-author-email.md b/.changeset/teams-author-email.md deleted file mode 100644 index 45b2e9d6..00000000 --- a/.changeset/teams-author-email.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@chat-adapter/teams": minor -"chat": minor ---- - -Expose Microsoft Graph email addresses on normalized incoming Teams message authors. Resolved user profiles are cached in the state adapter (1 hour, failed lookups 5 minutes) so the lookup doesn't add a Graph call per message. diff --git a/.changeset/teams-streaming-placeholder.md b/.changeset/teams-streaming-placeholder.md deleted file mode 100644 index c06d6c3f..00000000 --- a/.changeset/teams-streaming-placeholder.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@chat-adapter/teams": patch -"chat": patch ---- - -Show explicitly configured progress as a native Teams DM status while preserving native streaming. diff --git a/.changeset/telegram-mention-regex-abortable-sleep.md b/.changeset/telegram-mention-regex-abortable-sleep.md deleted file mode 100644 index 2ca539e0..00000000 --- a/.changeset/telegram-mention-regex-abortable-sleep.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@chat-adapter/telegram": patch ---- - -Cache the compiled bot-mention regex in `isBotMentioned` instead of recompiling it per message, and make the protected `sleep` helper accept an optional `AbortSignal` so `stopPolling()` interrupts the polling backoff delay immediately. diff --git a/packages/adapter-discord/CHANGELOG.md b/packages/adapter-discord/CHANGELOG.md index 22524b3f..01680e9d 100644 --- a/packages/adapter-discord/CHANGELOG.md +++ b/packages/adapter-discord/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/discord +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-discord/package.json b/packages/adapter-discord/package.json index 39d0e329..7a8e7fac 100644 --- a/packages/adapter-discord/package.json +++ b/packages/adapter-discord/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/discord", - "version": "4.34.0", + "version": "4.35.0", "description": "Discord adapter for Chat SDK — HTTP interactions, Gateway events, slash commands, and embeds", "type": "module", "engines": { diff --git a/packages/adapter-gchat/CHANGELOG.md b/packages/adapter-gchat/CHANGELOG.md index e5ddb287..c25672dd 100644 --- a/packages/adapter-gchat/CHANGELOG.md +++ b/packages/adapter-gchat/CHANGELOG.md @@ -1,5 +1,47 @@ # @chat-adapter/gchat +## 4.35.0 + +### Patch Changes + +- 270b1c2: fix(gchat): accept `endpointUrl` as a direct-webhook verifier and verify each token type correctly + + When a Google Chat app's connection setting **Authentication audience** is set + to **HTTP endpoint URL** — Google's recommended option for HTTP-hosted apps + not behind Cloud Run IAM, and the only mode available for Workspace Add-on + Chat apps — incoming tokens are Google OIDC ID tokens whose `aud` is the + endpoint URL rather than the GCP project number. Previously the adapter only + verified against `googleChatProjectNumber`, so URL-audience tokens always + failed with 401 Unauthorized. The adapter now accepts `endpointUrl` as a + direct-webhook verifier (including in the constructor's fail-closed check), + validating the OIDC token's audience plus the Google Chat issuer email claims + (`chat@system.gserviceaccount.com`, or the + `service-{projectNumber}@gcp-sa-gsuiteaddons.iam.gserviceaccount.com` service + identity for Workspace Add-on Chat apps) with `email_verified: true` — a + public endpoint URL audience alone is not sufficient to forge a request. + + Project-number-audience tokens are now verified per Google's reference + implementation: they are JWTs self-signed by + `chat@system.gserviceaccount.com`, so the adapter checks them against that + service account's X.509 certificates with issuer + `chat@system.gserviceaccount.com` (previously it used `verifyIdToken`, which + only accepts Google OIDC issuers and certs and therefore rejected every real + project-number token). When both verifiers are configured, either token type + is accepted. + + The adapter still infers an endpoint URL from incoming requests for + button-click action routing only — that inferred value is never used as a + JWT verification audience, and inference now only happens after a request + has passed verification (or verification was explicitly disabled), because + `request.url` derives from the attacker-controllable `Host` header in + serverless runtimes. + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-gchat/package.json b/packages/adapter-gchat/package.json index dd47531b..46cea08c 100644 --- a/packages/adapter-gchat/package.json +++ b/packages/adapter-gchat/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/gchat", - "version": "4.34.0", + "version": "4.35.0", "description": "Google Chat adapter for Chat SDK — service account auth, Card v2, dialogs, and Workspace Events", "type": "module", "engines": { diff --git a/packages/adapter-github/CHANGELOG.md b/packages/adapter-github/CHANGELOG.md index dd51e935..64fcd749 100644 --- a/packages/adapter-github/CHANGELOG.md +++ b/packages/adapter-github/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/github +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-github/package.json b/packages/adapter-github/package.json index fd6c08b1..ce403091 100644 --- a/packages/adapter-github/package.json +++ b/packages/adapter-github/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/github", - "version": "4.34.0", + "version": "4.35.0", "description": "GitHub adapter for Chat SDK — respond to @mentions in pull request and issue comment threads", "type": "module", "engines": { diff --git a/packages/adapter-linear/CHANGELOG.md b/packages/adapter-linear/CHANGELOG.md index 1d93d479..c4dea59c 100644 --- a/packages/adapter-linear/CHANGELOG.md +++ b/packages/adapter-linear/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/linear +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-linear/package.json b/packages/adapter-linear/package.json index d8a2f7c1..08fbdd28 100644 --- a/packages/adapter-linear/package.json +++ b/packages/adapter-linear/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/linear", - "version": "4.34.0", + "version": "4.35.0", "description": "Linear adapter for Chat SDK — @mentions in issue comments and Linear agent sessions", "type": "module", "engines": { diff --git a/packages/adapter-messenger/CHANGELOG.md b/packages/adapter-messenger/CHANGELOG.md index 146399f1..daa86c36 100644 --- a/packages/adapter-messenger/CHANGELOG.md +++ b/packages/adapter-messenger/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/messenger +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-messenger/package.json b/packages/adapter-messenger/package.json index 2a2f9546..8c1e855c 100644 --- a/packages/adapter-messenger/package.json +++ b/packages/adapter-messenger/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/messenger", - "version": "4.34.0", + "version": "4.35.0", "description": "Facebook Messenger adapter for Chat SDK — Send API webhooks, templates, and quick replies", "type": "module", "engines": { diff --git a/packages/adapter-shared/CHANGELOG.md b/packages/adapter-shared/CHANGELOG.md index 1b729b1a..1ac92d24 100644 --- a/packages/adapter-shared/CHANGELOG.md +++ b/packages/adapter-shared/CHANGELOG.md @@ -1,5 +1,14 @@ # @chat-adapter/shared +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-shared/package.json b/packages/adapter-shared/package.json index 5ae64bd8..2e51b7c0 100644 --- a/packages/adapter-shared/package.json +++ b/packages/adapter-shared/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/shared", - "version": "4.34.0", + "version": "4.35.0", "description": "Shared utilities for Chat SDK platform adapters", "type": "module", "engines": { diff --git a/packages/adapter-slack/CHANGELOG.md b/packages/adapter-slack/CHANGELOG.md index 630325e0..3fb2b72d 100644 --- a/packages/adapter-slack/CHANGELOG.md +++ b/packages/adapter-slack/CHANGELOG.md @@ -1,5 +1,16 @@ # @chat-adapter/slack +## 4.35.0 + +### Patch Changes + +- 80def3a: Add optional `isSystem` field to the normalized message `Author` type to distinguish platform-generated messages from humans and bots. The Slack adapter now sets `isSystem: true` for messages authored by Slack's reserved `USLACK` user (e.g. "@user archived the channel" notifications in DMs), so consumers no longer need to hard-code Slack-specific user IDs. +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-slack/package.json b/packages/adapter-slack/package.json index 55e11689..02184685 100644 --- a/packages/adapter-slack/package.json +++ b/packages/adapter-slack/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/slack", - "version": "4.34.0", + "version": "4.35.0", "description": "Slack adapter for Chat SDK — webhooks, Block Kit cards, OAuth, slash commands, and AI streaming", "type": "module", "engines": { diff --git a/packages/adapter-teams/CHANGELOG.md b/packages/adapter-teams/CHANGELOG.md index 61940a76..b8c9a979 100644 --- a/packages/adapter-teams/CHANGELOG.md +++ b/packages/adapter-teams/CHANGELOG.md @@ -1,5 +1,21 @@ # @chat-adapter/teams +## 4.35.0 + +### Minor Changes + +- 46681f5: Expose Microsoft Graph email addresses on normalized incoming Teams message authors. Resolved user profiles are cached in the state adapter (1 hour, failed lookups 5 minutes) so the lookup doesn't add a Graph call per message. + +### Patch Changes + +- 3895ab3: Fall back to Microsoft Graph's user principal name when a Teams user has no mail address. +- 93a58af: Show explicitly configured progress as a native Teams DM status while preserving native streaming. +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-teams/package.json b/packages/adapter-teams/package.json index af395e8f..146c0322 100644 --- a/packages/adapter-teams/package.json +++ b/packages/adapter-teams/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/teams", - "version": "4.34.0", + "version": "4.35.0", "description": "Microsoft Teams adapter for Chat SDK — Bot Framework webhooks, Adaptive Cards, and Graph API", "type": "module", "engines": { diff --git a/packages/adapter-telegram/CHANGELOG.md b/packages/adapter-telegram/CHANGELOG.md index 23ba68ab..f3986df2 100644 --- a/packages/adapter-telegram/CHANGELOG.md +++ b/packages/adapter-telegram/CHANGELOG.md @@ -1,5 +1,16 @@ # @chat-adapter/telegram +## 4.35.0 + +### Patch Changes + +- 0701679: Cache the compiled bot-mention regex in `isBotMentioned` instead of recompiling it per message, and make the protected `sleep` helper accept an optional `AbortSignal` so `stopPolling()` interrupts the polling backoff delay immediately. +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-telegram/package.json b/packages/adapter-telegram/package.json index fe87491f..f5c642f1 100644 --- a/packages/adapter-telegram/package.json +++ b/packages/adapter-telegram/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/telegram", - "version": "4.34.0", + "version": "4.35.0", "description": "Telegram adapter for Chat SDK — Bot API webhooks, inline keyboards, reactions, and streaming", "type": "module", "engines": { diff --git a/packages/adapter-twilio/CHANGELOG.md b/packages/adapter-twilio/CHANGELOG.md index 05f14284..377ce2a1 100644 --- a/packages/adapter-twilio/CHANGELOG.md +++ b/packages/adapter-twilio/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/twilio +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/adapter-twilio/package.json b/packages/adapter-twilio/package.json index 01e61c37..cc2039ca 100644 --- a/packages/adapter-twilio/package.json +++ b/packages/adapter-twilio/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/twilio", - "version": "4.34.0", + "version": "4.35.0", "description": "Twilio adapter for Chat SDK — SMS and MMS bots with Messaging webhooks and the Messages API", "type": "module", "engines": { diff --git a/packages/adapter-web/CHANGELOG.md b/packages/adapter-web/CHANGELOG.md index a72e23c2..6191c79f 100644 --- a/packages/adapter-web/CHANGELOG.md +++ b/packages/adapter-web/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/web +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-web/package.json b/packages/adapter-web/package.json index 647263bb..b77170ec 100644 --- a/packages/adapter-web/package.json +++ b/packages/adapter-web/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/web", - "version": "4.34.0", + "version": "4.35.0", "description": "Web adapter for Chat SDK — browser chat UI via the AI SDK useChat stream protocol", "type": "module", "engines": { diff --git a/packages/adapter-whatsapp/CHANGELOG.md b/packages/adapter-whatsapp/CHANGELOG.md index 491f2476..6a79d970 100644 --- a/packages/adapter-whatsapp/CHANGELOG.md +++ b/packages/adapter-whatsapp/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/whatsapp +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-whatsapp/package.json b/packages/adapter-whatsapp/package.json index 8b13d04f..db58d976 100644 --- a/packages/adapter-whatsapp/package.json +++ b/packages/adapter-whatsapp/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/whatsapp", - "version": "4.34.0", + "version": "4.35.0", "description": "WhatsApp adapter for Chat SDK — Business Cloud API webhooks, interactive messages, and templates", "type": "module", "engines": { diff --git a/packages/adapter-x/CHANGELOG.md b/packages/adapter-x/CHANGELOG.md index 039f8818..b4c3cdd5 100644 --- a/packages/adapter-x/CHANGELOG.md +++ b/packages/adapter-x/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/x +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + - @chat-adapter/shared@4.35.0 + ## 4.34.0 ### Minor Changes diff --git a/packages/adapter-x/package.json b/packages/adapter-x/package.json index 1e227adc..a1f8b177 100644 --- a/packages/adapter-x/package.json +++ b/packages/adapter-x/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/x", - "version": "4.34.0", + "version": "4.35.0", "description": "X (Twitter) adapter for Chat SDK: reply to mentions, send direct messages, and post from your bot account with the X API v2", "type": "module", "engines": { diff --git a/packages/chat/CHANGELOG.md b/packages/chat/CHANGELOG.md index 4c1484e9..be5f3023 100644 --- a/packages/chat/CHANGELOG.md +++ b/packages/chat/CHANGELOG.md @@ -1,5 +1,16 @@ # chat +## 4.35.0 + +### Minor Changes + +- 46681f5: Expose Microsoft Graph email addresses on normalized incoming Teams message authors. Resolved user profiles are cached in the state adapter (1 hour, failed lookups 5 minutes) so the lookup doesn't add a Graph call per message. + +### Patch Changes + +- 80def3a: Add optional `isSystem` field to the normalized message `Author` type to distinguish platform-generated messages from humans and bots. The Slack adapter now sets `isSystem: true` for messages authored by Slack's reserved `USLACK` user (e.g. "@user archived the channel" notifications in DMs), so consumers no longer need to hard-code Slack-specific user IDs. +- 93a58af: Show explicitly configured progress as a native Teams DM status while preserving native streaming. + ## 4.34.0 ### Minor Changes diff --git a/packages/chat/package.json b/packages/chat/package.json index 144b1bff..c31ad31a 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -1,6 +1,6 @@ { "name": "chat", - "version": "4.34.0", + "version": "4.35.0", "description": "Chat SDK — universal TypeScript toolkit for building multi-platform chat bots and AI agents on Slack, Teams, Google Chat, Discord, WhatsApp, and more", "type": "module", "engines": { diff --git a/packages/state-ioredis/CHANGELOG.md b/packages/state-ioredis/CHANGELOG.md index c044792a..a002c77e 100644 --- a/packages/state-ioredis/CHANGELOG.md +++ b/packages/state-ioredis/CHANGELOG.md @@ -1,5 +1,14 @@ # @chat-adapter/state-ioredis +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/state-ioredis/package.json b/packages/state-ioredis/package.json index 42e8cff9..23376a23 100644 --- a/packages/state-ioredis/package.json +++ b/packages/state-ioredis/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/state-ioredis", - "version": "4.34.0", + "version": "4.35.0", "description": "ioredis state adapter for Chat SDK — production state with Redis Cluster and Sentinel support via ioredis", "type": "module", "engines": { diff --git a/packages/state-memory/CHANGELOG.md b/packages/state-memory/CHANGELOG.md index f59c9255..54592745 100644 --- a/packages/state-memory/CHANGELOG.md +++ b/packages/state-memory/CHANGELOG.md @@ -1,5 +1,14 @@ # @chat-adapter/state-memory +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/state-memory/package.json b/packages/state-memory/package.json index 8f163755..2ee38ea5 100644 --- a/packages/state-memory/package.json +++ b/packages/state-memory/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/state-memory", - "version": "4.34.0", + "version": "4.35.0", "description": "In-memory state adapter for Chat SDK — zero-dependency subscriptions, locks, and cache for local development and tests", "type": "module", "engines": { diff --git a/packages/state-pg/CHANGELOG.md b/packages/state-pg/CHANGELOG.md index 36c624b6..03af3f70 100644 --- a/packages/state-pg/CHANGELOG.md +++ b/packages/state-pg/CHANGELOG.md @@ -1,5 +1,15 @@ # @chat-adapter/state-pg +## 4.35.0 + +### Patch Changes + +- d88789c: Fix `setIfNotExists()` so it can claim a cache key whose existing row has expired. Previously the query used `ON CONFLICT DO NOTHING`, so an expired row in `chat_state_cache` still blocked acquisition until opportunistic cleanup deleted it — diverging from the memory and Redis adapters, which treat expired entries as absent. Keys stored without a TTL remain permanent and are never overwritten. +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/state-pg/package.json b/packages/state-pg/package.json index 6f299bea..601f0406 100644 --- a/packages/state-pg/package.json +++ b/packages/state-pg/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/state-pg", - "version": "4.34.0", + "version": "4.35.0", "description": "PostgreSQL state adapter for Chat SDK — production subscriptions, distributed locks, cache, lists, and queues", "type": "module", "engines": { diff --git a/packages/state-redis/CHANGELOG.md b/packages/state-redis/CHANGELOG.md index 495db9f3..19bd368f 100644 --- a/packages/state-redis/CHANGELOG.md +++ b/packages/state-redis/CHANGELOG.md @@ -1,5 +1,14 @@ # @chat-adapter/state-redis +## 4.35.0 + +### Patch Changes + +- Updated dependencies [80def3a] +- Updated dependencies [46681f5] +- Updated dependencies [93a58af] + - chat@4.35.0 + ## 4.34.0 ### Patch Changes diff --git a/packages/state-redis/package.json b/packages/state-redis/package.json index 09d6946d..6d435155 100644 --- a/packages/state-redis/package.json +++ b/packages/state-redis/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/state-redis", - "version": "4.34.0", + "version": "4.35.0", "description": "Redis state adapter for Chat SDK — production subscriptions, distributed locks, cache, lists, and queues via node-redis", "type": "module", "engines": { diff --git a/packages/tests/CHANGELOG.md b/packages/tests/CHANGELOG.md index 97b8e169..b0d8d483 100644 --- a/packages/tests/CHANGELOG.md +++ b/packages/tests/CHANGELOG.md @@ -1,5 +1,7 @@ # @chat-adapter/tests +## 4.35.0 + ## 4.34.0 ## 4.33.0 diff --git a/packages/tests/package.json b/packages/tests/package.json index 49c76c51..8f8cab7a 100644 --- a/packages/tests/package.json +++ b/packages/tests/package.json @@ -1,6 +1,6 @@ { "name": "@chat-adapter/tests", - "version": "4.34.0", + "version": "4.35.0", "description": "Vitest factories, matchers, and setup utilities for testing Chat SDK adapters and bots", "type": "module", "main": "./dist/index.js",