-
Notifications
You must be signed in to change notification settings - Fork 3.3k
v0.5.81: traces fix, additional confluence tools, azure anthropic support, opus 4.6 #3146
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
waleedlatif1
commented
Feb 5, 2026
- fix(tracespans): update tracespans tool calls to accurately display inputs for successive identical tool calls (fix(tracespans): update tracespans tool calls to accurately display inputs for successive identical tool calls #3140)
- feat(confluence): added more confluence endpoints (feat(confluence): added more confluence endpoints #3139)
- fix(inputs): canonical params + manual validations + params resolution cleanups (fix(inputs): canonical params + manual validations + params resolution cleanups #3141)
- fix(client-exec): send correct client workflow state override (fix(client-exec): send correct client workflow state override #3143)
- feat(azure): added azure anthropic, added backwards compat support for chat completions API, added opus 4.6 (feat(azure): added azure anthropic, added backwards compat support for chat completions API, added opus 4.6 #3145)
…nputs for successive identical tool calls (#3140)
* feat(confluence): added more confluence endpoints * update license * updated * updated docs
…n cleanups (#3141) * fix(onedrive): canonical param required validation * fix onedrive * cleanup canonical tool param resolution code * fix type * fix jira type checks * remove manual validations
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…r chat completions API, added opus 4.6 (#3145) * feat(azure): added azure anthropic, added backwards compat support for chat completions API, added opus 4.6 * added max thinking level * update tests * ack comments * update cql validation
|
@greptile |
|
@cursor review |
Greptile OverviewGreptile SummaryThis release bundles multiple feature additions and important bug fixes across the platform. Major Features:
Critical Bug Fixes:
Refactoring:
Confidence Score: 5/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Client
participant Executor
participant Provider
participant AnthropicCore
participant AzureAI
participant TraceSpans
Note over Client,TraceSpans: Azure Anthropic Integration Flow
Client->>Executor: Execute workflow with azure-anthropic model
Executor->>Provider: Route to azure-anthropic provider
Provider->>Provider: Strip azure-anthropic/ prefix
Provider->>Provider: Construct Azure endpoint URL
Provider->>AnthropicCore: executeAnthropicProviderRequest()
AnthropicCore->>AnthropicCore: Check for Opus 4.6 adaptive thinking
AnthropicCore->>AzureAI: Create Anthropic client with custom baseURL
AzureAI-->>AnthropicCore: Client with api-key header
AnthropicCore->>AzureAI: Send request with thinking config
AzureAI-->>AnthropicCore: Response with tool calls
Note over AnthropicCore: Tool Call Loop
loop For each tool iteration
AnthropicCore->>AnthropicCore: Track tool call timing
AnthropicCore->>Executor: Execute tool
Executor-->>AnthropicCore: Tool result
end
AnthropicCore-->>Provider: Complete response with timeSegments
Provider-->>Executor: Response with timing data
Note over Executor,TraceSpans: Trace Span Generation
Executor->>TraceSpans: buildTraceSpans(executionResult)
TraceSpans->>TraceSpans: Group tool calls by name
TraceSpans->>TraceSpans: Match segments to calls by index
TraceSpans-->>Executor: Trace spans with correct tool inputs
Note over Client,Executor: Workflow State Override Fix
Client->>Client: Prepare execution state
Client->>Client: Ensure complete state (blocks, edges, loops, parallels)
Client->>Executor: Send with workflowStateOverride
Executor->>Executor: Use client state for execution
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
8 files reviewed, no comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 3 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| const body = await request.json() | ||
|
|
||
| // Check if this is a create or get request | ||
| if (body.title && body.content && body.spaceId) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ambiguous request handling may create unintended blog posts
Medium Severity
The POST endpoint uses body.title && body.content && body.spaceId to decide between creating a blog post versus retrieving one by blogPostId. If a request contains both a blogPostId AND the creation fields (title, content, spaceId), the create path takes precedence and the blogPostId is silently ignored. This could cause users to accidentally create duplicate blog posts when intending to retrieve or reference an existing one.
|
|
||
| const searchParams = new URLSearchParams({ | ||
| cql: `text ~ "${query}"`, | ||
| cql: `text ~ "${escapeCqlValue(query)}"`, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing string type check causes crash on non-string input
Medium Severity
The new escapeCqlValue function calls .replace() on its input, which requires a string. However, query is only validated for truthiness (if (!query)), not type. If a client sends query: 123 (number) or query: {} (object), the code throws a TypeError since these types don't have a .replace() method. Previously, query was interpolated directly into a template literal which auto-converts to string. The same issue affects query and contentType in the search-in-space route.
Additional Locations (1)
| pageId, | ||
| nextCursor: data._links?.next | ||
| ? new URL(data._links.next, 'https://placeholder').searchParams.get('cursor') | ||
| : null, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicated cursor extraction logic across Confluence routes
Medium Severity
The cursor extraction pattern new URL(data._links.next, 'https://placeholder').searchParams.get('cursor') is duplicated across 10+ Confluence route files. Extract this to a utility function like extractNextCursor(data) in the existing @/tools/confluence/utils.ts file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
| return NextResponse.json({ error: cloudIdValidation.error }, { status: 400 }) | ||
| } | ||
|
|
||
| const escapeCqlValue = (value: string) => value.replace(/\\/g, '\\\\').replace(/"/g, '\\"') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicated escapeCqlValue function across search routes
Medium Severity
The escapeCqlValue function is defined identically in both search/route.ts (line 45) and search-in-space/route.ts (line 56). This utility function should be extracted to @/tools/confluence/utils.ts where other shared Confluence utilities already exist.

