Skip to content

v0.9.45: AWS Marketplace contracts, multiple accounts per integration, Thinking Machines provider, Gauge Chat, Jama and Flow search, request ids in log metadata - #9744

Merged
waleedlatif1 merged 46 commits into
mainfrom
release/v0.9.45
Nov 6, 2026

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Nov 6, 2026 •

Copy link
Copy Markdown
Collaborator

waleedlatif1 and others added 30 commits November 5, 2026 02:33
Route contact and company enrichments through Firecrawl Alexandria and retain ZeroBounce for email verification. Preserve existing inputs and output columns, report provider errors and actual usage, and remove obsolete provider cascades and adapters.

Preserve single-part-name lookups, declare operation-specific required fields, and keep numeric enrichment status separate from string job status. Validate with eight live provider checks, regression tests, the full workspace suite, and repository audits.
Bound and coalesce account-specific fal pricing lookups, honor Retry-After cooldowns, and validate exact receipt identity.

Preserve exact receipts through cancellation, terminal errors, and stalled retrieval while distinguishing explicit generation failures from transport failures. Keep error output bounded and redacted, and support generated images up to the existing buffered-transfer limit.

Validated with focused regressions, the full repository suite, type checks, lint, audits, and CI.
* docs(library): update what-is-human-in-the-loop-in-ai-agents

* Pi Babysit: address PR #9709 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
Co-authored-by: Sim Pi Agent <pi@sim.ai>
…n AI Agent in Sim? (#9713)

* feat(library): How Do You Connect Salesforce’s Hosted MCP Server to an AI Agent in Sim?

* Pi Babysit: address PR #9713 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…026 (#9711)

* docs(library): update best-ai-agents-for-data-extraction-and-rag-in-2026

* Pi Babysit: address PR #9711 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…Ops (#9714)

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…em (#9708)

Move the organization view onto the Platform design system: sidebar, Home with Email, Calendar and activity widgets, Integrations, Sim Links, and Search as its own destination, with server prefetch for the first read.

Members now land on Home with the Assistant composer. Styles stay scoped under data-platform-ui and check:platform-css enforces the boundary.
…haining in 2026 (#9712)

* feat(library): Best LLM Orchestration Tools for Multi-Provider Call Chaining in 2026

* Pi Babysit: address PR #9712 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…ttings (#9717)

* fix(desktop): route organization members to their organization and settings

* fix(desktop): forward blocked members through the workspaces API

* fix(desktop): pass route context in the workspaces forwarding test
* feat(library): The 7 Best Free AI Agent Builders in 2026

* feat(library): describe the self-hosting memory figure as a suggestion
…nes and agents (#9718)

* improvement(geo): clarify self-hosting and compliance for answer engines and agents

* improvement(geo): check the credit note and the Ollama status command
)

* improvement(org): move the People page onto the new design system

* fix(people): settle header actions, narrow refusals, refresh people on disconnect

* fix(people): keep the publish refresh on cold status reads and fail the SCIM status read from load
…to review (#9721)

* fix(assistant-actions): read a run that closes mid-review as nothing to review

* fix(assistant-actions): return a fresh empty review result
* feat(search): connect multiple accounts per integration

Key managed OAuth credentials on the provider's subject and tenant instead of
one row per enrollment and option, so a member can connect several accounts of
any OAuth integration. Reconnect stays pinned to its account, disconnecting
frees the slot, and invitation links only refresh the existing account.

* feat(search): identify managed MCP accounts to allow several per connector

Read the signed-in account through each connector's documented identity tool
during OAuth completion and key connections on it, sharing one set of account
rules with OAuth providers. Notion, Granola, Fireflies, Coda, and HubSpot now
allow several accounts; connectors with no identity tool stay at one.

* fix(search): harden multiple accounts per integration

Enforce the account limit when reconnecting a disconnected account, keep GitHub
setup working when one linked account fails, and surface reconnect prompts over
disconnected accounts. Identify existing managed MCP connections from their
stored tokens so adding an account does not first require reconnecting.

* improvement(search): polish several-account UI and refresh Search on connect

Show accounts as accounts, surface Reconnect beside an account that needs it,
keep each disconnect clear about which account it removes, and hide Add account
in a single account's view. Connecting from any surface now refreshes what Search
can reach. Add browser coverage for several accounts and tighten the tests.

* fix(search): name per-account Reconnect buttons for assistive tech

The design system Button dropped aria-label, so several Reconnect buttons on one
page read the same. Restore the browser check for an app with connections
unavailable and shrink the test-types baseline after removing a duplicate test.

* fix(search): make the MCP identity migration replayable and close review gaps

Replace the managed MCP check in one atomic statement so an interrupted migration
can retry. Refuse to adopt an identity another connection holds, write the Search
receipt only for flows that read it, keep expired accounts labeled as such, and
refresh Search's account list on disconnect.

* fix(search): only read an MCP account email from text when it is labeled

An address in a non-JSON identity response now needs a label naming it as the
signed-in account, so an unrelated address is never stored as the identity, and
markdown, punctuation, and punycode domains no longer distort it.

* fix(search): keep existing connections unchanged and collapse to one migration

Combine the account migrations into one. Reuse a disconnected connection's id, let
a lone account reconnect when its identity tool fails, keep Find on the first
connected account, and refresh an expired account added again. Group People list
MCP summaries, tell same-email accounts apart, and version MCP attempts so an old
instance can't overwrite tokens during a deploy.

* fix(search): add the count to the People MCP summary type

* fix(search): keep a leading underscore in a labeled MCP account email
…ote per-request success chatter to debug (#9722)

Admission gate warnings now share the blocked-run throttle with their error row, so a sender redelivering into a refusal logs once per window instead of on every attempt. The webhook processor no longer repeats the refusal preprocessing already logged.

Per-request success-path lines (preprocessing steps, valid-token checks, billing intermediate steps, Slack trigger-filter skips, table upserts, trigger and execution-state selection, storage uploads) move to debug. The billing top-up line keeps the payer and model. PostHog upstream connection failures log at warn, and the idempotency failure warning uses a static message with fields.
…ta and enforce it (#9724)

* improvement(logs): move correlation ids from message tags into metadata and enforce it

Log messages no longer open with an interpolated [${id}] tag or interpolate a request id. The id moves into the line's metadata, so messages group in queries and lines filter by field. Inside withRouteHandler a generateRequestId() id is already stamped on every line by the request context, so those tags are dropped without a field.

Routes, table runners, the Sim event emitter and the poll orchestrator that minted their own correlation ids now use generateRequestId(), so their lines carry the request's id. Each webhook poll logs through a logger bound to its webhook id, so concurrent polls in one tick stay distinguishable.

check:source-conventions gains log-message-tag: it covers every app and package that imports @sim/logger, follows a message through concatenation, ternaries, local consts and helpers handed the caller's logger, and starts at zero.

* fix(logger): let the request context own requestId and keep absent fields from erasing it

An explicit requestId on a line, or one bound with withMetadata, replaced the request context's id in the JSON line, and an undefined one deleted it, so a line could stop correlating with its request. Inside a request context the context's id is now authoritative, matching the OpenTelemetry export; a requestId passed with a line names the request only outside one. Undefined fields no longer erase fields the line already carries.

v2 chat logs its mothership request id as simRequestId. Request ids that defaulted to 'unknown' default to generateRequestId().

log-message-tag now sees optional calls, computed levels, withMetadata-derived loggers and log-named receivers, follows let prefixes, resolves names per function, and only treats an interpolated requestId or reqId, and log* helpers or .call(logger), as message sources.

* fix(logs): keep a unique request id per webhook poll and per emitted event

Executions started by one poll tick, or by one parent request, would otherwise share a request id, and tool code that keys idempotency on it (deployments) could replay one execution's result in another. The logger now owns requestId on the line, so these ids no longer need to match the request to correlate.

* fix(logs): export call fields to OpenTelemetry and tell concurrent polls apart

Scalar fields passed with a log line now become OpenTelemetry attributes, matching their top-level keys in the JSON line, so ids moved out of message text stay filterable in both sinks. Nested values stay in log.args. The request context still owns requestId.

The polled-webhook processor logs through a logger bound to the webhook id, so lines from concurrent polls in one tick stay distinguishable. Test expectations follow the new metadata shape.

* fix(lint): check reqId-only modules and skip reassigned let messages in log-message-tag

The cheap pre-filter now admits a module whose only request id is reqId, and a let binding reassigned before it is logged is no longer followed to its initializer.
Add Jama Connect and Flow Engineering actions, selectors, and live Search using existing credential and permission boundaries. Preserve account limits, identity checks, and bounded provider reads.
Additive copies of the worker's SteerV2Request, SteerV2Response and steering_applied frame shape, generated from simstudioai/mothership#929. Nothing in Sim uses them yet; Sim's side of a paired contract merges first.
…comparison posts (#9729)

* fix(library): describe self-hosted Enterprise features accurately in comparison posts

* fix(library): limit the Enterprise subscription note to production use
* fix(docs): align navigation and collapse integration fields

* fix(docs): cover ToC hover color and underline invariants
Add all 27 Gauge Chat operations with saved organization API-key credentials, six resource pickers, the Gauge icon, setup documentation, and generated catalog metadata.

Keep operation-specific inputs scoped across workflows, agent tools, and notification tools using optional mapper context. Preserve model arguments, clear incompatible topic selections on operation changes, and reject blank identifier entries.

Validate provider contracts and live requests, including mutation readbacks, report datasets, permission denials, selectors, and real executor/agent calls. All local gates passed with 43,187 tests passing and eight existing skips.
…ment verification (#9726)

Add the buyer flow the SaaS listing's public-visibility audit requires: a fulfillment route that resolves the registration token and reads entitlements, onboarding that links a license to an organization or account, durable team and buyer notices through the outbox, subscription status in billing, a reconcile cron for license and agreement events, and an admin route to link a license. Off unless AWS_MARKETPLACE_PRODUCT_CODE is set.
…omation in 2026 (#9735)

* feat(library): 6 Best AI Workflow Tools for Google Drive Document Automation in 2026

* Pi Babysit: address PR #9735 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…s in 2026 (#9736)

* feat(library): Best AI Agents for Sales Call Summaries and CRM Updates in 2026

* Pi Babysit: address PR #9736 feedback

---------

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…dels Compared (#9737)

Co-authored-by: Sim Pi Agent <pi@sim.ai>
…ct Checking, and News Monitoring (#9738)

Co-authored-by: Sim Pi Agent <pi@sim.ai>
@waleedlatif1
waleedlatif1 requested a review from a team as a code owner November 6, 2026 19:21
@vercel

vercel Bot commented Nov 6, 2026 •

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Nov 6, 2026 8:18pm UTC

Request Review

@github-actions github-actions Bot added the requires-mothership-merge Has a companion PR on the mothership/copilot side — merge in lockstep label Nov 6, 2026
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

⚠️ Cross-repo companion check

One or more companion PRs aren't merged into main yet (aggregated across the feature PRs in this release). Merging this without them will leave copilot and sim out of sync — merge them in lockstep.

  • ⚠️ simstudioai/mothership#926 — merged into staging (this PR targets main) — feat(worker): add Jama and Flow integration discovery
  • ⚠️ simstudioai/mothership#929 — merged into staging (this PR targets main) — feat(worker): answer each steer with a durable receipt at /api/streams/steer/v2
  • ⚠️ simstudioai/mothership#930 — merged into staging (this PR targets main) — fix(search): preserve query attribution in discovery evaluation
  • ⚠️ simstudioai/mothership#932 — merged into staging (this PR targets main) — feat(worker): read a steer's disposition without re-sending it

@greptile-apps

greptile-apps Bot commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Critical impact] The changes since the previous review appear safe to merge.

Summary

This release adds AWS Marketplace contracts, multiple accounts per integration, Thinking Machines, Gauge, and Jama and Flow workflows and search.

Since the previous review:

  • AWS Marketplace buyers can register licenses and link them to Sim accounts.
  • Members can connect more than one account for supported providers.
  • Live Search can find and reopen Jama and Flow items.
  • Workflows can use Gauge, Jama, and Flow operations.
  • Inkling models are available through the Thinking Machines provider.
  • Hosted Fal.ai video generation checks paid access and tracks result costs.
  • Logs carry request and poll IDs as searchable metadata.
  • Confluence topic searches use relevance ranking and native paths keep their configured base.
  • Enrichment lookups use a shared Firecrawl path.
  • Search results keep their query source and organization routes lead to the right page.
  • Docs and comparison posts explain the new integrations and updated product details.

The earlier unnumbered finding about unused imports is fully fixed, matching waleedlatif1’s reply.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Request to change plan] --> B{Personal or organization?}
  B -->|Personal| C[Check account license]
  B -->|Organization| D[Check organization license]
  C --> E{Marketplace license held?}
  D --> E
  E -->|Yes| F[Refuse Stripe checkout]
  E -->|No| G[Run existing billing checks]
  G --> H[Continue if allowed]
Loading

Reviews (2) · Last reviewed commit: "chore(release): include personal Search ..." · Reviewed by Greptile

@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.

All reported issues were addressed across 907 files

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.

Turn on auto-fix | Re-trigger cubic

Comment thread .agents/skills/add-trigger/SKILL.md Resolved
Comment thread apps/sim/lib/tools/falai-pricing.ts Dismissed
Comment thread apps/sim/scripts/test-landing-seo-e2e.ts Dismissed
Comment thread apps/sim/scripts/test-landing-seo-e2e.ts Dismissed
Comment thread apps/sim/scripts/test-landing-seo-e2e.ts Dismissed
Comment thread apps/sim/scripts/test-landing-seo-e2e.ts Dismissed
#9746)

#9740 deleted the search history sources route but kept the code that
only it reached: the remove-source use case, operation, repository event
and contract, plus unused imports in the oauth-provider and search-history
hooks. Restore those files to their main versions.
…#9745)

* chore(agents): trim root CLAUDE.md by ablation; AGENTS.md links to it

* chore(agents): restore dropped guidance details and widen rule scopes to match

* chore(agents): keep auth-ui off the emcn styling rule
…wn names (#9747)

Webhook polls and Sim events logged their own generated ids as requestId, which the poll route's request context overwrites, so the ids never reached a log line. The orchestrator now binds each poll's id on the handler logger as pollId, handlers drop their per-line requestId fields, and the event emitter logs its per-event id as dispatchId. The ids passed downstream as each execution's request id are unchanged.
…mers

AWS bills a Marketplace customer, and AWS's SaaS guidelines require a listed
product to be billed entirely through its Marketplace dimensions. A
Marketplace-billed organization or account looks Free to Stripe, so a
Stripe checkout would start a second, real subscription. Until now only a
client gate stood in the way, and it failed open: a failed license lookup
reported "not Marketplace-billed" and showed Stripe plans, with no retry
short of a reload.

Server: authorizeSubscriptionReference (organization references) and
assertPersonalCheckoutAllowed (personal references) now refuse an upgrade
with 409 when the reference holds a Marketplace license that is not
inactive, only where AWS_MARKETPLACE_PRODUCT_CODE is set. The personal
check lives in assertPersonalCheckoutAllowed because the Better Auth Stripe
plugin never calls authorizeReference for a personal reference, so a check
there would never run for one. Other actions, and staff Enterprise
provisioning, are unaffected.

Client: useAwsMarketplaceBilling exposes isResolved, isError, isRetrying
and retry, and an unknown billing state now gates plan changes. The billing
page hides "Explore plans" until the lookup resolves; the upgrade page
shows "Workspace plans unavailable" with a "Try again" chip when the lookup
fails.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@simstudioai simstudioai deleted a comment from ami-guru Nov 6, 2026
@waleedlatif1
waleedlatif1 merged commit 3fd7a65 into main Nov 6, 2026
70 of 71 checks passed
@waleedlatif1
waleedlatif1 deleted the release/v0.9.45 branch November 6, 2026 20:20
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cubic-dev-ai review this PR

@cubic-dev-ai

cubic-dev-ai Bot commented Nov 6, 2026

Copy link
Copy Markdown
Contributor

@cubic-dev-ai review this PR

@waleedlatif1 I have started the AI code review. It will take a few minutes to complete.

@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.

No issues found across 914 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

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.

Re-trigger cubic

This branch was previously deployed

1 inactive deployment
Preview — 373fa200 Deployed Nov 6, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-mothership-merge Has a companion PR on the mothership/copilot side — merge in lockstep

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants