Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: simstudioai/sim
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.6.82
Choose a base ref
...
head repository: simstudioai/sim
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.6.83
Choose a head ref
  • 2 commits
  • 5 files changed
  • 2 contributors

Commits on May 16, 2026

  1. feat(redis): TLS SNI override for IP-based REDIS_URL + zod schema fix…

    …es (#4635)
    
    * feat(redis): allow TLS SNI override for IP-based REDIS_URL
    
    When trigger.dev's hosted workers reach our ElastiCache via PrivateLink,
    their REDIS_URL contains the VPCE-assigned IP, not a DNS name. Default
    ioredis TLS verification fails because the ElastiCache cert is issued for
    the cluster's DNS, not the IP.
    
    Add REDIS_TLS_SERVERNAME env var; when REDIS_URL is rediss:// + IP host,
    pass `tls: { servername }` to ioredis so cert hostname verification
    matches against the DNS name instead. Throws at client construction if
    REDIS_TLS_SERVERNAME is unset in this scenario (fail fast — no silent
    TLS bypass).
    
    No-op for in-VPC connections (DNS host), so the always-on Sim app keeps
    using default verification.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    
    * fix(confluence-schemas): expose extendable bases before .superRefine
    
    confluenceCommentScopedSchema and confluenceBlogPostScopedSchema were
    built with .extend(...).superRefine(...). superRefine returns a
    ZodEffects which has no .extend method, so the three downstream
    .extend() calls (confluenceUpdateCommentBodySchema,
    confluenceGetBlogPostBodySchema, confluenceUpdateBlogPostBodySchema)
    threw at module-init time.
    
    Next.js lazy-loads route code per-request and never executed this
    top-level chain, hiding the issue. Trigger.dev's bundler eagerly
    evaluates all task-reachable modules at startup, which is why the
    trigger.dev deploy surfaced it as "confluenceCommentScopedSchema.extend
    is not a function" across every background task that transitively
    imports this file.
    
    Fix: introduce un-superRefined base schemas and use them as the .extend
    target downstream; apply superRefine after each .extend so validation
    behavior is preserved for every consumer.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    
    * fix(storage-transfer): use z.string().url() for Zod 3 compat
    
    z.url() is Zod 4 top-level syntax. The hoisted node_modules/zod
    resolves to v3.25.76 (despite apps/sim/package.json declaring 4.3.6 —
    a workspace resolution conflict), so z.url is undefined at runtime.
    
    Trigger.dev's bundler eagerly evaluates all task-reachable modules at
    startup and hits this with `external_exports.url is not a function`.
    Next.js dev only evaluates routes per-request so the call site never
    fires.
    
    Quick fix: revert to the chained .string().url() form which works on
    both Zod 3 and Zod 4 (deprecated in 4 but still supported). The
    underlying version-resolution conflict is a separate cleanup.
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    
    * fix(mongodb-schemas): expose extendable base before .refine
    
    mongoConnectionBodySchema was built with z.object(...).refine(...). Five
    downstream schemas (mongodbQueryBodySchema, mongodbExecuteBodySchema,
    mongodbInsertBodySchema, mongodbUpdateBodySchema, mongodbDeleteBodySchema)
    .extend() that result, which threw at module-init in the trigger.dev
    bundle (same root cause as the confluence and storage-transfer fixes:
    .refine returns ZodEffects with no .extend method, and the resolved
    zod is v3 even though package.json declares v4).
    
    Fix: keep the un-refined mongoConnectionBaseSchema for downstream
    .extend() targets. The pairing-validation refine isn't reattached
    because the downstream extensions were never actually evaluating it
    (module init threw before they could).
    
    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    
    * fix(redis,mongodb): address PR review comments
    
    - redis.ts: move resolveTlsOptions call outside the try/catch in
      getRedisClient so config errors surface instead of being swallowed
      into a silent null return.
    - mongodb.ts: re-attach mongoUsernamePasswordPaired .refine after each
      of the five downstream .extend()s. Mirrors the confluence pattern
      and restores the pairing constraint that the original chain dropped.
    
    ---------
    
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    TheodoreSpeaks and claude authored May 16, 2026
    Configuration menu
    Copy the full SHA
    bd9e692 View commit details
    Browse the repository at this point in the history

Commits on May 17, 2026

  1. v0.6.83: redis TLS SNI override for IP-based REDIS_URL, zod schema fixes

    v0.6.83: redis TLS SNI override for IP-based REDIS_URL, zod schema fixes
    TheodoreSpeaks authored May 17, 2026
    Configuration menu
    Copy the full SHA
    dbe8e51 View commit details
    Browse the repository at this point in the history
Loading