Skip to content

Commit 0a4d028

Browse files
committed
Merge remote-tracking branch 'origin/staging' into codex/ashby-integration-expansion
# Conflicts: # apps/sim/tools/generated/tool-ids.ts # apps/sim/tools/generated/tool-metadata.ts # apps/sim/tools/generated/tool-outputs.ts # scripts/check-tool-registry-boundary.baseline.json
2 parents 5d52ee5 + 83e5f5f commit 0a4d028

914 files changed

Lines changed: 85975 additions & 17721 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.

.agents/skills/add-permission-group-item/SKILL.md

Lines changed: 274 additions & 0 deletions
Large diffs are not rendered by default.

.agents/skills/validate-permission-group-item/SKILL.md

Lines changed: 157 additions & 0 deletions
Large diffs are not rendered by default.

.claude/rules/sim-architecture.md

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,25 @@ Every export of a `'use client'` module becomes a *client reference* on the serv
6262
Server code runs in two runtimes with **different environments**. The app container loads the
6363
full env from `SIM_ENV_SECRET_ID` (Secrets Manager). Trigger.dev workers — which execute
6464
workflows, so every block handler and every tool call — get their env from the Trigger.dev
65-
dashboard, and `trigger.config.ts` syncs only `DB_APP_NAME`. The repo cannot see what the
66-
dashboard holds.
65+
dashboard; `trigger.config.ts` additionally syncs `DB_APP_NAME`, `TRIGGER_DEV_ENABLED`, and the
66+
`FUNCTION_EXECUTION_ENV` vars. The repo cannot see what the dashboard holds.
6767

6868
So before replacing a worker's HTTP call to our own API with an in-process call, ask what env
6969
that work reads *on the app side*. Anything gated by a `require*Capability` helper is the sharp
7070
case: those **throw** when the variable is absent (`requireOAuthClientCapability`
7171
`EnvCapabilityConfigurationError`), and the throw may be caught and reported as something
72-
unrelated. OAuth token refresh is the known example — moving it into the worker turns every
73-
expired credential into `Failed to refresh access token`, while a still-valid token hides the
74-
bug entirely, so it surfaces hours later and only for whoever's token lapsed first.
72+
unrelated — an in-worker OAuth refresh missing a provider's client pair reports every expired
73+
credential as `Failed to refresh access token`, while a still-valid token hides the bug until it
74+
lapses. The required step before such a conversion is verifying the dashboard env holds every
75+
variable the moved code reads (for OAuth refresh: the `OAUTH_CLIENT_CAPABILITIES` key pairs in
76+
`packages/deployment-config/src/env-capabilities.ts`).
7577

7678
An in-process conversion is safe when the same work already runs in that runtime (the agent
7779
block has always called `executeProviderRequest` in-process, so router and evaluator joining it
78-
is proven), or when the caller and the callee are both the app (a route calling a lib module, an
79-
RSC prefetch reading the data layer). It is not safe on reasoning alone.
80+
is proven; connector sync refreshing OAuth tokens in-worker is what proved credential-token
81+
resolution could move in-process), or when the caller and the callee are both the app (a route
82+
calling a lib module, an RSC prefetch reading the data layer). It is not safe on reasoning
83+
alone — verify the env, then convert.
8084

8185
## Feature Organization
8286

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.agents/skills/add-permission-group-item
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../.agents/skills/validate-permission-group-item

.devcontainer/post-create.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ fi
9494
# Generate schema and run database migrations
9595
echo "🗃️ Running database schema generation and migrations..."
9696
echo "Generating schema..."
97-
cd apps/sim
98-
bunx drizzle-kit generate
97+
cd packages/db
98+
bun run db:generate
9999
cd ../..
100100

101101
echo "Waiting for database to be ready..."
@@ -105,8 +105,8 @@ echo "Waiting for database to be ready..."
105105
while [ $timeout -gt 0 ]; do
106106
if PGPASSWORD=postgres psql -h db -U postgres -c '\q' 2>/dev/null; then
107107
echo "Database is ready!"
108-
cd apps/sim
109-
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio bunx drizzle-kit push
108+
cd packages/db
109+
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio bun run db:push
110110
cd ../..
111111
break
112112
fi

.devcontainer/sim-commands.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
alias sim-start="cd /workspace && bun run dev:full"
88
alias sim-app="cd /workspace && bun run dev"
99
alias sim-sockets="cd /workspace && bun run dev:sockets"
10-
alias sim-migrate="cd /workspace/apps/sim && bunx drizzle-kit push"
11-
alias sim-generate="cd /workspace/apps/sim && bunx drizzle-kit generate"
10+
alias sim-migrate="cd /workspace/packages/db && bun run db:push"
11+
alias sim-generate="cd /workspace/packages/db && bun run db:generate"
1212
alias sim-rebuild="cd /workspace && bun run build && bun run start"
1313
alias docs-dev="cd /workspace/apps/docs && bun run dev"
1414

NOTICE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
Sim Studio
22
Copyright 2026 Sim Studio
33

4-
This product includes software developed for the Sim project.
4+
This product includes software developed for the Sim project.

apps/desktop/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,10 @@
5050
"@sim/tsconfig": "workspace:*",
5151
"@types/micromatch": "4.0.10",
5252
"@types/node": "24.2.1",
53-
"electron": "43.5.0",
53+
"electron": "43.4.1",
5454
"electron-builder": "26.15.3",
5555
"esbuild": "0.28.1",
56+
"jsdom": "^26.0.0",
5657
"typescript": "^7.0.2",
5758
"vitest": "^4.1.0"
5859
}

apps/docs/app/global.css

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ body {
5454
nominally references; loading a webfont here would make docs the odd one out, not the
5555
aligned one. If the app ever wires that font up for real, add the var back in both
5656
places at once. */
57-
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
58-
"Courier New", monospace;
57+
--font-mono:
58+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
59+
monospace;
5960
}
6061

6162
/* Pure white light mode background */
@@ -243,14 +244,16 @@ body {
243244

244245
/* Font family utilities */
245246
.font-sans {
246-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
247-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
247+
font-family:
248+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
249+
Roboto, "Helvetica Neue", Arial, sans-serif;
248250
}
249251

250252
/* Platform UI font — Season Sans, used by the chip chrome to match the main app */
251253
.font-season {
252-
font-family: var(--font-season), system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial,
253-
"Noto Sans", sans-serif;
254+
font-family:
255+
var(--font-season), system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
256+
sans-serif;
254257
}
255258

256259
:root {
@@ -445,8 +448,9 @@ html #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"])
445448
padding: 5px 0.5rem !important; /* 30px tall overall — the app's chip pill, at its px-2 */
446449
font-weight: 400 !important;
447450
border-radius: 0.5rem !important; /* platform rounded-lg */
448-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
449-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
451+
font-family:
452+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
453+
Roboto, "Helvetica Neue", Arial, sans-serif !important;
450454
}
451455

452456
/* Sidebar text — platform --text-body */
@@ -904,8 +908,9 @@ video {
904908
#nd-page:has(.api-page-header) div:not(.font-mono),
905909
#nd-page:has(.api-page-header) label:not(.font-mono),
906910
#nd-page:has(.api-page-header) button:not(.font-mono) {
907-
font-family: var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
908-
"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
911+
font-family:
912+
var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
913+
Roboto, "Helvetica Neue", Arial, sans-serif;
909914
}
910915

911916
/* Method badge pills — shared background colors (page + sidebar) */

0 commit comments

Comments
 (0)