Skip to main content
Project home dashboard, plain-English protocol authoring, test request detail pages with cycler export, and a Butler-Volmer ECM element

A home page for every project

Opening a project used to drop you straight onto its studies list. Projects now open on a proper home page: an assistant prompt front and centre, a Running now panel showing pipelines still in flight, a Pick up where you left off row of your most recently touched studies, pipelines, measurements and conversations, and browse tiles with counts for each area of the project. Ask a question from the home page and it opens a fresh Agent conversation with your question already sent.

Describe a test in plain English

The Lab test scheduler can now author a protocol from a description. Type something like “1C/1C cycling for 100 cycles between 4.2 V and 2.5 V with 10-minute rests” and you get back a validated protocol, ready to request. If the description leaves out something that would change what physically runs on the channel, you’re asked about it rather than having a value guessed; common conventions (25 °C ambient, CC-CV taper, rest lengths) are assumed and reported back to you. If one of your saved protocols already does the job, it’s offered instead of a new one. Anything the generator returns is a protocol the platform accepts — it’s validated before you ever see it.

Test requests get their own page, and export to your cycler

Planned tests now open on a detail page instead of jumping straight into the edit form, with the request, its scheduling, and its actions laid out separately — so an unscheduled request reads as “not booked yet” rather than a half-empty form. From that page you can export the request’s protocol in a cycler’s native format — Maccor, Arbin, Neware, BioLogic (BT-Lab) or Novonix — preview it, and download it, with no need to re-author the test in vendor software. Exports that need more than one file arrive as a single zip.

Charge-transfer kinetics in the ECM

The Equivalent Circuit Model gained an optional Butler-Volmer charge-transfer element. Enabling it adds a symmetric charge-transfer overpotential driven by a new Exchange current [A] parameter, which captures rate-dependent losses that a linear series resistance cannot — nearly linear at low current, logarithmic at high current. It’s off by default, so existing models and simulations are completely unchanged, and the new Charge-transfer overpotential [V] output is available when it’s on.
Improvements
  • ECM simulation results now show a real voltage components plot — open-circuit voltage, the series-resistance drop, and one band per RC pair, stacked down to the terminal voltage.
  • Measurement views gained a Filter by Steps or Cycles selector. Measurements with no cycle data — OCV sequences, pulse and DCIR tests, single-pass characterisations — now get the full step filter instead of no filter controls at all, and open on Steps.
  • Channel incident history — taking a channel out of service now records the outage with its cause, category, who reported it and when. A down channel shows a callout with the cause, start time and running duration plus a Return to service action, and the channel page lists its past incidents.
  • Organization admins can manage the Programs catalog from a new Programs tab in Organization settings — create, rename and delete the programs used to tag planned tests.
  • Protocols are now scoped to a project. Every project starts with its own editable copy of the standard protocols instead of sharing a read-only library, so edits in one project can’t affect another. Existing projects have been seeded with theirs.
  • Uploading measurement time series now returns immediately and processes in the background, with progress and any processing error visible in the measurement list, so large uploads no longer block the request.
  • Revoking an API key now takes effect immediately rather than after a delay.
Fixes
  • The Agent widget’s New chat button now actually starts a blank conversation instead of re-opening the last one.
  • Reloading the page mid-reply no longer blanks the earlier messages in an Agent conversation — history and the streaming reply are merged rather than one replacing the other.
  • Failed API-key authentication no longer echoes the submitted key back in the error response; only the key’s short prefix is returned.
  • Sorting or filtering cell specifications by last-updated no longer errors — the field is now stored and returned alongside created_at.
  • Transient failures in authentication and membership lookups now report a retryable error with a real cause instead of an opaque failure.
  • Program names consisting only of whitespace are now rejected, and program-related text meets WCAG contrast requirements.
Improvements
  • Pipeline elements now return typed result objects — parameter-estimation, optimization, posterior, ensemble, regression and validation results each have their own type, reachable from Pipeline.results. A new iwp.analysis namespace collects post-fit analyses, including LinearConfidenceInterval and SobolSensitivity.
  • Interpolant-valued parameters (for example a measured ambient-temperature profile supplied per objective) now serialise from a plain dictionary, not just from a pybamm.ParameterValues. Array-valued parameters round-trip correctly instead of being misread as indexed parameters.
Fixes
  • Fixed a memory leak where every fit result held a reference to itself, keeping results alive longer than necessary. A parent result whose child happened to hold equal parameter values also no longer silently loses that child when copied.
Improvements
  • New clients for channel incidents and for the background measurement upload flow, so an upload can be started and its processing state polled from the SDK.
  • Protocol clients are now project-scoped, matching the per-project protocol change above.
  • Breaking (direct ionworkspipeline users only): result.optimizer_result, iwp.OptimizerResult and iwp.SamplerResult are removed in favour of the typed result objects above (OptimizationResult.x / .fun / .success, PosteriorResult, …), and RegressionResult.result is now .results.
Improvements
  • Power [W] is now computed when a measurement is processed and stored with the time series, rather than derived on every read. It also stays correct when the current sign is auto-corrected during processing.
Improvements
  • A protocol can now be resumed exactly from a captured point — its position, loop counts, variables, cycle number and full physical state — so a run can be checkpointed and continued with no rest step and no loss of accuracy.
  • New protocol authoring warnings flag common mistakes before you run anything: mistyped or cross-scope jumps, missing subroutines, loop conditions that can never be satisfied, unreachable steps, voltage limits that contradict the step direction, targets outside the safety window, and rests with a current-based end condition. These are advisory — nothing that runs today stops running — and can be made blocking if you’d rather catch them as errors.
  • Protocols now report their derived voltage and current limits — the minimum and maximum voltage and the peak charge and discharge currents implied by the steps, safety limits and drive cycles.
Fixes
  • Maccor and Novonix exports now use the earliest duration end condition rather than the last, so a step no longer runs for longer than requested.
  • Fixed a Novonix export writing a structured safety-limit value where a plain number was expected.
  • Fixed Arbin loop detection and Neware template handling cases where two divergent code paths disagreed.
Improvements
  • Manage equipment covers recording and reading a channel’s incident history.
  • Upload data covers the background upload flow and how to poll a measurement’s processing state.