Skip to content

Commit ca74862

Browse files
authored
v0.9.21: gemini 4 argon, db improvements, fivetran integration, search speedups
2 parents d744108 + 54adfc5 commit ca74862

183 files changed

Lines changed: 43534 additions & 686 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/checks.yml‎

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -332,12 +332,22 @@ jobs:
332332

333333
# Desktop tools in the real Electron app against a local app, on its own runner: the
334334
# Electron app, the dev app and its realtime server together outgrow the e2e runner.
335+
# Two runners: the lease-lapse test sleeps through a long import and then a lease (~3 min), as
336+
# long as the rest of the spec together, so on one runner it set the time for every run.
335337
desktop-live:
336-
name: desktop-live
338+
name: desktop-live (${{ matrix.tests }})
337339
needs: changes
338340
if: needs.changes.outputs.desktop_live == 'true'
339341
runs-on: ${{ (vars.CI_PROVIDER == '' || vars.CI_PROVIDER == 'blacksmith') && 'blacksmith-16vcpu-ubuntu-2404' || 'ubuntu-latest' }}
340342
timeout-minutes: 30
343+
strategy:
344+
fail-fast: false
345+
matrix:
346+
include:
347+
- tests: lease-lapse
348+
filter: --grep @lease-lapse
349+
- tests: rest
350+
filter: --grep-invert @lease-lapse
341351
services:
342352
postgres:
343353
image: pgvector/pgvector:pg17
@@ -503,13 +513,13 @@ jobs:
503513
SIM_DESKTOP_E2E_REDIS_URL="$REDIS_URL" \
504514
SIM_DESKTOP_E2E_AUTH_SECRET="$BETTER_AUTH_SECRET" \
505515
xvfb-run -a -s '-screen 0 1920x1200x24' bunx playwright test e2e/desktop-tools-live-sim.spec.ts \
506-
--output "$report_dir/desktop-tools-results" --retries=0
516+
${{ matrix.filter }} --output "$report_dir/desktop-tools-results" --retries=0
507517
508518
- name: Upload Electron E2E results and server logs
509519
if: failure()
510520
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
511521
with:
512-
name: desktop-live-e2e-results
522+
name: desktop-live-e2e-results-${{ matrix.tests }}
513523
path: ${{ runner.temp }}/e2e/
514524
if-no-files-found: ignore
515525
retention-days: 7
@@ -880,14 +890,19 @@ jobs:
880890
AWS_REGION: 'us-west-2'
881891
ENCRYPTION_KEY: '0000000000000000000000000000000000000000000000000000000000000000' # dummy key for CI only
882892
TURBO_CACHE_DIR: .turbo
893+
# This build is on the e2e-mobile critical path; its ~30 s TypeScript pass repeats what
894+
# lint's type-check and the `build` job's own `next build` (generated route types too)
895+
# already enforce.
896+
NEXT_BUILD_SKIP_TYPE_CHECK: 'true'
883897
run: bunx turbo run build --filter=@sim/app
884898

885899
# Everything `next start` reads; node_modules and the source tree come from e2e-mobile's own
886-
# checkout and setup, at the same workspace path and lockfile.
900+
# checkout and setup, at the same workspace path and lockfile. Source maps are over half the
901+
# build and only serve stack traces and devtools, which the suite never reads.
887902
- name: Package the build for e2e-mobile
888903
run: >-
889904
tar -I 'zstd -T0' -cf "$RUNNER_TEMP/next-build.tar.zst" -C apps/sim
890-
--exclude .next/cache --exclude .next/trace .next
905+
--exclude .next/cache --exclude .next/trace --exclude '*.map' .next
891906
892907
# Already zstd-compressed, so stored without zip compression. `overwrite` lets a re-run of
893908
# this job replace the earlier attempt's build; three days covers re-running a failed shard

‎apps/desktop/e2e/desktop-tools-live-sim.spec.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ test.describe('desktop tools against a live Sim', () => {
546546
expect(await callState(chatId)).toMatch(/^completed/)
547547
})
548548

549-
test('a long import whose window crashed settles as outcome unknown about one lease later', async () => {
549+
test('a long import whose window crashed settles as outcome unknown about one lease later @lease-lapse', async () => {
550550
test.setTimeout(420_000)
551551
const user = await db.seedUser(['Crashing import chat'])
552552
const { callId } = await slowImport(user, 'Crashing import chat', '[crash-import]')

‎apps/desktop/e2e/source-connect.spec.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ test('source authorization returns to its desktop screen and refreshes live', as
336336
if (path === '/api/knowledge/slack') {
337337
json({
338338
sharedAppAvailable: true,
339+
memberAppKind: installed ? 'shared' : null,
339340
bots: [],
340341
installations: installed
341342
? [

‎apps/docs/components/icons.tsx‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8397,6 +8397,33 @@ export function FirefliesIcon(props: SVGProps<SVGSVGElement>) {
83978397
)
83988398
}
83998399

8400+
export function FivetranIcon(props: SVGProps<SVGSVGElement>) {
8401+
return (
8402+
<svg {...props} viewBox='0 0 64 64' fill='none' xmlns='http://www.w3.org/2000/svg'>
8403+
<path
8404+
d='M40.8,32h6.4c0.5,0,1-0.4,1-1c0-0.1,0-0.3-0.1-0.4L37.1,0.6C36.9,0.3,36.6,0,36.2,0h-6.4c-0.5,0-1,0.4-1,1c0,0.1,0,0.2,0.1,0.3l11.1,30.2C40.1,31.8,40.4,32,40.8,32z'
8405+
fill='#0073FF'
8406+
/>
8407+
<path
8408+
d='M39.7,64h6.4c0.5,0,1-0.4,1-1c0-0.1,0-0.2-0.1-0.3L24.2,0.6C24.1,0.3,23.7,0,23.3,0h-6.4c-0.5,0-1,0.4-1,1c0,0.1,0,0.2,0.1,0.3l22.8,62.1C38.9,63.8,39.3,64,39.7,64z'
8409+
fill='#0073FF'
8410+
/>
8411+
<path
8412+
d='M27,64h6.4c0.5,0,0.9-0.4,1-0.9c0-0.1,0-0.3-0.1-0.4L23.2,32.6c-0.1-0.4-0.5-0.6-0.9-0.6h-6.5c-0.5,0-0.9,0.5-0.9,1c0,0.1,0,0.2,0.1,0.3l11,30.1C26.3,63.8,26.6,64,27,64z'
8413+
fill='#0073FF'
8414+
/>
8415+
<path
8416+
d='M41.6,1.3l5.2,14.1c0.1,0.4,0.5,0.6,0.9,0.6H54c0.5,0,1-0.4,1-1c0-0.1,0-0.2-0.1-0.3L49.7,0.6C49.6,0.3,49.3,0,48.9,0h-6.4c-0.5,0-1,0.4-1,1C41.5,1.1,41.5,1.2,41.6,1.3z'
8417+
fill='#0073FF'
8418+
/>
8419+
<path
8420+
d='M15.2,64h6.4c0.5,0,1-0.4,1-1c0-0.1,0-0.2-0.1-0.3l-5.2-14.1c-0.1-0.4-0.5-0.6-0.9-0.6H10c-0.5,0-1,0.4-1,1c0,0.1,0,0.2,0.1,0.3l5.2,14.1C14.4,63.8,14.8,64,15.2,64z'
8421+
fill='#0073FF'
8422+
/>
8423+
</svg>
8424+
)
8425+
}
8426+
84008427
export function BedrockIcon(props: SVGProps<SVGSVGElement>) {
84018428
const id = useId()
84028429
const gradientId = `bedrock_gradient_${id}`

‎apps/docs/components/ui/icon-mapping.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ import {
104104
FindymailIcon,
105105
FirecrawlIcon,
106106
FirefliesIcon,
107+
FivetranIcon,
107108
FlintIcon,
108109
GammaIcon,
109110
GithubIcon,
@@ -420,6 +421,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
420421
firecrawl: FirecrawlIcon,
421422
fireflies: FirefliesIcon,
422423
fireflies_v2: FirefliesIcon,
424+
fivetran: FivetranIcon,
423425
flint: FlintIcon,
424426
function: CodeIcon,
425427
gamma: GammaIcon,

‎apps/docs/content/docs/cli/reference.mdx‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4522,7 +4522,7 @@ sim selectors get [options]
45224522

45234523
| Option | Required | Description |
45244524
| --- | --- | --- |
4525-
| `--selector-key <value>` | Yes | Registered selector key for discovering this field’s destination options. Accepted values: `airtable.bases`, `airtable.tables`, `asana.workspaces`, `attio.lists`, `attio.objects`, `bigquery.datasets`, `bigquery.tables`, `bitbucket.workspaces`, `bitbucket.repositories`, `calcom.eventTypes`, `calcom.schedules`, `clickup.workspaces`, `clickup.spaces`, `clickup.folders`, `clickup.lists`, `coda.docs`, `coda.pages`, `coda.tables`, `coda.columns`, `coda.rows`, `coda.formulas`, `coda.controls`, `coda.folders`, `coda.permissions`, `confluence.spaces`, `confluence.spacesById`, `confluence.pages`, `google.tasks.lists`, `gmail.labels`, `google.calendar`, `google.drive`, `google.sheets`, `harmonic.savedSearches`, `hubspot.lists`, `hubspot.owners`, `hubspot.pipelines`, `hubspot.pipelineStages`, `hubspot.properties`, `jsm.requestTypes`, `jsm.serviceDesks`, `microsoft.planner.plans`, `notion.databases`, `notion.pages`, `netsuite.recordTypes`, `netsuite.asyncTasks`, `pipedrive.pipelines`, `sharepoint.lists`, `trello.boards`, `zoho_desk.organizations`, `zoho_desk.departments`, `zoho_desk.agents`, `zoom.meetings`, `slack.channels`, `snowflake.databases`, `snowflake.schemas`, `snowflake.tables`, `snowflake.warehouses`, `snowflake.roles`, `snowflake.fileFormats`, `snowflake.procedures`, `slack.users`, `outlook.folders`, `outlook.calendars`, `microsoft.teams`, `microsoft.chats`, `microsoft.channels`, `microsoft.planner`, `onedrive.files`, `onedrive.folders`, `sharepoint.sites`, `microsoft.excel`, `microsoft.excel.drives`, `microsoft.excel.sheets`, `microsoft.word`, `wealthbox.contacts`, `jira.issues`, `jira.projects`, `jira.projectKeys`, `linear.projects`, `linear.teams`, `monday.boards`, `monday.groups`, `webflow.sites`, `webflow.collections`, `webflow.items`, `planetscale.databases`, `powerbi.workspaces`, `powerbi.datasets`, `powerbi.reports`, `planetscale.branches`, `planetscale.backups`, `planetscale.deployRequests`, `cloudwatch.logGroups`, `cloudwatch.logStreams`, `imap.mailboxes`, `mcp.tools`, `managedAgent.agents`, `managedAgent.environments`, `managedAgent.vaults`, `managedAgent.memoryStores`, `knowledge.documents`, `sim.workflows`, `table.columns`, `table.outputColumns`, `workspace.secretNames`, `workspace.sandboxes`, `providers.ollamaEmbeddingModels`, `providers.openrouterEmbeddingModels`. |
4525+
| `--selector-key <value>` | Yes | Registered selector key for discovering this field’s destination options. Accepted values: `airtable.bases`, `airtable.tables`, `asana.workspaces`, `attio.lists`, `attio.objects`, `bigquery.datasets`, `bigquery.tables`, `bitbucket.workspaces`, `bitbucket.repositories`, `calcom.eventTypes`, `calcom.schedules`, `clickup.workspaces`, `clickup.spaces`, `clickup.folders`, `clickup.lists`, `coda.docs`, `coda.pages`, `coda.tables`, `coda.columns`, `coda.rows`, `coda.formulas`, `coda.controls`, `coda.folders`, `coda.permissions`, `confluence.spaces`, `confluence.spacesById`, `confluence.pages`, `google.tasks.lists`, `fivetran.groups`, `fivetran.connections`, `gmail.labels`, `google.calendar`, `google.drive`, `google.sheets`, `harmonic.savedSearches`, `hubspot.lists`, `hubspot.owners`, `hubspot.pipelines`, `hubspot.pipelineStages`, `hubspot.properties`, `jsm.requestTypes`, `jsm.serviceDesks`, `microsoft.planner.plans`, `notion.databases`, `notion.pages`, `netsuite.recordTypes`, `netsuite.asyncTasks`, `pipedrive.pipelines`, `sharepoint.lists`, `trello.boards`, `zoho_desk.organizations`, `zoho_desk.departments`, `zoho_desk.agents`, `zoom.meetings`, `slack.channels`, `snowflake.databases`, `snowflake.schemas`, `snowflake.tables`, `snowflake.warehouses`, `snowflake.roles`, `snowflake.fileFormats`, `snowflake.procedures`, `slack.users`, `outlook.folders`, `outlook.calendars`, `microsoft.teams`, `microsoft.chats`, `microsoft.channels`, `microsoft.planner`, `onedrive.files`, `onedrive.folders`, `sharepoint.sites`, `microsoft.excel`, `microsoft.excel.drives`, `microsoft.excel.sheets`, `microsoft.word`, `wealthbox.contacts`, `jira.issues`, `jira.projects`, `jira.projectKeys`, `linear.projects`, `linear.teams`, `monday.boards`, `monday.groups`, `webflow.sites`, `webflow.collections`, `webflow.items`, `planetscale.databases`, `powerbi.workspaces`, `powerbi.datasets`, `powerbi.reports`, `planetscale.branches`, `planetscale.backups`, `planetscale.deployRequests`, `cloudwatch.logGroups`, `cloudwatch.logStreams`, `imap.mailboxes`, `mcp.tools`, `managedAgent.agents`, `managedAgent.environments`, `managedAgent.vaults`, `managedAgent.memoryStores`, `knowledge.documents`, `sim.workflows`, `table.columns`, `table.outputColumns`, `workspace.secretNames`, `workspace.sandboxes`, `providers.ollamaEmbeddingModels`, `providers.openrouterEmbeddingModels`. |
45264526
| `--context <json\|@file>` | No | Only the dependencies declared by the selector, such as oauthCredential and channelId. Missing OAuth connections require human authorization. (JSON, or @path / @- to read a file or stdin). |
45274527
| `--id <value>` | Yes | Resource identifier. |
45284528

@@ -4542,7 +4542,7 @@ sim selectors list [options]
45424542

45434543
| Option | Required | Description |
45444544
| --- | --- | --- |
4545-
| `--selector-key <value>` | Yes | Registered selector key for discovering this field’s destination options. Accepted values: `airtable.bases`, `airtable.tables`, `asana.workspaces`, `attio.lists`, `attio.objects`, `bigquery.datasets`, `bigquery.tables`, `bitbucket.workspaces`, `bitbucket.repositories`, `calcom.eventTypes`, `calcom.schedules`, `clickup.workspaces`, `clickup.spaces`, `clickup.folders`, `clickup.lists`, `coda.docs`, `coda.pages`, `coda.tables`, `coda.columns`, `coda.rows`, `coda.formulas`, `coda.controls`, `coda.folders`, `coda.permissions`, `confluence.spaces`, `confluence.spacesById`, `confluence.pages`, `google.tasks.lists`, `gmail.labels`, `google.calendar`, `google.drive`, `google.sheets`, `harmonic.savedSearches`, `hubspot.lists`, `hubspot.owners`, `hubspot.pipelines`, `hubspot.pipelineStages`, `hubspot.properties`, `jsm.requestTypes`, `jsm.serviceDesks`, `microsoft.planner.plans`, `notion.databases`, `notion.pages`, `netsuite.recordTypes`, `netsuite.asyncTasks`, `pipedrive.pipelines`, `sharepoint.lists`, `trello.boards`, `zoho_desk.organizations`, `zoho_desk.departments`, `zoho_desk.agents`, `zoom.meetings`, `slack.channels`, `snowflake.databases`, `snowflake.schemas`, `snowflake.tables`, `snowflake.warehouses`, `snowflake.roles`, `snowflake.fileFormats`, `snowflake.procedures`, `slack.users`, `outlook.folders`, `outlook.calendars`, `microsoft.teams`, `microsoft.chats`, `microsoft.channels`, `microsoft.planner`, `onedrive.files`, `onedrive.folders`, `sharepoint.sites`, `microsoft.excel`, `microsoft.excel.drives`, `microsoft.excel.sheets`, `microsoft.word`, `wealthbox.contacts`, `jira.issues`, `jira.projects`, `jira.projectKeys`, `linear.projects`, `linear.teams`, `monday.boards`, `monday.groups`, `webflow.sites`, `webflow.collections`, `webflow.items`, `planetscale.databases`, `powerbi.workspaces`, `powerbi.datasets`, `powerbi.reports`, `planetscale.branches`, `planetscale.backups`, `planetscale.deployRequests`, `cloudwatch.logGroups`, `cloudwatch.logStreams`, `imap.mailboxes`, `mcp.tools`, `managedAgent.agents`, `managedAgent.environments`, `managedAgent.vaults`, `managedAgent.memoryStores`, `knowledge.documents`, `sim.workflows`, `table.columns`, `table.outputColumns`, `workspace.secretNames`, `workspace.sandboxes`, `providers.ollamaEmbeddingModels`, `providers.openrouterEmbeddingModels`. |
4545+
| `--selector-key <value>` | Yes | Registered selector key for discovering this field’s destination options. Accepted values: `airtable.bases`, `airtable.tables`, `asana.workspaces`, `attio.lists`, `attio.objects`, `bigquery.datasets`, `bigquery.tables`, `bitbucket.workspaces`, `bitbucket.repositories`, `calcom.eventTypes`, `calcom.schedules`, `clickup.workspaces`, `clickup.spaces`, `clickup.folders`, `clickup.lists`, `coda.docs`, `coda.pages`, `coda.tables`, `coda.columns`, `coda.rows`, `coda.formulas`, `coda.controls`, `coda.folders`, `coda.permissions`, `confluence.spaces`, `confluence.spacesById`, `confluence.pages`, `google.tasks.lists`, `fivetran.groups`, `fivetran.connections`, `gmail.labels`, `google.calendar`, `google.drive`, `google.sheets`, `harmonic.savedSearches`, `hubspot.lists`, `hubspot.owners`, `hubspot.pipelines`, `hubspot.pipelineStages`, `hubspot.properties`, `jsm.requestTypes`, `jsm.serviceDesks`, `microsoft.planner.plans`, `notion.databases`, `notion.pages`, `netsuite.recordTypes`, `netsuite.asyncTasks`, `pipedrive.pipelines`, `sharepoint.lists`, `trello.boards`, `zoho_desk.organizations`, `zoho_desk.departments`, `zoho_desk.agents`, `zoom.meetings`, `slack.channels`, `snowflake.databases`, `snowflake.schemas`, `snowflake.tables`, `snowflake.warehouses`, `snowflake.roles`, `snowflake.fileFormats`, `snowflake.procedures`, `slack.users`, `outlook.folders`, `outlook.calendars`, `microsoft.teams`, `microsoft.chats`, `microsoft.channels`, `microsoft.planner`, `onedrive.files`, `onedrive.folders`, `sharepoint.sites`, `microsoft.excel`, `microsoft.excel.drives`, `microsoft.excel.sheets`, `microsoft.word`, `wealthbox.contacts`, `jira.issues`, `jira.projects`, `jira.projectKeys`, `linear.projects`, `linear.teams`, `monday.boards`, `monday.groups`, `webflow.sites`, `webflow.collections`, `webflow.items`, `planetscale.databases`, `powerbi.workspaces`, `powerbi.datasets`, `powerbi.reports`, `planetscale.branches`, `planetscale.backups`, `planetscale.deployRequests`, `cloudwatch.logGroups`, `cloudwatch.logStreams`, `imap.mailboxes`, `mcp.tools`, `managedAgent.agents`, `managedAgent.environments`, `managedAgent.vaults`, `managedAgent.memoryStores`, `knowledge.documents`, `sim.workflows`, `table.columns`, `table.outputColumns`, `workspace.secretNames`, `workspace.sandboxes`, `providers.ollamaEmbeddingModels`, `providers.openrouterEmbeddingModels`. |
45464546
| `--context <json\|@file>` | No | Only the dependencies declared by the selector, such as oauthCredential and channelId. Missing OAuth connections require human authorization. (JSON, or @path / @- to read a file or stdin). |
45474547
| `--search <value>` | No | Provider option search text. |
45484548
| `--cursor <value>` | No | Continue from nextCursor returned by a previous result. |

0 commit comments

Comments
 (0)