Skip to content

fix(repo): populate symbols in sdk-compliance so capabilities are verifiable#2547

Merged
mandarini merged 2 commits into
masterfrom
fix/capability-matrix-symbols
Jul 22, 2026
Merged

fix(repo): populate symbols in sdk-compliance so capabilities are verifiable#2547
mandarini merged 2 commits into
masterfrom
fix/capability-matrix-symbols

Conversation

@mandarini

@mandarini mandarini commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

The SDK compliance workflow posts a "Capability matrix drift detected" comment on every PR because almost every capability in sdk-compliance.yaml is marked implemented without a symbols: list, so the drift checker cannot verify the code backing it. This changes scripts/audit-sdk-compliance.ts to carry each capability's originating typedoc symbol through generation and emit a symbols: list for every entry, instead of relying on the single manual SYMBOL_OVERRIDES entry. Symbols use the raw typedoc class name so storage's default-exported StorageFileApi/StorageBucketApi resolve correctly as default.*.

Regenerating from current specs also adds two canon-valid storage capabilities (storage.file_buckets.purge_cache and purge_bucket_cache). A few JS-only RealtimeClient methods surfaced that have no canonical counterpart (isConnected, isConnecting, isDisconnecting, endpointURL), so they are dropped via scripts/canonical-mapping.yaml to keep the file valid against the canonical matrix. All 191 emitted symbols resolve against the current typedoc specs, the blocking public-API validation passes, and the drift comment no longer fires.

@mandarini mandarini self-assigned this Jul 22, 2026
@mandarini
mandarini marked this pull request as ready for review July 22, 2026 13:31
@mandarini
mandarini requested review from a team as code owners July 22, 2026 13:31
@pkg-pr-new

pkg-pr-new Bot commented Jul 22, 2026

Copy link
Copy Markdown

Open in StackBlitz

@supabase/auth-js

npm i https://pkg.pr.new/@supabase/auth-js@2547

@supabase/functions-js

npm i https://pkg.pr.new/@supabase/functions-js@2547

@supabase/postgrest-js

npm i https://pkg.pr.new/@supabase/postgrest-js@2547

@supabase/realtime-js

npm i https://pkg.pr.new/@supabase/realtime-js@2547

@supabase/storage-js

npm i https://pkg.pr.new/@supabase/storage-js@2547

@supabase/supabase-js

npm i https://pkg.pr.new/@supabase/supabase-js@2547

commit: 2b57878

spydon
spydon previously approved these changes Jul 22, 2026
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dde2e1ae-6a12-45fc-8c87-5e6813dd3ce4

📥 Commits

Reviewing files that changed from the base of the PR and between 0f854dc and 2b57878.

📒 Files selected for processing (3)
  • scripts/audit-sdk-compliance.ts
  • scripts/canonical-mapping.yaml
  • sdk-compliance.yaml
🚧 Files skipped from review as they are similar to previous changes (2)
  • scripts/canonical-mapping.yaml
  • sdk-compliance.yaml

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Expanded SDK compliance records to use structured entries (status: implemented) with explicit symbols lists across auth, database, storage, realtime, and functions.
    • Improved traceability by linking each implemented capability to the exact SDK symbol(s) that generate it.
    • Refined realtime canonical capability mappings, including updates to presence and realtime client status/endpoint coverage for more accurate equivalence.

Walkthrough

The compliance audit now collects typedoc symbols alongside canonical feature IDs, preserves raw class names during traversal, and merges mapped identifiers with symbol overrides. YAML output now uses structured status and deduplicated symbols entries. The compliance manifest expands auth, database, storage, realtime, and functions capabilities with explicit SDK symbol mappings.

Sequence Diagram(s)

sequenceDiagram
  participant Typedoc
  participant collectMethods
  participant emitYaml
  participant ComplianceManifest
  Typedoc->>collectMethods: Provide methods and class context
  collectMethods->>collectMethods: Canonicalize feature IDs and accumulate symbols
  collectMethods->>emitYaml: Return per-area IDs and symbols
  emitYaml->>ComplianceManifest: Emit status and symbols entries
Loading

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 Checkov (3.3.8)
scripts/canonical-mapping.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

sdk-compliance.yaml

Traceback (most recent call last):
File "/usr/local/bin/checkov", line 2, in
from checkov.main import Checkov
ModuleNotFoundError: No module named 'checkov'

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@mandarini
mandarini force-pushed the fix/capability-matrix-symbols branch from 0f854dc to 2b57878 Compare July 22, 2026 14:56
@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 80.679%. remained the same — fix/capability-matrix-symbols into master

@mandarini
mandarini merged commit 0c5b5d9 into master Jul 22, 2026
30 checks passed
@mandarini
mandarini deleted the fix/capability-matrix-symbols branch July 22, 2026 15:09
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.

4 participants