> ## 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 06 08

<Update label="June 8, 2026" description="Brand-aligned theme refresh, semantic zoom on validation plots, new data agent skills, tunable solver options with PyBaMM 26.6 support">
  ## Brand-aligned theme refresh

  Studio now follows the Ionworks brand guide. Pink (`#FF87B7`) drives primary
  CTAs, selection, focus, and active nav/tabs; green-black (`#020E0D`)
  anchors text and neutrals; blue (`#0C68E9`) is reserved for
  hyperlinks so links stay obviously clickable. Corners are sharpened
  to 4px, typography is updated, and JSON viewers, plots, tables, and
  ID chips have been re-skinned to match. All changes are
  theme-level — no underlying behavior changes — so every screen
  lifts at once.

  ## Semantic zoom on pipeline validation plots

  Validation plots now fetch their data on demand and decimate
  server-side based on the visible x-range. Box-zoom into a region
  re-requests denser data for that window; a step-back zoom and a
  full-reset control are stacked in a zoom history.

  ## Tunable solver options with PyBaMM 26.6 support

  `ionworkspipeline` simulations accept new solver options that merge
  over the tuned defaults — e.g. enabling compilation for long
  unified-experiment runs without restating the rest of the solver
  configuration. It threads through every simulation-backed objective.
  The workspace also upgrades to PyBaMM 26.6, with a compatibility layer
  so historical and freshly-generated payloads both decode correctly.

  ## New data agent skills

  Two new agent skills land this release: `build-data-report`
  (multi-section markdown + PDF analysis covering rate capability,
  DCIR, OCV, GITT, entropic, aging, and gap analysis) and
  `validate-data` (a pre-upload gate covering header audit, schema,
  and strict measurement validation).

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

      * Cell-measurements list endpoints have been consolidated and now
        use server-side pagination across project, spec, and instance
        scopes, keeping the main list view fast even for large datasets.

      **Fixes**

      * Deleting a project no longer shows a misleading "The project you
        are trying to access does not exist…" toast. The delete
        confirmation dialog also now requires typing the exact project
        name to enable the **Delete project** button, matching the
        destructive-action pattern used elsewhere.
      * Signed-URL generation for measurement files now retries
        automatically on transient network timeouts, and file listing
        uses a single batched request instead of many parallel calls.
        File downloads also retry when the storage service returns an
        unexpected response under load, and surface exhausted attempts
        as a clear error instead of a generic failure.
      * Cell-instance measurements grid no longer renders the previous
        spec's rows after navigating between specs; the cell selector
        shows a loading skeleton and no longer stalls when an unrelated
        fetch is in flight; the ECM measurement selector switched to
        true server-side pagination instead of loading every project
        measurement into memory.
      * The drive-cycles template list endpoint no longer errors at
        runtime, and now supports standard pagination.
      * Fixed an autocomplete component bug where custom dropdown styling
        options were silently ignored.
    </Accordion>

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

      * A new fit option skips extra pre- and post-fit result-capture
        simulations that aren't surfaced to the user, speeding up
        server-side fits by default; local users keep the previous
        behavior unless they opt in.
      * Configuration errors are now classified more reliably, so the
        **Configuration error** UI path lights up correctly instead of
        being reported as a generic solver error.
    </Accordion>

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

      * `client.simulation.get_result()` returns a typed `SimulationResult`
        object with `time_series` and `steps` as DataFrames (polars by
        default, pandas when `set_dataframe_backend("pandas")` is active)
        and `metrics` as a plain dict, replacing the previous raw-dict
        response. Callers use attribute access and `.columns` membership
        checks instead of dict-key lookups.
    </Accordion>

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

      * New `sim-results` SDK skill: fetching time-series and step data
        from a completed simulation, computing SOC via step-boundary
        cumulation, identifying step types by mean current, deriving
        DCIR from pulse steps using an OCV baseline plus onset current,
        and polars-aware plotting conventions.
      * The `parameterize` skill now documents electrode geometry
        (thickness, porosity, particle radius, AM fraction, maximum
        concentration) as a hard **build** requirement for DFN/SPMe — a
        physics-based model cannot be assembled without these structural
        parameters. Geometry lives on the cell spec's components (not on
        a measurement), can come from teardown / metrology / vendor
        datasheet / literature, and FPBM is no longer offered as
        "available" for Tier-2 cells that lack it.
    </Accordion>
  </AccordionGroup>
</Update>
