Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e5f3965
feat(mship): add parallel subagents, improve streaming performance (#…
Sg312 Jun 18, 2026
ea83be3
fix(mship): add folder rename tools and locked workflow status (#5126)
Sg312 Jun 18, 2026
58312a1
improvement(misc): add more sportmonks tools, improvestreaming ux (#5…
icecrasher321 Jun 18, 2026
63fdc47
improvement(block): table empty-state filter/sort builders + upsert c…
TheodoreSpeaks Jun 18, 2026
267e49c
improvement(workspaces): auto-add without invite if part of organizat…
icecrasher321 Jun 18, 2026
f0b3550
feat(files): public share links for workspace files (#5130)
TheodoreSpeaks Jun 19, 2026
c419a34
feat(tables): raise per-plan table limits (free 5/50k, pro 100/100k, …
TheodoreSpeaks Jun 19, 2026
91f9dfd
improvement(governance): derived access (#5134)
icecrasher321 Jun 19, 2026
13b5d21
improvement(access-controls): docs, terminology, fix delete bug (#5141)
icecrasher321 Jun 19, 2026
9d2a6ef
feat(logs): redact PII from workflow logs via configurable rules (#5136)
TheodoreSpeaks Jun 19, 2026
208d135
feat(enrichment): add enrichment details sidebar with cost + provider…
TheodoreSpeaks Jun 19, 2026
5925651
feat(vfs): add lazy vfs + remove dynamic fields for prompt caching hi…
Sg312 Jun 19, 2026
7349bf4
feat(files): password, email-OTP, and SSO auth for public file shares…
TheodoreSpeaks Jun 19, 2026
ecbe191
feat(files): inline rich markdown editor (#5133)
waleedlatif1 Jun 20, 2026
3b78436
feat(pii): gate data retention PII redaction behind feature flag (#5144)
TheodoreSpeaks Jun 20, 2026
1248f8e
fix(files): only show Share in context menu for files, not folders (#…
TheodoreSpeaks Jun 20, 2026
ce283fa
feat(scheduled-tasks): expose Google Calendar-style recurrence option…
waleedlatif1 Jun 20, 2026
3ebb9a5
feat(connectors): add Google Meet knowledge base connector (#5149)
waleedlatif1 Jun 20, 2026
35a7bf6
fix(executor): stop HITL error edges from firing on successful resume…
icecrasher321 Jun 20, 2026
83dc806
fix(file-decompress): enforce decompression caps on inflated stream, …
waleedlatif1 Jun 20, 2026
2f7d607
fix(uploads): close multipart storage-quota bypass via quota-exempt c…
waleedlatif1 Jun 20, 2026
82cb324
improvement(access-controls): default workspace experience includes a…
icecrasher321 Jun 20, 2026
aa57f10
fix(auth): close nOAuth account takeover via email-based OAuth linkin…
waleedlatif1 Jun 20, 2026
d643be0
feat(triggers): add GitLab, PagerDuty, and Zendesk webhook triggers (…
waleedlatif1 Jun 20, 2026
55f4326
improvement(auth): make Microsoft emailVerified derivation total (#5157)
waleedlatif1 Jun 20, 2026
4bf7917
improvement(rich-md-editor): streaming, performance, minor bugfixes (…
icecrasher321 Jun 20, 2026
2bbf70e
improvement(rich-md-editor): stabilize bubble-menu plugin key + comme…
waleedlatif1 Jun 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .claude/rules/sim-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ apps/
└── realtime/ # Bun Socket.IO server (collaborative canvas)
packages/ # @sim/* — audit, auth, db, logger, realtime-protocol,
# security, tsconfig, utils, workflow-authz,
# security, tsconfig, utils, platform-authz,
# workflow-persistence, workflow-types
```

Expand Down
2 changes: 1 addition & 1 deletion .cursor/rules/sim-architecture.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ apps/
└── realtime/ # Bun Socket.IO server (collaborative canvas)

packages/ # @sim/* — audit, auth, db, logger, realtime-protocol,
# security, tsconfig, utils, workflow-authz,
# security, tsconfig, utils, platform-authz,
# workflow-persistence, workflow-types
```

Expand Down
2 changes: 1 addition & 1 deletion .cursor/rules/sim-testing.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ These modules are mocked globally — do NOT re-mock them in test files unless y
- `@/stores/console/store`, `@/stores/terminal`, `@/stores/execution/store`
- `@/blocks/registry`
- `@trigger.dev/sdk`
- `@sim/workflow-authz` → `workflowAuthzMock`
- `@sim/platform-authz/workflow` → `workflowAuthzMock`

## Structure

Expand Down
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Thank you for your interest in contributing to Sim! Our goal is to provide devel
> - `apps/sim/` — the main Next.js application (App Router, ReactFlow, Zustand, Shadcn, Tailwind CSS).
> - `apps/realtime/` — a small Bun + Socket.IO server that powers the collaborative canvas. Shares DB and Better Auth secrets with `apps/sim` via `@sim/*` packages.
> - `apps/docs/` — Fumadocs-based documentation site.
> - `packages/` — shared workspace packages (`@sim/db`, `@sim/auth`, `@sim/audit`, `@sim/workflow-types`, `@sim/workflow-persistence`, `@sim/workflow-authz`, `@sim/realtime-protocol`, `@sim/security`, `@sim/logger`, `@sim/utils`, `@sim/testing`, `@sim/tsconfig`).
> - `packages/` — shared workspace packages (`@sim/db`, `@sim/auth`, `@sim/audit`, `@sim/workflow-types`, `@sim/workflow-persistence`, `@sim/platform-authz`, `@sim/realtime-protocol`, `@sim/security`, `@sim/logger`, `@sim/utils`, `@sim/testing`, `@sim/tsconfig`).
>
> Strict one-way dependency flow: `apps/* → packages/*`. Packages never import from apps. Please ensure your contributions follow this and our best practices for clarity, maintainability, and consistency.

Expand Down
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
# bun specific
bun-debug.log*

# cursor debug logs
.cursor/debug-*.log

# this repo uses bun.lock; package-lock.json files are accidental
package-lock.json

Expand Down Expand Up @@ -44,6 +47,11 @@ dump.rdb
.env.test
.env.production

# editor swap files
*.swp
*.swo
*.swn

# vercel
.vercel

Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ packages/
├── auth/ # @sim/auth — shared Better Auth verifier
├── db/ # @sim/db — drizzle schema + client
├── logger/ # @sim/logger
├── platform-authz/ # @sim/platform-authz — workspace + workflow authz (subpath exports)
├── realtime-protocol/ # @sim/realtime-protocol — socket op constants + zod schemas
├── security/ # @sim/security — safeCompare
├── tsconfig/ # shared tsconfig presets
├── utils/ # @sim/utils
├── workflow-authz/ # @sim/workflow-authz
├── workflow-persistence/ # @sim/workflow-persistence
└── workflow-types/ # @sim/workflow-types — pure BlockState/Loop/Parallel types
```
Expand Down Expand Up @@ -409,7 +409,7 @@ Use Vitest. Test files: `feature.ts` → `feature.test.ts`. See `.cursor/rules/s

### Global Mocks (vitest.setup.ts)

`@sim/db`, `@sim/db/schema`, `drizzle-orm`, `@sim/logger`, `@sim/workflow-authz`, `@/blocks/registry`, `@/lib/auth`, `@/lib/auth/hybrid`, `@/lib/core/utils/request`, `@trigger.dev/sdk`, and store mocks are provided globally. Do NOT re-mock them unless overriding behavior. (The `vi.mock('@/lib/auth', ...)` in the example below is an override of the global mock so `getSession` can be controlled per-test.)
`@sim/db`, `@sim/db/schema`, `drizzle-orm`, `@sim/logger`, `@sim/platform-authz/workflow`, `@/blocks/registry`, `@/lib/auth`, `@/lib/auth/hybrid`, `@/lib/core/utils/request`, `@trigger.dev/sdk`, and store mocks are provided globally. Do NOT re-mock them unless overriding behavior. (The `vi.mock('@/lib/auth', ...)` in the example below is an override of the global mock so `getSession` can be controlled per-test.)

### Standard Test Pattern

Expand Down
4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ packages/
├── auth/ # @sim/auth — shared Better Auth verifier
├── db/ # @sim/db — drizzle schema + client
├── logger/ # @sim/logger
├── platform-authz/ # @sim/platform-authz — workspace + workflow authz (subpath exports)
├── realtime-protocol/ # @sim/realtime-protocol — socket op constants + zod schemas
├── security/ # @sim/security — safeCompare
├── tsconfig/ # shared tsconfig presets
├── utils/ # @sim/utils
├── workflow-authz/ # @sim/workflow-authz
├── workflow-persistence/ # @sim/workflow-persistence
└── workflow-types/ # @sim/workflow-types — pure BlockState/Loop/Parallel types
```
Expand Down Expand Up @@ -409,7 +409,7 @@ Use Vitest. Test files: `feature.ts` → `feature.test.ts`. See `.cursor/rules/s

### Global Mocks (vitest.setup.ts)

`@sim/db`, `@sim/db/schema`, `drizzle-orm`, `@sim/logger`, `@sim/workflow-authz`, `@/blocks/registry`, `@/lib/auth`, `@/lib/auth/hybrid`, `@/lib/core/utils/request`, `@trigger.dev/sdk`, and store mocks are provided globally. Do NOT re-mock them unless overriding behavior. (The `vi.mock('@/lib/auth', ...)` in the example below is an override of the global mock so `getSession` can be controlled per-test.)
`@sim/db`, `@sim/db/schema`, `drizzle-orm`, `@sim/logger`, `@sim/platform-authz/workflow`, `@/blocks/registry`, `@/lib/auth`, `@/lib/auth/hybrid`, `@/lib/core/utils/request`, `@trigger.dev/sdk`, and store mocks are provided globally. Do NOT re-mock them unless overriding behavior. (The `vi.mock('@/lib/auth', ...)` in the example below is an override of the global mock so `getSession` can be controlled per-test.)

### Standard Test Pattern

Expand Down
18 changes: 18 additions & 0 deletions apps/docs/components/icons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1958,6 +1958,24 @@ export function WhatsAppIcon(props: SVGProps<SVGSVGElement>) {
)
}

export function SportmonksIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
viewBox='0 0 25 24'
fill='none'
fillRule='evenodd'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M11.857 8.546c1.893 0 3.517.678 4.872 2.033 1.355 1.336 2.032 2.96 2.032 4.872 0 1.91-.677 3.535-2.032 4.871-1.355 1.355-2.979 2.032-4.872 2.032H1V17.093h10.857c.446 0 .825-.157 1.142-.473.334-.334.5-.724.5-1.17 0-.445-.166-.835-.5-1.17a1.558 1.558 0 00-1.142-.472H7.905c-1.912 0-3.537-.677-4.873-2.032C1.678 10.421 1 8.796 1 6.903 1 4.993 1.678 3.368 3.033 2.032 4.368.678 5.992 0 7.905 0h10.188V5.263H7.904a1.65 1.65 0 00-1.17.473 1.586 1.586 0 00-.472 1.169c0 .445.157.835.473 1.17.334.315.724.472 1.17.472h3.952z'
fill='currentColor'
/>
<circle cx='21.27' cy='20.123' r='2.732' fill='#FF0F50' />
</svg>
)
}

export function SquareIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} viewBox='0 0 501.42 501.42' xmlns='http://www.w3.org/2000/svg'>
Expand Down
2 changes: 2 additions & 0 deletions apps/docs/components/ui/icon-mapping.ts
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,7 @@ import {
SixtyfourIcon,
SlackIcon,
SmtpIcon,
SportmonksIcon,
SQSIcon,
SquareIcon,
SshIcon,
Expand Down Expand Up @@ -449,6 +450,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
sixtyfour: SixtyfourIcon,
slack: SlackIcon,
smtp: SmtpIcon,
sportmonks: SportmonksIcon,
sqs: SQSIcon,
square: SquareIcon,
ssh: SshIcon,
Expand Down
1 change: 1 addition & 0 deletions apps/docs/content/docs/en/integrations/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,7 @@
"sixtyfour",
"slack",
"smtp",
"sportmonks",
"sqs",
"square",
"ssh",
Expand Down
Loading
Loading