Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Merged
Changes from 1 commit
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
f62d274
fix(mothership): stabilize task sidebar ordering on selection (#4309)
waleedlatif1 Apr 27, 2026
74946fb
improvement(docker): speed up app image build with cache mounts and p…
waleedlatif1 Apr 27, 2026
896a00a
fix(security): require internal API key for copilot training endpoint…
waleedlatif1 Apr 27, 2026
8266f0a
fix(security): rate limit chat OTP + validate mothership proxy endpoi…
waleedlatif1 Apr 27, 2026
2502369
feat(integrations): SAP S/4HANA (#4301)
waleedlatif1 Apr 27, 2026
ca814f0
fix(ui): display file upload error messages (#4315)
TheodoreSpeaks Apr 27, 2026
c95ac3b
improvement(browser-use,stagehand): expose live session URLs (#4314)
waleedlatif1 Apr 28, 2026
154b9d0
fix(vm): categorize user or server side errors (#4283)
TheodoreSpeaks Apr 28, 2026
2e3de9a
feat(governance): external workspace users from outside org (#4313)
icecrasher321 Apr 28, 2026
c400e59
feat(sap_s4hana): add get_material_document and fix supplier invoice …
waleedlatif1 Apr 28, 2026
3afcad2
fix(short-input): hide selected text to prevent overlay collision (#4…
octo-patch Apr 28, 2026
69dc2f0
fix(mcp): Use SDK web-standard transport for copilot mcp (#4320)
TheodoreSpeaks Apr 28, 2026
dc20229
perf(docker): use turbo prune for app.Dockerfile (#4322)
waleedlatif1 Apr 28, 2026
6a7d5ae
feat(files): extract PDF viewer behind SSR boundary and polish file p…
waleedlatif1 Apr 28, 2026
ceb7d20
fix(docker): use full bun.lock + bump deprecated GHA actions (#4323)
waleedlatif1 Apr 28, 2026
feeb0a8
fix(workflow): throw 4xx on variable resolution failures (#4325)
TheodoreSpeaks Apr 28, 2026
18a559b
fix(copilot): use different chats for different workflows (#4324)
TheodoreSpeaks Apr 28, 2026
9ac73bb
fix(billing): gate org billing query to invite modal open state and a…
waleedlatif1 Apr 29, 2026
3784f54
fix(table): return 400 instead of 500 on empty batch insert (#4329)
waleedlatif1 Apr 29, 2026
ed206ed
feat(table): expose position parameter for row insertion via copilot …
waleedlatif1 Apr 29, 2026
9a4cd95
feat(logs): trace span tree rewrite with resizable split, provider ic…
waleedlatif1 Apr 29, 2026
7f12a13
fix(knowledge): skip sync and document processing when KB is deleted …
waleedlatif1 Apr 29, 2026
7b55e60
improvement(sap_s4hana): use MERGE for OData v2 updates and enlarge i…
waleedlatif1 Apr 29, 2026
e2ded16
fix(snapshot): stop markdown preview auto-scroll during patch streams…
waleedlatif1 Apr 29, 2026
ed7786d
fix(ui): adjust docx and code rendering (#4334)
TheodoreSpeaks Apr 29, 2026
61342e2
fix(notion): correctly register tool (#4337)
icecrasher321 Apr 29, 2026
52c93d4
improvement(docs): soften video hover opacity (#4339)
waleedlatif1 Apr 29, 2026
94f5411
fix(files): streaming preview invariant + OOXML style extraction (#4335)
waleedlatif1 Apr 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
perf(docker): use turbo prune for app.Dockerfile (#4322)
* perf(docker): refactor app.Dockerfile to use turbo prune

Replaces manual workspace package.json copies with `turbo prune sim --docker`,
matching the canonical Vercel/Turborepo monorepo pattern (and the existing
realtime.Dockerfile).

- New `pruner` stage emits `out/json` (manifests + lockfile) and `out/full`
  (sources) for only the packages sim actually depends on.
- `deps` stage installs from the pruned manifest, so cache invalidates only
  when package.json/bun.lock change — not on source edits.
- Drops 24 lines of brittle manual COPYs (one per workspace package).
- Single full install in deps (no --omit=dev) so build-time devDeps like
  tailwindcss/postcss are available — replaces the earlier hotfix that did
  a second install in the builder stage.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* chore(docker): pin turbo to 2.9.6 in pruner stage

Match the version locked in package.json so pruner output is reproducible
across builds.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
  • Loading branch information
waleedlatif1 and claude authored Apr 28, 2026
commit dc20229954680726822976f86b4073ea3efe09e6
83 changes: 24 additions & 59 deletions 83 docker/app.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -11,44 +11,35 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
&& curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get install -y nodejs

# ========================================
# Pruner Stage: Emit a minimal monorepo subset that sim depends on
# ========================================
FROM base AS pruner
WORKDIR /app

RUN bun install -g turbo@2.9.6

COPY . .

RUN turbo prune sim --docker

# ========================================
# Dependencies Stage: Install Dependencies
# ========================================
FROM base AS deps
WORKDIR /app

COPY package.json bun.lock turbo.json ./
RUN mkdir -p apps \
packages/audit \
packages/db \
packages/logger \
packages/realtime-protocol \
packages/security \
packages/testing \
packages/tsconfig \
packages/utils \
packages/workflow-authz \
packages/workflow-persistence \
packages/workflow-types
COPY apps/sim/package.json ./apps/sim/package.json
COPY packages/audit/package.json ./packages/audit/package.json
COPY packages/db/package.json ./packages/db/package.json
COPY packages/logger/package.json ./packages/logger/package.json
COPY packages/realtime-protocol/package.json ./packages/realtime-protocol/package.json
COPY packages/security/package.json ./packages/security/package.json
COPY packages/testing/package.json ./packages/testing/package.json
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json
COPY packages/utils/package.json ./packages/utils/package.json
COPY packages/workflow-authz/package.json ./packages/workflow-authz/package.json
COPY packages/workflow-persistence/package.json ./packages/workflow-persistence/package.json
COPY packages/workflow-types/package.json ./packages/workflow-types/package.json

# Install dependencies, then rebuild isolated-vm for Node.js
# Use --linker=hoisted for flat node_modules layout (required for Docker multi-stage builds)
# JOBS=4 caps node-gyp parallelism — higher values OOM isolated-vm (laverdet/isolated-vm#428)
# Pruned manifests + lockfile from the pruner stage. This layer only invalidates
# when package.json/bun.lock content changes — not on source edits.
COPY --from=pruner /app/out/json/ ./
COPY --from=pruner /app/out/bun.lock ./bun.lock

# Install all dependencies (including devDependencies — tailwindcss/postcss are
# devDeps but required at build time). Then rebuild isolated-vm against Node.js.
# JOBS=4 caps node-gyp parallelism — higher values OOM isolated-vm (laverdet/isolated-vm#428).
RUN --mount=type=cache,id=bun-cache,target=/root/.bun/install/cache \
--mount=type=cache,id=npm-cache,target=/root/.npm \
HUSKY=0 bun install --omit=dev --ignore-scripts --linker=hoisted && \
HUSKY=0 bun install --ignore-scripts --linker=hoisted && \
cd node_modules/isolated-vm && JOBS=4 npx node-gyp rebuild --release

# ========================================
Expand All @@ -58,37 +49,11 @@ FROM base AS builder
ARG TARGETPLATFORM
WORKDIR /app

# Install turbo globally (cached for fast reinstall)
RUN --mount=type=cache,id=bun-cache,target=/root/.bun/install/cache \
bun install -g turbo

# Copy node_modules from deps stage (cached if dependencies don't change)
COPY --from=deps /app/node_modules ./node_modules

# Copy package configuration files (needed for build)
COPY package.json bun.lock turbo.json ./
COPY apps/sim/package.json ./apps/sim/package.json
COPY packages/audit/package.json ./packages/audit/package.json
COPY packages/db/package.json ./packages/db/package.json
COPY packages/logger/package.json ./packages/logger/package.json
COPY packages/realtime-protocol/package.json ./packages/realtime-protocol/package.json
COPY packages/security/package.json ./packages/security/package.json
COPY packages/testing/package.json ./packages/testing/package.json
COPY packages/tsconfig/package.json ./packages/tsconfig/package.json
COPY packages/utils/package.json ./packages/utils/package.json
COPY packages/workflow-authz/package.json ./packages/workflow-authz/package.json
COPY packages/workflow-persistence/package.json ./packages/workflow-persistence/package.json
COPY packages/workflow-types/package.json ./packages/workflow-types/package.json

# Copy workspace configuration files (needed for turbo)
COPY apps/sim/next.config.ts ./apps/sim/next.config.ts
COPY apps/sim/tsconfig.json ./apps/sim/tsconfig.json
COPY apps/sim/tailwind.config.ts ./apps/sim/tailwind.config.ts
COPY apps/sim/postcss.config.mjs ./apps/sim/postcss.config.mjs

# Copy source code (changes most frequently - placed last to maximize cache hits)
COPY apps/sim ./apps/sim
COPY packages ./packages
# Copy pruned source tree (apps/sim + workspace packages it depends on)
COPY --from=pruner /app/out/full/ ./

ENV NEXT_TELEMETRY_DISABLED=1 \
VERCEL_TELEMETRY_DISABLED=1 \
Expand Down Expand Up @@ -164,4 +129,4 @@ EXPOSE 3000
ENV PORT=3000 \
HOSTNAME="0.0.0.0"

CMD ["bun", "apps/sim/server.js"]
CMD ["bun", "apps/sim/server.js"]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.