Skip to content

v0.9.56: PII masking for long texts, Agent block on the shared model fallback, Computer Use opens to every app with sensitive apps protected, AWS Marketplace container license check, slimmer realtime and migrations images, desktop browser rendering waits - #9986

Merged
waleedlatif1 merged 20 commits into
mainfrom
staging
Nov 13, 2026

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Nov 13, 2026 •

Copy link
Copy Markdown
Collaborator

* fix(docs): copy section permalinks and polish outline navigation

* test(docs): verify focus returns from outline links
…nk rewrite (#9974)

* chore(analytics): remove Freebuff ad tracking and the Beluga short-link rewrite

* fix(consent): delete the retired Freebuff click-id cookie for returning visitors
…oads on macOS 14 and 15 (#9978)

The helper targets macOS 14 but CI builds it with the macOS 26 SDK, which linked
the macOS 26 screenshot classes strongly, so dyld refused to load the helper on
older macOS and Settings reported it could not connect. The build now weak-links
the framework and fails if any ScreenCaptureKit reference is strong.
… form and decline the rest (#9976)

* feat(demo): auto-confirm demo bookings that came through the verified form and decline the rest

* fix(demo): open the calendar only after the request is recorded and keep webhook decisions stable

* fix(demo): claim booking records atomically and lock the form while submitting
…nta 401 grace, true refusal codes, headless client-credential modes, and registry cleanups (#9977)

* improvement(credentials): resolve agent fallback credentials once, Vanta 401 grace, true refusal codes, headless client-credential modes, and registry cleanups

* fix(credentials): name refused hosts in token responses and drop the S3 saved-credential setup flag
…ive apps, and make per-app approval optional (#9980)

* improvement(computer-use): allow every app by default, block password managers, make per-app approval optional, and trim the settings

Turning Computer Use on and granting Accessibility and Screen Recording now covers
every app except Sim, System Settings and password managers. Approving each app's
first use becomes an opt-in setting, and the settings section keeps only the switch,
the two macOS permissions and the optional approvals.

* fix(computer-use): protect terminals, match protected bundle IDs case-insensitively, and remember unlisted app names

* fix(computer-use): protect more terminals, test the protected-app guard, and keep the approval copy for older shells

* fix(computer-use): describe ask mode in the settings line and list the protected apps in the helper README
…endencies only (#9983)

Bun's --omit=dev skips the root's devDependencies but still installs every
workspace member, each member's devDependencies, and the optional peers the
lockfile can satisfy. Both images therefore carried drizzle-kit (with its
bundled esbuild binaries), vitest, vite and tsx, and the esbuild Go binaries
account for nearly all of their HIGH/CRITICAL scanner findings.

scripts/prune-production-workspace.ts narrows a turbo prune to the members the
target reaches through dependencies, optionalDependencies or a tsconfig extends,
and strips devDependencies from the root and the kept members. The migrations
image gains a dev stage that keeps drizzle-kit for the dev environment's
db:push; its final stage, which every other environment builds, runs db:migrate
with runtime dependencies only.
…ck walk (#9982)

* improvement(executor): run the Agent block on the shared model-fallback walk

* fix(executor): type the agent test block log so the ratchet shrinks
…d read budget (#9984)

* improvement(search): shorter Jira any-term budget and a shared batched read budget

* fix(search): reserve standard read pages before sharing the call budget
…e so AWS's standard buyer policy works (#9981)

* fix(aws-marketplace): check the container license with CheckoutLicense so AWS's standard buyer policy works

A buyer who follows AWS's generated launch steps gets the managed
AWSLicenseManagerConsumptionPolicy, which does not allow
ListReceivedLicenses, so the check failed and Sim stayed on the open-source
core. Check out a provisional unit of the entitlement and return it at once,
the integration AWS documents for contract-priced containers.

License Manager answers a unit held by another replica, or one a crashed
replica never returned, the same way as a missing entitlement. Startup retries
that answer, and a running Enterprise deployment only restarts without
Enterprise once it has held longer than an unreturned unit can last.

* fix(aws-marketplace): count only an unbroken run of no-entitlement answers, assert the checkout request, bump the chart

* fix(aws-marketplace): check the container license as an uncounted tier entitlement

AWS documents a contract that unlocks a tier of features, rather than metering
a quantity, as a provisional CheckoutLicense with unit None and no value. That
checkout is not counted against the contract, so replicas never compete for a
unit, and the check-in, startup retry, and one-hour confirmation window that
guarded against a held unit go away. A definite answer that differs from the
boot mode restarts; a failed check keeps the current mode.
…rving an action (#9985)

* improvement(desktop-browser): let a page finish rendering before observing an action

* fix(desktop-browser): settle honors cancellation, watches shadow roots and frames, waits through mid-navigation probes

* test(desktop-browser): drive the shadow-root settle test with a controlled clock

* test(desktop-browser): drop an unused counter
… from logs (#9979)

* fix(pii): keep encoded files away from Presidio and split texts too long for one NER pass

* fix(pii): mask long texts inside Presidio and limit encoded-file replacement to the log

- Presidio runs pattern and custom recognizers over the whole text and spaCy NER in overlapping windows when a text exceeds spaCy's max_length, so no match can straddle a cut; the app no longer splits texts
- Encoded file bodies are replaced only in the execution log (explicit replaceEncodedBinary option set by the log entry points); live data keeps every string on the masking path
- Data URL headers are parsed through the first comma, and log-mode detection no longer requires mixed character classes
- e2e: setup failures are recorded in the report

* fix(pii): keep context scoring for thresholded long texts and match data: case-insensitively

- Long-text NER windows also run the pattern entities when a score_threshold is set, so context-boosted matches clear it as they do on short texts
- The data: URI scheme is matched case-insensitively
- e2e asserts each name is masked as one <PERSON> span and is registered as test:pii-redaction:e2e

* fix(pii): keep every NER window's spans instead of assuming a neighbour found them

NER reads context, so a window can find a name the previous one missed or cut short; spans are now only deduplicated by exact position, and overlapping spans are left to the anonymizer to merge
@waleedlatif1
waleedlatif1 requested a review from a team as a code owner November 13, 2026 05:40
@vercel

vercel Bot commented Nov 13, 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 13, 2026 6:54am UTC

Request Review

@greptile-apps

greptile-apps Bot commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 4/5

[High impact] The release reaches desktop automation, saved-credential workflows, execution logs, and hosted deployment behavior.

The logging and testing requirements must be satisfied before merging; the browser wait also needs a small follow-up.

Findings

  1. P2 Observation can miss delayed results ▶
  2. P2 Build output skips required logger ▶
  3. P2 Tests skip real license requests ▶

Summary

This release updates PII masking, shared model fallback execution, desktop app control, demo booking review, credentials, search reads, and runtime images.

  • Demo bookings are confirmed, reviewed, or declined based on the form check.
  • Computer Use opens unprotected apps by default, with approval available as a setting.
  • Browser actions wait for a page to settle before taking an observation.
  • Documentation headings copy section links, and outline navigation handles keyboard actions.
  • Long text and encoded file bodies follow safer PII-masking paths.
  • Knowledge connectors can use saved credentials without the rollout flag.
  • Agent blocks use the shared model fallback path for failed model calls.
  • Credential setup and provider calls share clearer account choices and failure messages.
  • AWS Marketplace deployments check the Enterprise entitlement through License Manager.
  • Search and batched document reads use smaller shared budgets.
  • Paused-run lists check pause points with JSON path queries.
  • Freebuff ad tracking and its click-ID handling are removed.
  • Realtime and migrations images ship without workspace development dependencies.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  Action[Browser action finishes] --> Probe[Read time since last DOM change]
  Probe --> Quiet{Page already looks quiet?}
  Quiet -->|Yes| Snapshot[Take snapshot immediately]
  Quiet -->|No| Wait[Wait within settle cap]
  Wait --> Probe
  Snapshot --> Late[Delayed results may arrive afterward]
Loading

Reviews (1) · Last reviewed commit: "fix(pii): mask texts over spaCy's length..." · Reviewed by Greptile

Comment thread scripts/prune-production-workspace.ts Resolved

@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 160 files

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

Turn on auto-fix | Re-trigger cubic

Comment thread apps/sim/app/api/demo-requests/route.ts Resolved
…tage comment (#9989)

Presidio now masks texts over spaCy's length limit instead of answering 500, so the comment names a failure that still produces a deterministic 500.
…rive the delegable Google services list, and correct a fallback TSDoc (#9993)
@waleedlatif1
waleedlatif1 merged commit 87fefdf into main Nov 13, 2026
174 checks passed

This branch was previously deployed

1 inactive deployment
Preview — b97449ae Deployed Nov 13, 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.

1 participant