feat(server-ai): stamp model metadata on AI usage events#192
Open
atornsii wants to merge 5 commits into
Open
Conversation
Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
Co-authored-by: Anthony Torns II <atornsii@users.noreply.github.com>
…oken test Model.getModelKey() previously returned an empty string for a blank-but-present modelKey payload value, contradicting its own Javadoc contract and diverging from TrackData/tracker normalization. Trim it to null in AIConfigParser like other string fields. Also strengthen resumptionTokenExcludesModelMetadata to decode the token and assert the wire format has no modelKey/modelVersion, rather than relying solely on token equality across two trackers. Co-authored-by: Cursor <cursoragent@cursor.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.
Requirements
Related issues
Describe the solution you've provided
Read
modelKeyandmodelVersionfrom AI Config model payloads, expose them on the public model/tracking data types, and stamp them on every emitted tracker metric event. Model version defaults to1, null/empty/whitespace model keys are omitted, and the resumption-token format remains unchanged.Describe alternatives you've considered
This mirrors the established JavaScript and .NET SDK implementations.
Additional context
Depends on AIC-2876 for the backend payload fields.
Test plan
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 lib/sdk/server-ai/gradlew test -p lib/sdk/server-aiJAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 lib/sdk/server-ai/gradlew build -p lib/sdk/server-aiJAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 lib/sdk/server-ai/gradlew javadoc -p lib/sdk/server-ai