> ## 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 29

<Update label="June 29, 2026" description="並列データフィット向けの再構築された実行エンジン、名前ベースの測定ルックアップ、Arbin サブスケジュール／ループサポート、より明確なモデルおよび重複エラー">
  ## データフィット向けに再構築された実行エンジン

  パイプラインの並列化レイヤーが専用の実行エンジンとして再構築された。
  `DataFit.fit` はこのエンジン上の `DataFit.run` となり、
  オプティマイザ（ask/tell）、点評価、マルチスタート調整、進捗
  レポートを単一のエグゼキュータプロトコル一式（シリアル、
  マルチプロセッシング、そしてバックエンドではウォームアクター
  プール上の Ray）を通じて駆動する。古い `distributed.py` の Joblib
  設定群とその `num_workers` / `parallel` スキーマフィールドは
  廃止され、エンジン所有の並列化に置き換えられた。バックエンドの
  データフィットジョブは、分類されたフェイラーのエラーマッピングと
  世代ごとの進捗ストリーミングを備えた薄い `datafit.run()` ホスト
  を通じて実行されるようになった。

  ## 名前ベースの測定ルックアップ

  `client.resolve_measurement(cell_specification, cell_instance,
    measurement)` は、人間が読める名前から `measurement_id` を解決し、
  各レベルでサーバー側フィルタリングを行いながら spec → instance →
  measurement の階層をたどる。スクリプトは ID を取得するためだけに、
  3 つのリストエンドポイントを手動でたどって名前マッチングの
  ボイラープレートを繰り返す必要がなくなった。
  `parameterized_model.create_or_get` も追加され、他のセルリソースが
  すでに持っていた再実行可能な「作成または解決」の挙動を
  パラメータ化モデルに与える。

  ## モデルの失敗と重複に対するより明確なエラー

  2 つの不透明な「予期しないエラーが発生しました」のケース —
  ユーザーが供給しなかったジオメトリをモデルセットアップが必要と
  するフィット、および離散化レシピのないカスタムモデル — が、
  何が失敗したかを明示する明確な `ModelError` として表面化する
  ようになった。別途、すでに存在するリソースを作成しようとすると、
  `500` ではなく既存の ID 付きの `409 CONFLICT` を返すようになり、
  Postgres のユニーク制約違反のキャッチオールおよびすべての
  挿入サイトでのパスごとの変換の両方を介するため、重複作成の
  試みがオンコールにページングしなくなった。

  <AccordionGroup>
    <Accordion title="Studio">
      **改善**

      * 最適化の「テンプレートとして保存」が、最適化の保存済み設定を
        テンプレートに直接コピーする新しい
        `POST /optimization_templates/from-optimization` エンドポイント
        経由で、サーバー側でテンプレートをビルドするようになった。

      **修正**

      * 完了した検証／データフィットの結果が、ペアになっているプロットの
        片方について散発的に「プロットデータの読み込みに失敗しました」
        を表示することがなくなった。ジョブのメタデータは実行中にその場で
        書き換えられる（チェックポイント、続いて検証プロット設定を追加
        する最終書き込み）が、プロセス内のメタデータキャッシュは完了後
        のメタデータが不変であると仮定していた；現在は古いエントリを
        自己修復し、ジョブごとのストレージブロブは no-cache で書き込まれる
        ため、古い早期書き込みが勝つことはなくなった。
      * 遅延 `DataLoader` として渡された `CycleAgeing` 実験
        （`experiment="from data"`）が、`db:` 測定参照をサーバー側で
        解決するようになり、認証情報なしのフィットワーカーまで生き残って
        そこで失敗することがなくなった。
    </Accordion>

    <Accordion title="Pipeline">
      **改善**

      * 多変数の目的に適用された裸の要素単位コスト
        （`SSE`/`MSE`/`RMSE`/`MAE`/`Max`）が、変数の長さが一致しない
        場合 — 例えばモデル軸 dQ/dV 変数とデータ軸電圧変数の対比 —
        に警告するようになり、無意味な残差に静かにブロードキャスト
        されることがなくなった。
      * すべての 1 次元 interpolant 計算が `"pchip"` 補間器
        （単調 3 次）を受け付けるようになった。これは、ハーフセル GITT の
        パルスごと拡散率のような疎で桁が変化する `D(sto)` テーブルに
        対する正しい選択である。

      **修正**

      * MSMR ハーフセルのロジスティック値とその導関数が、指数が常に
        ≤ 0 となる単一の種ごとに安定化されたヘルパーを通じて評価される
        ようになり、決してオーバーフローしなくなった。
      * オブジェクトパス（`iwp.Pipeline.from_schema(...).run()`）が、
        目的オプション内のシリアライズされたモデル辞書を config／server
        パスと同じ方法で再構築するようになり、両パスが一致するように
        なった。
      * シリアライズされた geometry/mesh を持つカスタムモデルが、
        標準ライブラリの `pickle` ／生のマルチプロセッシング
        マルチスタートを生き残るようになった — 以前の匿名サブクラス
        方式では値による（cloudpickle/Ray）シリアライズしかできなかった。
    </Accordion>

    <Accordion title="Python API">
      **改善**

      * `client.resolve_measurement` と
        `parameterized_model.create_or_get`（両方とも上記で導入）、
        および、モデルの保存された構成を検査するための `Model.config`。
      * 素の pandas/polars DataFrame をスキーマ `data` フィールド
        （目的 `data_input`、`OCPDataInterpolant.data`、Arrhenius
        計算の `data`）に渡すと、シリアライズ時に正しく自動ラップ
        されるようになり、不透明な「Required field 'data' missing」で
        サーバー側検証に失敗することがなくなった。
    </Accordion>

    <Accordion title="Protocol Simulator">
      **改善**

      * Arbin プロトコルが**サブスケジュール**（参照される `.subsdx` が
        登録され再帰的にパースされる UCP サブルーチンにマッピング）、
        **カウンタループ**、**温度アドイン**をサポートするように
        なったため、これまでアップロード時に「Unsupported step type:
        SubSchedule」でクラッシュしていたスケジュールがパースされ、
        エンドツーエンドでシミュレートされるようになった。

      **修正**

      * BioLogic `.mps` シミュレーションの修正: ループカウンタが
        1 つずれていた問題は解消された（EC-Lab の `ctrl_repeat` は
        最初のパスをカウントしないため、ループは現在 `ctrl_repeat + 1`
        回実行される）、加えて BCD/EIS サポートとドライブサイクルの
        修正があり、いずれも修正前に報告された設定ファイルに対して
        再現された。
      * Protocol Simulator とパイプラインライブラリにおけるユーザーが
        修正可能なプロトコルおよび設定エラーが、汎用的な `ValueError` /
        `RuntimeError` ではなく、特定のドメインエラータイプ
        （`ProtocolConfigurationError`、`UserConfigurationError`）を
        発生させるようになり、オンコールへのページングではなく
        ユーザーに表面化するようになった。
    </Accordion>

    <Accordion title="Data Processing">
      **改善**

      * `process-data` リーダーの注意点がドキュメント化された:
        マルチシート Neware BTSDA `.xlsx` ファイルに対して `record`
        シートを選択すること、そして電流単位の取り扱い — ワンコール
        の `read.time_series_and_steps` エントリポイントと並んで。
    </Accordion>
  </AccordionGroup>
</Update>
