Skip to content

feat: Web SDK update for version 25.1.0#170

Merged
ArnabChatterjee20k merged 5 commits into
mainfrom
dev
May 19, 2026
Merged

feat: Web SDK update for version 25.1.0#170
ArnabChatterjee20k merged 5 commits into
mainfrom
dev

Conversation

@ChiragAgg5k
Copy link
Copy Markdown
Member

@ChiragAgg5k ChiragAgg5k commented May 15, 2026

This PR contains updates to the Web SDK for version 25.1.0.

What's Changed

  • Added: Realtime presences channel and RealtimePresence types for presence subscriptions
  • Added: Advisor and Presences services
  • Added: Insight, Presence, and Report models with list variants
  • Added: fusionauth, keycloak, and kick providers to OAuthProvider enum
  • Added: Client.setCookie() method for forwarding cookies in server-side runtimes
  • Updated: X-Appwrite-Response-Format header to 1.9.5

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented May 18, 2026

Greptile Summary

This PR ships the 25.1.0 Web SDK update, adding two new REST services (Advisor and Presences), a realtime presence feature via upsertPresence(), three new OAuth providers, and a Client.setCookie() helper for server-side runtimes.

  • Realtime presence: upsertPresence() stores the latest payload and re-announces it on every reconnect; a single-flight socketCreationPromise prevents duplicate WebSocket opens, and a new appConnected gate stops premature subscribe frames.
  • New services: Presences (list/get/upsert/update/delete) and Advisor (listReports/getReport/listInsights/getInsight) follow the established dual-overload pattern (object-style and deprecated positional-style).
  • New models: Presence/DefaultPresence, PresenceList, Insight/InsightCTA, Report/ReportList added to Models namespace.

Confidence Score: 5/5

Safe to merge; all changes are additive and the realtime socket lifecycle refactor is well-guarded.

The new services and models are straightforward additions, the realtime reconnect and single-flight socket logic is carefully commented and defensively coded, and no existing behaviour is broken by the changes.

src/services/realtime.ts — verify whether the server-side realtime protocol supports expiresAt in presence frames and, if so, expose it in RealtimePresenceCreate.

Important Files Changed

Filename Overview
src/services/realtime.ts Significant refactor: adds single-flight socket creation, appConnected gate to prevent premature subscribe frames, and the new upsertPresence() / flushPendingPresence() flow for realtime presence; RealtimePresenceCreate is missing expiresAt relative to the REST counterpart
src/services/presences.ts New REST Presences service with list, get, upsert (PUT), update (PATCH), and delete; dual overload pattern consistent with existing services
src/services/advisor.ts New Advisor service exposing listReports, getReport, listInsights, and getInsight; follows standard SDK overload pattern without issues
src/models.ts Adds Presence/DefaultPresence, PresenceList, Insight/InsightCTA, Report/ReportList types; base Presence type omits metadata field that upsert/update accept
src/client.ts Adds setCookie() for server-side runtime cookie forwarding; version and response-format header bumped to 25.1.0 / 1.9.5
src/channel.ts Adds Presence nominal type, Channel.presence(id) and Channel.presences() factory methods, and extends Actionable/ActionableChannel unions accordingly
.github/workflows/publish.yml Pins actions/checkout and actions/setup-node to specific commit SHAs; bumps Node.js version to 24.14.1
src/enums/o-auth-provider.ts Adds Fusionauth, Keycloak, and Kick OAuth providers in alphabetical order

Reviews (2): Last reviewed commit: "chore: update Web SDK to 25.1.0" | Re-trigger Greptile

Comment thread package.json
"homepage": "https://appwrite.io/support",
"description": "Appwrite is an open-source self-hosted backend server that abstracts and simplifies complex and repetitive development tasks behind a very simple REST API",
"version": "25.0.0",
"version": "25.1.0",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Breaking rename shipped as a minor version bump

The PR title calls this "26.0.0" and the description explicitly lists breaking changes, but package.json (and CHANGELOG.md) record the release as 25.1.0 — a minor bump. This matters because createExecution's path parameter was renamed to xpath in the object-style overload: any caller passing { ..., path: '/endpoint' } will silently stop sending the parameter (it becomes undefined), and functions will execute against the default / path instead. Callers who pin to ^25.0.0 would pick up this change automatically, so a major version is needed to respect semver.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no where 26.0.0 is present

Comment thread src/services/realtime.ts Outdated
@ArnabChatterjee20k ArnabChatterjee20k changed the title feat: Web SDK 26.0.0 — server-spec generated, isomorphic feat: Web SDK update for version 25.1.0 May 18, 2026
@ArnabChatterjee20k ArnabChatterjee20k merged commit da63148 into main May 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants