> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ionworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 2026 08 10

<Update label="August 10, 2026" description="Remaining-duration estimates for running tests, spatial profile plots, project webhooks, and cycler hardware and calibration tracking">
  ## Know how much longer a running test has left

  A test already on a channel can now report **how much of it is left**. The
  platform reads the steps the cycler has actually measured, works out exactly
  where the cell has reached in its protocol — which branch it took, how many
  loops it has been through, what its variables hold — and simulates only the
  remainder. Because it starts from where the cell really is rather than where a
  model would have gone, the estimate tracks the physical run instead of an
  idealised one. Duration estimates also now work from the **cell specification**
  alone, so a request that hasn't been assigned a specific cell yet can still be
  estimated.

  ## See what's happening inside the cell

  Simulation results now include **spatial profile plots**. Where a result carries
  a field that varies through the cell rather than a single number per timestep,
  it's rendered as an interactive profile with fixed axes, a proportional time
  control, typed time overlays and marked domain boundaries. You don't pick a plot
  type — whether a variable is scalar or spatial is inferred from the variable
  itself.

  ## Webhooks for your project's events

  Projects can now register **HTTPS webhooks** that fire when something finishes
  or changes. Pipelines and simple pipelines notify you when they reach a terminal
  state — completed, failed or canceled — and nine new cell events cover
  specifications, instances and measurements being created, updated or deleted.
  Webhooks are managed from Project Settings, each delivery is signed so you can
  verify it came from us, retried on failure, and viewable in a delivery log.

  ## Cyclers as real instruments

  A cycler in the Lab now records the details a real instrument has: version,
  serial number, firmware version, and the hostname, IP address and port of its
  control host. On top of that, **calibration and service are tracked** — record
  when a cycler was last calibrated and how often it needs to be, and its next due
  date is derived for you. A cycler that isn't on a calibration schedule reads as
  unknown rather than overdue. Scheduled service windows can be recorded ahead of
  time so the channels are accounted for before the engineer arrives.

  <AccordionGroup>
    <Accordion title="Studio">
      **Improvements**

      * The sidebar gained an **Operate** section holding the Channel Wall and the Test
        Scheduler. The Test Scheduler was previously reachable only by URL.
      * **Plain-English protocol authoring is now available everywhere a protocol is
        created** — the New Protocol page, the new-simulation flow and the interactive
        builder, not just the test scheduler.
      * The Agent now **collapses code and printed output by default**, showing the
        answer rather than the transcript. Plots and errors always stay visible.
      * Activity log entries can now be **filtered to a single project**.

      **Fixes**

      * Fixed live results going missing or stale on some jobs — result metadata could
        silently fail to upload while the job still reported success.
      * Quick-model simulations now create their model inside the project you ran them
        from, so it appears in the project's model lists instead of being invisible
        everywhere.
      * Fixed a crash on the pipeline detail page when a parameter had no value.
      * Deleting a measurement that a channel booking or an active plan depends on now
        explains which record is blocking it, and stored files are only removed once the
        deletion itself succeeds.
      * Fixed the "learn more" link on the Protocol Simulator upload screen, which 404ed.
      * Render failures are now reported to our error tracking, so crashes get fixed
        rather than going unnoticed.
    </Accordion>

    <Accordion title="Pipeline">
      **Improvements**

      * Fits now report **per-objective timing and the cost of a parameter sweep**, so the
        work a fit represents can be measured before it is scheduled.
      * **Breaking:** `MultiCost` now takes one input form across both the schema and
        pipeline packages. The previously documented `{cost: weight}` mapping never
        worked in the schema package — a list of cost/weight records is now the single
        supported form on both sides.

      **Fixes**

      * Invalid `DataFit` options are now **rejected when you submit**, with a message
        naming the unrecognised option, instead of failing minutes into the run with an
        unexplained internal error.
    </Accordion>

    <Accordion title="Python API">
      **Improvements**

      * New **`client.search`** sub-client for global search across projects, models, cell
        specifications, instances, measurements, materials, studies, optimizations and
        pipelines.
      * **`client.protocol` now covers the whole protocol lifecycle** — listing, fetching,
        finding by name, creating, updating and deleting saved protocols — instead of only
        validation and conversion.
      * New clients for **project webhooks** and for **cycler hardware, calibration and
        scheduled service**.

      **Fixes**

      * Fixed `get_plot_data` returning a 404 for every request — the client was calling an
        address that did not exist.
      * An API URL configured with a trailing slash no longer produces a doubled slash and
        a 404.
    </Accordion>

    <Accordion title="Protocol Simulator">
      **Improvements**

      * A protocol's position can now be **recovered from a real cell's measured steps** —
        which step it is on, its loop counters, subroutine stack, variables and cycle
        number. Combined with the existing resume support, a simulation can pick up exactly
        where a physical test has got to.
    </Accordion>

    <Accordion title="Skills">
      **Improvements**

      * New **Search** skill covering global search across the platform from the SDK.
      * New **Manage protocols** skill covering the full saved-protocol lifecycle, authoring
        and conversion.
      * **Manage equipment** covers cycler hardware details, calibration tracking and
        scheduled service.
    </Accordion>
  </AccordionGroup>
</Update>
