Skip to content

v0.9.41: browser extension, ci improvements - #9579

Merged
waleedlatif1 merged 36 commits into
mainfrom
release/v0.9.41
Nov 3, 2026
Merged

waleedlatif1 merged 36 commits into
mainfrom
release/v0.9.41

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

waleedlatif1 and others added 12 commits November 1, 2026 19:12
* improvement(ci): refresh integration shard duration weights

* improvement(ci): parallelize acceptance suites and avoid slow dependency restores

* improvement(ci): advance extension access polling in acceptance tests

* chore(ci): document acceptance timing and shard refresh

* fix(ci): settle extension screenshots after advancing browser timers

* fix(ci): finish finite animations in clock-controlled extension checks

* fix(ci): preserve access revalidation budgets with virtual timers
…ead of redirecting on send (#9557)

* improvement(billing): show the Chat plan card above the composer instead of redirecting on send

* fix(billing): hold queued Chat sends while the plan is required

* fix(billing): resume held queued sends once Chat is allowed and keep Send now side-effect free
Run extension native and access acceptance in parallel with independent fixtures, apps, databases, and reports. Overlap independent desktop-pickup deadlines and isolated recovery backoff cases, and use faster integration runners with the existing GitHub fallback.

Update Playwright for the upstream WebKit compositor fix and disable focus emulation at the native blur boundary after reloads. Preserve all acceptance assertions and real timing contracts.

Validated with root tests, all workspace type checks, lint, all audits, generated-artifact checks, real integration and Electron acceptance runs, and negative controls for the protected behaviors.
…f session-loss statuses (#9561)

* fix(mcp): answer workflow MCP JSON-RPC errors over HTTP 200 instead of session-loss statuses

* fix(mcp): build the routed test request from a standard Request
)

* fix(extension): attach Sim pages and streamline composer controls

* fix(extension): normalize Sim paths before capture

* fix(extension): exclude revealed secrets and keep large composers usable
* chore(ci): give the Trigger.dev upload job room for a slow image push (#8115)

(cherry picked from commit 43c9f6c)

* improvement(extension): document browser data handling and limited use

* fix(extension): attach Sim pages and streamline composer controls (#9560)

* fix(extension): attach Sim pages and streamline composer controls

* fix(extension): normalize Sim paths before capture

* fix(extension): exclude revealed secrets and keep large composers usable

* fix(extension): disclose link handling and keep gesture checks passive

---------

Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Theodore Li <theo@sim.ai>
…ounts, and product status (#9566)

* improvement(comparisons): re-verify competitor pricing, integration counts, and product status

* fix(comparisons): surface plan limits in short values and keep related facts consistent

* improvement(comparisons): drop a redundant source and repeated gateway wording

* fix(comparisons): qualify the Cowork rollout and local-task scheduling, retitle the Vellum limitation
…t Without Code? (#9569)

* feat(library): How Do You Connect the Serper Search API to an AI Agent Without Code?

* Pi Babysit: address PR #9569 feedback

---------

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

vercel Bot commented Nov 2, 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 Nov 3, 2026 1:05am UTC

Request Review

…nge Monitoring in 2026? (#9570)

Co-authored-by: Sim Pi Agent <pi@sim.ai>
waleedlatif1 and others added 4 commits November 2, 2026 12:29
…nt Triggers (#9572)

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

Co-authored-by: Sim Pi Agent <pi@sim.ai>
All four workflow run tools reach the same executor, but the catalog only
gated run_workflow and run_workflow_until_block. The approval gate is a pure
catalog lookup, so an agent steered into run_from_block (which runs every
block downstream of its start) or run_block executed the workflow with no
approval card. Flag both siblings and assert every tool in
WORKFLOW_TOOL_NAMES carries requiresApproval.
@greptile-apps

greptile-apps Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

[Medium impact] The PR reaches workspace Chat, workflow MCP callers, CI workflows, and public marketing pages.

The PR has no established blocking behavior failure, but the new heading must satisfy the repository’s styling requirement before merging.

Findings

  1. P2 Heading bypasses shared sizes ▶

Summary

This release splits acceptance checks into parallel jobs and shows the paid-plan card before users send a chat message.

  • Workspace Chat shows its plan card before a blocked message can be sent.
  • Workflow MCP replies to selected JSON-RPC errors with HTTP 200.
  • Acceptance checks run in smaller parallel groups with less idle waiting.
  • Each competitor comparison page gets its own social card.
  • The model catalog links to cloud and inference providers.
  • Library and comparison pages show refreshed product and competitor facts.
  • The library adds a guide to connecting Serper search to an AI agent.

Reviews (1) · Last reviewed commit: "chore(release): merge main into the v0.9..." · 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 88 files

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

… command line (#9575)

* fix(copilot): require approval for terminal input, which can submit a command line

* fix(copilot): claim an ungated terminal operation in the desktop Stop fixture
…ms (#9580)

* fix(realtime): enforce the Files capability on workspace document rooms

* fix(realtime): pass the route context in the document access integration check
Presidio's REGEX_TIMEOUT_SECONDS bounds one custom pattern on one text, so a
batch request could cost texts x patterns x that timeout (2,000 texts x 20
patterns x 2s) on a single handler thread. Charge every custom-pattern match to
a per-request 60s budget and reject the request with a 400 once it is spent.
…9581)

Browser tools that act on a page (navigate, click, type, submit, upload, ...)
run as the user in a browser carrying their signed-in sessions, but the
approval gate read only the catalog flag, which no browser tool declares, so
none of them ever prompted.

toolRequiresApproval now gates every browser tool that BROWSER_TOOL_OBSERVES_ONLY
does not mark observe-only, so a browser tool added later is gated by default,
and both the dispatch gate and the in-band lane read the same answer.
"Don't ask again" answers for browser tools are stored under one shared key,
so a single answer covers the browser instead of one prompt per kind of action.
…9583)

Select acceptance work from the task graph, separate docs site and platform checks, and preserve complete comparison history for push attribution.

Build docs once and run isolated acceptance groups in parallel after bounded server readiness. Reuse validated content and incremental build inputs with bounded retention.

Validate native source/toolchain fingerprints and restored output integrity, seed trusted branch caches, and balance desktop smoke across four whole-file shards. Bound organization-search diagnostics and reclaim closed-PR merge-ref caches.

Validation: full root tests, all workspace types, lint and 62 audits; real cache invalidation and Git attribution controls; complete hosted docs, integration, organization-search, Electron and packaged smoke coverage; final-head bot reviews.
…ity (#9578)

* feat(trigger): reach AWS from trigger.dev runs through workload identity

Trigger.dev runs reached S3, AppConfig, CloudWatch and hosted Bedrock with
the app IAM user's static keys. With TRIGGER_AWS_ROLE_ARN set, Sim's own AWS
clients now use temporary credentials for that role, exchanged for the run's
Trigger.dev workload-identity token (SDK 4.8.3). One session serves the
worker process, refreshed at each attempt's start so the post-run metrics
flush keeps valid credentials. Static keys and the default chain are
unchanged for ECS and self-hosted deployments.

* chore(deps): allow trigger.dev 4.8.3 ahead of the release-age window

4.8.3 is the first release with workload identity. The exclusion is
temporary and comes out once it clears the 7-day threshold on 2026-11-06.
Hosted-key metrics now key off Sim Cloud itself instead of the presence of
static AWS keys, so removing those keys never silences them.

* refactor(trigger): run the per-attempt setup through one module

The init hook loads app modules by relative path, which the source-convention
ratchet caps. Warming Redis and refreshing workload-identity credentials now
sit behind prepareTriggerAttempt, so init still imports one module.

* fix(aws): keep the default chain outside workload identity and cover ses

getAwsCredentials returned explicit static keys when present, which dropped
AWS_SESSION_TOKEN for clients that used to reach it through the default chain
(Bedrock, CloudWatch). It now returns the workload-identity provider or
undefined, so every non-Trigger path resolves exactly as before. The SES email
client reads it too, so worker email keeps working once static keys leave
Trigger.dev. The release-age comment records why the exclusions are bare names.

* test(uploads): give the presigner credentials where the client now reads them

The S3 client resolves credentials through the SDK default chain, which reads
process.env, so the presigner test stubs the keys there instead of the env
module mock.

* fix(aws): serve unexpired workload credentials when an exchange fails

Outside an executing attempt no workload-identity token can be minted, so a
post-run metrics flush near the refresh window failed even though the cached
credentials were still valid. A failed exchange now keeps serving the cached
credentials until a minute before they expire.
…ilities (#9582)

The permission gate decided by catalog lookup alone, and sim_cli has no catalog entry, so no CLI command was ever held. The worker exposes deploy, promote, run and cancel only through the CLI, so those catalog approval flags guarded nothing, and the CLI's own confirmation is answered by --yes in model argv.

Resolve the argv with the CLI's own parser to the command it would run and the v2 operations it declares, and hold the call when one is the capability of an approval-gated catalog tool. Both lanes ask the same predicate. Always-allow covers a CLI call only when its row names the command the parser resolves.
@github-actions github-actions Bot added the requires-mothership-merge Has a companion PR on the mothership/copilot side — merge in lockstep label Nov 2, 2026
@github-actions

github-actions Bot commented Nov 2, 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#899 — merged into staging (this PR targets main) — fix(catalog): require approval for run_block and run_from_block
  • ⚠️ simstudioai/mothership#902 — merged into staging (this PR targets main) — improvement(worker): let a code call run for up to fifteen minutes

… each profile (#9585)

* fix(compare): keep Cowork, Make, and Langflow facts consistent within each profile

* fix(compare): carry the local-task exception into the Cowork alerting summary

* fix(compare): use Anthropic's local files or apps wording for every Cowork exception

* fix(compare): carry the local-task exception into the Cowork trigger summary
…ovider (#9586)

* fix(sso): mark email verified on sign-in through a verified-domain provider

* fix(sso): only verify the email the domain check approved
…#9587)

* improvement(sandbox): log per-phase timing for each sandbox execution

* test(sandbox): time the unchanged-CLI warm path on a controlled clock
…ed search's limit (#9590)

* improvement(search): page Slack Real-time Search to fill a Slack-scoped search's limit

* fix(search): keep earlier Slack pages on any later-page failure and page past short pages
…ile values models send (#9589)

* improvement(cli): accept the file references, list shapes and multi-file values models send

files batch-delete answers to --ids and --paths, reads a JSON array or a comma-joined run of ids as its entries, and the v2 bulk delete resolves files/ VFS paths through the canonical resolver after authorization, refusing the whole batch when one path names no single live file. tables rows batch-delete answers to --row-ids and the log reads to --workflow-ids, the request fields behind their shortened flags.

Workflow edits store a multi-file upload field as the list of file objects the editor writes, and an empty list clears it. A document page selection that lists separate pages says to read one range per call.

* refactor(cli): share the path predicate and other-spellings list

* test(files): drop unit cases the bulk-delete integration suite proves

* test(cli): use a flag batch-delete still refuses as the guessed-flag example

* fix(cli): refuse an empty entry in a joined file-reference list

* improvement(cli): name the metadata command when an embedded download refuses binary output
#9588)

* improvement(mothership): let a code call run for up to fifteen minutes

A render or build that needs more than five minutes was cut off at the
ceiling and failed, and the model started over in smaller pieces or
escaped the call with a background process the paused workbench then
stalled. Mothership code calls now run up to 900 seconds. The worker's
schema still decides what a model may request, so this is inert until
the worker raises its own maximum.

* fix(mothership): renew a running code call's sandbox CLI scope past its expiry

* fix(mothership): keep a long code call's upload bindings for its whole lifetime
@waleedlatif1
waleedlatif1 merged commit 093ea9d into main Nov 3, 2026
153 of 157 checks passed
@waleedlatif1
waleedlatif1 deleted the release/v0.9.41 branch November 3, 2026 01:19

This branch was successfully deployed

1 active deployment
Preview — 9b0f81c1 Deployed Nov 3, 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.

1 participant