Repository navigation
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
Conversation
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>
…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.
…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
…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.
…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>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
[Critical impact] The changes since the previous review appear safe to merge. SummaryThis release adds AWS Marketplace contracts, multiple accounts per integration, Thinking Machines, Gauge, and Jama and Flow workflows and search. Since the previous review:
The earlier unnumbered finding about unused imports is fully fixed, matching waleedlatif1’s reply.
|
There was a problem hiding this comment.
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
…#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.
|
@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 review this PR |
@waleedlatif1 I have started the AI code review. It will take a few minutes to complete. |
There was a problem hiding this comment.
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
Uh oh!
There was an error while loading. Please reload this page.