Skip to content

v0.9.5: sonnet 5-5, oauth docs, otter integration, library - #8386

Merged
waleedlatif1 merged 21 commits into
mainfrom
staging
Sep 28, 2026
Merged

waleedlatif1 merged 21 commits into
mainfrom
staging

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

icecrasher321 and others added 13 commits September 28, 2026 09:25
* feat(library): How do you build an AI Slackbot without code?

* Pi Babysit: address PR #8371 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…tform Comparison (#8372)

* feat(library): AI Agent Workflow Builders for Multi-Step Tasks: 6-Platform Comparison

* Pi Babysit: address PR #8372 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
)

* docs(library): update ai-agent-orchestration-frameworks-explained

* Pi Babysit: address PR #8373 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
* docs(library): update best-ai-agents-for-slack

* Pi Babysit: address PR #8375 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
* docs(library): update ai-agents-for-marketing-automation

* Pi Babysit: address PR #8374 feedback

* Pi Babysit: address PR #8374 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…ame-value unique writes (#8335)

* improvement(tables): bump a table's rows version once at commit

* fix(tables): serialize concurrent writes of the same unique value with per-value advisory locks

* fix(tables): take the batched advisory locks on a transaction

* fix(tables): cap value locks at the per-connection lock budget and lock unique columns on every import batch

Lower the per-transaction value-lock cap to 64 so concurrent writers cannot
exhaust the shared lock table; larger writes keep the exclusive column-lock
fallback. Import batches now take the unique-column locks and run their unique
check inside their transaction, batchUpdateRows rejects two updates writing the
same unique value and locks and checks only the unique columns each update
changes, and the 0390 comment describes the mechanism only.

* chore(tables): share one unique-value key between the check and the locks

* fix(tables): lock a table's unique values under one table key so wide schemas stay within the lock budget

* fix(tables): key unique JSON values by canonical form so key order never hides a batch duplicate
* docs(library): update best-no-code-ai-agent-builders-2026

* Pi Babysit: address PR #8377 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
* feat(search): read Drive documents and Gmail conversations

* fix(search): bound document conversion and preserve complete reads
* feat(emails): introduce Desktop, CLI, and MCP newsletter

* fix(emails): keep MCP setup reachable for returning readers
…e connector (#8381)

* feat(otter): add Otter.ai integration with triggers and knowledge base connector

- Tools for all 8 Otter Public API endpoints: list/get conversations (with action items, insights, outline, transcript), conversation audio link, recording import, channels, channel members, workspace, and Super Admin workspace conversations
- Otter.ai block with operation-scoped fields, canvas sentences, and BlockMeta templates/skills
- Workspace webhook triggers for conversation completed, conversation shared, and all events, with event matching and retry deduplication
- Knowledge base connector syncing conversation notes and transcripts with metadata-based change detection, cap handling, and bounded reads
- Docs generator reads Otter tool outputs from evaluated metadata (shared output schemas)

* fix(otter): harden connector listing and change detection, webhook dedup, and review findings

- Connector rejects a list page containing a conversation without an ID instead of dropping it, so reconciliation can never delete the conversation it stands for
- Recent conversations (last 14 days) are re-read daily through a versioned listing hash plus a text digest; matchContentHash treats an identical re-read as equivalent, so only changed transcripts, action items, insights, or outlines are re-indexed
- conversation_shared deliveries key idempotency on the delivery's retrieved_at, so a later re-share to the same source runs; completed retries still collapse
- Typed triggers reject deliveries without an event name
- Paginated tools and the connector share a strict has_more reader; Get Workspace returns workspaceId so it chains into List Workspace Conversations; the transcript-omitted notice never pushes content past the text limit
- Regression tests for connector listing and change detection and for the webhook wire contract, each shown red on its reverted guard
- Update the sim-search cancellation test fixture to a metadata-only Drive file; since #8352 PDFs are downloaded before the discussion read the test cancels in

* fix(otter): omit include_shared when a channel ID scopes the listing
* feat(docs): OAuth scopes section on each integration page

* fix(docs): correct Cal.com legacy OAuth client requirement
…ni (#8383)

* fix(providers): retry transient failures on OpenAI Responses and Gemini

* fix(providers): read 429 bodies without a tee, honor Gemini RetryInfo, resolve shadowed payloads

* improvement(providers): surface long server delays, narrow transport retries, pin SDK retry budgets

* fix(providers): classify transport failures by socket error code, not message

* fix(providers): cancel a discarded retry body instead of draining it

* fix(providers): bound how long a 429 body may take to classify

* fix(providers): limit transport retries to network socket codes
…8385)

* feat(providers): add Claude Sonnet 5.5 and make it the default model

* test(providers): cover between_tools across Anthropic tool-loop turns

* test(providers): assert between_tools on recorded request bodies
@vercel

vercel Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
docs Ready Ready Preview Sep 28, 2026 11:01pm UTC

Request Review

…b reveal (#8337)

* fix(desktop): keep built-in browser logins across app restarts

* test(desktop): cover session-cookie persistence with a relaunch e2e

* improvement(tab-strip): reveal the active tab in a fixed 200ms

* fix(tab-strip): stop an in-flight reveal on every retarget and on pointer scrolling

* fix(tab-strip): yield the reveal only to scrolling it did not cause

@cubic-dev-ai cubic-dev-ai Bot 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.

Review completed against the latest diff

Note: This PR contains a large number of files. cubic selects up to 200 of the highest-priority eligible files for this review, so some files may not have been reviewed.

Fix all with cubic | Re-trigger cubic

Comment thread apps/sim/emails/broadcasts/desktop-cli-search/visuals.tsx
Comment thread apps/sim/lib/oauth/utils.ts
Comment thread apps/sim/lib/table/rows/service.ts
@greptile-apps

greptile-apps Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 3/5

[Medium risk] Documentation updates, model version bump, and new integration docs.

The PR is not ready to merge until unique-column creation is serialized with row writes and Gmail reads retain their anchor when a sibling disappears.

Findings

  1. P1 Unique constraint creation can race ▶
  2. P1 Missing sibling aborts message read ▶

Summary

This release adds Otter tools, triggers, and knowledge-base syncing; expands Google document and Gmail reads; changes table-write concurrency and versioning; and updates provider retries, model defaults, and documentation.

  • The unique-write locking does not cover an existing column becoming unique.
  • A disappearing Gmail sibling can prevent retrieval of the requested message.

Reviews (1) · Last reviewed commit: "feat(providers): add Claude Sonnet 5.5 a..."

Comment thread apps/sim/lib/table/rows/unique-locks.ts
Comment thread apps/sim/lib/sim-search/live/google.ts Outdated
* fix(sim-setup): report Compose db/redis state in status

* fix(sim-setup): report failed Compose probes as unknown and test status rows
* fix(search): preserve Gmail reads when replies disappear

* fix(search): handle replies missing during Gmail verification
…8389)

* fix(chats): align organization shift-click selection with workspaces

* fix(chats): preserve selection for modified and overlay clicks

* fix(chats): reconcile partial deletes and collapsed selection
…-rag-platform (#8376)

* docs(library): update sim-vs-dify-open-source-ai-workspace-vs-llm-app-rag-platform

* docs(library): restore dropped FAQs, scope Sim license to core, cite focused Dify docs

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
Co-authored-by: Waleed Latif <walif6@gmail.com>
* feat(search): add HubSpot CRM member search

* fix(search): bind HubSpot continuation and isolate setup
…els (#8391)

* feat(providers): add Kie provider for Claude, GPT, Grok, and Kimi models

* improvement(providers): use the official Kie logo and list Kie as a streaming tool-call provider

* fix(providers): keep Kie retry headers on rewritten errors and cover the request contract

* fix(providers): parse untyped Kie JSON responses and match content types case-insensitively
@waleedlatif1
waleedlatif1 merged commit ae75043 into main Sep 28, 2026
66 of 67 checks passed

This branch was successfully deployed

1 active deployment
Preview — 07f3297b Deployed Sep 28, 2026 by vercel[bot]
Sign up for free to 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.

4 participants