Skip to content

feat(server-ai): stamp modelKey and modelVersion on AI usage events (AIC-2857)#36

Merged
atornsii merged 4 commits into
mainfrom
atornsii/AIC-2857/add-support-for-model-key-version
Jul 22, 2026
Merged

feat(server-ai): stamp modelKey and modelVersion on AI usage events (AIC-2857)#36
atornsii merged 4 commits into
mainfrom
atornsii/AIC-2857/add-support-for-model-key-version

Conversation

@atornsii

@atornsii atornsii commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Read modelKey and modelVersion from the AI Config variation payload (variation['model']) and expose them on ModelConfig
  • Stamp modelKey (when present) and modelVersion on all AIConfigTracker metric event payloads, alongside existing modelName/providerName fields
  • Default modelVersion to 1 when absent, matching variation version handling; exclude both fields from the resumption token
  • Additive/backward compatible — older payloads without the new fields continue to work

Part of AIC-2857 / AIC-2849. Mirrors the Python SDK implementation in python-server-sdk-ai#208. Depends on backend payload work (AIC-2876) shipping modelKey/modelVersion on variations.

Test plan

  • bundle exec rspec (72 passed)
  • bundle exec rubocop on changed files (no offenses)
  • Verify against a staging environment once AIC-2876 payload is available
Open in Web Open in Cursor 

Open in Devin Review

…AIC-2857)

Read modelKey and modelVersion from the AI Config variation payload and expose
them on ModelConfig. Stamp both fields on all AIConfigTracker metric event
payloads alongside existing modelName/providerName fields.

Default modelVersion to 1 when absent. Exclude both fields from the resumption
token. Additive and backward compatible with older payloads.

Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
@jsonbailey

jsonbailey commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Holding based on our conversation today and we will follow up on slack before reviewing.

@atornsii
atornsii marked this pull request as ready for review July 9, 2026 20:31
@atornsii
atornsii requested a review from a team as a code owner July 9, 2026 20:31
@atornsii
atornsii marked this pull request as draft July 15, 2026 21:36
atornsii and others added 2 commits July 15, 2026 16:20
Gonfalon moved these two fields from the payload's model object to
_ldMeta (launchdarkly/gonfalon#67230) to avoid modelVersion reading as
the underlying LLM's own version. Field names are unchanged; only the
JSON location moves. ModelConfig's public accessors and the tracker's
stamped event fields are untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
model_key/model_version should only be visible via the tracker's
stamped event data, mirroring how variation_key/version are treated.
They now flow from the already-parsed _ldMeta fields straight into
the tracker factory instead of being attached to ModelConfig.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@atornsii
atornsii marked this pull request as ready for review July 20, 2026 17:36

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@jsonbailey jsonbailey left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Approved with a non blocking nit.

Comment thread lib/server/ai/client.rb Outdated
provider_config = ProviderConfig.new(provider_config.fetch(:name, ''))
end

tracked_model_version = (variation.dig(:_ldMeta, :modelVersion) || 1).to_i

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nit: I would just call this model_version and move it down where we set the model_key value below.

Addresses Jason's review nit: renames the local var to match its
sibling model_key and moves its assignment down next to it, instead
of computing it early and separately from the rest of the meta reads.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 503ccc5. Configure here.

Comment thread lib/server/ai/client.rb
@atornsii
atornsii merged commit 2f7fda4 into main Jul 22, 2026
10 checks passed
@atornsii
atornsii deleted the atornsii/AIC-2857/add-support-for-model-key-version branch July 22, 2026 23:00
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