Changelog
Every new feature, improvement, and fix in Sim, the open-source AI workspace, with release notes straight from GitHub.
Features
- feat(embeddings): add OpenRouter support
Improvements
- perf(ci): scope the Docker layer cache per image and platform
- perf(ci): build the app image on 16 vCPU and keep the toolchain out of it
Bug Fixes
- fix(idempotency): use compatible PostgreSQL JSON operations
- fix(chat): autosize long prompts in the composer
- fix(docker): ship libvips so sharp can actually load at runtime
Other Changes
- chore(skills): remove the unused skills-lock.json
Features
- feat(library): What Is an Agentic Workflow? (And How It's Different From Automation)
Bug Fixes
- fix(landing): load sharp lazily so a missing native binary can't 500 /blog and /library
- fix(env): assign window.__ENV directly instead of queueing it
- fix(provenance): name the importer that condemned a run
- fix(provenance): feature flagged, inexact sidecars
- fix(files): stop validating .jsonl as single-document JSON
Other Changes
- test(provenance): cover the enforced branch of the agent memory surface
v0.7.66
Improvements
- improvement(url-state): use nuqs setters and derive state instead of mirroring it
- improvement(emails): funnel every sender through the shared render and subject layer
Bug Fixes
- fix(invite): hold the loading state until the stored token resolves
- fix(provenance): report why a projection was refused, at the point of refusal
- fix(auth): stop offering account creation when registration is disabled
Other Changes
- chore(deps): drop the archived image-size dependency
v0.7.65
Improvements
- improvement(emails): align the email design tokens with the platform design system
Bug Fixes
- fix(provenance): record why a resolved-secret registry became incomplete
- fix(execution): give each execution file a unique storage key
- fix(emails): align the schedule-disabled email with the standard template rhythm
Features
- feat(snowflake): credential-based auth, object pickers, and 9 new operations
- feat(mship): mship sysprompt override
- feat(library): Best AI Agent Platforms for Enterprise Teams in 2026
- feat(pi): add plan mode
- feat(integrations): add Snowflake PAT integration
- feat(mintlify): add Mintlify integration
- feat(library): Best AI Agents for Customer Support Ticket Triage and Routing
- feat(demo): fire the X conversion event when a demo is booked
- feat(workspaces): pin workspaces and widen the switcher to six rows
- feat(dynatrace): add the write and configuration surfaces
- feat(dynatrace): add the Dynatrace integration
Improvements
- improvement(copilot): bound image decode work on the VFS file read path
- refactor(tiktok): align webhook routing with shared dispatcher
- refactor(instagram): align publishing with codebase patterns
- improvement(ui): consolidate the disclosure chevron and order resource menus like the sidebar
- improvement(files): extend the OOXML size limits to the client previews
- improvement(execute): reuse the resolved workspace access and dedupe export failures
- improvement(files): share bubble-menu chrome and stabilize shouldShow
- improvement(api): share the API key workspace policy messages and align MCP discover
- improvement(files): harden untrusted document preview and parsing
- improvement(file-parsers): bound PDF text extraction
- improvement(execute): enforce workspace permissions on function file exports
- improvement(chat): rename "Branch in new chat" to "Fork in new chat"
- improvement(ci): run the CodeQL cron weekly and cancel superseded scans
- improvement(ui): unbold the app, align the folder chevron, tidy the feedback modal
- improvement(provenance): cleanup secrets boundary
- improvement(admin): move user row actions into an overflow menu with confirm modals
- improvement(mship): questions improvement
Bug Fixes
- fix(snowflake): drop the oversized credential modal help text
- fix(og): read OG fonts from the repo instead of fetching Google Fonts at build
- fix(condition): stop shipping all block outputs in every evaluation
- fix(pi): compact cloud event streams before sandbox retention
- fix(dynatrace): send the only unmute reason the API accepts and request the detail fields the tools map
- fix(uploads): bound the HEIF fallback decode by declared pixels, not just bytes
- fix(knowledge): stop listing workspace knowledge bases on stale creator identity
- fix(files): stop rejecting ordinary HTML documents at the parser limits
- fix(knowledge): validate tag slots and share the tag-name length limit
- fix(file-parsers): stop deleting non-BMP characters when sanitizing parsed text
- fix(cli): validate each install secret against its own requirement
- fix(inbox): disable the inbox atomically and simplify its webhook tests
- fix(webhooks): drop the AgentMail-specific webhook body cap
- fix(files): make the rich-markdown-field container a positioning context
- fix(cli): generate per-install secrets instead of using fixed values
- fix(files): pin editor bubble menus to the cursor during scroll
- fix(webhooks): resolve the AgentMail tenant before verifying the signature
- fix(files): bound HTML parser input before building the DOM
- fix(files): escape user filenames in the Content-Disposition header
- fix(mcp): apply the workspace personal API key setting to MCP serve auth
- fix(webhooks): centralize the path-delivery rule for trigger providers
- fix(knowledge): apply knowledge-base access checks consistently across auth types
- fix(files): anchor the editor bubble menus to the selection on scroll
- fix(docs): stop the pinned sidebar running under the site footer
- fix(provenance): stop short secret values from rewriting unrelated log text
- fix(tables): keep row context menu labels on one line
- fix(files): read the Files prefetch from the data layer and bound invitation previews
- fix(mship): return the chat connect flow to the tab that started it
- fix(workspaces): give the pin and options button one shared slot
- fix(agent): overly broad check for secrets protection
- fix(files): stop the file-viewer image reshift on open
- fix(chunkers): preserve FAQ prose in docs chunks
- fix(providers): stop reporting an absent Ollama as an error
- fix(jsm): accept the numeric pagination the JSM tools actually send
Other Changes
- chore(snowflake): drop the local write caps in favor of the shared limit
- chore(pi): organize mode implementations
- test(triggers): guard the provider granularity the path route depends on
Features
- feat(smartlead): add Smartlead integration
- feat(files): preview HEIC photos in the file viewer
- feat(files): let the agent read HEIC photos
- feat(embeddings): multi-provider Embeddings block on a shared core
- feat(mship): async runs- #6329
- feat(admin): provision a user with an emailed password reset instead of a set password
Improvements
- perf(ci): parallelize repo audits, guard env-dependent tests, and fix the docs generator
- improvement(linter): mship linter
- perf(typecheck): run the native TypeScript 7 compiler
- improvement(sandbox): exempt caller-consumed streams from the output retention budget
Bug Fixes
- fix(chat): keep the composer remove badge anchored and align chip tokens
- fix(files): render HTML files shared via a public file link
- fix(chat): render HEIC attachments and restyle composer file chips
- fix(mship): fix image handling
- fix(tooltip): dismiss floating tooltip when its trigger is hidden without pointer events
- fix(scripts): make the specifier audit path-separator agnostic
- fix(chat): stop classifying secret-free binary sandbox exports as unknown
- fix(utils): drop the .js specifiers Turbopack cannot resolve
- fix(files): bound the HEIF fallback decode input
- fix(search): restore cmd+k autofocus on the search input
- fix(tables): resolve active selector before schema enrichment
- fix(chat): stop chats storing a resource they can never send with
- fix(deployment): prevent trigger registry initialization crash
- fix(files): render audio and video stored as application/octet-stream
- fix(scripts): make the sql Date-binding audit precise and crash-proof
- fix(logger): never let structured serialization throw into the caller
- fix(logger): stop a server-side jsdom window from silencing all logging in production
- fix(uploads): drop the stray 'use server' directive that enables Server Actions app-wide
- fix(observability): attach the real cause at three error-swallowing sites
- fix(db): bind every raw-sql Date through its column encoder
- fix(knowledge): align document tag provenance selections with the serialized request
- fix(billing): stop the false unbilled-charge error on zero-cost runs
- fix(cron): bind stale async-job cutoffs through the column encoder
Other Changes
- docs(sso): correct callback host and issuer guidance, document Entra SAML and IdP-initiated behavior
v0.7.61
Bug Fixes
- fix(sso): show the saved client secret as a masked fact with an explicit Replace action
- fix(tables): stop row writes 500ing on a column outside the table schema
- fix(memory): provenance checks