feat(code): cli sandboxes, enterprise timeouts, secrets projections, resolver lift, workflow exec cancellations - #6247
feat(code): cli sandboxes, enterprise timeouts, secrets projections, resolver lift, workflow exec cancellations#6247icecrasher321 wants to merge 41 commits into
Conversation
…lver # Conflicts: # apps/sim/components/settings/navigation.test.ts # apps/sim/components/settings/navigation.ts # apps/sim/providers/index.test.ts
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 35640005 | Triggered | Generic Password | 1a7c79b | apps/desktop/src/main/browser-import/import-service.test.ts | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryHigh Risk Overview Execution policy and cleanup add Enterprise-configurable async workflow timeouts (up to seven days), the async-only Secrets and provenance are documented and enforced across integrations/tools: opt-in Smaller contract fixes include distinct execution attachment keys for multipart uploads, upload receipt tokens on batch presigned URLs, and aligned OpenAPI/docs for async timeout headers and storage CORS (GCS/Azure). Reviewed by Cursor Bugbot for commit 7636c7d. Configure here. |
Greptile SummaryThis PR centralizes execution-time placeholder and secret handling while expanding sandbox, timeout, and cancellation capabilities.
Confidence Score: 5/5The PR appears safe to merge within the scope of this follow-up review. No blocking failure remains in the eligible follow-up review scope.
|
| Filename | Overview |
|---|---|
| apps/sim/executor/variables/resolver.ts | Centralizes code-context resolution while preserving environment placeholders for execution-boundary compilation. |
| apps/sim/lib/execution/code-placeholders/index.ts | Introduces the shared JavaScript, Python, and Shell placeholder-compilation boundary. |
| apps/sim/lib/execution/remote-sandbox/cli-tools.server.ts | Defines pinned, checksum-verified server-side installation recipes for managed sandbox CLIs. |
| apps/sim/lib/billing/execution-timeout-defaults.ts | Resolves plan and Enterprise-specific execution timeout policies. |
| apps/sim/app/api/workflows/[id]/executions/[executionId]/cancel/route.ts | Coordinates durable cancellation state, backend job cancellation, local aborts, resumed executions, and terminal event publication. |
| apps/sim/lib/core/async-jobs/backends/trigger-dev.ts | Adds execution-scoped Trigger.dev cancellation using tags and payload verification. |
| packages/db/schema.ts | Adds persisted metadata supporting configurable Enterprise execution limits and related sandbox behavior. |
Sequence Diagram
sequenceDiagram
participant Client
participant API as Execution API
participant Policy as Timeout Policy
participant Queue as Async Backend
participant Executor
participant Sandbox
participant Projection as Secret Projection
Client->>API: Start workflow
API->>Policy: Resolve account and request timeout
Policy-->>API: Effective deadline
API->>Queue: Enqueue execution with deadline
Queue->>Executor: Run workflow
Executor->>Sandbox: Execute Function or Shell with managed CLIs
Sandbox-->>Executor: Block output
Executor->>Projection: Sanitize traces and model-visible output
Projection-->>Client: Stream projected result
Client->>API: Cancel execution
API->>Queue: Cancel queued or running job
API->>Executor: Signal local or resumed execution
Reviews (14): Last reviewed commit: "run from block ui disabling" | Re-trigger Greptile
|
@cursor review |
|
@cursor review |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 8558c19. Configure here.
…lver # Conflicts: # apps/sim/executor/handlers/agent/agent-handler.ts # apps/sim/lib/copilot/vfs/workspace-vfs.ts # apps/sim/tools/generated/tool-metadata.ts # apps/sim/tools/generated/tool-outputs.ts
…lver # Conflicts: # apps/docs/content/docs/en/workflows/blocks/function.mdx # apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/panel/components/editor/components/sub-block/components/code/code.tsx # apps/sim/lib/copilot/request/tools/executor.test.ts # apps/sim/tools/generated/tool-metadata.ts
|
bugbot run |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 7636c7d. Configure here.
| updatedAt: new Date(), | ||
| }) | ||
| .where(and(staleProcessingPredicate, inArray(asyncJobs.id, candidates))) | ||
| .returning({ id: asyncJobs.id }) |
There was a problem hiding this comment.
Unsafe batched cleanup subquery locking
High Severity
runBatchedMutation and deployment pruning embed SELECT ... LIMIT ... FOR UPDATE SKIP LOCKED inside WHERE id IN (...). PostgreSQL can re-execute that IN subquery as a join, so LIMIT is not reliably single-evaluated. Batches can return more rows than requested, trip the oversized-batch throw, abort the rest of that cleanup section, and make short pages an unreliable exhaustion signal. Workflow cleanup already avoids this with an explicit transaction.
Additional Locations (2)
Reviewed by Cursor Bugbot for commit 7636c7d. Configure here.


Summary
Type of Change
Testing
Tested manually with @Sg312
Checklist