> ## 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 07 27

<Update label="July 27, 2026" description="In-app Agent chat, the Battery Cycler Simulator in projects with a quick model, and Lab test scheduling with programs and watched channels">
  ## Agent chat, built into the app

  A new in-app **Agent** puts a conversational assistant right inside Studio.
  Ask it questions about your data and models, hand it files, and follow along as
  it works — replies stream in as they're generated, and each conversation is
  saved so you can pick it back up later. The Agent runs in an isolated sandbox
  per organization. It's rolling out to a limited set of organizations first and
  will become more widely available over the coming weeks.

  ## Battery Cycler Simulator, now in your projects

  The protocol simulator has moved out of a standalone page and **into your
  projects**, so simulations live alongside the cells, studies, and models they
  belong to. A new **Quick model** option lets you simulate straight away without
  first saving a parameterized model — just pick a chemistry and set a capacity
  and resistance scale inline. Prefer a fitted model? The **From library** toggle
  still runs against any of your saved cell → parameterized-model selections.

  ## Plan and track lab tests

  The Lab view gained a full **test scheduler**. Request a test on a channel and
  the platform validates the protocol up front — an invalid protocol is rejected
  before the request is saved, with a clear message about what's wrong. The
  scheduling dialog shows each channel's live availability and electrical
  ratings as you pick, and you can copy an existing request to seed a new one or
  delete one you no longer need. An optional organization **Programs** catalog
  lets you tag each test with the program it belongs to, visible on the Lab wall
  and planning table.

  Engineers can also **watch a channel** to keep an eye on the test they care
  about and filter the Lab wall down to just those — and because a watch is tied
  to the run currently on the channel, it clears itself automatically the moment
  that test finishes.

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

      * **Battery Cycler Simulator** moved into projects, with a new **Quick model**
        option to simulate without a saved parameterized model.
      * **Lab test scheduler** — request, copy, and delete tests on a channel;
        invalid protocols are rejected on submit with an actionable error.
      * **Programs** — an optional organization catalog for tagging planned tests,
        surfaced on the Lab wall and planning table.
      * **Watch a channel** to follow its live test and filter the Lab wall to your
        watched channels; watches clear automatically when the test completes.
      * A cell specification can now designate a **default parameterized model**; the
        first model created for a spec becomes its default automatically.
      * Measurement details gained a derived **Power \[W]** column
        (voltage × current) selectable in the Time Series tab.
      * The measurement **Differential Analysis** tab now plots **dQ/dV** in addition
        to dV/dQ, switchable from a plot-type dropdown.
      * Material property datasets and analyses now track their **source** — when a
        dataset or analysis was computed from a pipeline or another analysis, you can
        see and click through to where its data came from.
      * Organization admins can **resend an invite** or **send a password reset** to
        a member directly from the Members tab, and adding a member by email now
        distinguishes newly invited from already-registered users.
      * Lab can now be shown or hidden per organization from the admin Navigation
        settings, like the other feature areas.

      **Fixes**

      * A stale browser tab left open across a deploy now **reloads itself** to pick
        up the new version instead of showing a maintenance page.
      * Plot axes, tick labels, and titles are now legible in **dark mode** on
        validation and other charts.
      * Adding a member by email is now case-insensitive, so a differently-cased
        address no longer creates a mismatch.
      * Cycler and channel detail pages no longer error on load for equipment with
        linked child records.
    </Accordion>

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

      * MSMR half-cell OCP fits now constrain the fitted host-site occupancy
        fractions (Xⱼ) to sum to 1, so the values exported and reused downstream are
        self-consistent.

      **Fixes**

      * A DataFit whose every evaluation is non-finite now **fails with a clear
        error** instead of silently returning the initial guesses as if the fit had
        succeeded.
    </Accordion>

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

      * Fitted models now persist their **simulation settings** (mesh and solver
        configuration), so a model simulates the same way wherever it's used. The
        `Model` and `ParameterizedModel` clients expose the setting and document how
        to build it from live PyBaMM objects via
        `iws.models.SimulationSettings(...)`.
      * `SimplePipeline.create` now accepts a schema object directly (matching
        `Pipeline.create`), so you no longer need to call `.to_config()` yourself;
        dicts still work unchanged.
      * New `JobClient.get_plot_data(job_id, objective_name, …)` returns a DataFit's
        model-vs-data overlay directly from a completed job.
    </Accordion>

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

      * Impedance (EIS) simulations for the Equivalent Circuit Model now run through
        the same standard PyBaMM machinery as every other model.

      **Fixes**

      * Arbin protocols whose step end conditions aggregate per-channel temperatures
        (e.g. `max(Temperature, …) > 55`) now parse correctly instead of failing with
        an invalid-end-condition error.
    </Accordion>
  </AccordionGroup>
</Update>
