feat: add capabilities based on supabase-js public methods - #19
Merged
Conversation
grdsdev
reviewed
Jun 12, 2026
grdsdev
reviewed
Jun 12, 2026
grdsdev
reviewed
Jun 12, 2026
2 tasks
mandarini
force-pushed
the
feat/add-capabilities-clean
branch
from
June 12, 2026 12:12
f5d3a6a to
34d6881
Compare
Co-authored-by: Guilherme Souza <ogrsouza@gmail.com>
mandarini
force-pushed
the
feat/add-capabilities-clean
branch
from
June 12, 2026 12:14
34d6881 to
3722842
Compare
Contributor
Author
|
@grdsdev I adopted some of your changes from #20, but left some others out. I added a comment here: #20 (comment) Let's discuss my decision! |
mandarini
marked this pull request as ready for review
June 12, 2026 12:29
o-santi
approved these changes
Jun 12, 2026
spydon
reviewed
Jun 12, 2026
spydon
approved these changes
Jun 12, 2026
Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
Co-authored-by: Lukas Klingsbo <lukas.klingsbo@gmail.com>
* feat: add non-obvious capabilities to the matrix Extends the capability matrix with features exposed by supabase-js that are not trivially represented as a single method call — initialization options, implicit behaviors, callback hooks, and advanced configuration. New area: - client.yaml: 16 features covering SupabaseClient cross-cutting config (third-party auth via accessToken callback, custom session storage, SSR mode, global headers, OpenTelemetry trace propagation, etc.) Added features to existing areas: - database: auto-retry with backoff, custom fetch, request timeout, abort signal, strip nulls, override response type, relationship embed - realtime: postgres changes row filter, private channels (RLS), broadcast self-delivery/ack/replay, custom WebSocket transport, dynamic access token callback, worker heartbeat, binary protocol, reconnect backoff, deferred disconnect, custom logger - storage: image resize/quality/format transforms, cross-bucket move/copy, upload metadata, URL cache nonce, streaming download, vector bucket management, Iceberg analytics buckets - functions: streaming response (SSE), region selection, timeout, abort signal, response type detection, typed error classes, custom fetch, HTTP method override Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: remove language/framework-specific features from capability matrix Remove features that are JS/TypeScript-specific and cannot be implemented generically across all SDK languages: - database.using_modifiers.override_response_type (TypeScript type system only) - realtime.config.worker_heartbeat (Web Worker API, browser/JS only) - client.session_management.storage_key (JS localStorage key naming) - client.session_management.ssr_mode (SSR / Next.js specific) - client.observability.auth_debug (supabase-js internal debug mode) Rename JS-specific terminology to language-neutral equivalents: - "fetch" → "HTTP client" in database, functions, and client config - "AbortSignal" → "request cancellation" in database and functions - Remove implementation-specific details from descriptions (AbortController, React Native, @opentelemetry/api package, localStorage interface) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: convert all capability IDs to kebab-case and enforce via schema Replace underscores with hyphens in all feature IDs, group IDs, and area names across every capability YAML file. Update the JSON schema regex patterns to reject snake_case going forward. Rename the specs/auth/sign_in directory to specs/auth/sign-in to match. Update all tests and fixtures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: use snake_case for all capability IDs and enforce via schema Convert all feature IDs, group IDs, and group references to snake_case throughout every capability YAML file. Update JSON schema patterns to enforce snake_case (reject hyphens) for area names, group IDs, and three-segment feature IDs. Rename specs/auth/sign_in directory and update all tests and fixtures. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: expand abbreviated group IDs in capability matrix Replace auth_integration → authentication_integration, config → configuration, and request_config → request_configuration in all group declarations, group references, and feature IDs across client.yaml, database.yaml, and realtime.yaml. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: address review comments on capability structure - Drop client.session_management.auto_refresh_token (covered by auth.session.auto_refresh) - Drop client.request_configuration.schema_selection and db_timeout (consolidated into single capabilities in database.yaml) - Drop client.request_configuration.custom_http_client duplicate from database.yaml and functions.yaml; keep single entry in client.yaml - Rename file-bucket lifecycle operations to create_file_bucket/list_file_buckets/delete_file_bucket for per-kind symmetry - Rename analytics lifecycle operations to create_analytics_bucket/list_analytics_buckets/delete_analytics_bucket - Drop storage transforms group and image_resize/image_quality/image_format entries - Trim realtime.configuration.binary_protocol description to protocol version selection only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
grdsdev
approved these changes
Jun 16, 2026
grdsdev
pushed a commit
that referenced
this pull request
Aug 12, 2026
🤖 I have created a release *beep* *boop* --- ## [1.0.0](v1.0.0...v1.0.0) (2026-08-12) ### ⚠ BREAKING CHANGES * reconcile capability matrix inconsistencies from skill audit ([#74](#74)) ### Features * add capabilities based on supabase-js public methods ([#19](#19)) ([8b07e38](8b07e38)) * add capability-matrix maintenance skill ([#73](#73)) ([070e2c9](070e2c9)) * add review-spec and review-spec-compliance skills ([#6](#6)) ([b2646c1](b2646c1)) * add SDK implementation status matrix to README and skill ([#4](#4)) ([753f06c](753f06c)) * **api-check:** include file path and line number in compliance failure messages ([#45](#45)) ([2f4be47](2f4be47)) * **auth:** add sign-out reason capability ([#47](#47)) ([51a3abd](51a3abd)) * canonical SDK capability matrix ([#8](#8)) ([215bc3e](215bc3e)) * **capability-matrix:** strict cross-SDK parity score + coverage scope ([#63](#63)) ([de1abe1](de1abe1)) * CI check 1 — block PRs adding public API not in capability matrix ([#31](#31)) ([293440c](293440c)) * **compliance:** list undeclared features after validation ([#48](#48)) ([29f396a](29f396a)) * **compliance:** list undeclared features as notes after validation ([29f396a](29f396a)) * **compliance:** split symbol evidence from symbol coverage ([#75](#75)) ([abc8e71](abc8e71)) * initial SDK specs, skills, and install script ([e662b17](e662b17)) * move SDK compliance to per-repo files ([#15](#15)) ([4d32675](4d32675)) * **parsers:** add Dart public API parser via package:analyzer (alternative to [#35](#35)) ([#41](#41)) ([e3ba07a](e3ba07a)) * **parsers:** add griffe-based Python public API surface parser ([#36](#36)) ([c44f836](c44f836)) * **parsers:** replace Swift regex parser with swift-symbolgraph-extract ([#38](#38)) ([80529a7](80529a7)) * **realtime:** add multiple postgres_changes filters capability ([#70](#70)) ([825ab0c](825ab0c)) * reconcile capability matrix inconsistencies from skill audit ([#74](#74)) ([9c53a70](9c53a70)) * rename sdk-parse-ignore to .sdk-parse-ignore ([#37](#37)) ([4f4ab61](4f4ab61)) * render symbol names as clickable links in capability matrix ([#14](#14)) ([dcaf122](dcaf122)) * show feature description as visible sub-text in capability matrix ([#13](#13)) ([3a750ab](3a750ab)) * **site:** serve compliance.json with precomputed parity from GitHub Pages ([#46](#46)) ([0d9106c](0d9106c)) * **storage:** add purge_cache and purge_bucket_cache canonical capabilities ([#44](#44)) ([9a6f864](9a6f864)) * **storage:** add storage.errors.error_codes capability ([#71](#71)) ([fabb9a7](fabb9a7)) * **storage:** add the five missing Iceberg catalog capabilities ([#76](#76)) ([c3c8f9e](c3c8f9e)) ### Bug Fixes * **aggregate:** point csharp and go SDKs at correct repo slugs ([#62](#62)) ([8b7320f](8b7320f)) * **aggregate:** point kotlin SDK at supabase-community/supabase-kt ([#61](#61)) ([b1a99e9](b1a99e9)) * **capability-matrix:** correct coverage scope metric description ([#64](#64)) ([5daeaf5](5daeaf5)) * **ci:** repair python pipeline and simplify sdk-compliance workflow ([#42](#42)) ([2140f44](2140f44)) * **ci:** use nx to run docs:json so workspace deps are built first ([#56](#56)) ([9b449bb](9b449bb)) * **dart-extractor:** exclude [@internal-annotated](https://github.com/internal-annotated) symbols from the public API surface ([9bd358e](9bd358e)) * **dart-extractor:** exclude [@internal](https://github.com/internal) symbols from the public API surface ([#54](#54)) ([9bd358e](9bd358e)) * remove broken sticky thead, add scroll-margin-top and group-row borders ([#10](#10)) ([68761cd](68761cd)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seeds all 5 capability files (auth, database, storage, realtime, functions) from supabase-js's typedoc spec.json — ~200 feature entries with ids, names, descriptions, and groups derived mechanically from the public API surface. Generated by scripts/sync-canon.ts in supabase-js. Future SDKs declare compliance against these IDs; future updates land as additive PRs.
Moved from #18
after this is merged, I can merge supabase/supabase-js#2441 and test it out