Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/orca-903-drop-issuccess-from-schema.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
"@team-plain/graphql": minor

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Breaking field drop marked minor

Medium Severity

isSuccess is removed from the public ThreadDiscussionToolCallEntryPayload type while the changeset is minor. Callers that name that property fail with TS2339, and a ^3.0.0 range would take the change without an explicit major bump.

Additional Locations (1)
Fix in Cursor Fix in Web

Triggered by learned rule: Generated docs drop deprecated fields

Reviewed by Cursor Bugbot for commit a8271ce. Configure here.

---

Regenerate against the current API schema. The API removed the deprecated `isSuccess` field from `ThreadDiscussionToolCallEntryPayload`, so it is gone from the bundled schema and from the exported type of the same name.

**Nothing a caller reads off a response changes, and this is not a second break.** 3.0.0 already stopped selecting `isSuccess`, which removed it from the generated result types and shipped as a major. What is left to remove here is the last two traces: the bundled schema copy and the field on the exported `ThreadDiscussionToolCallEntryPayload` type. No document selected it, so no result type changes.

That exported type is still public API, so code naming `ThreadDiscussionToolCallEntryPayload['isSuccess']` stops compiling with TS2339. Read `status` instead, a `DiscussionToolCallStatus` of `PENDING`, `SUCCESS` or `ERROR`. Do not translate the old boolean as `status === 'SUCCESS'` and stop: `false` covered a call that was still running as well as one that failed, so code treating every `false` as a failure was already mislabelling pending calls.
6 changes: 0 additions & 6 deletions packages/graphql/src/_generated_documents.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14602,12 +14602,6 @@ export type ThreadDiscussionToolCallEntryPayload = {
description: Scalars['String']['output'];
durationMs: Scalars['Int']['output'];
error?: Maybe<Scalars['String']['output']>;
/**
* True only when the call succeeded. A call still PENDING also reads false, so this
* boolean can no longer tell "not finished" from "failed". Use status for that.
* @deprecated Use status, which separates PENDING from ERROR.
*/
isSuccess: Scalars['Boolean']['output'];
op?: Maybe<Scalars['String']['output']>;
/** Null on a call an agent reported: Plain has no name for it. */
service?: Maybe<Scalars['String']['output']>;
Expand Down
6 changes: 0 additions & 6 deletions packages/graphql/src/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -1111,12 +1111,6 @@ type ThreadDiscussionToolCallEntryPayload {

"""Where the call is in its lifecycle."""
status: DiscussionToolCallStatus!

"""
True only when the call succeeded. A call still PENDING also reads false, so this
boolean can no longer tell "not finished" from "failed". Use status for that.
"""
isSuccess: Boolean! @deprecated(reason: "Use status, which separates PENDING from ERROR.")
error: String
durationMs: Int!
}
Expand Down