feat(agents): enable GraphQL mutations by default - #15413
Draft
axiomofjoy wants to merge 1 commit into
Draft
Conversation
Remove the experimental setting that gated phoenix-gql mutations and the allow_mutations plumbing behind it. Mutations are now always permitted at the tool layer; server-side GraphQL authorization (read-only deployments, viewer roles) remains the enforcement point. - Drop allow_mutations from BashCapability, build_agent, and build_server_agent; phoenix-gql accepts queries and mutations (subscriptions still rejected) - Rewrite the mutations prompt policy: confirm with the user before executing a mutation unless they explicitly asked for the change, skipping confirmation when edit_permission is bypass - Remove the "Dangerously enable mutations" experimental setting, the now-empty experimental settings section, and the graphql.mutations capability from the frontend - Remove --enable-graphql-mutations and the graphql context from the js CLI - Keep GraphQLContext in the wire contract as accepted-but-ignored so older clients that still send it continue to validate Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
Card links checkNo broken Card links found. Checked external links in 17.9s |
@arizeai/phoenix-cli
@arizeai/phoenix-client
@arizeai/phoenix-config
@arizeai/phoenix-evals
@arizeai/phoenix-mcp
@arizeai/phoenix-otel
commit: |
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.
Removes the experimental setting that gated GraphQL mutations for the agent's
phoenix-gqlcommand and enables mutations by default, with prompt guidance to ask the user before executing one.Changes
Server
allow_mutationsis removed as a parameter throughout (BashCapability,build_agent,build_server_agent, both chat routers, and the harbor eval harness).phoenix-gqlnow accepts queries and mutations; subscriptions are still rejected. Server-side GraphQL authorization (read-only deployments, viewer roles) remains the enforcement point, so the tool-layer gate was redundant defense.GRAPHQL_MUTATIONS_INSTRUCTIONS.xml.j2) is rewritten: the agent must describe the mutation and get user approval (e.g. viaask_user) unless the user's most recent request explicitly asked for the exact change. Whenedit_permissionisbypass(auto-accept), confirmation is skipped, matching the behavior of every other write tool.GraphQLContextstays in the wire contract as accepted-but-ignored so already-installed clients that still send{type: "graphql", mutationsEnabled}continue to validate. Removing it from the union can happen in a later release.Frontend
graphql.mutationscapability ("Dangerously enable mutations") is removed, along with the now-empty experimental settings section and thecontrolSurfacemachinery. Stale persisted capability keys are dropped on rehydrate by the existing normalizer. Theagent-experimental-settingsfeature flag is left defined since it is the only flag and removing it would break theFeatureFlagtype mechanism.graphqlcontext.js CLI
--enable-graphql-mutationsand thegraphqlcontext are removed.Testing
tests/unit/server/agents(440 passed), mypy clean on changed server modulesmake openapiregenerated (description-only diff for the deprecatedGraphQLContext)🤖 Generated with Claude Code