0.16.0
Release notes
Apr 6, 2025

New LLM Module

We've added a new native module for interacting with LLMs, like OpenAI and Groq. It uses the new user traces system to give a live feed of tokens and tool call information. It is an almost direct mapping of the OpenAI completions API, but with some additional validation added, as well as an implicit loop when using tools.

User traces

We've introduced a new subsystem; user traces. It is a way for user code to produce comprehensive execution traces with the information they desire, which is updated live, and enables for examples streaming tokens from an LLM, directly to the editor. It also support displaying structured data as JSON, and more visualization options will be added in the future.

Secrets and variables

Midio now supports setting secrets and variables in a project! You can set and manage them in the Settings module. Currently the only secrets we support are bearer tokens in HTTP requests. Secrets are encrypted, and will never pass through the Midio runtime in clear text. Environment variables are not encrypted.

We currently support two environments; Development and Production. Variables and secrets set in the Development environment will be used when running code in the editor. For deployed applications variables and secrets set in the Production environment will be used.

Standard Library cleanups

A lot of functions, modules and properties in the standard library has been renamed or moved, to make them more uniform and logical. Some existing projects might break because of this. Contact us if you experience this and need help fixing your project.

Bugs

  • Fixed edge case in parser that would reject certain kinds of data properties in functions.
  • Fixed bug in equality and inequality operators in expressions which didn't perform deep equality check correctly.
  • Fixed missing pointer capture when dragging the popout text editor.
  • Functions from transitive dependencies are no longer instantable, and don't show up in the dependencies panel.
  • Made it possible to install dependencies even though they are already transitive dependencies.
  • Lots of bug fixes related to the text editor on node inputs.
  • Panels closed by the user will no longer automatically be reopened on refresh.
  • Node palette items now capture double-clicking the item.
  • Fixed type selection in the text editor not working if the text was empty.
  • Fixed that users had to press backspace twice in Firefox to delete text.

Misc

  • Added a 'go to definition' button in node toolbar for instances of user defined functions
  • Made combo box input on nodes look nice.
  • Made range slider input on nodes look nice.
  • Made text input in on nodes wrap when the text is long enough.
  • Added a dropdown menu to change function inputs and outputs
  • Traces from events and forked processes are now reported correctly.
  • The project overview in the left side bar god a visual upgrade.
  • Added back and forward navigation buttons to the top left project overview panel.
  • Rearranged items in node headers; name is now left alligned, and the 'execute' button is aligned to the right.
  • The 'goto app' button in the project over panel is now hooked up.
  • Added a 'convert to string' option in the node input type picker. It does a slightly smarter convertion on certain types, so for example a string literal in an expression will have its delimiters removed.
  • Improved look and behavior of some input components like slider, combobox and checkbox.
  • Lots of performance improvements in the editor; working with large node graphs should be a lot smoother.
  • Adds utility function MakeAuthHeader that takes in either BearerToken or String and outputs a map with Authorization HTTP header set.
  • Adds a notifications center where users can view notifications from their entire session.
  • Adds validation and error handling to changing the project name.
  • The editor will now remember the last module and position for each project. This is stored in the localstorage of the browser, so will currently not work between browsers/devices.
  • Added keywords to function/event definitions. This allows for adding keywords to functions/events and getting hits on the keywords in the node palette.
  • Added getting hits on descriptions of functions/events/modules and having them appear in the node palette.
  • Updates packages panel design.
  • You can now choose from several templates when creating a new project.
  • Changed look of instance socket to make it visually distinct from data sockets
  • Added shortcut buttons to docs and the discord community in the bottom left.