Skip to content

v0.5.81: traces fix, additional confluence tools, azure anthropic support, opus 4.6 - #3146

Merged
waleedlatif1 merged 5 commits into
mainfrom
staging
Feb 5, 2026
Merged

v0.5.81: traces fix, additional confluence tools, azure anthropic support, opus 4.6#3146
waleedlatif1 merged 5 commits into
mainfrom
staging

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

waleedlatif1and others added 4 commits February 4, 2026 19:32
* 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
@vercel

vercelBot commented Feb 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
docsSkippedSkippedFeb 5, 2026 6:52pm

Request Review

Comment threadapps/sim/app/api/tools/confluence/blogposts/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/page-ancestors/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/page-children/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/page-properties/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/page-versions/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/search-in-space/route.ts Fixed
Comment threadapps/sim/app/api/tools/confluence/search-in-space/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/search/route.ts Fixed
Comment threadapps/sim/app/api/tools/confluence/space-blogposts/route.ts Dismissed
Comment threadapps/sim/app/api/tools/confluence/space-pages/route.ts Dismissed
…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
@waleedlatif1
waleedlatif1 marked this pull request as ready for review February 5, 2026 18:56
@waleedlatif1

Copy link
Copy Markdown
CollaboratorAuthor

@greptile

@waleedlatif1

Copy link
Copy Markdown
CollaboratorAuthor

@cursor review

@greptile-apps

Copy link
Copy Markdown
Contributor

Greptile Overview

Greptile Summary

This release bundles multiple feature additions and important bug fixes across the platform.

Major Features:

  • Added Azure Anthropic provider support for accessing Claude models via Azure AI Foundry, with proper endpoint configuration and authentication
  • Added support for Claude Opus 4.6 with adaptive thinking capability (effort-based instead of token-budget-based)
  • Expanded Confluence integration with 15+ new tools including blog posts, comments, attachments, labels, page properties, and advanced search

Critical Bug Fixes:

  • Fixed trace spans tool call matching for successive identical tool calls - previously only the first tool call's inputs were displayed for repeated tools
  • Fixed input validation to properly check canonical parameter IDs when params have been deduplicated
  • Fixed client workflow execution to always send complete workflow state (blocks, edges, loops, parallels) to the executor

Refactoring:

  • Extracted shared Anthropic provider logic into anthropic/core.ts for reuse between standard and Azure providers
  • Moved branding/whitelabeling logic from lib/branding to ee/whitelabeling for better enterprise feature separation
  • Created shared branding types in lib/branding/types.ts for cross-module compatibility

Confidence Score: 5/5

  • This PR is safe to merge with no critical issues found
  • All changes are well-structured bug fixes and feature additions with proper error handling, type safety, and backwards compatibility maintained throughout
  • No files require special attention

Important Files Changed

FilenameOverview
apps/sim/lib/logs/execution/trace-spans/trace-spans.tsFixed tool call matching for successive identical tool calls using index tracking
apps/sim/providers/azure-anthropic/index.tsAdded new Azure Anthropic provider with proper endpoint configuration
apps/sim/providers/anthropic/core.tsExtracted shared Anthropic provider logic, added Opus 4.6 adaptive thinking support
apps/sim/providers/models.tsAdded claude-opus-4-6 and azure-anthropic models with pricing and capabilities
apps/sim/serializer/index.tsFixed validation to check canonical param IDs for missing field detection
apps/sim/app/workspace/[workspaceId]/w/[workflowId]/hooks/use-workflow-execution.tsFixed workflow state override to always send complete state to executor
apps/sim/ee/whitelabeling/branding.tsMoved branding logic to EE module for better separation of concerns
apps/sim/tools/confluence/index.tsAdded 15+ new Confluence tools including blog posts, comments, attachments, labels

Sequence Diagram

sequenceDiagram
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
Loading

@greptile-appsgreptile-appsBot left a comment

Copy link
Copy Markdown
Contributor

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

Edit Code Review Agent Settings | Greptile

@cursorcursorBot left a comment

Copy link
Copy Markdown

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) {

Copy link
Copy Markdown

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.

Fix in CursorFix in Web


const searchParams = new URLSearchParams({
cql: `text ~ "${query}"`,
cql: `text ~ "${escapeCqlValue(query)}"`,

Copy link
Copy Markdown

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)

Fix in CursorFix in Web

pageId,
nextCursor: data._links?.next
? new URL(data._links.next, 'https://placeholder').searchParams.get('cursor')
: null,

Copy link
Copy Markdown

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.

Fix in CursorFix in Web

@cursorcursorBot left a comment

Copy link
Copy Markdown

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, '\\"')

Copy link
Copy Markdown

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.

Fix in CursorFix in Web

@waleedlatif1
waleedlatif1 merged commit 1a66d48 into mainFeb 5, 2026
27 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@waleedlatif1@github-advanced-security@icecrasher321