Skip to content

chore: Add .sdk_metadata.json for sdk-meta catalog - #38

Open
jsonbailey wants to merge 6 commits into
mainfrom
jb/sdk-3025/add-sdk-metadata
Open

chore: Add .sdk_metadata.json for sdk-meta catalog#38
jsonbailey wants to merge 6 commits into
mainfrom
jb/sdk-3025/add-sdk-metadata

Conversation

@jsonbailey

@jsonbailey jsonbailey commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Why

The sdk-meta repo builds the SDK catalog by crawling every repo with the launchdarkly-sdk topic and reading its .sdk_metadata.json. This repo has never had one, so the Ruby AI SDK is absent from names.json, types.json, features.json, and repos.json.

A recent attempt to fix this for the AI SDKs by hand-editing sdk-meta's products/ directory did not survive, because products/ is generated — generate-products.sh deletes and rebuilds it from metadata.sqlite3, which is itself rebuilt from these files. Adding the driving file here is the durable fix.

What

One new file. No source, build, or release changes.

{
  "version": 1,
  "sdks": {
    "ruby-server-sdk-ai": {
      "name": "Ruby Server AI SDK",
      "type": "ai",
      "languages": ["Ruby"],
      "aiSdkNames": ["launchdarkly-server-sdk-ai"],
      "features": {
        "aiCompletionConfig": { "introduced": "0.1" },
        "aiTrackMetrics":     { "introduced": "0.1" }
      }
    }
  }
}

Notes on the values

aiSdkNames is the package name this SDK reports as aiSdkName in its $ld:ai:sdk:info event (lib/server/ai/sdk_info.rb). It is added ahead of the sdk-meta support that reads it — see launchdarkly/sdk-meta#607 — and the ingest tool ignores unknown fields, so it is inert until that lands.

The value is not unique: the Python AI SDK reports the same string. sdk-meta pairs each name with the SDK's declared languages at generation time, so ruby versus python is what tells them apart. That is also why the language is not repeated here.

releases block omitted — this repo tags bare semver (0.4.0, not v0.4.0), which is sdk-meta's default. No tag-prefix needed.

userAgents / wrapperNames omitted — this SDK wraps a caller-supplied LDClient. It opens no connections of its own and sets no wrapper name, so it has neither.

path omitted — not a monorepo, matching sdk-meta's existing launchdarkly_ruby-server-sdk.json.

No judge, agent, or agent-graph features — verified rather than assumed. git grep -niE "judge|agent" <tag> -- lib returns zero matches at every released tag (0.1.0 through 0.4.0). Client exposes only completion_config, create_tracker, and the deprecated config.

Only ai-prefixed features are declared. Everything else in sdk-meta's feature vocabulary belongs to the base SDK, not to this layer. contexts, experimentation, and privateAttrs are all provided by launchdarkly-ruby-server-sdk, where sdk-meta already records them — declaring them again here would double-count and would make every AI SDK look identical in the feature matrix.

Each introduced value was checked against the tree at that tag rather than inferred from current source.

Effect

The SDK appears in sdk-meta's catalog on the next nightly crawl. It will not appear in releases.json until a 1.0 release — sdk-meta drops all 0.x versions from release and EOL data. That matches how fastly, shopify-oxygen, and svelte are handled today.

chore: rather than feat: deliberately — release-please-config.json sets bump-minor-pre-major: true, so a feat: would cut 0.5.0 for a metadata file.


Note

Overview
Adds .sdk_metadata.json so the Ruby Server AI SDK is picked up by sdk-meta’s nightly crawl and shows up in the generated catalog (names.json, types.json, features.json, repos.json).

The file registers ruby-server-sdk-ai as type ai, maps aiSdkNames to launchdarkly-server-sdk-ai (aligned with SDK_NAME in sdk_info.rb), and declares aiCompletionConfig and aiTrackMetrics from version 0.1. No application source, build, or release behavior changes.

Reviewed by Cursor Bugbot for commit ba0b446. Bugbot is set up for automated code reviews on this repo. Configure here.

@jsonbailey
jsonbailey requested a review from a team as a code owner September 1, 2026 17:16
Comment thread .sdk_metadata.json Outdated
Comment thread .sdk_metadata.json Outdated
Comment thread .sdk_metadata.json
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.

2 participants