* improvement(billing): improve against direct subscription creation bypasses
* more usage of block/unblock helpers
* address bugbot comments
* fail closed
* only run dup check for orgs
* fix(executor): use performance.now() for precise block timing
Replace Date.now() with performance.now() for timing measurements in
the executor to provide sub-millisecond precision. This fixes timing
discrepancies with fast-executing blocks like the start block where
millisecond precision was insufficient.
Changes:
- block-executor.ts: Use performance.now() for block execution timing
- engine.ts: Use performance.now() for overall execution timing
Co-authored-by: emir <emir@simstudio.ai>
* format ms as whole nums,round secs to 2 decimal places and compute all started/ended times on server and passback to clinet
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: waleed <walif6@gmail.com>
* feat(tools): added calcom
* added more triggers, tested
* updated regex in script for release to be more lenient
* fix(tag-dropdown): performance improvements and scroll bug fixes
- Add flatTagIndexMap for O(1) tag lookups (replaces O(n²) findIndex calls)
- Memoize caret position calculation to avoid DOM manipulation on every render
- Use refs for inputValue/cursorPosition to keep handleTagSelect callback stable
- Change itemRefs from index-based to tag-based keys to prevent stale refs
- Fix scroll jump in nested folders by removing scroll reset from registerFolder
- Add onFolderEnter callback for scroll reset when entering folder via keyboard
- Disable keyboard navigation wrap-around at boundaries
- Simplify selection reset to single effect on flatTagList.length change
Also:
- Add safeCompare utility for timing-safe string comparison
- Refactor webhook signature validation to use safeCompare
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* updated types
* fix(calcom): simplify required field constraints for booking attendee
The condition field already restricts these to calcom_create_booking,
so simplified to required: true. Per Cal.com API docs, email is optional
while name and timeZone are required.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* added tests
* updated folder multi select, updated calcom and github tools and docs generator script
* updated drag, updated outputs for tools, regen docs with nested docs script
* updated setup instructions links, destructure trigger outputs, fix text subblock styling
* updated docs gen script
* updated docs script
* updated docs script
* updated script
* remove destructuring of stripe webhook
* expanded wand textarea, updated calcom tools
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
* feat(timeout): add timeout subblock to the api block
* fix(timeout): honor timeout config for internal routes and fix type coercion
- Add AbortController support for internal routes (/api/*) to honor timeout
- Fix type coercion: convert string timeout from short-input to number
- Handle NaN gracefully by falling back to undefined (default timeout)
Fixes#2786Fixes#2242
* fix: remove redundant clearTimeout in catch block
* fix: validate timeout is positive number
Negative timeout values would cause immediate request abort since
JavaScript treats negative setTimeout delays as 0.
* update docs image, update search modal performance
* removed unused keywords type
* ack comments
* cleanup
* fix: add default timeout for internal routes and validate finite timeout
- Internal routes now use same 5-minute default as external routes
- Added Number.isFinite() check to reject Infinity values
* fix: enforce max timeout and improve error message consistency
- Clamp timeout to max 600000ms (10 minutes) as documented
- External routes now report timeout value in error message
* remove unused code
* fix(child-workflow): must bypass hiddenFromDisplay config
* fix passing of spans to be in block log
* keep fallback for backwards compat
* fix error message formatting
* clean up
* fix(docs): update requirements to be more accurate for deploying the app
* updated kb to support 1536 dimension vectors for models other than text embedding 3 small
* fix(storage): support Azure connection string for presigned URLs
* fix(kb): update test for embedding dimensions parameter
* fix(storage): align credential source ordering for consistency
* fix(security): restrict API key access on internal-only routes
* test(security): update function execute tests for checkInternalAuth
* updated agent handler
* move session check higher in checkSessionOrInternalAuth
* extracted duplicate code into helper for resolving user from jwt
* feat(blog): v0.5 post
* improvement(blog): simplify title and remove code block header
- Simplified blog title from "Introducing Sim Studio v0.5" to "Introducing Sim v0.5"
- Removed language label header and copy button from code blocks for cleaner appearance
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* ack PR comments
* small styling improvements
* created system to create post-specific components
* updated componnet
* cache invalidation
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>