feat(push): label assistant versions with the pusher, commit and changed fields - #79
Draft
dhruva-vapi wants to merge 2 commits into
Draft
dhruva-vapi wants to merge 2 commits into
dhruva-vapi wants to merge 2 commits into
Conversation
…ged fields A push that publishes an assistant version now sets its versionName and versionDescription to the pusher, the commit, and the dotted paths of the fields that changed. API-key writes record no author on the version, so this is the only trace of who published it.
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.
Value
V.A.L.U.E. tier: small. It is a behavior change: push sends one extra PATCH per published assistant version. Linear: PRISM-2038.
createdByis null), and the audit log only covers dashboard users. So nobody can tell who published a version, from which commit, or what changed.PATCH /assistant/:id/versions/:versionwith:versionName:gitops <commit>[+dirty] by <actor>versionDescription: the actor, the commit, and the dotted paths of the changed fields (model.messages, voice.voiceId), within the API's 80 and 500 character limitsVAPI_GITOPS_ACTOR, elsegithub:$GITHUB_ACTOR, elsegit config user.email. It is self-reported.latestVersiondid not move). A failed label logs a warning and never fails the push.docs/learnings/sync-behavior.mdgets an "Assistant version labels" section.gitops <sha> by <email>, described withChanged: model.messages. It fails if a push errors because of the label, or if a no-op push labels anything.VapiAI/vapi.Evidence of value
tests/version-metadata.test.tscover the field diff, the server-key filter, truncation within the API limits, and the actor resolution order.v1namedgitops 6eeae32+dirty by …, describedCreated by gitops.v2describedChanged: firstMessage, model.messagesv3createdBywasnullon both versions, which confirms the gap this PR fillsTesting plan
npm test: 484 pass, 0 fail (10 new)npx tsc --noEmit: cleannpm run push -- <sandbox-org>after editing one assistant prompt, on a versioning-enabled org. Confirm the new version's name and description inGET /assistant/:id/versions/:version, and that a second push with no edits adds no label.