Ai-OPs
ai-ops.com
Docs
/
Release Notes
/

Version 1.1

Koios 1.1

ReleaseDateWhat changed
v1.1.6September 14, 2026Expressions and the component canvas
v1.1.5September 11, 2026Service logs
v1.1.4August 8, 2026OPC-UA connections and certificates
v1.1.3July 21, 2026Starting on Kubernetes
Helm chart 1.1.1 and 1.1.2July 21, 2026Chart-only releases, no image change
v1.1.0July 16, 2026The feature release, below

Koios 1.1 lets you calibrate a model binding without retraining, run flat models and newer ONNX files, and wire components to any live entity, with pins and wires laid out per instance. It also introduces the Admin Console, a companion app for watching many Koios instances from one place.

Before you upgrade

  1. From 1.0.x, no volume or service file changes are needed. The first start only adds settings, and existing bindings behave as before.
  2. From 0.10.x, add the secrets volume introduced in 1.0.0 first, or the container will not start. See Migrating to v1.0.0.
  3. Component libraries built with an earlier Component Builder keep loading. Rebuild them with koios-component-builder 1.1 or later to declare pin layouts. See Building Components.

Step-by-step instructions: Upgrading to v1.1.0.

One console watches every instance

The Koios Admin Console is a separate companion app for running many Koios instances. One fleet view shows service health, failures and license state for every instance, and uploads a .lic file to any of them remotely. It ships as its own small image, aiopinc/koios-admin, runs on the same network as your instances, and reaches each one read-only through a scoped access token. It is optional, and changes nothing about how an individual instance runs.

See Admin Console.

A binding calibrates without retraining

Every model binding has a gain and a bias: a straight-line correction applied to the raw tag value, to correct sensor drift, convert engineering units or fine-tune a model's response without retraining or re-uploading the model file. Calibration comes before normalization, so the rest of the binding works in calibrated values. With a non-default gain or bias, min-max and symmetric normalization take custom bounds, since the tag's range describes the raw value. The defaults, a gain of 1 and a bias of 0, leave existing bindings unchanged.

See Assigning Bindings.

Flat models and newer ONNX files load

Koios accepts flat (rank-2) models as well as time-series (rank-3) ones, from ONNX and TFLite, so a scikit-learn classifier or a single-step policy loads without padding or a fake time dimension. The shape is read from the model graph at upload and checked against the file's metadata. A flat model reads its inputs' latest values rather than querying history, so it runs faster at fast scan rates.

ONNX files up to IR version 13, with newer operator sets, now load, and an upload is checked against the runtime that runs inference, so an accepted file always loads. Above IR 13, re-export, or annotate the model with koios-model-utils, which lowers the IR version for you.

See Model Inference Requirements and Managing Model Files.

Components wire to any live entity

A component input can read from devices, AI models, model bindings and scan groups, as well as tags and other components, so a component can react to the state of the system, not just to sensor data. Each entity offers only the fields that make sense for it: a device its status, last-seen time and error code, a model its current prediction, a binding the live value flowing through it. Incompatible data cannot be wired in.

See Component Canvas.

Each instance lays out its own pins and wires

Pin order, gaps and visibility are set per instance, not only per component type: drag pins into a new order, insert gaps to group them, and hide the ones you do not need in a side tray, from which they drag back at any time. The component type supplies the default and your changes layer on top, surviving saves, environment clones and copy and paste. Drag a wire's midpoint to reroute it around others, and double-click it to reset the route.

See Component Canvas.

What else changed

Devices and tags

  • A tag's page lists every model binding that uses it, so you can see what depends on it before you disable or delete it. See Tags.
  • Expression tags and models react to in-memory tag updates as they happen, instead of polling every 10 seconds. A 60-second safety check remains, set by EE_IN_MEMORY_HEARTBEAT_INTERVAL. See Environment Variables.

Models

  • A model's navigation entry draws a ring that fills over its scan rate and pulses when a prediction lands. See Monitoring a Model.
  • Scan rate and sample rate stay linked while they match. Unlink them for a controller that must run faster than its training data was sampled. See Configuring a Model.

Components

  • Invalid wires turn red as you draw them, with the reason, and a failed save highlights the wire, connector or instance at fault. See Component Canvas.
  • The canvas, the engine and the Component Builder check wires against the same rules. A wire that breaks them at run time, such as after a library upgrade, stops its instance with an error naming the pin.
  • A component publishes every output it writes, not only changed values, so expressions, bindings and history react at once. Setting EE_IN_MEMORY_SCAN_RATE=1 to get timely values is no longer needed.
  • The Component Builder declares pin order with inputs_layout and outputs_layout, deprecates order= on pins, and exposes the wire rules for your own tests. See Building Components.
  • .kcl uploads are capped at 500 MiB and refuse unsafe paths, and the Component Builder refuses invalid library names, files outside the library, and dangerous calls made through attribute access. See Component Libraries.
  • Tabs that hold a collection, such as bindings, instances or libraries, show a count, and a red dot when an item has a problem.
  • Charts and live timers follow the server's clock, so a workstation set to the wrong time no longer makes live values look stale. See Trends.

System

  • A banner at the foot of the page names any critical service that is stopped or failing, red when all are down and amber when only some are. See Service Health & Resource Alarms.

Fixes

Models

  • A range or rate-of-change diagnostic no longer flips between triggered and recovered on every scan.
  • Renaming or deleting a model while another change is in flight no longer leaves orphaned history storage behind.
  • Clicking a row's checkbox when adding models to a scan group selects it, instead of cancelling itself out.

Components

  • Canvas selection survives dragging and arrow-key nudges, and arrow-key moves can be undone.

System

  • Each live notification appears once, instead of two to four times.

Service Manifest

ServiceNotable Change
WebappCalibration fields, multi-entity connectors, per-instance pin layouts, custom wire routing, wire contract API, structured canvas validation, dedicated event relay process
UICalibration controls, pin layout editor, wire routing, live prediction ring, scan/sample rate linking, stopped-service banner, server-clock anchoring, tab count badges
Predict engineRank-2 model graph support, fresh-value read path for flat models, per-cycle output publish, debounce fix, cleaner binding error diagnostics, upgraded ONNX runtime (loads IR 13 / newer opsets)
DatacollectorGeneric EtherNet/IP tag-grouping fix
Expression evaluatorEvent-driven IN_MEMORY relay, configurable heartbeat
Component enginePin type mismatch detection, multi-entity dispatch, thread-safety hardening
Component builderSDK v3 pin layout API, shared wire contract, expanded AST analyzer, name and path validation
UtilityCalibration schema, input rank, multi-entity connector enum, safe zip extraction helper
All othersUnchanged from v1.0.2

Patch releases

Helm chart 1.1.1 and 1.1.2

July 21, 2026
  • From the 1.1 line on, every Koios release has a matching Helm chart that defaults to that version, so upgrading on Kubernetes is a chart version bump.
  • Chart 1.1.1 fixes the persistent volume layout that kept 1.1.0 from starting on Kubernetes, and keeps existing data on upgrade.
  • Chart 1.1.2 requires every persistent volume and checks persistence settings at install. Each chart is boot-tested on a live cluster before release.

v1.1.3

July 21, 2026
  • On Kubernetes, the container starts when its persistent volumes are mounted at a parent path, as charts before 1.1.1 mount them. Docker installs are unaffected.

v1.1.4

August 8, 2026
  • Action: If an OPC-UA server rejects a certificate Koios generated before 1.1.4, regenerate it and trust the new one on the server. Certificates the server already accepts keep working. See OPC-UA Certificates.
  • An OPC-UA server that takes more than a second to open a session connects: the device timeout applies to every step of connecting.
  • An uploaded client certificate and key work, and a passphrase-protected key takes its passphrase at upload. A key stored by an earlier version is repaired the first time 1.1.4 starts.
  • Generated certificates carry the client authentication usage servers check for, and are valid from a day before issue to allow for clock differences.
  • An uncertain OPC-UA reading is recorded with its value and reported quality, instead of being discarded as a failed read.

v1.1.5

September 11, 2026
  • Service logs rotate once they reach a size cap, keeping a fixed number of compressed copies, so they no longer fill the disk. A log that has just rotated can start with empty bytes until the next rotation. See Logs.

v1.1.6

September 14, 2026
  • An expression's entity picker lists tags, devices, bindings and models again when a tag within reach holds text.
  • Copy, cut, paste, undo, redo and save on the component canvas work whatever the Caps Lock state.