Skip to main content

API changelog

A dated log of changes to the GraphQL schema, generated by diffing each regenerated SDL against the previous one. Every change is classified by how it affects an existing client:

  • Breaking — an existing query or mutation can stop working: a removed field or type, a field or argument whose type was narrowed, an argument made required. Read these before upgrading.
  • Dangerous — nothing breaks immediately, but behaviour can change under you: a new enum value your switch does not handle, a new optional argument, a changed default. Worth a glance.
  • Additive — purely new surface (a new field, type, or operation). Safe for every existing client.

The classification comes from graphql-inspector; the log is regenerated by bin/docs-generate, so it never drifts from the deployed schema.

2026-11-03​

0 breaking · 1 dangerous · 0 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'view: Boolean' added to field 'DashboardQueries.dashboard'

2026-11-03​

0 breaking · 2 dangerous · 4 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'cache: String' added to field 'DashboardQueries.runDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'cache: String' added to field 'DashboardQueries.runDashboardChartStandalone'

Additive changes

  • FIELD_ADDED — Field 'computedAt' was added to object type 'DashboardQueryRun'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryRun.computedAt' has description 'When the source answered (ISO-8601 UTC). Earlier than now when the result came from the server\'s frame cache (cache: default).'
  • FIELD_ADDED — Field 'stale' was added to object type 'DashboardQueryRun'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryRun.stale' has description 'True when this cached result outlived its cache TTL and is served while another request recomputes it; ask again, or run with cache: refresh.'

2026-11-03​

0 breaking · 0 dangerous · 1 additive

Additive changes

  • FIELD_DESCRIPTION_CHANGED — Field 'OrganizationQueries.webDefaults' description changed from 'The organization\'s web defaults: the provider and payer each web tool uses for Barry, and what an agent\'s web tool starts with when it is first added. Readable by any member; holds no credentials.' to 'The organization\'s web defaults: the provider and payer each web tool uses for Barry, and what an agent\'s web tool starts with when it is first added. Readable by any authenticated caller of the organization, API keys included; holds providers and connection ids, never a credential.'

2026-11-03​

0 breaking · 0 dangerous · 22 additive

Additive changes

  • TYPE_ADDED — Type 'WebToolDefaultInput' was added
  • INPUT_FIELD_ADDED — Input field 'provider' of type 'WebProvider' was added to input object type 'WebToolDefaultInput'
  • INPUT_FIELD_ADDED — Input field 'integrationId' of type 'Long' was added to input object type 'WebToolDefaultInput'
  • INPUT_FIELD_ADDED — Input field 'browserModel' of type 'BrowserModelMode' was added to input object type 'WebToolDefaultInput'
  • TYPE_ADDED — Type 'OrganizationWebDefaults' was added
  • FIELD_ADDED — Field 'search' was added to object type 'OrganizationWebDefaults'
  • FIELD_ADDED — Field 'fetch' was added to object type 'OrganizationWebDefaults'
  • FIELD_ADDED — Field 'interact' was added to object type 'OrganizationWebDefaults'
  • FIELD_ADDED — Field 'canEdit' was added to object type 'OrganizationWebDefaults'
  • FIELD_DESCRIPTION_ADDED — Field 'OrganizationWebDefaults.canEdit' has description 'Whether the caller may change them (Owner or Admin role)'
  • TYPE_DESCRIPTION_ADDED — Object type 'OrganizationWebDefaults' has description 'Organization web defaults. A null entry means that tool\'s Honeybase default: Exa search, Firecrawl fetch, Browserbase interaction, all paid by Honeybase.'
  • TYPE_ADDED — Type 'WebToolDefault' was added
  • FIELD_ADDED — Field 'provider' was added to object type 'WebToolDefault'
  • FIELD_ADDED — Field 'integrationId' was added to object type 'WebToolDefault'
  • FIELD_ADDED — Field 'browserModel' was added to object type 'WebToolDefault'
  • FIELD_ADDED — Field 'setWebDefaults' was added to object type 'OrganizationMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'OrganizationMutations.setWebDefaults' has description 'Set the organization\'s web defaults (all three entries; null = the Honeybase default). Requires Owner or Admin role. Each entry is checked: a provider the tool supports, and a connection of this organization, of the provider\'s type, enabled and with a key. Existing agents keep their saved tool settings.'
  • FIELD_ARGUMENT_ADDED — Argument 'search: WebToolDefaultInput' added to field 'OrganizationMutations.setWebDefaults'
  • FIELD_ARGUMENT_ADDED — Argument 'fetch: WebToolDefaultInput' added to field 'OrganizationMutations.setWebDefaults'
  • FIELD_ARGUMENT_ADDED — Argument 'interact: WebToolDefaultInput' added to field 'OrganizationMutations.setWebDefaults'
  • FIELD_ADDED — Field 'webDefaults' was added to object type 'OrganizationQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'OrganizationQueries.webDefaults' has description 'The organization\'s web defaults: the provider and payer each web tool uses for Barry, and what an agent\'s web tool starts with when it is first added. Readable by any member; holds no credentials.'

2026-11-02​

0 breaking · 0 dangerous · 1 additive

Additive changes

  • FIELD_ADDED — Field 'reclaimedAt' was added to object type 'OrgDatabase'

2026-11-01​

0 breaking · 0 dangerous · 20 additive

Additive changes

  • TYPE_ADDED — Type 'BillingRunMeter' was added
  • FIELD_ADDED — Field 'periodStart' was added to object type 'BillingRunMeter'
  • FIELD_ADDED — Field 'periodEnd' was added to object type 'BillingRunMeter'
  • FIELD_ADDED — Field 'used' was added to object type 'BillingRunMeter'
  • FIELD_ADDED — Field 'included' was added to object type 'BillingRunMeter'
  • FIELD_ADDED — Field 'purchasedRemaining' was added to object type 'BillingRunMeter'
  • FIELD_ADDED — Field 'allowance' was added to object type 'BillingRunMeter'
  • TYPE_ADDED — Type 'BillingSeatMember' was added
  • FIELD_ADDED — Field 'webUserId' was added to object type 'BillingSeatMember'
  • FIELD_ADDED — Field 'name' was added to object type 'BillingSeatMember'
  • FIELD_ADDED — Field 'email' was added to object type 'BillingSeatMember'
  • FIELD_ADDED — Field 'role' was added to object type 'BillingSeatMember'
  • FIELD_ADDED — Field 'isExternal' was added to object type 'BillingSeatMember'
  • FIELD_ADDED — Field 'executionAllowed' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'seatsOverLimit' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'countedMembers' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'runMeter' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'trialExpiryEnforced' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'skipReason' was added to object type 'RunSummary'
  • FIELD_ADDED — Field 'skipReason' was added to object type 'RunWorkflow'

2026-11-01​

0 breaking · 0 dangerous · 2 additive

Additive changes

  • FIELD_ADDED — Field 'agentModel' was added to object type 'AiCreditsQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiCreditsQueries.agentModel' has description 'The model an agent run or an AI workflow step on the Honeybase AI credits connection uses when it names none. Barry keeps the connection\'s own default model.'

2026-10-31​

0 breaking · 0 dangerous · 21 additive

Additive changes

  • TYPE_ADDED — Type 'BillingQueries' was added
  • FIELD_ADDED — Field 'organizationPlan' was added to object type 'BillingQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'BillingQueries.organizationPlan' has description 'This organization\'s plan: kind, status, effective limits and price. Any member may read it; 'seatsUsed', the period and the source are null unless the caller is an Owner or Admin.'
  • TYPE_ADDED — Type 'OrganizationPlan' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'status' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'suspensionReason' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'limits' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'priceCents' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'source' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'currentPeriodStart' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'currentPeriodEnd' was added to object type 'OrganizationPlan'
  • FIELD_ADDED — Field 'seatsUsed' was added to object type 'OrganizationPlan'
  • TYPE_ADDED — Type 'PlanLimits' was added
  • FIELD_ADDED — Field 'builderSeats' was added to object type 'PlanLimits'
  • FIELD_ADDED — Field 'retentionDays' was added to object type 'PlanLimits'
  • FIELD_ADDED — Field 'monthlyRuns' was added to object type 'PlanLimits'
  • FIELD_ADDED — Field 'monthlyCredits' was added to object type 'PlanLimits'
  • FIELD_ADDED — Field 'rolloverMultiple' was added to object type 'PlanLimits'
  • FIELD_ADDED — Field 'billing' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.billing' has description 'Billing queries: the organization\'s plan'

2026-10-30​

0 breaking · 1 dangerous · 6 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'triggerKind: String' added to field 'ProcessMutations.createProcess'

Additive changes

  • TYPE_ADDED — Type 'BarryComposerDefault' was added
  • FIELD_ADDED — Field 'integrationId' was added to object type 'BarryComposerDefault'
  • FIELD_ADDED — Field 'integrationName' was added to object type 'BarryComposerDefault'
  • FIELD_ADDED — Field 'model' was added to object type 'BarryComposerDefault'
  • FIELD_ADDED — Field 'barryComposerDefault' was added to object type 'AiChatQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatQueries.barryComposerDefault' has description 'The AI connection and model a Barry message with none selected runs on, as the server resolves them: the organization\'s credits connection, else its only enabled AI connection, with the connection\'s default model or the product default. Null when the organization has several connections and no credits one (a real choice). Never credentials.'

2026-10-30​

0 breaking · 2 dangerous · 21 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'allowUploadSite: Boolean' added to field 'AgentMutations.respondToAgentToolCall'
  • FIELD_ARGUMENT_ADDED — Argument 'allowUploadSite: Boolean' added to field 'TaskMutations.answerAgentRequest'

Additive changes

  • TYPE_ADDED — Type 'UploadAnySiteWaiver' was added
  • FIELD_ADDED — Field 'acceptedBy' was added to object type 'UploadAnySiteWaiver'
  • FIELD_ADDED — Field 'acceptedAt' was added to object type 'UploadAnySiteWaiver'
  • TYPE_ADDED — Type 'UploadApprovalDetails' was added
  • FIELD_ADDED — Field 'files' was added to object type 'UploadApprovalDetails'
  • FIELD_ADDED — Field 'site' was added to object type 'UploadApprovalDetails'
  • FIELD_ADDED — Field 'provider' was added to object type 'UploadApprovalDetails'
  • FIELD_ADDED — Field 'notInUploadSites' was added to object type 'UploadApprovalDetails'
  • FIELD_ADDED — Field 'firstUploadToSite' was added to object type 'UploadApprovalDetails'
  • TYPE_ADDED — Type 'UploadApprovalFile' was added
  • FIELD_ADDED — Field 'name' was added to object type 'UploadApprovalFile'
  • FIELD_ADDED — Field 'sizeBytes' was added to object type 'UploadApprovalFile'
  • FIELD_ADDED — Field 'setAgentUploadAnySite' was added to object type 'AgentMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentMutations.setAgentUploadAnySite' has description 'Turn the draft\'s "Upload to any site without asking" waiver on or off for web_interact uploads. Turning it on is refused for API keys and AI copilots: only a signed-in person in the app can accept it, and the server records who and when. Applies at the next release, like every draft setting.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentId: Long!' added to field 'AgentMutations.setAgentUploadAnySite'
  • FIELD_ARGUMENT_ADDED — Argument 'enabled: Boolean!' added to field 'AgentMutations.setAgentUploadAnySite'
  • FIELD_ADDED — Field 'allowUploadSite' was added to object type 'AgentRequestAnswer'
  • FIELD_ADDED — Field 'uploadSites' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'uploadAnySite' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'supportsVision' was added to object type 'AiModelInfo'
  • FIELD_ADDED — Field 'upload' was added to object type 'BrowserApprovalDetails'

2026-10-30​

0 breaking · 4 dangerous · 25 additive

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'Chart' was added to enum 'ChatSubjectKind'
  • ENUM_VALUE_ADDED — Enum value 'Dashboard' was added to enum 'ChatSubjectKind'
  • FIELD_ARGUMENT_ADDED — Argument 'dashboardSnapshot: String' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'chartDraft: String' added to field 'AiChatMutations.sendChatMessage'

Additive changes

  • TYPE_ADDED — Type 'DashboardAnnotationDetail' was added
  • FIELD_ADDED — Field 'source' was added to object type 'DashboardAnnotationDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardAnnotationDetail.source' has description 'Source JSON, as dashboardSources returns it'
  • FIELD_ADDED — Field 'table' was added to object type 'DashboardAnnotationDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardAnnotationDetail.table' has description 'The table\'s qualified name (schema.table, or bare in the default schema)'
  • FIELD_ADDED — Field 'column' was added to object type 'DashboardAnnotationDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardAnnotationDetail.column' has description 'The column; null when the note is about the table'
  • FIELD_ADDED — Field 'description' was added to object type 'DashboardAnnotationDetail'
  • FIELD_ADDED — Field 'updatedBy' was added to object type 'DashboardAnnotationDetail'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'DashboardAnnotationDetail'
  • TYPE_DESCRIPTION_ADDED — Object type 'DashboardAnnotationDetail' has description 'A per-organization note on a table or column of a dashboard source (what a value means), read by every member and by Barry.'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'focusKind' on field 'AiChatMutations.sendChatMessage' changed from 'Barry threads only: the editor this message is sent from - workflow | agent | app | task_feedback - with focusId. Its snapshot rides in the matching argument above (workflowData, agentDraft, appSnapshot, taskFeedbackContext); with no focus, send homeContext.' to 'Barry threads only: the editor this message is sent from - workflow | agent | app | task_feedback | dashboard | chart - with focusId. Its snapshot rides in the matching argument above (workflowData, agentDraft, appSnapshot, taskFeedbackContext, dashboardSnapshot, chartDraft); with no focus, send homeContext.'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'focusId' on field 'AiChatMutations.sendChatMessage' changed from 'Barry threads only: the focused editor\'s subject id (process id, agent id, app id or agent session id).' to 'Barry threads only: the focused editor\'s subject id (process id, agent id, app id, agent session id, or the focusId of a dashboard or chart; 0 for a new chart).'
  • FIELD_ADDED — Field 'focusId' was added to object type 'DashboardChartDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDetail.focusId' has description 'The id a Barry message names this chart by when the chart editor is the turn\'s focus (sendChatMessage focusKind chart, focusId).'
  • FIELD_ADDED — Field 'focusId' was added to object type 'DashboardDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardDetail.focusId' has description 'The id a Barry message names this dashboard by when it is the turn\'s focus (sendChatMessage focusKind dashboard, focusId).'
  • FIELD_ADDED — Field 'setDashboardAnnotation' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.setDashboardAnnotation' has description 'Write (or, with an empty description, remove) the note on a table or column of a source. Returns the annotation, null when removed. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'source: String!' added to field 'DashboardMutations.setDashboardAnnotation'
  • FIELD_ARGUMENT_ADDED — Argument 'table: String!' added to field 'DashboardMutations.setDashboardAnnotation'
  • FIELD_ARGUMENT_ADDED — Argument 'column: String' added to field 'DashboardMutations.setDashboardAnnotation'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String!' added to field 'DashboardMutations.setDashboardAnnotation'
  • FIELD_ADDED — Field 'dashboardAnnotations' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardAnnotations' has description 'Every schema annotation of the organization: notes on tables and columns of its sources. Any member.'

2026-10-29​

0 breaking · 0 dangerous · 2 additive

Additive changes

  • INPUT_FIELD_ADDED — Input field 'canManageBilling' of type 'Boolean' was added to input object type 'PermissionsInput'
  • FIELD_ADDED — Field 'canManageBilling' was added to object type 'Permissions'

2026-10-26​

0 breaking · 0 dangerous · 3 additive

Additive changes

  • FIELD_ADDED — Field 'compactChat' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.compactChat' has description 'Compact an overflowed conversation with its current model and automatically continue its stored user request. Preserves the full transcript.'
  • FIELD_ARGUMENT_ADDED — Argument 'chatId: Long!' added to field 'AiChatMutations.compactChat'

2026-10-23​

0 breaking · 0 dangerous · 18 additive

Additive changes

  • TYPE_ADDED — Type 'DashboardFilterOptions' was added
  • FIELD_ADDED — Field 'values' was added to object type 'DashboardFilterOptions'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardFilterOptions.values' has description 'The picker\'s options: the filter\'s static values, or its valuesFrom column\'s distinct values (at most 200) as last refreshed. Customer data: render as text.'
  • FIELD_ADDED — Field 'refreshedAt' was added to object type 'DashboardFilterOptions'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardFilterOptions.refreshedAt' has description 'When the column\'s values were last read; null for static values or before the first refresh'
  • FIELD_ADDED — Field 'refreshing' was added to object type 'DashboardFilterOptions'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardFilterOptions.refreshing' has description 'True when the stored values were missing or stale and a refresh is running in the background; ask again later for the new ones'
  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardChartDetail.viz' description changed from 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?, xAxis?, yAxis?, y2?, y2Axis?, legend?}; an axis is {show?, title?, min?, max?, scale?: linear|log|pow, exponent?}, a legend {show?, position?: top|bottom|left|right}.' to 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?, xAxis?, yAxis?, y2?, y2Axis?, legend?, colors?, thresholds?, tableRules?}; an axis is {show?, title?, min?, max?, scale?: linear|log|pow, exponent?}, a legend {show?, position?: top|bottom|left|right}; colors maps a series or slice to a colour; thresholds [{op, value, color}] colour a number (first match); tableRules [{scope: row|cell, column, op, value?, color}] tint a table (first match); op is gt|gte|lt|lte|eq|neq|contains|empty|not_empty and a colour is a theme name (chart-1..chart-5, red, amber, green, blue, gray) or #rrggbb.'
  • FIELD_ADDED — Field 'settings' was added to object type 'DashboardDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardDetail.settings' has description 'JSON of the dashboard\'s options: {autoApplyFilters} (default true: a filter value applies as soon as it is picked or typed, instead of waiting for Apply). Changed with the set_settings op.'
  • FIELD_ADDED — Field 'notes' was added to object type 'DashboardDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardDetail.notes' has description 'JSON array of the dashboard\'s notes — Markdown on the grid, not charts: [{noteId, x, y, w, h, markdown, align (left|center|right), verticalAlign (top|center|bottom), card (true: drawn on a card like a chart; false: straight on the page)}]. Changed with the set_note, move_note and remove_note ops. Markdown written by a builder: render it sanitized.'
  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardDetail.filters' description changed from 'JSON array of the dashboard\'s filters: [{id, label, type (text|number|date|date_range|multi_select), default?, values?}].' to 'JSON array of the dashboard\'s filters: [{id, label, type (text|number|date|date_range|multi_select), default?, values?, valuesFrom?}]. A text or multi_select filter\'s picker offers its static values, or with valuesFrom {source, table, column} that column\'s distinct values (dashboardFilterOptions).'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'ops' on field 'DashboardMutations.updateDashboard' changed from 'JSON array of ops applied in order, each {"op": ...}: add_tile {chartPublicId, x, y, w, h, tileId?, titleOverride?}, remove_tile {tileId}, move_tile {tileId, x, y, w, h}, set_filter {filter}, remove_filter {filterId}, link_filter {tileId, filterId, param}, unlink_filter {tileId, filterId}, rename {name}, set_description {description}.' to 'JSON array of ops applied in order, each {"op": ...}: add_tile {chartPublicId, x, y, w, h, tileId?, titleOverride?}, remove_tile {tileId}, move_tile {tileId, x, y, w, h}, set_filter {filter}, remove_filter {filterId}, link_filter {tileId, filterId, param}, unlink_filter {tileId, filterId}, rename {name}, set_description {description}, set_settings {settings: {autoApplyFilters}}, set_note {note: {noteId, x, y, w, h, markdown, align?, verticalAlign?, card?}} (add or replace), move_note {noteId, x, y, w, h}, remove_note {noteId}.'
  • FIELD_ADDED — Field 'dashboardFilterOptions' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardFilterOptions' has description 'A dashboard filter\'s picker options, from a stored snapshot: reading them never queries the source. Values from a column are refreshed in the background when older than an hour. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'dashboardPublicId: String!' added to field 'DashboardQueries.dashboardFilterOptions'
  • FIELD_ARGUMENT_ADDED — Argument 'filterId: String!' added to field 'DashboardQueries.dashboardFilterOptions'

2026-10-21 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge checkpoint combining the web-provider/MCP additions and Barry conversation changes documented in the preceding entries.

2026-10-20​

0 breaking · 0 dangerous · 20 additive

Additive changes

  • TYPE_ADDED — Type 'ConversationObjectKind' was added
  • ENUM_VALUE_ADDED — Enum value 'Agent' was added to enum 'ConversationObjectKind'
  • ENUM_VALUE_ADDED — Enum value 'App' was added to enum 'ConversationObjectKind'
  • ENUM_VALUE_ADDED — Enum value 'Form' was added to enum 'ConversationObjectKind'
  • ENUM_VALUE_ADDED — Enum value 'Task' was added to enum 'ConversationObjectKind'
  • ENUM_VALUE_ADDED — Enum value 'Process' was added to enum 'ConversationObjectKind'
  • TYPE_ADDED — Type 'BarryConversation' was added
  • FIELD_ADDED — Field 'chat' was added to object type 'BarryConversation'
  • FIELD_ADDED — Field 'lastActivityAt' was added to object type 'BarryConversation'
  • FIELD_ADDED — Field 'objects' was added to object type 'BarryConversation'
  • FIELD_ADDED — Field 'moreObjects' was added to object type 'BarryConversation'
  • TYPE_ADDED — Type 'ConversationObject' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'ConversationObject'
  • FIELD_ADDED — Field 'publicId' was added to object type 'ConversationObject'
  • FIELD_ADDED — Field 'name' was added to object type 'ConversationObject'
  • FIELD_ADDED — Field 'newBarryConversation' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.newBarryConversation' has description 'Start a new Barry conversation for the signed-in member, or return their existing empty one'
  • FIELD_DESCRIPTION_CHANGED — Field 'AiChatMutations.openBarryThread' description changed from 'Open the signed-in member\'s Barry thread in this organization - their one conversation with Barry, reached from every page - creating it on first call. Their idle per-subject chats are folded into it first (copied in time order; the chats stay readable and stop taking messages).' to 'Open the signed-in member\'s most recent Barry conversation in this organization, creating one when they have none. Their idle per-subject chats are adopted as conversations first (in place, with their history).'
  • FIELD_ADDED — Field 'barryConversations' was added to object type 'AiChatQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatQueries.barryConversations' has description 'The signed-in member\'s Barry conversations in this organization, most recently active first, each with the objects it touched (most recent first, at most 5; moreObjects counts the rest)'

2026-10-21​

0 breaking · 0 dangerous · 3 additive

Additive changes

  • FIELD_ADDED — Field 'connectVendorMcp' was added to object type 'IntegrationMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'IntegrationMutations.connectVendorMcp' has description 'Create or reuse a separate MCP connection using a saved Exa, Firecrawl or Browserbase integration key (requires canManageIntegrations). Tools still require administrator review and approval; future key changes are independent.'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'IntegrationMutations.connectVendorMcp'

2026-10-21​

0 breaking · 5 dangerous · 33 additive

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'Thread' was added to enum 'ChatSubjectKind'
  • FIELD_ARGUMENT_ADDED — Argument 'focusKind: String' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'focusId: Long' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'surface: String' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'values: String' added to field 'DashboardQueries.runDashboardChartStandalone'

Additive changes

  • TYPE_ADDED — Type 'ActionAuthorizationPreview' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'kind' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'toolName' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'status' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'isExpired' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'isForCurrentUser' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'expiresAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'requestedAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'respondedAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'mcpClientId' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'op' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'changed' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'failureReason' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'autoApproved' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'isRunning' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'openBarryThread' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.openBarryThread' has description 'Open the signed-in member\'s Barry thread in this organization - their one conversation with Barry, reached from every page - creating it on first call. Their idle per-subject chats are folded into it first (copied in time order; the chats stay readable and stop taking messages).'
  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardChartDetail.viz' description changed from 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?}.' to 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?, xAxis?, yAxis?, y2?, y2Axis?, legend?}; an axis is {show?, title?, min?, max?, scale?: linear|log|pow, exponent?}, a legend {show?, position?: top|bottom|left|right}.'
  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardQueries.runDashboardChartStandalone' description changed from 'Run a chart on its default parameters (library card, chart editor). Any member.' to 'Run a chart outside a dashboard (library, chart page), on its defaults or on the given parameter values. Any member.'
  • FIELD_ADDED — Field 'confirmActionAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.confirmActionAuthorization' has description 'Confirm an MCP action authorization request and perform the action under the caller\'s own session, through the same executor Barry uses (every check re-runs). Requires the session of the user who was asked; single-use; rejected after the 30-minute window. Returns the updated preview (status confirmed, or failed with a failureReason).'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.confirmActionAuthorization'
  • FIELD_ARGUMENT_ADDED — Argument 'alwaysAllow: Boolean' added to field 'ProcessMutations.confirmActionAuthorization'
  • FIELD_ADDED — Field 'declineActionAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.declineActionAuthorization' has description 'Decline an MCP action authorization request. Requires the session of the user who was asked; nothing happens and the assistant polling get_action_authorization sees status declined.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.declineActionAuthorization'
  • FIELD_ADDED — Field 'actionAuthorization' was added to object type 'ProcessQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessQueries.actionAuthorization' has description 'Preview an MCP action authorization request (the /action-authorization/<id> link): a node test, a write to a connected system, an Agent or MCP tool write, a role change or an account disable an assistant asked for. Requires a session: the requesting user sees the card ('op', the confirmation card\'s content as JSON); another member of the same organization sees only its status; another organization sees not-found.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessQueries.actionAuthorization'
  • FIELD_ADDED — Field 'focusKind' was added to object type 'WorkflowChat'
  • FIELD_ADDED — Field 'focusId' was added to object type 'WorkflowChat'
  • FIELD_ADDED — Field 'foldedIntoChatId' was added to object type 'WorkflowChat'

2026-10-19​

0 breaking · 0 dangerous · 22 additive

Additive changes

  • TYPE_ADDED — Type 'BrowserModelMode' was added
  • ENUM_VALUE_ADDED — Enum value 'Agent' was added to enum 'BrowserModelMode'
  • ENUM_VALUE_ADDED — Enum value 'Gateway' was added to enum 'BrowserModelMode'
  • TYPE_ADDED — Type 'WebProvider' was added
  • ENUM_VALUE_ADDED — Enum value 'Browserbase' was added to enum 'WebProvider'
  • ENUM_VALUE_ADDED — Enum value 'Exa' was added to enum 'WebProvider'
  • ENUM_VALUE_ADDED — Enum value 'Firecrawl' was added to enum 'WebProvider'
  • TYPE_ADDED — Type 'BrowserApprovalDetails' was added
  • FIELD_ADDED — Field 'provider' was added to object type 'BrowserApprovalDetails'
  • FIELD_ADDED — Field 'payer' was added to object type 'BrowserApprovalDetails'
  • FIELD_ADDED — Field 'model' was added to object type 'BrowserApprovalDetails'
  • FIELD_ADDED — Field 'sessionId' was added to object type 'BrowserApprovalDetails'
  • FIELD_ADDED — Field 'expiresAtMillis' was added to object type 'BrowserApprovalDetails'
  • FIELD_ADDED — Field 'sessionExpired' was added to object type 'BrowserApprovalDetails'
  • TYPE_ADDED — Type 'BuiltinWebOptions' was added
  • FIELD_ADDED — Field 'provider' was added to object type 'BuiltinWebOptions'
  • FIELD_ADDED — Field 'integrationId' was added to object type 'BuiltinWebOptions'
  • FIELD_ADDED — Field 'browserModel' was added to object type 'BuiltinWebOptions'
  • FIELD_ADDED — Field 'browserModelId' was added to object type 'BuiltinWebOptions'
  • FIELD_ADDED — Field 'browser' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'builtinOptions' was added to object type 'AgentToolRef'
  • FIELD_ADDED — Field 'supportsStructuredOutput' was added to object type 'AiModelInfo'

2026-10-19 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

2026-10-19​

0 breaking · 0 dangerous · 1 additive

Additive changes

  • FIELD_ADDED — Field 'isRunning' was added to object type 'ActionAuthorizationPreview'

2026-10-18​

0 breaking · 0 dangerous · 25 additive

Additive changes

  • TYPE_ADDED — Type 'ActionAuthorizationPreview' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'kind' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'toolName' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'status' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'isExpired' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'isForCurrentUser' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'expiresAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'requestedAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'respondedAt' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'mcpClientId' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'op' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'changed' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'failureReason' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'autoApproved' was added to object type 'ActionAuthorizationPreview'
  • FIELD_ADDED — Field 'confirmActionAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.confirmActionAuthorization' has description 'Confirm an MCP action authorization request and perform the action under the caller\'s own session, through the same executor Barry uses (every check re-runs). Requires the session of the user who was asked; single-use; rejected after the 30-minute window. Returns the updated preview (status confirmed, or failed with a failureReason).'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.confirmActionAuthorization'
  • FIELD_ARGUMENT_ADDED — Argument 'alwaysAllow: Boolean' added to field 'ProcessMutations.confirmActionAuthorization'
  • FIELD_ADDED — Field 'declineActionAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.declineActionAuthorization' has description 'Decline an MCP action authorization request. Requires the session of the user who was asked; nothing happens and the assistant polling get_action_authorization sees status declined.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.declineActionAuthorization'
  • FIELD_ADDED — Field 'actionAuthorization' was added to object type 'ProcessQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessQueries.actionAuthorization' has description 'Preview an MCP action authorization request (the /action-authorization/<id> link): a node test, a write to a connected system, an Agent or MCP tool write, a role change or an account disable an assistant asked for. Requires a session: the requesting user sees the card ('op', the confirmation card\'s content as JSON); another member of the same organization sees only its status; another organization sees not-found.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessQueries.actionAuthorization'

2026-10-19​

0 breaking · 4 dangerous · 5 additive

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'Thread' was added to enum 'ChatSubjectKind'
  • FIELD_ARGUMENT_ADDED — Argument 'focusKind: String' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'focusId: Long' added to field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_ADDED — Argument 'surface: String' added to field 'AiChatMutations.sendChatMessage'

Additive changes

  • FIELD_ADDED — Field 'openBarryThread' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.openBarryThread' has description 'Open the signed-in member\'s Barry thread in this organization - their one conversation with Barry, reached from every page - creating it on first call. Their idle per-subject chats are folded into it first (copied in time order; the chats stay readable and stop taking messages).'
  • FIELD_ADDED — Field 'focusKind' was added to object type 'WorkflowChat'
  • FIELD_ADDED — Field 'focusId' was added to object type 'WorkflowChat'
  • FIELD_ADDED — Field 'foldedIntoChatId' was added to object type 'WorkflowChat'

2026-10-18​

0 breaking · 1 dangerous · 2 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'values: String' added to field 'DashboardQueries.runDashboardChartStandalone'

Additive changes

  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardChartDetail.viz' description changed from 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?}.' to 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?, xAxis?, yAxis?, y2?, y2Axis?, legend?}; an axis is {show?, title?, min?, max?, scale?: linear|log|pow, exponent?}, a legend {show?, position?: top|bottom|left|right}.'
  • FIELD_DESCRIPTION_CHANGED — Field 'DashboardQueries.runDashboardChartStandalone' description changed from 'Run a chart on its default parameters (library card, chart editor). Any member.' to 'Run a chart outside a dashboard (library, chart page), on its defaults or on the given parameter values. Any member.'

2026-10-17​

0 breaking · 0 dangerous · 28 additive

Additive changes

  • TYPE_ADDED — Type 'ActivityAssist' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'model' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'aiConnectionName' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'requestedByName' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'suggestedTier' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'approvedTier' was added to object type 'ActivityAssist'
  • FIELD_ADDED — Field 'matched' was added to object type 'ActivityAssist'
  • TYPE_ADDED — Type 'McpTierSuggestionEstimate' was added
  • FIELD_ADDED — Field 'tools' was added to object type 'McpTierSuggestionEstimate'
  • FIELD_ADDED — Field 'priced' was added to object type 'McpTierSuggestionEstimate'
  • FIELD_ADDED — Field 'unit' was added to object type 'McpTierSuggestionEstimate'
  • FIELD_ADDED — Field 'centsPerCredit' was added to object type 'McpTierSuggestionEstimate'
  • TYPE_ADDED — Type 'McpTierSuggestionToolEstimate' was added
  • FIELD_ADDED — Field 'toolName' was added to object type 'McpTierSuggestionToolEstimate'
  • FIELD_ADDED — Field 'maxCostUsd' was added to object type 'McpTierSuggestionToolEstimate'
  • FIELD_ADDED — Field 'assist' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'assist' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'estimateMcpTierSuggestions' was added to object type 'McpConnectionQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionQueries.estimateMcpTierSuggestions' has description 'Worst-case cost of suggesting tiers for up to 20 tools with an AI connection and model, for a run budget; makes no model call (requires canManageIntegrations)'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionQueries.estimateMcpTierSuggestions'
  • FIELD_ARGUMENT_ADDED — Argument 'toolNames: [String!]!' added to field 'McpConnectionQueries.estimateMcpTierSuggestions'
  • FIELD_ARGUMENT_ADDED — Argument 'aiIntegrationId: Long!' added to field 'McpConnectionQueries.estimateMcpTierSuggestions'
  • FIELD_ARGUMENT_ADDED — Argument 'model: String!' added to field 'McpConnectionQueries.estimateMcpTierSuggestions'
  • FIELD_ADDED — Field 'approvalSuggestion' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'requestedBy' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'costUsd' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'costEstimated' was added to object type 'McpTierSuggestion'

2026-10-17​

0 breaking · 0 dangerous · 198 additive

Additive changes

  • TYPE_ADDED — Type 'DashboardChartDeleteResult' was added
  • FIELD_ADDED — Field 'deleted' was added to object type 'DashboardChartDeleteResult'
  • FIELD_ADDED — Field 'usedBy' was added to object type 'DashboardChartDeleteResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDeleteResult.usedBy' has description 'When not deleted: the dashboards whose tiles use the chart. Remove those tiles first.'
  • TYPE_ADDED — Type 'DashboardChartDetail' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'name' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'description' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'source' was added to object type 'DashboardChartDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDetail.source' has description 'JSON of where the SQL runs: {"kind":"honeybase"} | {"kind":"orgdb"} | {"kind":"integration","integrationId":N}.'
  • FIELD_ADDED — Field 'query' was added to object type 'DashboardChartDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDetail.query' has description 'JSON of the query: {"kind":"sql", "sql": "... {{param}} ... [[AND ... {{param}}]]", "parameters": [{name, type, required, default?}]}.'
  • FIELD_ADDED — Field 'viz' was added to object type 'DashboardChartDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDetail.viz' has description 'JSON of the chart config (chart-viz.schema.json): {type, x?, y?, series?, xType?, timeGrain?, stacked?, horizontal?, sort?, limit?, yFormat?, title?, drill?}.'
  • FIELD_ADDED — Field 'version' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'folderId' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'tagIds' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'preview' was added to object type 'DashboardChartDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartDetail.preview' has description 'JSON snapshot behind the library\'s mini chart, {columns, rows (at most 50), truncated, filterValues}; written by the server on runs with the chart\'s default parameters only. Null when the chart never ran on its defaults.'
  • FIELD_ADDED — Field 'previewAt' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'createdBy' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'updatedBy' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'DashboardChartDetail'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'DashboardChartDetail'
  • TYPE_ADDED — Type 'DashboardChartUpdateResult' was added
  • FIELD_ADDED — Field 'outcome' was added to object type 'DashboardChartUpdateResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardChartUpdateResult.outcome' has description 'saved | invalid (see errors; nothing written) | conflict (expectedVersion is stale; reload at currentVersion)'
  • FIELD_ADDED — Field 'chart' was added to object type 'DashboardChartUpdateResult'
  • FIELD_ADDED — Field 'errors' was added to object type 'DashboardChartUpdateResult'
  • FIELD_ADDED — Field 'currentVersion' was added to object type 'DashboardChartUpdateResult'
  • TYPE_ADDED — Type 'DashboardDetail' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'name' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'description' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'filters' was added to object type 'DashboardDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardDetail.filters' has description 'JSON array of the dashboard\'s filters: [{id, label, type (text|number|date|date_range|multi_select), default?, values?}].'
  • FIELD_ADDED — Field 'version' was added to object type 'DashboardDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardDetail.version' has description 'Bumped on every update; updateDashboard takes it as expectedVersion and returns a conflict when it is stale.'
  • FIELD_ADDED — Field 'folderId' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'tagIds' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'tiles' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'createdBy' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'updatedBy' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'DashboardDetail'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'DashboardDetail'
  • TYPE_ADDED — Type 'DashboardMutations' was added
  • FIELD_ADDED — Field 'createDashboard' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.createDashboard' has description 'Create an empty dashboard. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'DashboardMutations.createDashboard'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String!' added to field 'DashboardMutations.createDashboard'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardMutations.createDashboard'
  • FIELD_ADDED — Field 'updateDashboard' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.updateDashboard' has description 'Edit a dashboard with ops, applied in one transaction and validated as a whole. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.updateDashboard'
  • FIELD_ARGUMENT_ADDED — Argument 'ops: String!' added to field 'DashboardMutations.updateDashboard'
  • FIELD_ARGUMENT_ADDED — Argument 'expectedVersion: Int!' added to field 'DashboardMutations.updateDashboard'
  • FIELD_ARGUMENT_ADDED — Argument 'validateOnly: Boolean' added to field 'DashboardMutations.updateDashboard'
  • FIELD_ADDED — Field 'deleteDashboard' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.deleteDashboard' has description 'Delete a dashboard and its tiles; its charts stay in the library. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.deleteDashboard'
  • FIELD_ADDED — Field 'saveDashboardChart' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.saveDashboardChart' has description 'Save the query a runDashboardAdhoc handle proved as a chart in the library. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'queryHandle: String!' added to field 'DashboardMutations.saveDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'DashboardMutations.saveDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String' added to field 'DashboardMutations.saveDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'viz: String!' added to field 'DashboardMutations.saveDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardMutations.saveDashboardChart'
  • FIELD_ADDED — Field 'updateDashboardChart' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.updateDashboardChart' has description 'Update a chart\'s name, description, config or (through a fresh queryHandle) query. Refused while a dashboard links a filter to a parameter the new query drops. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'expectedVersion: Int!' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'queryHandle: String' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'viz: String' added to field 'DashboardMutations.updateDashboardChart'
  • FIELD_ADDED — Field 'deleteDashboardChart' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.deleteDashboardChart' has description 'Delete a chart; refused (deleted=false, usedBy) while any dashboard tile uses it. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.deleteDashboardChart'
  • FIELD_ADDED — Field 'setDashboardFolder' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.setDashboardFolder' has description 'File a dashboard in a dashboard folder (null: unfiled). Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.setDashboardFolder'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardMutations.setDashboardFolder'
  • FIELD_ADDED — Field 'setDashboardChartFolder' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.setDashboardChartFolder' has description 'File a chart in a chart folder (null: unfiled). Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.setDashboardChartFolder'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardMutations.setDashboardChartFolder'
  • FIELD_ADDED — Field 'assignDashboardTag' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.assignDashboardTag' has description 'Tag a dashboard (a dashboard-scope tag). Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.assignDashboardTag'
  • FIELD_ARGUMENT_ADDED — Argument 'tagId: Long!' added to field 'DashboardMutations.assignDashboardTag'
  • FIELD_ADDED — Field 'unassignDashboardTag' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.unassignDashboardTag' has description 'Untag a dashboard. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.unassignDashboardTag'
  • FIELD_ARGUMENT_ADDED — Argument 'tagId: Long!' added to field 'DashboardMutations.unassignDashboardTag'
  • FIELD_ADDED — Field 'assignDashboardChartTag' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.assignDashboardChartTag' has description 'Tag a chart (a chart-scope tag). Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.assignDashboardChartTag'
  • FIELD_ARGUMENT_ADDED — Argument 'tagId: Long!' added to field 'DashboardMutations.assignDashboardChartTag'
  • FIELD_ADDED — Field 'unassignDashboardChartTag' was added to object type 'DashboardMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardMutations.unassignDashboardChartTag' has description 'Untag a chart. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardMutations.unassignDashboardChartTag'
  • FIELD_ARGUMENT_ADDED — Argument 'tagId: Long!' added to field 'DashboardMutations.unassignDashboardChartTag'
  • TYPE_ADDED — Type 'DashboardQueries' was added
  • FIELD_ADDED — Field 'dashboards' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboards' has description 'The organization\'s dashboards, by name, with their tiles and filters. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardQueries.dashboards'
  • FIELD_ARGUMENT_ADDED — Argument 'tagIds: [Long!]' added to field 'DashboardQueries.dashboards'
  • FIELD_ADDED — Field 'dashboard' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboard' has description 'One dashboard by public id. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardQueries.dashboard'
  • FIELD_ADDED — Field 'dashboardCharts' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardCharts' has description 'The charts library, by name, each with its preview snapshot. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'folderId: Long' added to field 'DashboardQueries.dashboardCharts'
  • FIELD_ARGUMENT_ADDED — Argument 'tagIds: [Long!]' added to field 'DashboardQueries.dashboardCharts'
  • FIELD_ARGUMENT_ADDED — Argument 'source: String' added to field 'DashboardQueries.dashboardCharts'
  • FIELD_ADDED — Field 'dashboardChart' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardChart' has description 'One chart by public id, including its SQL. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'DashboardQueries.dashboardChart'
  • FIELD_ADDED — Field 'dashboardSources' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardSources' has description 'Where charts can run: Honeybase\'s own data, the organization database when provisioned, and every enabled SQL integration. Any member.'
  • FIELD_ADDED — Field 'dashboardSourceSchema' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardSourceSchema' has description 'Tables, views and columns of a source as dashboards see it (for Honeybase: the reporting views only). Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'source: String!' added to field 'DashboardQueries.dashboardSourceSchema'
  • FIELD_ADDED — Field 'dashboardColumnValues' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.dashboardColumnValues' has description 'Distinct values of one column, for filter value pickers; runs through the same gate and caps as any dashboard query. Returns a JSON array. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'source: String!' added to field 'DashboardQueries.dashboardColumnValues'
  • FIELD_ARGUMENT_ADDED — Argument 'table: String!' added to field 'DashboardQueries.dashboardColumnValues'
  • FIELD_ARGUMENT_ADDED — Argument 'column: String!' added to field 'DashboardQueries.dashboardColumnValues'
  • FIELD_ARGUMENT_ADDED — Argument 'prefix: String' added to field 'DashboardQueries.dashboardColumnValues'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'DashboardQueries.dashboardColumnValues'
  • FIELD_ADDED — Field 'runDashboardChart' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.runDashboardChart' has description 'Run a tile\'s chart with dashboard filter values mapped onto its parameters. Gate and database errors come back verbatim as the error message. Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'dashboardPublicId: String!' added to field 'DashboardQueries.runDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'tileId: String!' added to field 'DashboardQueries.runDashboardChart'
  • FIELD_ARGUMENT_ADDED — Argument 'filterValues: String' added to field 'DashboardQueries.runDashboardChart'
  • FIELD_ADDED — Field 'runDashboardChartStandalone' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.runDashboardChartStandalone' has description 'Run a chart on its default parameters (library card, chart editor). Any member.'
  • FIELD_ARGUMENT_ADDED — Argument 'chartPublicId: String!' added to field 'DashboardQueries.runDashboardChartStandalone'
  • FIELD_ADDED — Field 'runDashboardAdhoc' was added to object type 'DashboardQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueries.runDashboardAdhoc' has description 'Run ad-hoc SQL against a source (the chart editor). Returns the rows and a queryHandle that saveDashboardChart takes. Gate and database errors come back verbatim. Requires canManageDashboards.'
  • FIELD_ARGUMENT_ADDED — Argument 'source: String!' added to field 'DashboardQueries.runDashboardAdhoc'
  • FIELD_ARGUMENT_ADDED — Argument 'sql: String!' added to field 'DashboardQueries.runDashboardAdhoc'
  • FIELD_ARGUMENT_ADDED — Argument 'parameters: String' added to field 'DashboardQueries.runDashboardAdhoc'
  • FIELD_ARGUMENT_ADDED — Argument 'values: String' added to field 'DashboardQueries.runDashboardAdhoc'
  • TYPE_ADDED — Type 'DashboardQueryColumn' was added
  • FIELD_ADDED — Field 'name' was added to object type 'DashboardQueryColumn'
  • FIELD_ADDED — Field 'kind' was added to object type 'DashboardQueryColumn'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryColumn.kind' has description 'text | number | boolean | date | datetime | json'
  • TYPE_ADDED — Type 'DashboardQueryRun' was added
  • FIELD_ADDED — Field 'columns' was added to object type 'DashboardQueryRun'
  • FIELD_ADDED — Field 'rows' was added to object type 'DashboardQueryRun'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryRun.rows' has description 'JSON array of rows, each an array of values in column order. Customer data: render as text.'
  • FIELD_ADDED — Field 'truncated' was added to object type 'DashboardQueryRun'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryRun.truncated' has description 'True when the row cap cut the result short'
  • FIELD_ADDED — Field 'elapsedMs' was added to object type 'DashboardQueryRun'
  • FIELD_ADDED — Field 'queryHandle' was added to object type 'DashboardQueryRun'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardQueryRun.queryHandle' has description 'runDashboardAdhoc only: the proof this query ran (valid 24 h). saveDashboardChart / updateDashboardChart take it, and save the handle\'s SQL, parameters and source — never SQL from the client.'
  • TYPE_ADDED — Type 'DashboardRef' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'DashboardRef'
  • FIELD_ADDED — Field 'name' was added to object type 'DashboardRef'
  • TYPE_ADDED — Type 'DashboardSourceInfo' was added
  • FIELD_ADDED — Field 'source' was added to object type 'DashboardSourceInfo'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardSourceInfo.source' has description 'JSON of the source, to pass back as a source argument: {"kind":"honeybase"} | {"kind":"orgdb"} | {"kind":"integration","integrationId":N}.'
  • FIELD_ADDED — Field 'name' was added to object type 'DashboardSourceInfo'
  • FIELD_ADDED — Field 'dialect' was added to object type 'DashboardSourceInfo'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardSourceInfo.dialect' has description 'Postgres | MySql | Oracle'
  • TYPE_ADDED — Type 'DashboardTileDetail' was added
  • FIELD_ADDED — Field 'tileId' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.tileId' has description 'Stable id of the tile on its dashboard: ops (move_tile, link_filter, ...) and runDashboardChart address the tile by it.'
  • FIELD_ADDED — Field 'chartPublicId' was added to object type 'DashboardTileDetail'
  • FIELD_ADDED — Field 'x' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.x' has description 'Column on the 24-column grid (0-23)'
  • FIELD_ADDED — Field 'y' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.y' has description 'Row on the grid'
  • FIELD_ADDED — Field 'w' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.w' has description 'Width in grid columns'
  • FIELD_ADDED — Field 'h' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.h' has description 'Height in grid rows'
  • FIELD_ADDED — Field 'mappings' was added to object type 'DashboardTileDetail'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardTileDetail.mappings' has description 'Which dashboard filter feeds which chart parameter on this tile; the only path from a filter value to the chart\'s SQL.'
  • FIELD_ADDED — Field 'titleOverride' was added to object type 'DashboardTileDetail'
  • FIELD_ADDED — Field 'position' was added to object type 'DashboardTileDetail'
  • TYPE_ADDED — Type 'DashboardUpdateResult' was added
  • FIELD_ADDED — Field 'outcome' was added to object type 'DashboardUpdateResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardUpdateResult.outcome' has description 'saved | validated (validateOnly: valid, nothing written) | invalid (see errors; nothing written) | conflict (expectedVersion is stale; reload at currentVersion)'
  • FIELD_ADDED — Field 'dashboard' was added to object type 'DashboardUpdateResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardUpdateResult.dashboard' has description 'saved: the dashboard as stored; validated: as the ops would leave it'
  • FIELD_ADDED — Field 'errors' was added to object type 'DashboardUpdateResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardUpdateResult.errors' has description 'invalid: every problem found, one sentence each'
  • FIELD_ADDED — Field 'currentVersion' was added to object type 'DashboardUpdateResult'
  • FIELD_DESCRIPTION_ADDED — Field 'DashboardUpdateResult.currentVersion' has description 'conflict: the version now stored'
  • TYPE_ADDED — Type 'TileMapping' was added
  • FIELD_ADDED — Field 'filterId' was added to object type 'TileMapping'
  • FIELD_ADDED — Field 'param' was added to object type 'TileMapping'
  • FIELD_ADDED — Field 'dashboards' was added to object type 'Mutations'
  • FIELD_DESCRIPTION_ADDED — Field 'Mutations.dashboards' has description 'Custom dashboards and the charts library (canManageDashboards)'
  • FIELD_ADDED — Field 'dashboards' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.dashboards' has description 'Custom dashboards and the charts library: list, read and run (any member); schema browsing (canManageDashboards)'

2026-10-17​

0 breaking · 0 dangerous · 14 additive

Additive changes

  • TYPE_ADDED — Type 'McpToolContract' was added
  • FIELD_ADDED — Field 'toolName' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'description' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'inputSchema' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'access' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'status' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'outputSchema' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'inputSchemaHash' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'title' was added to object type 'McpToolContract'
  • FIELD_ADDED — Field 'listMcpConnectionTools' was added to object type 'McpConnectionQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionQueries.listMcpConnectionTools' has description 'Approved pinned MCP tool contracts for agent, workflow or integration authors; no URL, approval hash or approver identity'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionQueries.listMcpConnectionTools'
  • FIELD_DESCRIPTION_CHANGED — Field 'McpConnectionQueries.listMcpConnections' description changed from 'All MCP connections of the org with their tool ledgers (names, tiers, statuses — no schemas or pins), for the agent builder\'s attach surface and the Barry composer\'s MCP tools section (requires an agent permission or canManageIntegrations)' to 'All MCP connections of the org with their tool ledgers (names, tiers, statuses — no schemas or pins), for the agent builder\'s attach surface and the Barry composer\'s MCP tools section (requires an agent permission, canBuildWorkflows or canManageIntegrations)'
  • FIELD_ADDED — Field 'title' was added to object type 'McpToolListing'

2026-10-17​

0 breaking · 1 dangerous · 6 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'allowAnyOrigin: Boolean' added to field 'ProcessMutations.setEndpointPublicAccess'

Additive changes

  • FIELD_ADDED — Field 'allowAnyOrigin' was added to object type 'EndpointPublicAccessGql'
  • FIELD_DESCRIPTION_ADDED — Field 'EndpointPublicAccessGql.allowAnyOrigin' has description 'true = any website may call the endpoint from a browser; allowedOrigins is then ignored (and empty).'
  • FIELD_DESCRIPTION_CHANGED — Field 'EndpointPublicAccessGql.allowedOrigins' description changed from 'Exact origins whose browser pages may call the endpoint (CORS). Empty = only non-browser callers, plus any deployment-wide origins.' to 'Exact origins whose browser pages may call the endpoint (CORS). Empty = only non-browser callers, plus any deployment-wide origins. Always empty when allowAnyOrigin is true.'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'enabled' on field 'ProcessMutations.setEndpointPublicAccess' changed from 'true = make the endpoint public (mints a token if it has none; an already-public endpoint keeps its token). false = revoke: the URL stops working immediately. Cannot be combined with rotate or allowedOrigins.' to 'true = make the endpoint public (mints a token if it has none; an already-public endpoint keeps its token). false = revoke: the URL stops working immediately. Cannot be combined with rotate, allowedOrigins or allowAnyOrigin.'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'rotate' on field 'ProcessMutations.setEndpointPublicAccess' changed from 'true = replace the token; the previous URL stops working immediately.' to 'true = replace the token; the previous URL stops working immediately. Only on an endpoint that is already public, unless enabled: true is sent too (a rotation never makes an endpoint public).'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'allowedOrigins' on field 'ProcessMutations.setEndpointPublicAccess' changed from 'REPLACES the origins (exact scheme://host[:port], e.g. https://example.com) whose browser pages may call the endpoint. A request carrying any other Origin header is refused with 403 before the workflow runs; requests without an Origin (servers, curl) are allowed. At most 20.' to 'REPLACES the origins (exact scheme://host[:port], e.g. https://example.com) whose browser pages may call the endpoint. A request carrying any other Origin header is refused with 403 before the workflow runs; requests without an Origin (servers, curl) are allowed. [] = no browser page may call (the default when public access is first enabled). At most 20. Cannot be combined with allowAnyOrigin: true.'

2026-10-17​

0 breaking · 0 dangerous · 19 additive

Additive changes

  • TYPE_ADDED — Type 'EndpointPublicAccessGql' was added
  • FIELD_ADDED — Field 'processPublicId' was added to object type 'EndpointPublicAccessGql'
  • FIELD_ADDED — Field 'token' was added to object type 'EndpointPublicAccessGql'
  • FIELD_DESCRIPTION_ADDED — Field 'EndpointPublicAccessGql.token' has description 'The bearer credential embedded in the URL. Treat it like a password-equivalent link: anyone holding it can call the endpoint.'
  • FIELD_ADDED — Field 'path' was added to object type 'EndpointPublicAccessGql'
  • FIELD_DESCRIPTION_ADDED — Field 'EndpointPublicAccessGql.path' has description 'POST here (relative to the API host, e.g. https://app.honeybase.ai) to call the endpoint without a login: /api/public/endpoints/<token>'
  • FIELD_ADDED — Field 'allowedOrigins' was added to object type 'EndpointPublicAccessGql'
  • FIELD_DESCRIPTION_ADDED — Field 'EndpointPublicAccessGql.allowedOrigins' has description 'Exact origins whose browser pages may call the endpoint (CORS). Empty = only non-browser callers, plus any deployment-wide origins.'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'EndpointPublicAccessGql'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'EndpointPublicAccessGql'
  • FIELD_ADDED — Field 'setEndpointPublicAccess' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.setEndpointPublicAccess' has description 'Make an endpoint callable WITHOUT a login at POST /api/public/endpoints/<token> (for static sites), rotate that token, set the browser origins allowed to call it, or revoke it. Off by default. Anyone holding the token can call the endpoint, so return only what a stranger may see. Requires canManageReleases and canBuildWorkflows. Returns the resulting state, or null when the endpoint is not public.'
  • FIELD_ARGUMENT_ADDED — Argument 'processPublicId: String!' added to field 'ProcessMutations.setEndpointPublicAccess'
  • FIELD_ARGUMENT_ADDED — Argument 'enabled: Boolean' added to field 'ProcessMutations.setEndpointPublicAccess'
  • FIELD_ARGUMENT_ADDED — Argument 'rotate: Boolean' added to field 'ProcessMutations.setEndpointPublicAccess'
  • FIELD_ARGUMENT_ADDED — Argument 'allowedOrigins: [String!]' added to field 'ProcessMutations.setEndpointPublicAccess'
  • FIELD_ADDED — Field 'endpointPublicAccess' was added to object type 'ProcessQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessQueries.endpointPublicAccess' has description 'An endpoint\'s public (no-login) access: its token, path and allowed browser origins, or null when it is not public. Requires canBuildWorkflows.'
  • FIELD_ARGUMENT_ADDED — Argument 'processPublicId: String!' added to field 'ProcessQueries.endpointPublicAccess'

2026-10-17​

0 breaking · 0 dangerous · 9 additive

Additive changes

  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'alwaysAllow' on field 'AiChatMutations.respondToToolCall' changed from 'Approvals only: also record a standing approval ("Approve always") for this tool, so matching future calls in any of your chats proceed without a card. Personal, revocable (revokeApprovalGrant), never widens permissions - the call still runs under your own rights. Ignored on rejections and on input-request cards.' to 'Approvals only: also record a standing approval ("Approve always") for this tool, so matching future calls in any of your chats proceed without a card. Personal, revocable (revokeApprovalGrant), never widens permissions - the call still runs under your own rights. On a release (release_workflow, release_agent, release_app) the standing approval covers only that one process, agent or app. Ignored on rejections; refused on cards that ask you for something (input requests and the approvals card itself, manage_approval_grants) and on a release whose target cannot be resolved.'
  • FIELD_DESCRIPTION_CHANGED — Field 'AiChatMutations.undoToolCall' description changed from 'Revert an approved copilot write while it is still safe to: the newest revertible write of an idle chat, untouched since, with at most one message after it. Returns whether the revert happened; either way the chat gains a ToolCallUndone event saying what did or did not change. This is never a tool the copilot can call.' to 'Removed: the one-click undo of a copilot write no longer exists. Always fails; ask the copilot to put the change back instead (its receipt in the chat says what it was before).'
  • FIELD_DEPRECATION_ADDED — Field 'AiChatMutations.undoToolCall' is deprecated
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'toolCallId' on field 'AiChatMutations.undoToolCall' changed from 'The tool call to revert, named by the id on its ToolCallResult event. It is a POINTER and nothing more: the operation is rebuilt from the inverse the server persisted when the write happened, never from anything the client sends, and it runs through the same services under the same identity the write used. Only the newest still-revertible write of the chat qualifies, and only while it is untouched and the chat is idle.' to 'Ignored: the mutation always refuses (undo was removed).'
  • DIRECTIVE_USAGE_FIELD_DEFINITION_ADDED — Directive 'deprecated' was added to field 'AiChatMutations.undoToolCall'
  • DIRECTIVE_USAGE_ARGUMENT_ADDED — Argument 'reason' was added to '@deprecated'
  • FIELD_ADDED — Field 'objectKind' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'objectId' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'objectName' was added to object type 'ApprovalGrant'

2026-10-17​

0 breaking · 0 dangerous · 15 additive

Additive changes

  • TYPE_ADDED — Type 'McpTierSuggestion' was added
  • FIELD_ADDED — Field 'tier' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'reason' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'definitionHash' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'aiIntegrationId' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'model' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'generatedAt' was added to object type 'McpTierSuggestion'
  • FIELD_ADDED — Field 'suggestMcpToolTier' was added to object type 'McpConnectionMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionMutations.suggestMcpToolTier' has description 'Suggest a tier for one current tool definition; never approves (requires canManageIntegrations)'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionMutations.suggestMcpToolTier'
  • FIELD_ARGUMENT_ADDED — Argument 'toolName: String!' added to field 'McpConnectionMutations.suggestMcpToolTier'
  • FIELD_ARGUMENT_ADDED — Argument 'expectedDefinitionHash: String!' added to field 'McpConnectionMutations.suggestMcpToolTier'
  • FIELD_ARGUMENT_ADDED — Argument 'aiIntegrationId: Long!' added to field 'McpConnectionMutations.suggestMcpToolTier'
  • FIELD_ARGUMENT_ADDED — Argument 'model: String!' added to field 'McpConnectionMutations.suggestMcpToolTier'
  • FIELD_ADDED — Field 'suggestion' was added to object type 'McpConnectionTool'

2026-10-16​

0 breaking · 0 dangerous · 29 additive

Additive changes

  • TYPE_ADDED — Type 'ActivityEntity' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'ActivityEntity'
  • FIELD_ADDED — Field 'id' was added to object type 'ActivityEntity'
  • FIELD_ADDED — Field 'publicId' was added to object type 'ActivityEntity'
  • FIELD_ADDED — Field 'label' was added to object type 'ActivityEntity'
  • FIELD_ADDED — Field 'deleted' was added to object type 'ActivityEntity'
  • TYPE_ADDED — Type 'AttributionActor' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'name' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'deleted' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'via' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'viaName' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'at' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'links' was added to object type 'AttributionActor'
  • FIELD_ADDED — Field 'kind' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'name' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'deleted' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'viaName' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'entityPublicId' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'createdActor' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'updatedActor' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'entity' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'entityActivityByPublicId' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.entityActivityByPublicId' has description 'Same as entityActivity, addressed by the entity\'s public ID (UUID). Live entities only; deleted history requires entityActivity with the stable numeric ID'
  • FIELD_ARGUMENT_ADDED — Argument 'entityKind: String!' added to field 'Queries.entityActivityByPublicId'
  • FIELD_ARGUMENT_ADDED — Argument 'entityPublicId: String!' added to field 'Queries.entityActivityByPublicId'
  • FIELD_ARGUMENT_ADDED — Argument 'cursor: String' added to field 'Queries.entityActivityByPublicId'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'Queries.entityActivityByPublicId'
  • FIELD_DESCRIPTION_CHANGED — Field 'Queries.auditAttribution' description changed from 'Creation and latest-change attribution for up to 100 current entities; uses existing entity read permissions' to 'Creation and latest-change attribution for up to 100 current entities; uses existing entity read permissions. createdActor/updatedActor carry the actor as data: kind is user, api_key, workflow, agent, system or none (the change predates activity tracking); new kinds may be added, treat unknown values as system. createdBy/updatedBy and the via strings are the legacy pre-rendered labels'

2026-10-16​

0 breaking · 0 dangerous · 43 additive

note

Integrates the audit-history API additions from main with the dashboard permission fields.

Additive changes

  • TYPE_ADDED — Type 'ActivityActor' was added
  • FIELD_ADDED — Field 'label' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'via' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'links' was added to object type 'ActivityActor'
  • TYPE_ADDED — Type 'ActivityChange' was added
  • FIELD_ADDED — Field 'path' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'before' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'after' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'beforePresent' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'afterPresent' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'withheld' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'truncated' was added to object type 'ActivityChange'
  • TYPE_ADDED — Type 'ActivityLink' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'ActivityLink'
  • FIELD_ADDED — Field 'href' was added to object type 'ActivityLink'
  • TYPE_ADDED — Type 'EntityActivity' was added
  • FIELD_ADDED — Field 'eventId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'occurredAt' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityKind' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityLabel' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'deleted' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'operation' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'operationId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'actor' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'origin' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'changes' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'truncated' was added to object type 'EntityActivity'
  • TYPE_ADDED — Type 'EntityActivityPage' was added
  • FIELD_ADDED — Field 'events' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'nextCursor' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'hasMore' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'truncated' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'entityActivity' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.entityActivity' has description 'Bounded committed history using current entity read permissions; deleted roots require Owner/Admin'
  • FIELD_ARGUMENT_ADDED — Argument 'entityKind: String!' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'entityId: Long!' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'cursor: String' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'Queries.entityActivity'
  • FIELD_ADDED — Field 'organizationActivity' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.organizationActivity' has description 'Organization activity including deleted entities. Requires Owner/Admin; API keys cannot use it'
  • FIELD_ARGUMENT_ADDED — Argument 'cursor: String' added to field 'Queries.organizationActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'Queries.organizationActivity'

2026-10-15​

0 breaking · 0 dangerous · 43 additive

Additive changes

  • TYPE_ADDED — Type 'ActivityActor' was added
  • FIELD_ADDED — Field 'label' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'via' was added to object type 'ActivityActor'
  • FIELD_ADDED — Field 'links' was added to object type 'ActivityActor'
  • TYPE_ADDED — Type 'ActivityChange' was added
  • FIELD_ADDED — Field 'path' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'before' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'after' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'beforePresent' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'afterPresent' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'withheld' was added to object type 'ActivityChange'
  • FIELD_ADDED — Field 'truncated' was added to object type 'ActivityChange'
  • TYPE_ADDED — Type 'ActivityLink' was added
  • FIELD_ADDED — Field 'kind' was added to object type 'ActivityLink'
  • FIELD_ADDED — Field 'href' was added to object type 'ActivityLink'
  • TYPE_ADDED — Type 'EntityActivity' was added
  • FIELD_ADDED — Field 'eventId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'occurredAt' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityKind' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'entityLabel' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'deleted' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'operation' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'operationId' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'actor' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'origin' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'changes' was added to object type 'EntityActivity'
  • FIELD_ADDED — Field 'truncated' was added to object type 'EntityActivity'
  • TYPE_ADDED — Type 'EntityActivityPage' was added
  • FIELD_ADDED — Field 'events' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'nextCursor' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'hasMore' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'truncated' was added to object type 'EntityActivityPage'
  • FIELD_ADDED — Field 'entityActivity' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.entityActivity' has description 'Bounded committed history using current entity read permissions; deleted roots require Owner/Admin'
  • FIELD_ARGUMENT_ADDED — Argument 'entityKind: String!' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'entityId: Long!' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'cursor: String' added to field 'Queries.entityActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'Queries.entityActivity'
  • FIELD_ADDED — Field 'organizationActivity' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.organizationActivity' has description 'Organization activity including deleted entities. Requires Owner/Admin; API keys cannot use it'
  • FIELD_ARGUMENT_ADDED — Argument 'cursor: String' added to field 'Queries.organizationActivity'
  • FIELD_ARGUMENT_ADDED — Argument 'limit: Int' added to field 'Queries.organizationActivity'

2026-10-15​

0 breaking · 0 dangerous · 2 additive

Additive changes

  • INPUT_FIELD_ADDED — Input field 'canManageDashboards' of type 'Boolean' was added to input object type 'PermissionsInput'
  • FIELD_ADDED — Field 'canManageDashboards' was added to object type 'Permissions'

2026-10-15​

0 breaking · 0 dangerous · 14 additive

Additive changes

  • TYPE_ADDED — Type 'AppEndpoint' was added
  • FIELD_ADDED — Field 'appId' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'processId' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'processPublicId' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'name' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'description' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'released' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'paused' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AppEndpoint'
  • FIELD_ADDED — Field 'endpoints' was added to object type 'AppData'
  • FIELD_ADDED — Field 'setAppEndpoints' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.setAppEndpoints' has description 'Replace the endpoints this app may invoke. Requires canManageReleases and canBuildWorkflows: declaring is a grant, and only someone who may run an endpoint may hand it to an app'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.setAppEndpoints'
  • FIELD_ARGUMENT_ADDED — Argument 'processPublicIds: [String!]!' added to field 'AppMutations.setAppEndpoints'

2026-10-14 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

2026-10-14​

0 breaking · 2 dangerous · 25 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'scopes: ApiKeyScopesInput' added to field 'ApiKeyMutations.createApiKey'
  • FIELD_ARGUMENT_ADDED — Argument 'scopes: ApiKeyScopesInput' added to field 'ApiKeyMutations.createPersonalApiKey'

Additive changes

  • TYPE_ADDED — Type 'ApiKeyScopesInput' was added
  • INPUT_FIELD_ADDED — Input field 'graphql' of type 'Boolean' was added to input object type 'ApiKeyScopesInput'
  • INPUT_FIELD_ADDED — Input field 'endpoints' of type '[String!]' was added to input object type 'ApiKeyScopesInput'
  • INPUT_FIELD_ADDED — Input field 'readResults' of type 'Boolean' was added to input object type 'ApiKeyScopesInput'
  • INPUT_FIELD_ADDED — Input field 'rateLimitPerMinute' of type 'Int' was added to input object type 'ApiKeyScopesInput'
  • INPUT_FIELD_ADDED — Input field 'maxConcurrency' of type 'Int' was added to input object type 'ApiKeyScopesInput'
  • TYPE_ADDED — Type 'ApiKeyEndpointScope' was added
  • FIELD_ADDED — Field 'processPublicId' was added to object type 'ApiKeyEndpointScope'
  • FIELD_ADDED — Field 'name' was added to object type 'ApiKeyEndpointScope'
  • INPUT_FIELD_ADDED — Input field 'canCreateApiKeys' of type 'Boolean' was added to input object type 'PermissionsInput'
  • FIELD_ADDED — Field 'updateApiKeyScopes' was added to object type 'ApiKeyMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ApiKeyMutations.updateApiKeyScopes' has description 'Replace an API key\'s scopes: GraphQL access, the endpoint allowlist (public ids), async result reads and the Endpoints-section limits. Endpoint scopes require canBuildWorkflows; limits may only lower the defaults. Organization keys require canManageApiKeys; personal keys require ownership. Revoking all scopes is refused.'
  • FIELD_ARGUMENT_ADDED — Argument 'orgApiKeyId: Long!' added to field 'ApiKeyMutations.updateApiKeyScopes'
  • FIELD_ARGUMENT_ADDED — Argument 'scopes: ApiKeyScopesInput!' added to field 'ApiKeyMutations.updateApiKeyScopes'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.createApiKey' description changed from 'Create an organization API key for the GraphQL API (name + explicit permission set + optional expiry). Returns the plaintext key exactly once. Requires canManageApiKeys and selected permissions within your current grants; API-key-authenticated requests can never manage keys.' to 'Create an organization API key (name + explicit GraphQL permission set + optional expiry + optional scopes). Omitting scopes grants GraphQL access only; endpoint scopes (endpoint:invoke per endpoint public id, endpoint:results:read) additionally require canBuildWorkflows. Returns the plaintext key exactly once. Requires canManageApiKeys and selected permissions within your current grants; API-key-authenticated requests can never manage keys.'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.createPersonalApiKey' description changed from 'Create a personal GraphQL API key acting as you within the current organization. Selected permissions cannot exceed your current role; authentication intersects them with that role afresh. Requires a user session. Returns plaintext exactly once.' to 'Create a personal API key acting as you within the current organization. Selected GraphQL permissions cannot exceed your current role; authentication intersects them with that role afresh. Omitting scopes grants GraphQL access only; endpoint scopes require canBuildWorkflows. Requires a user session and canCreateApiKeys. Returns plaintext exactly once.'
  • FIELD_ADDED — Field 'listKeysForEndpoint' was added to object type 'ApiKeyQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ApiKeyQueries.listKeysForEndpoint' has description 'Active API keys scoped to invoke the given endpoint (process public id): every one for a caller with canManageApiKeys, otherwise only the caller\'s own personal keys. Requires a user session.'
  • FIELD_ARGUMENT_ADDED — Argument 'processPublicId: String!' added to field 'ApiKeyQueries.listKeysForEndpoint'
  • FIELD_ADDED — Field 'graphqlAccess' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'endpointScopes' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'readsRunResults' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'rateLimitPerMinute' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'maxConcurrency' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'canCreateApiKeys' was added to object type 'Permissions'

2026-10-14​

0 breaking · 0 dangerous · 13 additive

Additive changes

  • TYPE_ADDED — Type 'AuditAttribution' was added
  • FIELD_ADDED — Field 'entityKind' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'entityId' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'createdBy' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'createdVia' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'updatedBy' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'updatedVia' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AuditAttribution'
  • FIELD_ADDED — Field 'auditAttribution' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.auditAttribution' has description 'Creation and latest-change attribution for up to 100 current entities; uses existing entity read permissions'
  • FIELD_ARGUMENT_ADDED — Argument 'entityKind: String!' added to field 'Queries.auditAttribution'
  • FIELD_ARGUMENT_ADDED — Argument 'entityIds: [Long!]!' added to field 'Queries.auditAttribution'

2026-10-14​

0 breaking · 0 dangerous · 21 additive

Additive changes

  • INPUT_FIELD_ADDED — Input field 'canManageApiKeys' of type 'Boolean' was added to input object type 'PermissionsInput'
  • FIELD_DESCRIPTION_CHANGED — Field 'AgentMutations.createAgentMemory' description changed from 'Teach the agent something by hand (an agent- or process-scoped memory with no source task). Requires canManageAgents; refused for an organization API key - memory is written only under a person\'s session.' to 'Teach the agent something by hand (an agent- or process-scoped memory with no source task). Requires canManageAgents; refused for an API key - memory is written only under a person\'s session.'
  • FIELD_ADDED — Field 'createPersonalApiKey' was added to object type 'ApiKeyMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ApiKeyMutations.createPersonalApiKey' has description 'Create a personal GraphQL API key acting as you within the current organization. Selected permissions cannot exceed your current role; authentication intersects them with that role afresh. Requires a user session. Returns plaintext exactly once.'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'ApiKeyMutations.createPersonalApiKey'
  • FIELD_ARGUMENT_ADDED — Argument 'permissions: PermissionsInput!' added to field 'ApiKeyMutations.createPersonalApiKey'
  • FIELD_ARGUMENT_ADDED — Argument 'expiresAt: ZonedDateTime' added to field 'ApiKeyMutations.createPersonalApiKey'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.createApiKey' description changed from 'Create an organization API key for the GraphQL API (name + explicit permission set + optional expiry). Returns the plaintext key exactly once. Requires Owner or Admin role; API-key-authenticated requests can never manage keys.' to 'Create an organization API key for the GraphQL API (name + explicit permission set + optional expiry). Returns the plaintext key exactly once. Requires canManageApiKeys and selected permissions within your current grants; API-key-authenticated requests can never manage keys.'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.updateApiKeyPermissions' description changed from 'Replace an API key\'s permission set. Requires Owner or Admin role.' to 'Replace an API key\'s permission set within your current grants. Organization keys require canManageApiKeys; personal keys require ownership.'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.rotateApiKey' description changed from 'Rotate (cycle) an API key: new key material on the same key (name, permissions and expiry are kept); the old key stops working immediately. Returns the new plaintext key exactly once. Requires Owner or Admin role.' to 'Rotate (cycle) an API key: new key material on the same key (name, permissions and expiry are kept); the old key stops working immediately. Returns the new plaintext key exactly once. Organization keys require canManageApiKeys and all stored grants; personal keys require ownership.'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyMutations.revokeApiKey' description changed from 'Revoke (delete) an API key; it stops working immediately. Requires Owner or Admin role.' to 'Soft revoke an API key, retaining its row for provenance; it stops working immediately. Requires canManageApiKeys, or ownership of a personal key.'
  • FIELD_ADDED — Field 'listMyApiKeys' was added to object type 'ApiKeyQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ApiKeyQueries.listMyApiKeys' has description 'List your active personal API keys in the current organization. Requires an enabled member user session.'
  • FIELD_DESCRIPTION_CHANGED — Field 'ApiKeyQueries.listApiKeys' description changed from 'List the organization\'s API keys — names, display prefixes, permissions and expiry; the key material is never returned. Requires Owner or Admin role.' to 'List active organization and personal API keys with owner and approximate usage metadata; key material is never returned. Requires canManageApiKeys and a user session.'
  • FIELD_ADDED — Field 'keyKind' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'ownerWebUserId' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'ownerEmail' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'ownerName' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'lastUsedAt' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'ownerPermissions' was added to object type 'OrgApiKey'
  • FIELD_ADDED — Field 'canManageApiKeys' was added to object type 'Permissions'

2026-10-14​

0 breaking · 3 dangerous · 0 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'timeoutMs: Long' added to field 'EndpointMutations.createEndpoint'
  • FIELD_ARGUMENT_ADDED — Argument 'kind: String' added to field 'ProcessMutations.createProcess'
  • FIELD_ARGUMENT_ADDED — Argument 'timeoutMs: Long' added to field 'ProcessMutations.createProcess'

2026-10-14​

0 breaking · 2 dangerous · 2 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'includeTestRuns: Boolean' added to field 'ProcessQueries.listProcessRuns'
  • FIELD_ARGUMENT_ADDED — Argument 'includeTestRuns: Boolean' added to field 'ProcessSubscriptions.watchProcessRuns'

Additive changes

  • FIELD_ADDED — Field 'isTest' was added to object type 'RunSummary'
  • FIELD_ADDED — Field 'testOrigin' was added to object type 'RunSummary'

2026-10-14​

0 breaking · 3 dangerous · 1 additive

note

All new arguments are optional. Omitting teamIds preserves the existing create/invite behavior; omitting processId preserves the existing run lookup. Supplying processId verifies that the run belongs to that process.

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'processId: Long' added to field 'ProcessQueries.getProcessRun'
  • FIELD_ARGUMENT_ADDED — Argument 'teamIds: [Long!]' added to field 'UserMutations.createUser'
  • FIELD_ARGUMENT_ADDED — Argument 'teamIds: [Long!]' added to field 'UserMutations.inviteExistingUser'

Additive changes

  • FIELD_ADDED — Field 'organizationId' was added to object type 'Notification'

2026-10-14​

0 breaking · 2 dangerous · 15 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'alwaysAllow: Boolean' added to field 'AiChatMutations.respondToToolCall'
  • FIELD_ARGUMENT_ADDED — Argument 'alwaysAllow: Boolean' added to field 'ProcessMutations.confirmRunAuthorization'

Additive changes

  • TYPE_ADDED — Type 'ApprovalGrant' was added
  • FIELD_ADDED — Field 'approvalGrantId' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'toolKey' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'useCount' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'lastUsedAt' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'ApprovalGrant'
  • FIELD_ADDED — Field 'revokeApprovalGrant' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.revokeApprovalGrant' has description 'Revoke one of the signed-in user\'s standing approvals; matching calls ask again from the next one'
  • FIELD_ARGUMENT_ADDED — Argument 'approvalGrantId: Long!' added to field 'AiChatMutations.revokeApprovalGrant'
  • FIELD_ADDED — Field 'revokeAllApprovalGrants' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.revokeAllApprovalGrants' has description 'Revoke every standing approval the signed-in user holds in this organization'
  • FIELD_DESCRIPTION_CHANGED — Field 'AiChatMutations.respondToToolCall' description changed from 'Approve or reject a pending tool call (AskPermission mode)' to 'Approve or reject a pending tool call; with alwaysAllow, also grant it a standing approval'
  • FIELD_ADDED — Field 'approvalGrants' was added to object type 'AiChatQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatQueries.approvalGrants' has description 'The signed-in user\'s standing approvals ("Approve always") in this organization: one row per tool key, with usage counters'
  • FIELD_ADDED — Field 'autoApproved' was added to object type 'RunAuthorizationPreview'

2026-09-17 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

2026-09-16​

0 breaking · 1 dangerous · 5 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'formData: String' added to field 'TaskMutations.answerAgentRequest'

Additive changes

  • FIELD_ADDED — Field 'formData' was added to object type 'AgentRequestAnswer'
  • FIELD_ADDED — Field 'form' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'takeOverTaskAgent' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.takeOverTaskAgent' has description 'Take a task back from an agent that is waiting on someone (a question, an approval, a timer, an update or a report to read): the session ends as Stopped with your name as the reason, its pending request is cancelled, and the agent stays on the task so it can be started again. The task\'s owner, their team or an agent administrator. Fails while the agent is working: stop it instead.'
  • FIELD_ARGUMENT_ADDED — Argument 'taskId: Long!' added to field 'TaskMutations.takeOverTaskAgent'

2026-09-16​

0 breaking · 2 dangerous · 50 additive

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'TaskFeedback' was added to enum 'ChatSubjectKind'
  • FIELD_ARGUMENT_ADDED — Argument 'taskFeedbackContext: String' added to field 'AiChatMutations.sendChatMessage'

Additive changes

  • TYPE_ADDED — Type 'AgentMemory' was added
  • FIELD_ADDED — Field 'agentMemoryId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'agentId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'organizationId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'scope' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'processId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'processName' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'text' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'sourceTaskId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'sourceTaskName' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'approvedByWebUserId' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'approvedByName' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'active' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AgentMemory'
  • FIELD_ADDED — Field 'createAgentMemory' was added to object type 'AgentMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentMutations.createAgentMemory' has description 'Teach the agent something by hand (an agent- or process-scoped memory with no source task). Requires canManageAgents; refused for an organization API key - memory is written only under a person\'s session.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentId: Long!' added to field 'AgentMutations.createAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'scope: String!' added to field 'AgentMutations.createAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'processId: Long' added to field 'AgentMutations.createAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'text: String!' added to field 'AgentMutations.createAgentMemory'
  • FIELD_ADDED — Field 'updateAgentMemory' was added to object type 'AgentMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentMutations.updateAgentMemory' has description 'Edit a memory\'s text, scope or active flag. Requires canManageAgents.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentMemoryId: Long!' added to field 'AgentMutations.updateAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'scope: String!' added to field 'AgentMutations.updateAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'processId: Long' added to field 'AgentMutations.updateAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'text: String!' added to field 'AgentMutations.updateAgentMemory'
  • FIELD_ARGUMENT_ADDED — Argument 'active: Boolean!' added to field 'AgentMutations.updateAgentMemory'
  • FIELD_ADDED — Field 'deleteAgentMemory' was added to object type 'AgentMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentMutations.deleteAgentMemory' has description 'Forget a memory. Requires canManageAgents.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentMemoryId: Long!' added to field 'AgentMutations.deleteAgentMemory'
  • FIELD_ADDED — Field 'agentMemories' was added to object type 'AgentQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentQueries.agentMemories' has description 'What people taught this agent, newest first, with provenance (the task it was learned on and who approved it). Requires canRunAgents or canManageAgents.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentId: Long!' added to field 'AgentQueries.agentMemories'
  • FIELD_ADDED — Field 'rating' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'ratingComment' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'ratedByWebUserId' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'ratedAt' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'testCaseCandidate' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'ratedByName' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'canRate' was added to object type 'AgentTaskSessionView'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description 'The AI connection this turn runs on. Omit (with model) to keep the chat\'s current one, or -- on a chat that has none -- to run on the organization\'s default AI connection: the Honeybase AI credits connection, else its only enabled AI connection. That is how a member who cannot list connections still sends.' was added to argument 'integrationId' on field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_TYPE_CHANGED — Type for argument 'integrationId' on field 'AiChatMutations.sendChatMessage' changed from 'Long!' to 'Long'
  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description 'The model for this turn. Omit to keep the chat\'s current one, or to use the connection\'s default model.' was added to argument 'model' on field 'AiChatMutations.sendChatMessage'
  • FIELD_ARGUMENT_TYPE_CHANGED — Type for argument 'model' on field 'AiChatMutations.sendChatMessage' changed from 'String!' to 'String'
  • FIELD_ADDED — Field 'rateAgentTask' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.rateAgentTask' has description 'Rate an agent\'s finished work on a task (Worked / Partly / Wrong) with a comment. Offered on finished sessions only; the task\'s owner, their team or an agent administrator may rate. Re-rating overwrites. Returns the refreshed Agent tab view.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentSessionId: Long!' added to field 'TaskMutations.rateAgentTask'
  • FIELD_ARGUMENT_ADDED — Argument 'rating: String!' added to field 'TaskMutations.rateAgentTask'
  • FIELD_ARGUMENT_ADDED — Argument 'comment: String' added to field 'TaskMutations.rateAgentTask'

2026-09-16​

0 breaking · 0 dangerous · 6 additive

Additive changes

  • FIELD_ADDED — Field 'disabledToolIds' was added to object type 'ChatSettings'
  • FIELD_ADDED — Field 'barryEnabled' was added to object type 'Tool'
  • FIELD_ADDED — Field 'setToolBarryEnabled' was added to object type 'ToolMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ToolMutations.setToolBarryEnabled' has description 'Release the tool to the Barry AI copilot, or withdraw it: a read-only tool then runs directly from a home chat as a real run of its process, a mutating one only behind an approval card the member answers. Off by default; enabling requires a released workflow. Requires canManageAgents permission'
  • FIELD_ARGUMENT_ADDED — Argument 'toolId: Long!' added to field 'ToolMutations.setToolBarryEnabled'
  • FIELD_ARGUMENT_ADDED — Argument 'barryEnabled: Boolean!' added to field 'ToolMutations.setToolBarryEnabled'

2026-09-15​

0 breaking · 2 dangerous · 22 additive

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'teamAssigneeMethod: String' added to field 'TaskMutations.createTaskWithAssignment'
  • FIELD_ARGUMENT_ADDED — Argument 'assignment: TaskAssignmentInput' added to field 'TaskMutations.batchUpdateTasks'

Additive changes

  • TYPE_ADDED — Type 'TaskAssignmentInput' was added
  • INPUT_FIELD_ADDED — Input field 'userId' of type 'Long' was added to input object type 'TaskAssignmentInput'
  • INPUT_FIELD_ADDED — Input field 'teamId' of type 'Long' was added to input object type 'TaskAssignmentInput'
  • INPUT_FIELD_ADDED — Input field 'method' of type 'String' was added to input object type 'TaskAssignmentInput'
  • TYPE_ADDED — Type 'MemberDeactivationPlan' was added
  • FIELD_ADDED — Field 'unfinishedTaskCount' was added to object type 'MemberDeactivationPlan'
  • FIELD_ADDED — Field 'teams' was added to object type 'MemberDeactivationPlan'
  • TYPE_ADDED — Type 'SlackCapabilities' was added
  • FIELD_ADDED — Field 'emailRecipients' was added to object type 'SlackCapabilities'
  • FIELD_ADDED — Field 'slackCapabilities' was added to object type 'IntegrationQueries'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'IntegrationQueries.slackCapabilities'
  • FIELD_ADDED — Field 'updateProcessDetails' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.updateProcessDetails' has description 'Update the process name and description without changing workflow versions or publishing.'
  • FIELD_ARGUMENT_ADDED — Argument 'processId: Long!' added to field 'ProcessMutations.updateProcessDetails'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'ProcessMutations.updateProcessDetails'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String!' added to field 'ProcessMutations.updateProcessDetails'
  • FIELD_ADDED — Field 'deactivateMember' was added to object type 'UserMutations'
  • FIELD_ARGUMENT_ADDED — Argument 'webUserId: Long!' added to field 'UserMutations.deactivateMember'
  • FIELD_ARGUMENT_ADDED — Argument 'destination: TaskAssignmentInput' added to field 'UserMutations.deactivateMember'
  • FIELD_DESCRIPTION_CHANGED — Field 'UserMutations.setUserDisabled' description changed from 'Enable or disable a user (requires canManageUsers permission). Rejected for external members: the flag is global, so it would lock them out of their own organization — remove their access instead.' to 'Enable or disable membership in this organization (requires canManageUsers). Use deactivateMember to reassign unfinished tasks atomically. Enabling does not restore teams or tasks.'
  • FIELD_ADDED — Field 'planDeactivation' was added to object type 'UserQueries'
  • FIELD_ARGUMENT_ADDED — Argument 'webUserId: Long!' added to field 'UserQueries.planDeactivation'

2026-09-15​

0 breaking · 0 dangerous · 1 additive

Additive changes

  • FIELD_DESCRIPTION_CHANGED — Field 'IntegrationMutations.setIntegrationBarryEnabled' description changed from 'Set whether the Barry AI copilot may read through this integration with its read-only native tools in chat. On by default; a per-connection administrator opt-out (requires canManageIntegrations permission)' to 'Set whether the Barry AI copilot may use this integration from chat: its read-only native tools run directly, its mutating ones only behind an approval card the member answers. On by default; a per-connection administrator opt-out (requires canManageIntegrations permission)'

2026-09-15 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

2026-09-15​

0 breaking · 2 dangerous · 0 additive

note

Honeybase AI credits, exhaustion and guardrails (Phase 3 of the onboarding-credits plan). Two new notification kinds: AiCreditsExhausted (an agent run was paused because the workspace's credits are spent) and AiCreditsThreshold (80% / 100% of the grant used, sent to owners and admins). Both carry {"page":"ai-credits"} metadata. Additive in practice; flagged dangerous only because a client that switches exhaustively on NotificationKind has two new cases to handle.

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'AiCreditsExhausted' was added to enum 'NotificationKind'
  • ENUM_VALUE_ADDED — Enum value 'AiCreditsThreshold' was added to enum 'NotificationKind'

2026-09-14​

0 breaking · 0 dangerous · 3 additive

Additive changes

  • FIELD_ADDED — Field 'startTaskAgent' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.startTaskAgent' has description 'Start the agent already on a task now: a scheduled start happens immediately, a waiting agent is woken, and a stopped, handed-back, failed or finished one opens a fresh session on the same budget. Fails while the agent is working or waiting on a person.'
  • FIELD_ARGUMENT_ADDED — Argument 'taskId: Long!' added to field 'TaskMutations.startTaskAgent'

2026-09-14 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge of main (PR #366, Barry native tools phase 3) into PR #360 (the workflow-fixes batch). No schema change of its own: both sides' entries above were recorded on their branches; this entry pins the merged schema's hash.

2026-09-14​

0 breaking · 0 dangerous · 8 additive

Additive changes

  • FIELD_ARGUMENT_DESCRIPTION_CHANGED — Description for argument 'settings' on field 'AiChatMutations.createChat' changed from 'ChatSettings json (mode, maxToolCalls, integrationId, model)' to 'ChatSettings json (mode, maxToolCalls, integrationId, model, disabledIntegrationIds)'
  • FIELD_DESCRIPTION_CHANGED — Field 'AiChatMutations.updateChatSettings' description changed from 'Update a chat\'s settings (mode, tool-call limit, model)' to 'Update a chat\'s settings (mode, tool-call limit, model, connections Barry may not read in this chat)'
  • FIELD_ADDED — Field 'disabledIntegrationIds' was added to object type 'ChatSettings'
  • FIELD_ADDED — Field 'barryEnabled' was added to object type 'Integration'
  • FIELD_ADDED — Field 'setIntegrationBarryEnabled' was added to object type 'IntegrationMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'IntegrationMutations.setIntegrationBarryEnabled' has description 'Set whether the Barry AI copilot may read through this integration with its read-only native tools in chat. On by default; a per-connection administrator opt-out (requires canManageIntegrations permission)'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'IntegrationMutations.setIntegrationBarryEnabled'
  • FIELD_ARGUMENT_ADDED — Argument 'barryEnabled: Boolean!' added to field 'IntegrationMutations.setIntegrationBarryEnabled'

2026-09-14 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge of main (PR #354, run authorization) into PR #360 (the workflow-fixes batch). No schema change of its own: both sides' entries above were recorded on their branches; this entry pins the merged schema's hash.

2026-09-14​

0 breaking · 0 dangerous · 27 additive

Additive changes

  • TYPE_ADDED — Type 'RunAuthorizationPreview' was added
  • FIELD_ADDED — Field 'publicId' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'status' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'isExpired' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'isForCurrentUser' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'expiresAt' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'requestedAt' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'respondedAt' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'mcpClientId' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'processPublicId' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'processName' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'processPaused' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'triggerNodeName' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'releasedVersion' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'releaseChanged' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'payload' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'runWorkflowId' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'failureReason' was added to object type 'RunAuthorizationPreview'
  • FIELD_ADDED — Field 'confirmRunAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.confirmRunAuthorization' has description 'Confirm an MCP run authorization request and start the run under the caller\'s own session. Requires the session of the user who was asked; single-use (a second confirm is rejected as already answered), rejected once the 30-minute window has passed. Same permission (canBuildWorkflows), same Manual source and same run-history row as runProcess. Returns the updated preview with runWorkflowId set, or with status failed and a failureReason when the run could not start.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.confirmRunAuthorization'
  • FIELD_ADDED — Field 'declineRunAuthorization' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.declineRunAuthorization' has description 'Decline an MCP run authorization request. Requires the session of the user who was asked; nothing runs and the assistant polling get_run_authorization sees status declined.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessMutations.declineRunAuthorization'
  • FIELD_ADDED — Field 'runAuthorization' was added to object type 'ProcessQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessQueries.runAuthorization' has description 'Preview an MCP run authorization request by its public id (the /run-authorization/<id> link). Requires a session: the requesting user sees the process, trigger, released version and the payload the assistant proposed; another member of the same organization sees only its status (isForCurrentUser=false); another organization sees not-found.'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'ProcessQueries.runAuthorization'

2026-09-14 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge of main (PR #359, autonomous agents on tasks) into PR #360 (the workflow-fixes batch). No schema change of its own: both sides' entries above were recorded on their branches; this entry pins the merged schema's hash.

2026-09-13 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge of main into PR #360 (the workflow-fixes batch: task form presentations, task files, the Archive node). No schema change of its own: the two 2026-09-12 entries for task forms and task files above are that PR's, recorded on its branch, and the entries after them are main's; this entry pins the merged schema's hash.

2026-09-13 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.

note

Merge of PR #359 (Phase 4a + 4b) into main. No schema change of its own: the entries dated 2026-09-08, 2026-09-10 and 2026-09-12 above are that PR's, recorded on its branch; this entry pins the merged schema's hash.

2026-09-12​

0 breaking · 3 dangerous · 40 additive

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'AgentTaskCompleted' was added to enum 'NotificationKind'
  • ENUM_VALUE_ADDED — Enum value 'AgentTaskHandedBack' was added to enum 'NotificationKind'
  • ENUM_VALUE_ADDED — Enum value 'AgentTaskNeedsYou' was added to enum 'NotificationKind'

Additive changes

  • TYPE_ADDED — Type 'AgentRequestAnswer' was added
  • FIELD_ADDED — Field 'approved' was added to object type 'AgentRequestAnswer'
  • FIELD_ADDED — Field 'text' was added to object type 'AgentRequestAnswer'
  • FIELD_ADDED — Field 'editedArguments' was added to object type 'AgentRequestAnswer'
  • TYPE_ADDED — Type 'AgentRequestPayload' was added
  • FIELD_ADDED — Field 'toolName' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'toolArguments' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'reason' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'questions' was added to object type 'AgentRequestPayload'
  • FIELD_ADDED — Field 'context' was added to object type 'AgentRequestPayload'
  • TYPE_ADDED — Type 'AgentSessionRequest' was added
  • FIELD_ADDED — Field 'agentSessionRequestId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'agentSessionId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'organizationId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'taskId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'kind' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'status' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'targetWebUserId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'targetTeamId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'agentRunId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'toolCallId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'payload' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'answer' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'answeredByWebUserId' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'answeredAt' was added to object type 'AgentSessionRequest'
  • FIELD_ADDED — Field 'taskMode' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'approvedPlan' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'requests' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'answerAgentRequest' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.answerAgentRequest' has description 'Answer the agent\'s pending request on a task: approve, reject with a message, approve with edited arguments, or reply to its question. Answering wakes the agent. Only the request\'s target (or an agent administrator) may answer.'
  • FIELD_ARGUMENT_ADDED — Argument 'agentSessionRequestId: Long!' added to field 'TaskMutations.answerAgentRequest'
  • FIELD_ARGUMENT_ADDED — Argument 'approved: Boolean' added to field 'TaskMutations.answerAgentRequest'
  • FIELD_ARGUMENT_ADDED — Argument 'text: String' added to field 'TaskMutations.answerAgentRequest'
  • FIELD_ARGUMENT_ADDED — Argument 'editedArguments: String' added to field 'TaskMutations.answerAgentRequest'
  • FIELD_ADDED — Field 'decideAgentPlan' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.decideAgentPlan' has description 'Approve the plan a Plan-then-execute agent proposed, starting a fresh autonomous session that carries it out, or send the plan back with a message for the agent to re-plan.'
  • FIELD_ARGUMENT_ADDED — Argument 'taskId: Long!' added to field 'TaskMutations.decideAgentPlan'
  • FIELD_ARGUMENT_ADDED — Argument 'approved: Boolean!' added to field 'TaskMutations.decideAgentPlan'
  • FIELD_ARGUMENT_ADDED — Argument 'message: String' added to field 'TaskMutations.decideAgentPlan'

2026-09-12​

6 breaking · 2 dangerous · 10 additive

note

Agent budgets are now dollars, not tokens: Agent.monthlyBudgetUsd, AgentSettings.maxRunUsd, setOrgAgentBudget(monthlyBudgetUsd) and the AgentUsage budget fields replace their token-denominated predecessors. Stored budgets were converted at 25 USD per million tokens; a draft-settings payload that still carries maxRunTokens is accepted and converted at the same rate. AgentRun.costEstimated says whether a run's spend was estimated server-side (catalog price or flat rate) rather than reported by the proxy, and AiModelInfo now carries the catalog's per-token prices.

Breaking changes
  • FIELD_REMOVED — Field 'monthlyTokenBudget' was removed from object type 'Agent'
  • FIELD_ARGUMENT_REMOVED — Argument 'monthlyTokenBudget: Long' was removed from field 'AgentMutations.updateAgent'
  • FIELD_ARGUMENT_REMOVED — Argument 'monthlyTokenBudget: Long' was removed from field 'AgentMutations.setOrgAgentBudget'
  • FIELD_REMOVED — Field 'maxRunTokens' was removed from object type 'AgentSettings'
  • FIELD_REMOVED — Field 'orgMonthlyTokenBudget' was removed from object type 'AgentUsage'
  • FIELD_REMOVED — Field 'monthlyTokenBudget' was removed from object type 'AgentUsageAgent'
Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'monthlyBudgetUsd: Float' added to field 'AgentMutations.updateAgent'
  • FIELD_ARGUMENT_ADDED — Argument 'monthlyBudgetUsd: Float' added to field 'AgentMutations.setOrgAgentBudget'

Additive changes

  • FIELD_ADDED — Field 'monthlyBudgetUsd' was added to object type 'Agent'
  • FIELD_DESCRIPTION_CHANGED — Field 'AgentMutations.updateAgent' description changed from 'Update agent identity and monthly token budget' to 'Update agent identity and monthly budget (USD)'
  • FIELD_DESCRIPTION_CHANGED — Field 'AgentMutations.setOrgAgentBudget' description changed from 'Set the org-wide monthly token budget across all agents (None = unlimited)' to 'Set the org-wide monthly agent budget in USD across all agents (null = unlimited)'
  • FIELD_ADDED — Field 'costEstimated' was added to object type 'AgentRun'
  • FIELD_ADDED — Field 'maxRunUsd' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'orgMonthCost' was added to object type 'AgentUsage'
  • FIELD_ADDED — Field 'orgMonthlyBudgetUsd' was added to object type 'AgentUsage'
  • FIELD_ADDED — Field 'monthlyBudgetUsd' was added to object type 'AgentUsageAgent'
  • FIELD_ADDED — Field 'inputCostPerToken' was added to object type 'AiModelInfo'
  • FIELD_ADDED — Field 'outputCostPerToken' was added to object type 'AiModelInfo'

2026-09-12​

1 breaking · 0 dangerous · 0 additive

note

The "auto-runs between approvals" brake was retired: it tripped earlier than maxTurns (a turn holds several tool calls) and, in a run with no chat to ask in, could only fail the run. maxTurns and maxRunTokens remain. Settings JSON that still carries the key is accepted and the key ignored.

Breaking changes
  • FIELD_REMOVED — Field 'maxAutoRunsBetweenApprovals' was removed from object type 'AgentSettings'

2026-09-12​

0 breaking · 0 dangerous · 14 additive

note

Honeybase AI credits (Phase 2): the aiCredits query group exposes an organization's credits balance (balance, null when the feature is off or the organization never received a grant) and the deployment flag (enabled). Readable by any member. Credits, never dollars: centsPerCredit says what one credit is worth.

Additive changes

  • TYPE_ADDED — Type 'AiCreditsBalance' was added
  • FIELD_ADDED — Field 'granted' was added to object type 'AiCreditsBalance'
  • FIELD_ADDED — Field 'remaining' was added to object type 'AiCreditsBalance'
  • FIELD_ADDED — Field 'model' was added to object type 'AiCreditsBalance'
  • FIELD_ADDED — Field 'centsPerCredit' was added to object type 'AiCreditsBalance'
  • FIELD_ADDED — Field 'integrationPublicId' was added to object type 'AiCreditsBalance'
  • FIELD_ADDED — Field 'state' was added to object type 'AiCreditsBalance'
  • TYPE_ADDED — Type 'AiCreditsQueries' was added
  • FIELD_ADDED — Field 'balance' was added to object type 'AiCreditsQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiCreditsQueries.balance' has description 'The organization\'s Honeybase AI credits: granted, remaining (approximate - the gateway writes spend in batches), the model in use and the locked connection\'s public id. Null when the feature is off or the organization never received a grant.'
  • FIELD_ADDED — Field 'enabled' was added to object type 'AiCreditsQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AiCreditsQueries.enabled' has description 'Whether Honeybase AI credits are enabled on this deployment (the feature flag, not this organization\'s grant).'
  • FIELD_ADDED — Field 'aiCredits' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.aiCredits' has description 'Honeybase AI credits queries'

2026-09-12​

0 breaking · 1 dangerous · 14 additive

note

Files attached to tasks. WorkflowTask.files (a list of TaskFile references into the workflow-file ledger) is set by a Create/Update Task node's attachFiles; the input field exists only because the type doubles as the createTask input and is ignored there. workflowFileDownloadUrl(inline: true) asks for an inline Content-Disposition, honoured only for stored image/PDF types.

Dangerous changes
  • FIELD_ARGUMENT_ADDED — Argument 'inline: Boolean' added to field 'ProcessMutations.workflowFileDownloadUrl'

Additive changes

  • TYPE_ADDED — Type 'TaskFileInput' was added
  • INPUT_FIELD_ADDED — Input field 'id' of type 'String!' was added to input object type 'TaskFileInput'
  • INPUT_FIELD_ADDED — Input field 'name' of type 'String!' was added to input object type 'TaskFileInput'
  • INPUT_FIELD_ADDED — Input field 'contentType' of type 'String!' was added to input object type 'TaskFileInput'
  • INPUT_FIELD_ADDED — Input field 'sizeBytes' of type 'Long!' was added to input object type 'TaskFileInput'
  • INPUT_FIELD_ADDED — Input field 'source' of type 'String!' was added to input object type 'TaskFileInput'
  • TYPE_ADDED — Type 'TaskFile' was added
  • FIELD_ADDED — Field 'id' was added to object type 'TaskFile'
  • FIELD_ADDED — Field 'name' was added to object type 'TaskFile'
  • FIELD_ADDED — Field 'contentType' was added to object type 'TaskFile'
  • FIELD_ADDED — Field 'sizeBytes' was added to object type 'TaskFile'
  • FIELD_ADDED — Field 'source' was added to object type 'TaskFile'
  • INPUT_FIELD_ADDED — Input field 'files' of type '[TaskFileInput!]' was added to input object type 'WorkflowTaskInput'
  • FIELD_ADDED — Field 'files' was added to object type 'WorkflowTask'

2026-09-12​

1 breaking · 0 dangerous · 3 additive

note

Task form presentations. TaskForm.formId is now nullable because the built-in Approval / ApprovalWithNotes presentations freeze a template onto the task and have no library form; every form attached before this change still carries its id. TaskForm.presentation ("Full" | "Inline" | "Approval" | "ApprovalWithNotes") is new and defaults to Full when absent.

Breaking changes
  • FIELD_TYPE_CHANGED — Field 'TaskForm.formId' changed type from 'Long!' to 'Long'

Additive changes

  • INPUT_FIELD_ADDED — Input field 'presentation' of type 'String' was added to input object type 'TaskFormInput'
  • INPUT_FIELD_TYPE_CHANGED — Input field 'TaskFormInput.formId' changed type from 'Long!' to 'Long'
  • FIELD_ADDED — Field 'presentation' was added to object type 'TaskForm'

2026-09-10​

0 breaking · 0 dangerous · 7 additive

Additive changes

  • INPUT_FIELD_ADDED — Input field 'statuses' of type '[String!]' was added to input object type 'TaskViewFiltersInput'
  • INPUT_FIELD_ADDED — Input field 'agentFilter' of type 'String' was added to input object type 'TaskViewFiltersInput'
  • INPUT_FIELD_ADDED — Input field 'modes' of type '[String!]' was added to input object type 'TaskViewFiltersInput'
  • FIELD_ADDED — Field 'needsYouTasks' was added to object type 'MyWorkSummary'
  • FIELD_ADDED — Field 'statuses' was added to object type 'TaskViewFilters'
  • FIELD_ADDED — Field 'agentFilter' was added to object type 'TaskViewFilters'
  • FIELD_ADDED — Field 'modes' was added to object type 'TaskViewFilters'

2026-09-08​

1 breaking · 2 dangerous · 59 additive

Breaking changes
  • FIELD_TYPE_CHANGED — Field 'AgentRunTriggerRef.processId' changed type from 'Long!' to 'Long'
Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'AgentTaskFailed' was added to enum 'NotificationKind'
  • ENUM_VALUE_ADDED — Enum value 'AgentTaskReport' was added to enum 'NotificationKind'

Additive changes

  • TYPE_ADDED — Type 'AgentSessionEvent' was added
  • FIELD_ADDED — Field 'agentSessionEventId' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'agentSessionId' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'organizationId' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'seq' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'kind' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'summary' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'agentRunId' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'payload' was added to object type 'AgentSessionEvent'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AgentSessionEvent'
  • TYPE_ADDED — Type 'AgentTaskBudget' was added
  • FIELD_ADDED — Field 'deadlineAt' was added to object type 'AgentTaskBudget'
  • FIELD_ADDED — Field 'maxWakeups' was added to object type 'AgentTaskBudget'
  • FIELD_ADDED — Field 'maxTokens' was added to object type 'AgentTaskBudget'
  • FIELD_ADDED — Field 'maxEscalations' was added to object type 'AgentTaskBudget'
  • TYPE_ADDED — Type 'AgentTaskReport' was added
  • FIELD_ADDED — Field 'summary' was added to object type 'AgentTaskReport'
  • FIELD_ADDED — Field 'actions' was added to object type 'AgentTaskReport'
  • FIELD_ADDED — Field 'questions' was added to object type 'AgentTaskReport'
  • TYPE_ADDED — Type 'AgentTaskReportAction' was added
  • FIELD_ADDED — Field 'tool' was added to object type 'AgentTaskReportAction'
  • FIELD_ADDED — Field 'arguments' was added to object type 'AgentTaskReportAction'
  • FIELD_ADDED — Field 'why' was added to object type 'AgentTaskReportAction'
  • TYPE_ADDED — Type 'AgentTaskSessionView' was added
  • FIELD_ADDED — Field 'session' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'agentName' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'events' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'runs' was added to object type 'AgentTaskSessionView'
  • FIELD_ADDED — Field 'report' was added to object type 'AgentTaskSessionView'
  • INPUT_FIELD_ADDED — Input field 'agentId' of type 'Long' was added to input object type 'WorkflowTaskInput'
  • INPUT_FIELD_ADDED — Input field 'agentMode' of type 'String' was added to input object type 'WorkflowTaskInput'
  • INPUT_FIELD_ADDED — Input field 'agentState' of type 'String' was added to input object type 'WorkflowTaskInput'
  • INPUT_FIELD_ADDED — Input field 'agentSessionId' of type 'Long' was added to input object type 'WorkflowTaskInput'
  • INPUT_FIELD_ADDED — Input field 'agentKickoffAt' of type 'ZonedDateTime' was added to input object type 'WorkflowTaskInput'
  • FIELD_ADDED — Field 'taskId' was added to object type 'AgentRunTriggerRef'
  • FIELD_ADDED — Field 'agentSessionId' was added to object type 'AgentRunTriggerRef'
  • FIELD_ADDED — Field 'wakeup' was added to object type 'AgentRunTriggerRef'
  • FIELD_ADDED — Field 'taskState' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'budget' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'wakeups' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'tokensUsed' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'escalations' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'wakeAt' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'wakeReason' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'handedBackReason' was added to object type 'AgentSession'
  • FIELD_ADDED — Field 'taskModeCeiling' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'taskDefaults' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'fallbackAssignee' was added to object type 'AgentSettings'
  • FIELD_ADDED — Field 'stopTaskAgent' was added to object type 'TaskMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskMutations.stopTaskAgent' has description 'Take the agent off a task, closing its session. The task keeps its human owner and its history.'
  • FIELD_ARGUMENT_ADDED — Argument 'taskId: Long!' added to field 'TaskMutations.stopTaskAgent'
  • FIELD_ADDED — Field 'taskAgentSession' was added to object type 'TaskQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'TaskQueries.taskAgentSession' has description 'The agent session working this task, with its timeline and the runs behind it. Null when no agent has ever worked the task.'
  • FIELD_ARGUMENT_ADDED — Argument 'taskId: Long!' added to field 'TaskQueries.taskAgentSession'
  • FIELD_ADDED — Field 'agentId' was added to object type 'WorkflowTask'
  • FIELD_ADDED — Field 'agentMode' was added to object type 'WorkflowTask'
  • FIELD_ADDED — Field 'agentState' was added to object type 'WorkflowTask'
  • FIELD_ADDED — Field 'agentSessionId' was added to object type 'WorkflowTask'
  • FIELD_ADDED — Field 'agentKickoffAt' was added to object type 'WorkflowTask'

2026-09-08​

0 breaking · 0 dangerous · 1 additive

Additive changes

  • FIELD_ADDED — Field 'headerFormat' was added to object type 'WhatsappTemplateRef'

2026-09-08​

0 breaking · 0 dangerous · 4 additive

Additive changes

  • FIELD_ADDED — Field 'undoToolCall' was added to object type 'AiChatMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AiChatMutations.undoToolCall' has description 'Revert an approved copilot write while it is still safe to: the newest revertible write of an idle chat, untouched since, with at most one message after it. Returns whether the revert happened; either way the chat gains a ToolCallUndone event saying what did or did not change. This is never a tool the copilot can call.'
  • FIELD_ARGUMENT_ADDED — Argument 'chatId: Long!' added to field 'AiChatMutations.undoToolCall'
  • FIELD_ARGUMENT_ADDED — Argument 'toolCallId: String!' added to field 'AiChatMutations.undoToolCall'

2026-09-07​

0 breaking · 3 dangerous · 236 additive

note

This entry covers accumulated drift, not a single release: the SDL snapshot had not been regenerated since the baseline, so it lands the apps surface (listApps and the App* types) and MCP connections (listMcpConnections, McpConnection*) together. Nothing is breaking. The three changes classified dangerous are additive in practice — two new enum values (ChatSubjectKind.App, NotificationKind.McpToolDrift) and one new optional argument (sendChatMessage(appSnapshot:)); they are flagged only because a client that exhaustively switches on an enum has a new case to handle. From here on CI re-derives this file, so an entry can no longer accumulate like this one did.

Dangerous changes
  • ENUM_VALUE_ADDED — Enum value 'App' was added to enum 'ChatSubjectKind'
  • ENUM_VALUE_ADDED — Enum value 'McpToolDrift' was added to enum 'NotificationKind'
  • FIELD_ARGUMENT_ADDED — Argument 'appSnapshot: String' added to field 'AiChatMutations.sendChatMessage'

Additive changes

  • TYPE_ADDED — Type 'McpToolApprovalInput' was added
  • INPUT_FIELD_ADDED — Input field 'toolName' of type 'String!' was added to input object type 'McpToolApprovalInput'
  • INPUT_FIELD_ADDED — Input field 'access' of type 'String!' was added to input object type 'McpToolApprovalInput'
  • INPUT_FIELD_ADDED — Input field 'expectedPinHash' of type 'String!' was added to input object type 'McpToolApprovalInput'
  • INPUT_FIELD_DESCRIPTION_ADDED — Input field 'McpToolApprovalInput.expectedPinHash' has description 'sha256 of the definition the client rendered. A mismatch means the server changed the tool mid-review and the approval is rejected.'
  • TYPE_ADDED — Type 'AgentUsageApp' was added
  • FIELD_ADDED — Field 'appId' was added to object type 'AgentUsageApp'
  • FIELD_ADDED — Field 'name' was added to object type 'AgentUsageApp'
  • FIELD_ADDED — Field 'monthTokens' was added to object type 'AgentUsageApp'
  • FIELD_ADDED — Field 'monthCost' was added to object type 'AgentUsageApp'
  • FIELD_ADDED — Field 'monthRuns' was added to object type 'AgentUsageApp'
  • TYPE_ADDED — Type 'App' was added
  • FIELD_ADDED — Field 'appId' was added to object type 'App'
  • FIELD_ADDED — Field 'publicId' was added to object type 'App'
  • FIELD_ADDED — Field 'organizationId' was added to object type 'App'
  • FIELD_ADDED — Field 'name' was added to object type 'App'
  • FIELD_ADDED — Field 'description' was added to object type 'App'
  • FIELD_ADDED — Field 'releasedVersionId' was added to object type 'App'
  • FIELD_ADDED — Field 'paused' was added to object type 'App'
  • FIELD_ADDED — Field 'createdBy' was added to object type 'App'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'App'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'App'
  • TYPE_ADDED — Type 'AppAgent' was added
  • FIELD_ADDED — Field 'appId' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'agentId' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'agentPublicId' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'name' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'description' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'invocable' was added to object type 'AppAgent'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AppAgent'
  • TYPE_ADDED — Type 'AppBuild' was added
  • FIELD_ADDED — Field 'appBuildId' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'publicId' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'organizationId' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'appId' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'appVersionId' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'status' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'failureReason' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'sourceDigest' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'templateVersion' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'artifactBytes' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'log' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'durationMs' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'createdBy' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AppBuild'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AppBuild'
  • TYPE_ADDED — Type 'AppData' was added
  • FIELD_ADDED — Field 'app' was added to object type 'AppData'
  • FIELD_ADDED — Field 'draft' was added to object type 'AppData'
  • FIELD_ADDED — Field 'releasedVersion' was added to object type 'AppData'
  • FIELD_ADDED — Field 'hosts' was added to object type 'AppData'
  • FIELD_ADDED — Field 'files' was added to object type 'AppData'
  • FIELD_ADDED — Field 'agents' was added to object type 'AppData'
  • TYPE_ADDED — Type 'AppFile' was added
  • FIELD_ADDED — Field 'appFileId' was added to object type 'AppFile'
  • FIELD_ADDED — Field 'appVersionId' was added to object type 'AppFile'
  • FIELD_ADDED — Field 'path' was added to object type 'AppFile'
  • FIELD_ADDED — Field 'content' was added to object type 'AppFile'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AppFile'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AppFile'
  • TYPE_ADDED — Type 'AppFileSummary' was added
  • FIELD_ADDED — Field 'path' was added to object type 'AppFileSummary'
  • FIELD_ADDED — Field 'sizeBytes' was added to object type 'AppFileSummary'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AppFileSummary'
  • TYPE_ADDED — Type 'AppHost' was added
  • FIELD_ADDED — Field 'appId' was added to object type 'AppHost'
  • FIELD_ADDED — Field 'channel' was added to object type 'AppHost'
  • FIELD_ADDED — Field 'hostId' was added to object type 'AppHost'
  • TYPE_ADDED — Type 'AppMutations' was added
  • FIELD_ADDED — Field 'createApp' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.createApp' has description 'Create an app: two origins (draft and release), a draft version, and the starter scaffold'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'AppMutations.createApp'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String!' added to field 'AppMutations.createApp'
  • FIELD_ADDED — Field 'updateApp' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.updateApp' has description 'Rename an app or change its description'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.updateApp'
  • FIELD_ARGUMENT_ADDED — Argument 'name: String!' added to field 'AppMutations.updateApp'
  • FIELD_ARGUMENT_ADDED — Argument 'description: String!' added to field 'AppMutations.updateApp'
  • FIELD_ADDED — Field 'setAppPaused' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.setAppPaused' has description 'Pause an app: its release origin answers 503 while its draft stays editable'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.setAppPaused'
  • FIELD_ARGUMENT_ADDED — Argument 'paused: Boolean!' added to field 'AppMutations.setAppPaused'
  • FIELD_ADDED — Field 'deleteApp' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.deleteApp' has description 'Delete an app, its versions, files and origins'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.deleteApp'
  • FIELD_ARGUMENT_ADDED — Argument 'confirmReleased: Boolean!' added to field 'AppMutations.deleteApp'
  • FIELD_ADDED — Field 'writeAppFile' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.writeAppFile' has description 'Create or replace one file in the app\'s DRAFT. No mutation names a version: a released version is unreachable from every write path'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.writeAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'path: String!' added to field 'AppMutations.writeAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'content: String!' added to field 'AppMutations.writeAppFile'
  • FIELD_ADDED — Field 'deleteAppFile' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.deleteAppFile' has description 'Delete one file from the app\'s draft'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.deleteAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'path: String!' added to field 'AppMutations.deleteAppFile'
  • FIELD_ADDED — Field 'renameAppFile' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.renameAppFile' has description 'Move one file within the app\'s draft'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.renameAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'from: String!' added to field 'AppMutations.renameAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'to: String!' added to field 'AppMutations.renameAppFile'
  • FIELD_ADDED — Field 'releaseApp' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.releaseApp' has description 'Release the draft: stamp it, point the app at it, and clone a fresh draft. Refused unless the draft matches a build that succeeded'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.releaseApp'
  • FIELD_ADDED — Field 'startAppBuild' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.startAppBuild' has description 'Queue a build of the app\'s draft and return its row immediately. Watch it with subscriptions.apps.watchAppBuild'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.startAppBuild'
  • FIELD_ADDED — Field 'mintAppTicket' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.mintAppTicket' has description 'Mint a single-use, short-lived ticket that signs the caller in to one of their app\'s origins. The app never sees the Honeybase session'
  • FIELD_ARGUMENT_ADDED — Argument 'appHostId: String!' added to field 'AppMutations.mintAppTicket'
  • FIELD_ADDED — Field 'setAppAgents' was added to object type 'AppMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AppMutations.setAppAgents' has description 'Replace the agents this app may invoke. Requires canManageReleases, not just build access: every user of the app can then spend the organization\'s AI budget through them'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppMutations.setAppAgents'
  • FIELD_ARGUMENT_ADDED — Argument 'agentPublicIds: [String!]!' added to field 'AppMutations.setAppAgents'
  • TYPE_ADDED — Type 'AppQueries' was added
  • FIELD_ADDED — Field 'listApps' was added to object type 'AppQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AppQueries.listApps' has description 'List the organization\'s apps'
  • FIELD_ADDED — Field 'getApp' was added to object type 'AppQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AppQueries.getApp' has description 'One app with its draft, current release, both origins and the draft\'s file list (paths and sizes, not contents)'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppQueries.getApp'
  • FIELD_ADDED — Field 'readAppFile' was added to object type 'AppQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AppQueries.readAppFile' has description 'Read one file from the app\'s DRAFT. A released version\'s files are not addressable'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppQueries.readAppFile'
  • FIELD_ARGUMENT_ADDED — Argument 'path: String!' added to field 'AppQueries.readAppFile'
  • FIELD_ADDED — Field 'getAppBuild' was added to object type 'AppQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AppQueries.getAppBuild' has description 'One build of an app'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppQueries.getAppBuild'
  • FIELD_ADDED — Field 'listAppBuilds' was added to object type 'AppQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'AppQueries.listAppBuilds' has description 'Recent builds of an app, newest first'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppQueries.listAppBuilds'
  • TYPE_ADDED — Type 'AppSubscriptions' was added
  • FIELD_ADDED — Field 'watchAppBuild' was added to object type 'AppSubscriptions'
  • FIELD_DESCRIPTION_ADDED — Field 'AppSubscriptions.watchAppBuild' has description 'Stream a build\'s row until it reaches a terminal state (succeeded or failed)'
  • FIELD_ARGUMENT_ADDED — Argument 'publicId: String!' added to field 'AppSubscriptions.watchAppBuild'
  • TYPE_ADDED — Type 'AppVersion' was added
  • FIELD_ADDED — Field 'appVersionId' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'appId' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'majorVersion' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'minorVersion' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'templateVersion' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'contentDigest' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'activeBuildId' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'createdAt' was added to object type 'AppVersion'
  • FIELD_ADDED — Field 'updatedAt' was added to object type 'AppVersion'
  • TYPE_ADDED — Type 'McpConnectionDetail' was added
  • FIELD_ADDED — Field 'integrationId' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'publicId' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'name' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'enabled' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'serverUrl' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'authMode' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'oauthConnectedAt' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'oauthIssuer' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'sync' was added to object type 'McpConnectionDetail'
  • FIELD_ADDED — Field 'tools' was added to object type 'McpConnectionDetail'
  • TYPE_ADDED — Type 'McpConnectionMutations' was added
  • FIELD_ADDED — Field 'syncMcpConnection' was added to object type 'McpConnectionMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionMutations.syncMcpConnection' has description 'Contact the server now and reconcile the tool ledger (requires canManageIntegrations)'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionMutations.syncMcpConnection'
  • FIELD_ADDED — Field 'approveMcpTools' was added to object type 'McpConnectionMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionMutations.approveMcpTools' has description 'Approve tools at an access tier, pinning the reviewed definitions'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionMutations.approveMcpTools'
  • FIELD_ARGUMENT_ADDED — Argument 'approvals: [McpToolApprovalInput!]!' added to field 'McpConnectionMutations.approveMcpTools'
  • FIELD_ADDED — Field 'revokeMcpTools' was added to object type 'McpConnectionMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionMutations.revokeMcpTools' has description 'Revoke previously approved tools'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionMutations.revokeMcpTools'
  • FIELD_ARGUMENT_ADDED — Argument 'toolNames: [String!]!' added to field 'McpConnectionMutations.revokeMcpTools'
  • FIELD_ADDED — Field 'testMcpConnection' was added to object type 'McpConnectionMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionMutations.testMcpConnection' has description 'Handshake with an MCP server without saving: discovery IS the connection test'
  • FIELD_ARGUMENT_ADDED — Argument 'config: String!' added to field 'McpConnectionMutations.testMcpConnection'
  • FIELD_ARGUMENT_ADDED — Argument 'secret: String' added to field 'McpConnectionMutations.testMcpConnection'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long' added to field 'McpConnectionMutations.testMcpConnection'
  • TYPE_ADDED — Type 'McpConnectionQueries' was added
  • FIELD_ADDED — Field 'mcpConnection' was added to object type 'McpConnectionQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionQueries.mcpConnection' has description 'One MCP connection: its advertised tools with approval state, pins and last-sync status'
  • FIELD_ARGUMENT_ADDED — Argument 'integrationId: Long!' added to field 'McpConnectionQueries.mcpConnection'
  • FIELD_ADDED — Field 'listMcpConnections' was added to object type 'McpConnectionQueries'
  • FIELD_DESCRIPTION_ADDED — Field 'McpConnectionQueries.listMcpConnections' has description 'All MCP connections of the org with their tool ledgers (names, tiers, statuses — no schemas or pins), for the agent builder\'s attach surface'
  • TYPE_ADDED — Type 'McpConnectionSummary' was added
  • FIELD_ADDED — Field 'integrationId' was added to object type 'McpConnectionSummary'
  • FIELD_ADDED — Field 'publicId' was added to object type 'McpConnectionSummary'
  • FIELD_ADDED — Field 'name' was added to object type 'McpConnectionSummary'
  • FIELD_ADDED — Field 'enabled' was added to object type 'McpConnectionSummary'
  • FIELD_ADDED — Field 'syncStatus' was added to object type 'McpConnectionSummary'
  • FIELD_ADDED — Field 'tools' was added to object type 'McpConnectionSummary'
  • TYPE_ADDED — Type 'McpConnectionSyncState' was added
  • FIELD_ADDED — Field 'status' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'lastError' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'lastAttemptAt' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'lastSuccessAt' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'serverName' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'serverVersion' was added to object type 'McpConnectionSyncState'
  • FIELD_ADDED — Field 'protocolVersion' was added to object type 'McpConnectionSyncState'
  • TYPE_ADDED — Type 'McpConnectionTool' was added
  • FIELD_ADDED — Field 'toolName' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'title' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'description' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'inputSchema' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'status' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'access' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'liveHash' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'pinHash' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'pinnedDescription' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'pinnedInputSchema' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'approvedByName' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'approvedAt' was added to object type 'McpConnectionTool'
  • FIELD_ADDED — Field 'lastSeenAt' was added to object type 'McpConnectionTool'
  • TYPE_ADDED — Type 'McpToolListing' was added
  • FIELD_ADDED — Field 'toolName' was added to object type 'McpToolListing'
  • FIELD_ADDED — Field 'description' was added to object type 'McpToolListing'
  • FIELD_ADDED — Field 'access' was added to object type 'McpToolListing'
  • FIELD_ADDED — Field 'status' was added to object type 'McpToolListing'
  • TYPE_ADDED — Type 'McpToolRef' was added
  • FIELD_ADDED — Field 'integrationId' was added to object type 'McpToolRef'
  • FIELD_ADDED — Field 'toolName' was added to object type 'McpToolRef'
  • FIELD_ADDED — Field 'appInvocable' was added to object type 'Agent'
  • FIELD_ADDED — Field 'setAgentAppInvocable' was added to object type 'AgentMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'AgentMutations.setAgentAppInvocable' has description 'Allow apps that declare this agent to invoke it. Requires canManageAgents AND canManageReleases, and a released version: agent tools run with the agent\'s authority, so this hands that authority to every user of every app that declares it'
  • FIELD_ARGUMENT_ADDED — Argument 'agentId: Long!' added to field 'AgentMutations.setAgentAppInvocable'
  • FIELD_ARGUMENT_ADDED — Argument 'appInvocable: Boolean!' added to field 'AgentMutations.setAgentAppInvocable'
  • FIELD_ADDED — Field 'appId' was added to object type 'AgentRun'
  • FIELD_ADDED — Field 'mcp' was added to object type 'AgentToolRef'
  • FIELD_ADDED — Field 'perApp' was added to object type 'AgentUsage'
  • FIELD_ADDED — Field 'appId' was added to object type 'AgentUsageDay'
  • FIELD_ADDED — Field 'apps' was added to object type 'Mutations'
  • FIELD_DESCRIPTION_ADDED — Field 'Mutations.apps' has description 'AI App Builder mutations'
  • FIELD_ADDED — Field 'mcpConnections' was added to object type 'Mutations'
  • FIELD_ADDED — Field 'updateEndpointContract' was added to object type 'ProcessMutations'
  • FIELD_DESCRIPTION_ADDED — Field 'ProcessMutations.updateEndpointContract' has description 'Declare an endpoint\'s request/response contract, or clear it by passing null. Each half is an optional JSON Schema (the same subset Agent tools use). The request half is ENFORCED: a call whose body does not match is refused with 400 before the workflow runs. The response half is observed and counted, never enforced, so a schema edit cannot break live traffic. Endpoints only; unversioned, so re-releasing the workflow never changes it.'
  • FIELD_ARGUMENT_ADDED — Argument 'processId: Long!' added to field 'ProcessMutations.updateEndpointContract'
  • FIELD_ARGUMENT_ADDED — Argument 'contract: String' added to field 'ProcessMutations.updateEndpointContract'
  • FIELD_ADDED — Field 'apps' was added to object type 'Queries'
  • FIELD_DESCRIPTION_ADDED — Field 'Queries.apps' has description 'AI App Builder queries'
  • FIELD_ADDED — Field 'mcpConnections' was added to object type 'Queries'
  • FIELD_ADDED — Field 'apps' was added to object type 'Subscriptions'
  • FIELD_DESCRIPTION_ADDED — Field 'Subscriptions.apps' has description 'AI App Builder subscriptions'
  • FIELD_ADDED — Field 'endpointContract' was added to object type 'WorkflowProcess'

2026-09-05 — baseline​

Baseline snapshot. The schema was recorded here with no earlier version to compare against; later entries diff forward from this point.