EIS アップロード検証
cell_measurement.create(...) が、測定辞書上で data_type="eis" の
ヒントを受け付けるようになった。設定すると、
validate_measurement_data は構造カラムチェック(常に有効で、
Frequency [Hz]、Z_Re [Ohm]、Z_Im [Ohm] を必須とする)と、
strict モード限定で個別にスキップ可能な 2 つのヒューリスティック
チェックを実行する。eis_zim_sign は容量性帯域が主に正である
スペクトル — すなわち生の Im(Z) の符号が反転している場合 —
に対して Z_Im = -Z_Im という修正ヒントとともにフラグを立てる。
eis_impedance_magnitude は、min(Z_Re) を容量から導出した
推定値の周りの広い 100× 帯域と比較することで、桁単位の
単位エラーを捕捉する — データ取得は行わず、供給された
rated_capacity に対する健全性チェックのみを行う。両者とも
桁単位の問題(1000× の単位エラー、完全に反転した符号)に
対してのみ発火するため、妥当なスペクトルには決して手を
加えない。BioLogic リーダーは、生の虚部を Z_Im [Ohm] として
(容量性の弧全体で負として)直接格納するようになり、検証器の
規約と一致するようになった。より高速なパイプライン詳細ページと ECM フィット
パイプライン詳細ページの読み込みが目に見えて高速になった: 大きな要素ごとのデータは、事前ではなく展開時に遅延読み込みされる ようになり、5 秒ごとのポーリング間隔で発生していた遅い クライアント側の再計算が最適化されて排除された。別途、 パイプライン ECM フィットも、フィット品質を完全に保持しつつ、 いくつかの内部フィット戦略の改善によりより高速かつ正確に なった。Studio
Studio
改善
- プロトコル詳細ページに、そのプロトコルを使用するすべての シミュレーションをリストする Simulations セクションが 表示されるようになった。パラメータ化モデルのシミュレーション リストで利用できるのと同じ一括アクション(スタディへの追加、 再実行、削除)が使える。
- パイプラインの一括キャンセルが瞬時になった。UI は 楽観的更新で即座に切り替わり、遅いジョブ終了作業は バックグラウンドで実行されるようにオフロードされる。単一の 一括キャンセルエンドポイントが、フロントエンドが以前行って いたパイプラインごとのループを置き換える。
- Cycle Filter が、利用可能なサイクル数を超える
First N、Last N、Rangeの値をクランプするようになった: 利用可能な すべてのサイクルを返し、中立的なテキストでShowing all N cyclesと表示する。明示的な単一サイクルの タイプミス(例: 100 サイクルの測定に対する0,50,200)は 引き続きエラーになるが、以前の何千もの数字の壁のような メッセージではなく、短く実用的なメッセージを表示する。 - Compute hours が、シミュレーション時間と並ぶ第一級の使用量 ディメンションになった。各組織の契約により駆動される。 アカウントドロワーは設定された使用量タイプごとにメーターを 1 つレンダリングし、直近の既知のメーター数のサイズに設定された プレースホルダーカードで統合ローディングシグナルでゲートされる ため、リストが読み込み時に一時的にゼロに崩れることは なくなった。
- 通常の Admin(スーパー管理者ではない)として組織を削除すると、 正しく 403 Forbidden を返すようになった。以前は削除は 静かにブロックされていたが、エンドポイントは 204 を返していた ため、組織はデータベースに残ったまま偽の成功を示していた。
- 電流符号規約のドキュメントが、バックエンドフィールドの説明、 API discovery エンドポイント、およびデータアップロードのドキュメント 全体で修正された: 正 = 放電、負 = 充電(プラットフォームの 実際のデータと検証器と一致)。正当に異なる外部サイクラー規約 (例: BioLogic / Arbin のネイティブは 正 = 充電)の説明は 変更されていない。
Pipeline
Pipeline
改善
- DE と PSO オプティマイザのデフォルト集団サイズが 40 に
キャップされるようになった。明示的な
population_size値は 引き続きキャップをバイパスする。自動スケーリングされる デフォルトのみが変更され、それもキャップを超える場合のみである。
- ローカルパイプライン実行が、これまで乖離していた 3 か所で
サーバーの動作と一致するようになった。
dataキーのみを持つ OCP interpolant 入力が、メタデータ欠落として拒否されなくなった。 スキーマ提供の変換(Log10、Log、Inverse、…)が静かに ドロップされなくなった。そして、それらのドロップの下流症状と して発火していた無意味なマルチスタートガード (Multiple multistarts are being used, but all initial guesses are identical) が、結果として消えた。
Python API
Python API
改善
- 新しい
ionworks-mcpパッケージ — Ionworks 公開 API を Claude Desktop や Claude Code のような MCP クライアントに 公開する軽量な読み取り専用 MCP(Model Context Protocol) サーバー。ionworks-apiPython SDK 上の薄いラッパーであり (認証、リトライ、キャッシュ、ページネーションを継承)、 機能検出、セル階層(spec、instance、時系列・ステップ・ サイクル付き測定)、そしてマテリアルおよびマテリアル プロパティデータセットにまたがる 15 のツールを備える。 同じIONWORKS_API_KEY環境変数を使用し、時系列呼び出しが 制限のないペイロードをダンプすることがないよう、DataFrame を 返すツールに対して行のウィンドウ処理を必須化する (デフォルト 500 行、最大 5000、offsetページング、 オプションのcolumnsプロジェクション)。書き込みや変更は 一切行わない。 GET /organizations/current/usageが公開になり、上限を 伴うディメンションごとの使用量(simulation、compute)を 返すようになったため、SDK クライアントは管理者トークンなしで 自身のクォータを読み取れるようになった。
Data Processing
Data Processing
改善
- 明示的な
sheetsオプションのない Neware BTSDA.xlsxファイルが、時系列が実際に存在するrecordシートを 自動選択するようになった — メタデータのみを含む最初のシートに デフォルト設定してTimestamp欠落エラーで失敗する代わりに。 以前の「sheets={type: 'name', value: 'record'}を渡す必要が あります」という落とし穴は自動化された。recordシートが ないファイルは引き続き最初のシートのデフォルトにフォールバック する。
- Maccor リーダーが
Cycle C— 累積サイクルカウンタ、 真のサイクル番号 — をCycle from cyclerにマッピングする ようになった。以前はCycle P— プログラム/ループカウンタで、 多くの場合0であり、プロシージャ内でリセットされうる — にマッピングしていたため、両方のカラムを含むファイルは サイクル番号として無意味なゼロを報告していた。
Protocol Simulator
Protocol Simulator
修正
- サブスケジュール(
SubScheduleステップ)を参照する Arbin スケジュールが、Duplicate step name found: 'End Test'で パースに失敗しなくなった。予約されたEnd Test終端は 重複名チェックから除外される — 各サブスケジュールは自身の コピーを保持するため、任意のスコープからのgoto: "End Test"はシミュレーション時にも解決する。 真に名前が衝突するブロック(例: 2 つのスコープに現れる ユーザー定義のLoop_X)は、これまでどおりエラーになる。
ECM フィッティング: 正則化とセルごとの容量
Studio の ECM フィットに 2 つのオプションが追加された。正則化設定は フィットされたパラメータを平滑化し、測定ごとの容量は同一セルの 複数の測定にまたがるフィットにおいて、各測定に既知の公称容量を 設定できるようにする。容量フィッティングはオプトイン方式となり、 フィットされた各測定は自身の容量を報告するようになった。JSON 設定パス経由の ArrayDataFit
iws.ArrayDataFit — 独立変数の各値に対して同じモデルを独立に
フィットする機能(例: GITT/パルスデータからの拡散率 vs. 化学量論比、
またはパラメータ vs. 温度)— が、エンドツーエンドで
element_type: "array_data_fit" として第一級の要素となった。
ライブラリとスキーマはすでにこれをサポートしていたが、
設定パス(本番 API が触れる唯一のサーフェス)はこれまで
プレーンな DataFit に折りたたんでいた。配列フィットは
設定、スキーマ、パーサ、エグゼキュータ、結果シリアライズを
往復するようになり、Studio はパラメータエディタから到達可能な
パラメータごとの散布ビューで配列値のフィット済みパラメータを
レンダリングする。Studio
Studio
改善
- セル測定データの削除がほぼ瞬時になった。測定ごとのストレージ レイアウトが決定論的になったため、削除対象のファイルセットは 遅い再帰的なフォルダリストではなく、データベースレコードから 導出され、単一のバッチ呼び出しで削除されるようになった。
- 測定でステップデータが欠落しているか空である場合、UI に 「データ欠落」の明確なエラーと再アップロードのプロンプトが 表示されるようになった。これは一時的なストレージ障害 (こちらは Retry ボタンが表示される)とは区別される。 アップロード検証も空のステップセットを拒否し、 アップロードロールバックは孤立したストレージファイルを クリーンアップする。
Pipeline
Pipeline
改善
iws.DataFitのinitial_guess_samplerがLatinHypercubeまたはUniformを明示的に受け付けるようになり、未知のサンプラー/ 分布/事前分布名や余分なキーは、後の実行時クラッシュではなく 明確な検証エラーとともに投入時点で拒否されるようになった。
- 数値でない
objectivesキーを持つArrayDataFitを設定すると、 不透明な「予期しないエラーが発生しました」パスではなく、 明確で実用的な設定エラーとして表面化するようになった — メッセージが表示され、内部アラートは発生しない。同じ改善された エラーハンドリングは、データフィット、オプティマイザ、 サンプラー、メトリクス、変換の設定全体にわたって広く適用され、 ユーザーが修正可能な誤りが、汎用的な失敗ではなく実用的な メッセージとともに表面化するようになった。
Python API
Python API
改善
client.ecm.fit(...)がregularizationオプションと、FitMeasurementRequestの測定ごとのcapacityを受け付けるように なった(すべての測定に設定するか、まったく設定しないかのいずれか)。FitResults.capacity_Ahはフィットされた測定ごとに 1 つの値を 報告する。array_data_fit要素を JSON 設定パス経由で送信すると、 エンドツーエンド(スキーマ → パーサ → パイプライン → 結果)で 往復するようになったため、API クライアントはライブラリ オブジェクトパスがすでに持っていたのと同じ第一級のサポートを 受けられるようになった。
- ドキュメント例が実際の API サーフェスに対して修正された:
再送信エンドポイントは
POST /jobs/{pipeline_id}/resubmitである (ドキュメント化されていた/pipelines/{pipeline_id}/resubmitは 存在せず 404 になる)。Modelリスト応答にはmodel_type/configフィールドがない(client.model.get(id)のみがそれを 返す)。model.createの config はmodel_typeではなくtypeを 使う。simulate プロトコルの例では、名前付きステップと文字列の 終了条件を使う。CellMeasurementBundleResponseはフラットである (bundle.measurement.nameではなくbundle.name)。
Skills
Skills
改善
run-simple-pipelinesが、標準のdata_fitと並んでarray_data_fit要素タイプをドキュメント化した。manage-cells:cell_spec.createとcreate_or_getの例が、CreateCellSpecificationNestedに一致するようになった —ratingsオブジェクト(capacity、voltage_min、voltage_maxを{value, unit}Quantity として)と、それぞれ単数形のmaterial辞書を持つNestedComponentInputを保持するスロットごとのcathode/anodeキー。以前のボディでは、モデル上に存在せず サーバー側検証で失敗するはずのrated_capacity/voltage_range_dc/components: [...]フィールドが 使われていた。
データフィット向けに再構築された実行エンジン
データフィットの並列処理レイヤーが専用の実行エンジンとして再構築された。DataFit.fit はこのエンジン上の DataFit.run となり、
オプティマイザ(ask/tell)、点評価、マルチスタート調整、進捗
レポートを、サーバー/クラウド双方で動作する統一された並列実行の
仕組みを通じて駆動する。バックエンドのデータフィットジョブは、
分類されたフェイラーのエラーマッピングと世代ごとの進捗
ストリーミングを備えたホストを通じて実行されるようになった。名前ベースの測定ルックアップ
client.resolve_measurement(cell_specification, cell_instance, measurement) は、人間が読める名前から measurement_id を解決し、
各レベルでサーバー側フィルタリングを行いながら spec → instance →
measurement の階層をたどる。スクリプトは ID を取得するためだけに、
3 つのリストエンドポイントを手動でたどって名前マッチングの
ボイラープレートを繰り返す必要がなくなった。
parameterized_model.create_or_get も追加され、他のセルリソースが
すでに持っていた再実行可能な「作成または解決」の挙動を
パラメータ化モデルに与える。モデルの失敗と重複に対するより明確なエラー
2 つの不透明な「予期しないエラーが発生しました」のケース — ユーザーが供給しなかったジオメトリをモデルセットアップが必要と するフィット、および離散化レシピのないカスタムモデル — が、 何が失敗したかを明示する明確なエラーとして表面化するようになった。 別途、すでに存在するリソースを作成しようとすると、汎用的な エラーではなく既存の ID 付きの明確な競合エラーを返すようになり、 重複作成の試みがオンコールにページングしなくなった。Studio
Studio
改善
- 最適化の「テンプレートとして保存」が、最適化の保存済み設定を テンプレートに直接コピーする新しいエンドポイント経由で、 サーバー側でテンプレートをビルドするようになった。
- 完了した検証/データフィットの結果が、ペアになっているプロットの 片方について散発的に「プロットデータの読み込みに失敗しました」 を表示することがなくなった。ジョブの状態管理が古いキャッシュ エントリを自己修復するようになり、古い早期書き込みが勝つことは なくなった。
- 保存済みの測定データから直接実行するサイクル劣化実験
(
experiment="from data")が、測定参照を正しく解決するようになり、 実行の後半で失敗することがなくなった。
Pipeline
Pipeline
改善
- 多変数の目的に適用された裸の要素単位コスト
(
SSE/MSE/RMSE/MAE/Max)が、変数の長さが一致しない 場合 — 例えばモデル軸 dQ/dV 変数とデータ軸電圧変数の対比 — に警告するようになり、無意味な残差に静かにブロードキャスト されることがなくなった。 - すべての 1 次元 interpolant 計算が
"pchip"補間器 (単調 3 次)を受け付けるようになった。これは、ハーフセル GITT の パルスごと拡散率のような疎で桁が変化するD(sto)テーブルに 対する正しい選択である。
- MSMR ハーフセルのロジスティック値とその導関数の計算が安定化され、 決してオーバーフローしなくなった。
- スキーマからパイプラインを構築して実行するパスが、目的オプション内の シリアライズされたモデル辞書を他の実行パスと同じ方法で再構築する ようになり、すべてのパスが一致するようになった。
- シリアライズされた geometry/mesh を持つカスタムモデルが、 標準的なシリアライズおよびマルチスタート実行を安定して 生き残るようになった。
Python API
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」で サーバー側検証に失敗することがなくなった。
Protocol Simulator
Protocol Simulator
改善
- Arbin プロトコルがサブスケジュール(参照される
.subsdxが 登録され再帰的にパースされるサブルーチンにマッピング)、 カウンタループ、温度アドインをサポートするように なったため、これまでアップロード時に「Unsupported step type: SubSchedule」でクラッシュしていたスケジュールがパースされ、 エンドツーエンドでシミュレートされるようになった。
- BioLogic
.mpsシミュレーションの修正: ループカウンタが 1 つずれていた問題は解消された(EC-Lab のctrl_repeatは 最初のパスをカウントしないため、ループは現在ctrl_repeat + 1回実行される)、加えて BCD/EIS サポートとドライブサイクルの 修正があり、いずれも修正前に報告された設定ファイルに対して 再現された。 - Protocol Simulator とパイプラインライブラリにおけるユーザーが 修正可能なプロトコルおよび設定エラーが、汎用的なエラーではなく、 特定のドメインエラータイプを発生させるようになり、オンコールへの ページングではなくユーザーに表面化するようになった。
Data Processing
Data Processing
改善
process-dataリーダーの注意点がドキュメント化された: マルチシート Neware BTSDA.xlsxファイルに対してrecordシートを選択すること、そして電流単位の取り扱い — ワンコール のread.time_series_and_stepsエントリポイントと並んで。
June 22, 2026
拡散のみのフィット向け GITTModel、pybamm のみのユーザー向けの ionworks-model ダウンロード、ルーティングされたすべてのリソース向けのアプリ URL ヘルパー、そしてより明確な設定エラー
GITTModel — ファーストクラスの拡散のみモデル
GITTModel と HalfCellGITTModel が ionworkspipeline の
ファーストクラスモデル(ionworks_schema 側にも対応するクラス)と
なった。GITT フィットは圧倒的に SPMe ではなくこの軽量モデルを
使用する: 電極ごとの x 平均粒子拡散、単一のまとめられたオーム抵抗、
固定された OCP、そして Butler-Volmer 動力学、電解質ダイナミクス、
熱効果は一切なし。組み込みモデルとして出荷することでサーバー側の
GITT フィットがアンロックされ、新しいハーフセル GITT フィット
テンプレートを支えるようになる。素の pybamm 向けに ionworks 定義モデルをダウンロード
ionworks-schema / ionworks-api のみを持ち、ライセンス付きの
ionworkspipeline パッケージを持たないユーザーが、ionworks 定義の
モデル(ECM、LumpedSPMR、MSMR モデル、GITTModel)を素の
pybamm でロードして実行できる形式で取得できるようになった。
プラットフォームがライセンスを持つサーバー側でモデルをビルドし、
ロード可能なシリアライゼーションを返し、Python SDK 経由で
公開される。ルーティングされたすべてのリソース向けのアプリ URL ヘルパー
SDK のclient.urls が単一の .measurement() メソッドから、
完全な Web アプリリンクビルダー一式 — project、model、
parameterized_model、optimization、pipeline、study、
simulation、cell_specification、cell_instance など — に
成長し、呼び出し側が ID から app.ionworks.com URL を手作業で
組み立てる必要がなくなった。ヘルパーは環境を認識し、クライアントが
構成されている API 環境に応じて正しいホストを導出する。より厳格で明確なパイプライン設定
ionworkspipeline におけるユーザー起因のエラーのほとんどが、
内部エラーとしてオンコールにページングするのではなく、
設定ミス — 誤ったフィールド型、範囲外の値、欠落したキー — を
ユーザーへの明確な Configuration error にルーティングする
ようになった。これと並行して、進行中のスキーマ契約強化の
取り組みが境界でのオプティマイザ設定の検証を開始した:
ネイティブオプティマイザに対応しないキーを渡すこと(例:
DifferentialEvolution(popsize=5, maxiter=10))が、これまでの
ように黙って飲み込まれるのではなく、送信時にハードエラーになる
ようになった。Pipeline
Pipeline
改善
- 目的および変数レベルのコストスコープの真実のソースが整理され、
重み付き
Wasserstein(位置シフト型 dQ/dV)と変数ごとのSSEが、 各コストが消費すべき変数に明示的にスコープされた状態で、 1 つの目的にわたって共有できるようになった。電極バランシングの 計算には、モデル自身のフルウィンドウ電圧軸で dQ/dV を出力する オプションが追加され、重み付き Wasserstein がデータグリッド上 ではなく電圧でピークを揃えられる。 - 厳格なオプティマイザオプション検証: 不明なオプティマイザ
キー(およびメソッド/オプションの不一致)は送信時に拒否され、
実行時にもアクション可能なメッセージで不明なオプションを
拒否する — 以前の挙動では黙って無視されていた。型付き
オプションラッパー(
CMAESOptions、PSOOptions、DEOptions、XNESOptions、BayesianOptimizationOptions、SOBEROptions、TuRBOOptions)は引き続きオプションを渡す 推奨手段である。 - フィッティングと設計最適化のパスで使われる失敗時のペナルティ 処理が統一され、両者が乖離することがなくなった。
- ECM のクーロンカウント容量基準がセグメントごとに計算される ようになった。マルチ測定フィットでは以前は連結されたセグメント 境界をまたいで累積積分が蓄積され、容量推定値がほぼセグメント ごとのスループットの合計まで膨らみ、容量サニティチェック警告が 誤って発生していた。
- シンボリックな境界を持つジオメトリがシミュレーション設定 経由で渡された場合の処理が修正され、シミュレーションが ビルドされる前に正しく解釈されるようになり、ソルバーが 詰まることがなくなった。
- カスタムモデルに対してシリアライズされたジオメトリ関連の 設定が、インスタンスごとのデフォルトとして正しく尊重される ようになった。
Python API
Python API
改善
client.model.download/serialize(上記で導入)は、 素の pybamm でロード可能な形式で ionworks 定義モデルを返す。client.urls(上記で導入)は、ルーティングされたすべての リソースに対して環境認識型のリンクを構築するようになった。
June 15, 2026
⌘K によるグローバル検索、Bayesian / TuRBO / SOBER オプティマイザ、バックグラウンドでの ECM パラメータ化、ファイル測定のインライン画像プレビュー
プラットフォーム全体を横断するグローバル検索
⌘K ダイアログがプロジェクト、セル仕様、セルインスタンス、
セル測定、パイプライン、データフィット、シミュレーション、最適化、
パラメータ化モデルを横断して検索できるようになった — グループ化され、
ディープリンクされた結果と、エンティティタイプごとのチップフィルター付き。
セル測定とインスタンスはサーバー側の全文検索でインデックス化されているため、
これらいずれかの画面の部分的な名前や ID から、1 回のキー入力で
正しい詳細ページに到達する。ダイアログはサーバー側でチップフィルタリングと
ページングを行える。パラメータ推定のための Bayesian Optimization、TuRBO、SOBER
3 つのサロゲートベースのオプティマイザがionworkspipeline で提供される:BayesianOptimization— 制約付き問題向けの実行可能性で重み付けされた 獲得関数を備えた、(対数)期待改善量による逐次またはバッチ BO。TuRBO— 信頼領域 BO。Thompson サンプリングと制約処理をサポート。SOBER— Bayesian quadrature によるバッチ BO。
BayesianOptimizationOptions、
TuRBOOptions、SOBEROptions スキーマがあり、ドキュメントには
Nelder–Mead、CMA-ES、差分進化と比較していつそれらを選ぶべきかを
説明する新しい手法選択ガイドが追加された。ECM パラメータ化がバックグラウンドジョブとして実行
認証済みの ECM フィットは、10–60 秒間リクエストをブロックする 代わりに、バックグラウンドジョブとして実行されるようになった。POST /ecm/fit-from-file と POST /ecm/fit-from-measurements は
202 {job_id, status} を返す;公開デモの POST /ecm/fit は同期のまま
なので、未認証のサンプルフィットは引き続き 1 ラウンドトリップで完了する。
新しい client.ecm Python SDK サブクライアントは 3 つの入力モードすべてを
網羅する — fit_from_example(同期)、fit_from_file と
fit_from_measurements(wait_for_completion(...) でポーリングする
EcmFitJob を返す)、さらに save_to_project と detect_and_read —
そして新しい ecm-fitting エージェントスキルが、モードの選択、フィットの
実行、パラメータ化モデルとしての永続化を、エージェントに順を追って案内する。
ユーザーデータ起因のソルバーエラーは、BadRequestError /
CONFIGURATION_ERROR として表面化するようになった。ファイル測定のインライン画像プレビュー
ファイル型のセル測定は以前は「Visualization not yet supported」という プレースホルダーを表示していた;測定の詳細ページは、添付された すべてのファイルを取得し、画像をインライン表示し(列いっぱいに広がり、 クリックで拡大できるライトボックス、Esc または外側のクリックで閉じる)、 あらゆるファイルタイプにダウンロードリンクを提供するようになった。Studio
Studio
改善
- 最適化ページの読み込みが軽量化され、最適化一覧ページは行ごとに 常時接続を維持する代わりに、軽量なステータス情報を定期的に ポーリングするようになった。パラメータ化モデルセレクターも、 効率的に id でフェッチするようになった。
- プロジェクトスコープのパラメータ化モデル一覧により、 パラメータ化モデルピッカーが現在のプロジェクトに属するモデルだけに 絞り込めるようになった。
- 内部のインデックス用フィールドがオブジェクトフィールドパネルで 非表示になり、詳細ビューが内部の実装詳細を露出しなくなった。
- データフィットの結果は、結果ペイロードに
validation_not_supportedが 設定されている場合、検証タブを空白のままにしたりページを失敗させたり する代わりに、インラインアラートとして「Validation not supported」を 表示するようになった。 - 非エラーの停止条件で一時停止または終了したプロトコルファイルは、 ユーザーが修正可能なインラインメッセージをレンダリングするようになった; 以前はルートが汎用的な 500 を返していた。
- バックエンドの一般化されたエラーマッピングにより、内部で発生した あらゆるプレーンなエラーが構造化されたドメインエラー応答に変換される ようになった。
- Universal Cycler Protocol シミュレーターのページが、サポート対象の サイクラープロトコル形式として Maccor、Bitrode、BioLogic に加えて Arbin と Novonix を一覧表示するようになり、サポート対象プロトコルの 記述は両方の UCP ページで共有されるため、2 つは同期し続ける。
- データグリッドのカードが固有の幅を主張するようになり、親コンテナに 明示的な幅がない場合の崩れたグリッドレイアウトを修正した。
- 測定ファイルのストレージへのアップロードは、一時的なエラー時に 指数バックオフ(上限あり)でリトライし、試行回数を使い切ったときは 構造化された 502 を返すようになった。
- パイプラインの一覧と詳細のフェッチは、リクエストの前後関係を 正しく扱うようになったため、低速なリクエスト中にパイプライン間を 移動しても、ビューが古いパイプラインに戻ることはない。パイプライン 要素のキャッシュは、再フェッチ時にキャッシュ全体を消去するのでは なく、関連エントリをマージするようになり、パイプライン詳細の 定期更新は、前のパイプライン用の再フェッチが発火してしまう古い レースに対するガードを備えた。
- 親エンティティが変わったとき、測定一覧はレンダー時にページ 1 にリセット されるようになり、新しいリクエスト処理中に表示されていた古い行の ちらつきを取り除いた。
- ハードリフレッシュ時の組織コンテキスト解決が決定的になった — 起動時の順序が、永続化された選択が復元される前に、アクティブ プロジェクトが一覧の最初のプロジェクトに一時的に戻っていた競合を 回避する。
- ダークモードが、選択、フォーカス、ホバーの色を Ionworks のブランドピンクから 導出するようになったため、フォーカスされた行、選択されたナビゲーション項目、 ホバーされたボタンが、暗い背景に対して濁って見えなくなった。
- 検証プロットの軸タイトルが正しくレンダリングされるようになった。
- セル詳細ページのセルカードが、パンくずと重複する冗長なメタデータ フィールドを表示しなくなった。
- すべての測定ページが、コールド/直接ナビゲーションでセルスペックを 読み込むようになり、他のページから移動してきたときだけでなく、初回 描画時に spec-name および spec-anode/cathode 列が表示されるようになった。
Pipeline
Pipeline
改善
CycleAgeingは実験が指定されたときに統合されたモデルモードを デフォルトとするようになった。サイクリング実験は同じ少数のステップを 何度も繰り返すため、単一の切り替えモデルは、ステップごとに 1 モデルを 使う場合と比べてビルドとソルブのコストを圧縮する;これにより、サイクル エージングフィットの大幅な高速化となる。PyBaMM 26.6.1.0 に固定。CycleAgeingはexperiment="from data"を受け付けるようになり、 ユーザーが再記述する必要なく、読み込んだデータセットからサイクリング 実験を構築する。CycleAgeingは、要求されたメトリックのすべてが最初/最後のサイクル の量しか必要としない場合、中間サイクルの保存を自動的にスキップする ようになった。CycleAgeingの保存対象サイクルは、呼び出し側が明示的に渡さない 場合、要求されたメトリックツリーから自動的に導出されるようになった — 下流のメトリックが実際に消費するサイクルだけが保存される。ElectrodeBalancingは既存の容量出力に加えてdQ/dV曲線を出力する ようになり、重み付きコストを dQ/dV のピーク構造に対して直接 計算できるようになった。Timeメトリックが時刻のベクトルを受け付け、それぞれでメトリックを 報告するようになり、数個のサンプル点を必要としていた呼び出し側での 以前の 1 回 1 スカラーのループを置き換える。- 汎用的なソルバーオプションがすべての目的関数を経由して渡されるように なり、先週のコンストラクター側のソルバーオプションを補完する。
SimplePipelineは、高コスト要素(DataFit、ArrayDataFit、Validation)を 2 つ以上含む config を拒否するクライアント側 バリデーターを備えた新しいPipelineサブクラスであり、サーバー側の ガードレールを反映している。
interactive_preprocessingは、目的関数のオプションで渡されたとき、 スキーマレベルで拒否されるようになり、ランタイムでの禁止と一致し、 より明確な config 時のエラーを提供する。
Python API
Python API
改善
client.electrolyte.transport_from_dataset(dataset_id, forms=, columns=)は、材料プロパティのデータセットを濃度依存の輸送関数のpybamm.ParameterValuesに変換し、iws.direct_entries.DirectEntry(parameters=...)にそのまま渡せるようにする。プロパティごとに 2 種類の関数形式が サポートされる: 表形式のpybamm.Interpolant(デフォルト)と、 Landesfeind–Gasteiger の等温式であり、後者は測定された最低濃度を 下回っても正で有限のままなので、電解液が枯渇する高レート DFN ソルブが 失敗にぶつからない。Quantityのコンストラクターは PyBaMM スタイルの単位文字列を受け付け、 入力時に正規化するようになったため、PyBaMM パラメータセットから コピーされた値が、単位を手動で書き換えることなくセルスキーマに 出入りしてラウンドトリップする。JobClient.get_parameter_trace(job_id)は、最適化ジョブからの パラメータ評価トレースを、検査または下流のプロット向けに DataFrame として返す。client.ecm(上記で紹介)は新しい ECM サブクライアントである。
- POST および PATCH 呼び出しは、GET ですでに使用されているのと同じ 上限付きバックオフポリシーで、一時的な接続切断時にリトライするように なり、不安定な回線に対する長時間のアップロード中に表面化していた 偽の接続エラーを取り除く。
Data Processing
Data Processing
修正
- 符号なしの混合モード符号規約による定電流放電セグメントが、ステップ 方向を誤ってラベル付けしなくなり、対応する CC 放電分類器が parquet のラウンドトリップで符号を反転させなくなった。
Protocol Simulator
Protocol Simulator
改善
SIGN(...)またはステップ時間の区分電流式を持つ Arbin プロトコルが、 正しくパースされ、期待されるステップ計画を出力するようになった; 以前のパーサーは条件式に対して汎用的な構文エラーで失敗していた。human_readable_protocol(...)は、ドライブサイクルステップを、 インラインで展開する代わりに、シミュレーターが他の箇所で使うのと 同じ短縮記法でレンダリングする。
- 一時停止および終了の停止理由が、ソルバーの失敗として扱われる代わりに、 ユーザーが修正可能なインラインエラーとして表面化するようになった。
Skills
Skills
改善
parameterizeスキルに、current-driven フィットテンプレートとフルセル OCV テンプレートが追加され、それぞれに目的関数/コストの意思決定ツリーが 付属するため、エージェントは入力データセットを、毎回選択を再導出する ことなく適切な開始構成にルーティングできる。- 新しい
electrolyte-transportSDK スキルが、client.electrolyte.transport_from_dataset(...)ワークフローを ドキュメント化する。interpolant と Landesfeind 指数のトレードオフ、DirectEntry統合パターンを含む。 - 新しい
ecm-fittingSDK スキルが、3 つの ECM 入力モード(example、 file、measurements)と save-to-project フローを順を追って案内する。 parameterizeスキルが、component/material モデルと、material → cells の逆引きを説明するようになったため、エージェントは材料を編集する 前に、どのセルスペックがその材料を参照しているかを見つけられる。
ブランドに沿ったテーマの刷新
Studio は Ionworks のブランドガイドに従った見た目になった。ピンク(#FF87B7)が
主要な CTA、選択、フォーカス、アクティブなナビ/タブを駆動し、
グリーンブラック(#020E0D)がテキストとニュートラルを支え、
青(#0C68E9)はハイパーリンク専用にして、リンクが
明確にクリック可能であることを保つ。角は 4px にシャープ化され、
タイポグラフィが更新され、JSON ビューア、プロット、テーブル、
ID チップもそれに合わせて再スキンされた。すべての変更は
テーマレベルであり、コンポーネントやデータフローの変更は伴わないため、
すべての画面が一度に底上げされる。パイプラインの検証プロットでのセマンティックズーム
検証プロットは可視 x 範囲に基づいて、必要なときにデータを 取得しサーバー側で間引くようになった。領域をボックスズームすると そのウィンドウ用のより密なデータが再要求され、1 ステップ戻すズームと 完全リセットのコントロールがズーム履歴としてスタックされる。 間引かれたトレースはジョブごとに短時間キャッシュされ、応答が速くなる。PyBaMM 26.6 対応の調整可能なソルバーオプション
ionworkspipeline のシミュレーションが新しいソルバーオプションの辞書を受け付けるようになった。
これは調整済みのデフォルトの上にマージされる。例えば
コンパイルオプションを有効にすると、
ソルバー設定の残りを再記述することなく、長時間の統合実験実行の
計算が高速化される。これは
シミュレーションベースのすべての目的関数(CurrentDriven、Pulse、
CalendarAgeing、CycleAgeing)に伝搬する。ワークスペースは
PyBaMM 26.6 にもアップグレードされ、新旧両方の内部データ形式を
受け付ける互換レイヤーによって、過去のデータと新しく生成された
データの両方を問題なく扱える。新しいデータエージェントスキル
cell_spec → cell_instance → cell_measurement → steps / time_series
階層を辿る、キャッシュ付きの新しいヘルパーが追加された。すべてのルックアップを
メモ化し、自動的にページネーションし、安定した反復のために名前順で
ソートされた一覧を返す。これに合わせて 2 つの
新しいエージェントスキルが追加された: build-data-report(レート性能、
DCIR、OCV、GITT、エントロピー、エージング、ギャップ分析を含む
マルチセクションの markdown + PDF 分析)と validate-data(ヘッダー
監査、スキーマ、parquet、厳密な測定バリデーターを網羅するアップロード前
ゲート)。Studio
Studio
改善
- セル測定の一覧エンドポイントが統合され、プロジェクト、スペック、
インスタンスの各スコープを通じてサーバー側ページネーションを使用するように
なった。フロントエンドは既存の cells ストアからスペックメタデータを解決し、
スペックレベルのフィルター(
spec_name、spec_anode、spec_cathode)を 別途事前取得することで、メインの一覧クエリを軽量に保つ。
- プロジェクトを削除しても、誤解を招く「The project you are trying to access does not exist…」というトーストが表示されなくなった。 削除確認ダイアログは、他の破壊的アクションのパターンに合わせて、 Delete project ボタンを有効化するために正確なプロジェクト名の 入力を要求するようになった。
- 測定ファイル用の署名付き URL の生成が、一時的なタイムアウト時に 短い間隔でリトライするようになった。新しい バッチエンドポイントが、ファイル一覧パスでの多数の並列呼び出しを 単一のリクエストに置き換える。ファイルダウンロードは、負荷時に ストレージ側が想定外の応答を返す場合にもリトライし、試行回数を 使い切ったときは分かりやすいエラーとして表面化する。
- セルインスタンスの測定グリッドが、スペック間の遷移後に以前のスペックの 行を表示し続けなくなった。セレクターは読み込み中にスケルトンを 表示し、無関係なデータ取得が進行中でも停止しなくなった。ECM 測定 セレクターは、すべてのプロジェクト測定をメモリに読み込む方式から 真のサーバー側ページネーションに切り替わった。
- drive-cycles のテンプレート一覧取得で発生していたエラーを修正し、
標準的な
limit/offsetページネーションへとアップグレードした。 - オートコンプリート入力のドロップダウン表示オプションが、想定通りに 適用されるようになった。
Pipeline
Pipeline
改善
skip_objective_callbacksは、サーバーが表面化しない初期/最終結果を 捕捉するためだけに完全な目的関数シミュレーションをもう 1 度実行する、 フィッティング前後の目的関数コールバックをスキップする新しいDataFitオプションである。バックエンドのデータフィットジョブは、 より高速なクラスタフィットのためにデフォルトで有効化するようになった。 ローカルユーザーは明示的にオプトインしない限り、既存のコールバックを 維持する。- パイプライン内で発生する設定エラーが、より明確なエラー種別として 分類されるようになった。これによりジョブ分類器がそれらを正しく Configuration error の UI パスにマッピングし、正しく表示されるように なった。
Python API
Python API
改善
client.simulation.get_result()が、time_seriesとstepsを DataFrame として(デフォルトは polars、pandas バックエンドも選択可能)、metricsをプレーンな辞書として持つ 型付きのSimulationResultデータクラスを返すようになった。これは 従来の生の辞書応答を置き換える。呼び出し側は辞書キーのルックアップではなく、 属性アクセスと.columnsのメンバーシップチェックを使用する。
Skills
Skills
改善
- 新しい
sim-resultsSDK スキル: 完了したシミュレーションからの 時系列とステップデータの取得、ステップ境界の累積による SOC の計算、 平均電流によるステップタイプの識別、OCV ベースラインとオンセット電流に よるパルスステップからの DCIR の導出、polars 対応のプロット規約を 含む。 parameterizeスキルは、電極ジオメトリ(厚み、ポロシティ、粒子半径、 AM 比率、最大濃度)を DFN/SPMe の build 要件として強く文書化する ようになった。物理ベースのモデルはこれらの構造パラメータなしには 組み立てられない。ジオメトリはセルスペックのコンポーネント上に 存在し(測定上ではない)、teardown / メトロロジー / ベンダー データシート / 文献から得られる。これを欠く Tier-2 セルでは FPBM は もはや「available」として提供されない。
June 1, 2026
Ionworks ソルバーがデフォルトになり、失敗したパイプラインと最適化の構造化されたエラー詳細、Wasserstein の重み付けモードと MSMRFullCell の dQ/dU 出力
Ionworks ソルバー
新しいIonworksSolver が ionworkspipeline.Simulation 内のデフォルト
ソルバーになった。これは既存ソルバーのドロップイン代替であり、モデルの構造を
検出し、構造が許す場合は厳密な解析解で代替し、解析不可能なモデルでは従来の
ソルバーにフォールバックする。これにより解析パスでのステップごとのコストが
削減される。区分的補間は smoothing=0 も受け付けるようになり、ハードな
ステップ関数を直接モデル化できる。失敗したパイプラインと最適化の構造化されたエラー詳細
パイプライン要素と最適化の失敗が、例外タイプを伴う構造化されたerror_detail を保持するようになった。2 つの新しいジョブエラーコード
CONFIGURATION_ERROR と SOLVER_ERROR が、ユーザーが修正可能な設定ミスと
ソルバー側の失敗を区別する。パイプライン内部の分類がこれらのコードを正しく
付与するよう改善された。Studio では、失敗した最適化から詳細な診断情報を
直接開けるようになった(スーパー管理者のみ)。例外メッセージ自体は
シリアライズ前に取り除かれるため、ユーザーに見える診断情報は安全に共有できる。Wasserstein の重み付き点群モードと MSMRFullCell の dQ/dU 出力
iws.costs.Wasserstein がオプションの position_variable と
weight_variable フィールドを獲得した。両方が設定された場合、コストは
目的関数ごとに 2 つの重み付き点群を比較する 1 つの Wasserstein-1 距離を
計算する。これは、Voltage [V] のピーク位置誤差をサンプルごとではなく
|dQ/dV| の重みで測定すべきフルセル MSMR フィットで有用である。
MSMRFullCell も objective variables に列挙された場合に
Differential capacity [Ah/V] を出力するようになり、これは
Full voltage [V] / Full capacity [A.h] から導出され、データの電圧
グリッドに補間される。パイプラインのドキュメントがスキーマ優先の Docs セクションへ移動
実行可能な「実際にどう動かすか」というパイプラインの内容が、Guide から Documentation タブ配下の新しいスキーマ優先の Pipelines セクションへ移動した。 すべてのコードサンプルはionworks-schema + ionworks-api を使うよう書き直された。
Guide には理論(方程式、パラメータ表、直感)が残り、既存の「Pipelines」グループは
Parameterization に改名された。日本語タブも新しいセクションを反映している。Studio
Studio
修正
- 既存の測定値からのプロジェクトスコープの ECM フィッティングが 422 を返さなく
なった。フロントエンドは、測定値ごとの SOC 変更以降バックエンドが期待してきた
ネストされた
{measurements: [{id, initial_soc?}], ecm_options: {...}}ペイ ロードを送信するようになり、選択された各測定値の隣に測定値ごとの初期 SOC 入力を表示する。
Pipeline
Pipeline
改善
client.simulation.protocol(...)がdesign_parametersをフラットな辞書として 再び受け付けるようになった。プロトコルテンプレートフローの導入時に誤って削除 されていた単一シミュレーションの便宜機能である。design_parametersとdesign_parameters_doeの両方を与えた場合、または複数のシミュレーションに展開 される DOE を与えた場合は、追加の実行を黙って課金する代わりに明示的に例外を 発生させるようになった。- 大きな埋め込みドライブサイクル表を持つ BioLogic
.mpsプロトコル(例: 約 96k 行 の Urban Profile トレースをインライン化したもの)が、プロトコル解析エンドポイント でタイムアウトを起こさなくなった。変更後のプロトコルが低速なパスで再解析され なくなった。 iws.direct_entries.DirectEntryが pybamm のパラメータ値オブジェクトを直接 受け付けるようになった。呼び出し可能な値(濃度依存・温度依存の補間関数)は 自動的にシンボル形式にシリアライズされ、パイプライン内部でそれらを元の シンボルに逆シリアライズして戻すため、ローカルと API の消費パスが同じ挙動になる。
- パイプラインパッケージ内のロガー階層が整理され、サブモジュールのログレベルが 正しく管理されるようになった。従来はサブモジュールのログレコードが親ロガーの 設定を通り越して伝播していた。
Python API
Python API
改善
client.simple_pipeline.create(...)がパイプライン実行オプション(例:live_progress_updates=False)を受け付けるようになった。バックグラウンド側は 既にこれらのオプションを尊重していたが、これによりリクエストモデル、サービス層、 SDK クライアントが一貫してつながった。
- 送信される JSON ペイロードが、リクエストボディに datetime カラムを持つ pandas
DataFrame を含む場合にエラーを発生させなくなった。
pd.Timestampはisoformat()でシリアライズされ、pd.NaTはnullになる。
Protocol Simulator
Protocol Simulator
修正
- BioLogic
.mpsパーサーが、内部のサブサイクルポインタを特定の範囲に格納する 一部のプロトコルでハングしなくなった。前方ジャンプのみがループ処理を発行し、 後方または等しい値は通常のステップ終了として扱われる。
Skills
Skills
改善
- Ionworks スキルが Gemini CLI 拡張機能としてインストールできるようになった。 コンテキストファイルが、すべてのスキルをセッションごとの受動的コンテキストと して読み込む。Coding agents のドキュメントページが、Codex と Claude Code に 加えて Gemini CLI、Cursor、GitHub Copilot のインストール経路をカバーするよう 更新された。
- 新しいハーフセル MSMR テンプレートと、parameterize スキルのハーフセル発見・ 検査・検証ヘルパー。リファレンスページはこのテンプレートを必須とし、すべての ハーフセル OCP フィットが同じ正規の事前分布、マルチスタート手法を使うよう、 discover → inspect → scaffold → dry-run → submit → validate のワークフローを 定めている。
- process-data スキルが、プラットフォームの実際の電流符号規約
(
positive = discharge)を文書化し、バリデーターと変換ロジックに合致させ、 二重反転の罠を明示するようになった。
より強力な測定データの検証と処理
新しい厳格モードチェックcapacity_energy_from_current_power は、報告された
Discharge/Charge capacity [A.h] および …energy [W.h] の各列を、Current [A]
と Power [W] のステップごとの台形積分と比較し、行単位の不一致(デフォルト許容
誤差 10%)を検出する。これにより、後で打ち消し合うようなステップ途中の一時的な
誤差も見逃さない。報告された充放電列が入れ替わっている場合(ハーフセルのエクス
ポートでよく見られる)には、fix_swapped_charge_discharge_columns がラベルを検出
して修正する。電流符号規約のチェックは、各ステップの投票を行数ではなく実際に通過
した電荷(∫|I| dt)で重み付けするようになった。これにより、ほぼゼロ電流の長い電圧
ホールドが本来の放電パルスを上回って誤った CURRENT_SIGN_REVERSED を発生させる
ことがなくなった。小電流のコインセルおよびハーフセルのデータがエンドツーエンドで処理できるように
なった。レストステップ検出はトレースのピーク電流に応じてしきい値をスケールし
(サブ mA の電流がすべてレストとして分類されることがなくなった)、自動反転リトライ
は再計算の前に古い容量・エネルギー列を破棄し、呼び出し側が指定した Step count
ラベルが符号補正後も保持される。新しい汎用 parquet リーダーは CSV リーダーと同じ
エイリアスベースの列検出を使用し、folder: データ参照は time_series.parquet /
steps.parquet も受け付けるようになった(両方が存在する場合は CSV より優先される)。より広範で検証付きの UCP-to-cycler 変換
UCP-to-Arbin および UCP-to-Maccor の各コンバーターは、より多くの終了条件とステップ タイプ(可変 / ループ / 複合終了、温度終了、Maccor の一時停止ステップ)を扱える ようになり、再パースに失敗するファイルを出力する代わりに、ターゲットの cycler が 本質的に表現できない機能に対して明確なエラーを事前に発生させるようになった。Wasserstein 距離コスト関数
新しい Wasserstein(earth mover’s distance)コスト関数がデータフィッティングの オプションとして追加され、モデル出力とデータを点ごとではなく分布として比較する。Studio
Studio
改善
- プロトコルリストの読み込みが劇的に高速化した。実験テンプレートのリスト
エンドポイントは、重い JSONB 列をデフォルトで省略するようになり(22 テンプレートで
約 7.5 KB 対 7.7 MB)、呼び出し側は
?include=経由でprotocol_config、parameters_schemaなどのフィールドをオプトインできる。 - 失敗したパイプラインをパイプライン詳細ページから再送信できるようになった。同 ページには、失敗した各要素へのディープリンクを持つエラーバナーが表示され、個々の 要素にはインラインのエラーアラートが表示される。
- 材料物性データセットのプロットに、単位付きの常時表示の縦型凡例が付き、プロットの 右側に配置されるようになった。
- プロジェクトデータページで測定値を ID でフィルタリングするとリストが絞り込まれる
ようになった。以前は
idクエリパラメータが黙って破棄され、すべての測定値が返って いた。 - 材料データセットのアップロードで、CSV に名前のない先頭列があっても列インデックスが ずれなくなり、名前のない列を黙ってスキップする代わりに、すべての列に名前があること を要求するようになった(明確なエラー付き)。
- プロジェクトメンバーシップ管理、アクティブな組織の切り替え、パラメータ化モデルの 削除が、データベースへの直接書き込みではなくバックエンド API を経由するようになり、 行レベルセキュリティの下で一貫した動作をするようになった。
Python API
Python API
改善
client.auth_check()とclient.whoami()は、設定された API キーがどのユーザーと 組織に解決されるかを検証するようになり、新しいGET /auth/healthエンドポイントに 支えられている。誤った組織(403)エラーのデバッグや、どのキーが有効かの確認に役立つ。
Protocol Simulator
Protocol Simulator
改善
SubRoutステップを含む Maccor プロトコルが UCP YAML のラウンドトリップを生き残る ようになった。解決されたサブルーチンステップは名前空間化されて YAML に書き戻され、 サブルーチン内のgotoターゲットはシミュレーション時に解決される。これにより、 パース後シミュレーションのフローで発生していたSubroutine '<name>' not foundエラーが修正された。
Skills
Skills
改善
- 新しい
validate-dataスキルが、測定データの検証と列修正のワークフローをエージェ ントに案内する。 - Codex プラグインマニフェストが追加され、Ionworks スキルパッケージが Claude Code と 並んで Codex にもインストールされるようになった。
May 18, 2026
Studio での材料プロパティ、設計最適化のためのネイティブ UCP シミュレーション、SimplePipeline ワークフロー、グローバルな /search エンドポイント
Studio での材料プロパティ
プロジェクトサイドバーに新しい Materials セクションが追加され、プロジェクト 内で材料を作成し、それぞれに測定済みのプロパティデータセット(CSV / parquet)を 添付できるようになった。アップロード、プロット、編集、再処理、置換、削除がすべて 配線済みである。 Python SDK は読み取り専用のclient.material および
client.material_property_dataset サブクライアントを獲得し、list、get、
get_units、get_data(polars.DataFrame を返す)を備える。REST サーフェスは
署名付き URL のダウンロード、オンザフライのダウンサンプリング、x 範囲フィルタを
サポートする。新しいドキュメントページが UI ワークフローと REST エンドポイントを
解説している。設計最適化のためのネイティブ UCP シミュレーション
DesignObjective に backend="ucp" オプションが追加され、UCP プロトコルを
pybamm.Experiment に変換する代わりに、最適化ループ内でネイティブに実行する
ようになった。これにより、変換で失われていた UCP の機能(動的ループ、条件分岐、
goto、set_variable、サブルーチン)が保持され、反復ごとのオーバーヘッドも回避
される。このバックエンドはまだ周波数領域のステップをサポートしていないため、
設計最適化では EIS ステップが前段で拒否されるようになった(フロントエンドの
フォームとバックエンドの双方で明確なエラーを表示する)。EIS には引き続き
スタンドアロンシミュレーションが経路となる。SimplePipeline ワークフロー
高コストな要素を最大 1 つ(1 つのデータフィット、または 1 つの検証)だけ含む 設定のための、新しい軽量パイプラインバリアント。設定全体が子ジョブにファンアウト する代わりに、単一のジョブとしてエンドツーエンドで実行される。/simple_pipelines 配下の CRUD エンドポイント(POST は 202 を返す。LIST は
フィルタをサポートする。名前 / 説明には PATCH。キャンセルと削除)に加え、
create、get、list、update、cancel、delete、wait_for_completion
を備えた client.simple_pipeline SDK サブクライアントを提供する。グローバル検索 API
新しいGET /search エンドポイントが、認証された組織内のプロジェクト、スタディ、
シミュレーション、モデル、パラメータ化モデル、最適化、最適化テンプレート、実験
テンプレート、パイプライン、セル仕様、材料にわたってプレフィックス全文検索 +
部分文字列検索を実行する。サーバーサイドの全文検索に支えられ、高速に応答する。
Studio にはまだフロントエンドの検索バーはない。新しいドキュメントページがこれを
明示しているので、探し回らずに済む。Studio
Studio
改善
- 最適化テーブル: 既存の一括キャンセルアクションの隣に一括 Delete が復活した。 権限でゲートされ、正しく複数形化する確認ダイアログと行ごとのエラートーストを 備える。
- プロトコルシミュレータ: 「Configure Plot」の隣の Download CSV ボタンが、 ズームにかかわらず、各時点に合わせて展開されたステップレベルのカラム (サイクル数、ステップ番号、プロトコル変数)を含む全時系列をエクスポートする。
- 時系列測定プロット:
+ボタンで同じ単位を共有する複数の変数をいずれかの Y 軸にオーバーレイできる。単位でフィルタされたドロップダウン、系列ごとに 異なるカラーサイクル、削除用の個別の×を備え、異なる単位の主変数を選択すると 互換性のない追加分がクリアされる。 - ECM モデルが
Anode potential [V]、Cathode potential [V]とそれらの開回路 対応物を公開するようになり、BioLogic の三電極 EWE / ECE 制御限界をシミュレー ションから再現できるようになった。新しいLFP/Li metalハーフセル化学が パラメータライブラリとセル構成 UI に追加された。 - ホバーツールチップがプロットライブラリ全体で小数点以下 3 桁に標準化された。
- EIS の Nyquist プロットが、接続線なしのマーカーのみの散布図として描画される ようになり、マーカーがやや大きくなった。
- セル仕様のカスケード削除が、より高速かつ堅牢になり、1 つの一時的な障害が他の クリーンアップを中断させないようになった。
- ファイルダウンロードが、一時的なエラーをバックオフ付きで自動的にリトライする ようになり、断続的なジョブ失敗を修正する。
- ジョブのメタデータを取得する新しいルートが、レガシーのエンドポイントでは
到達できなかった大きな検証ペイロード(
validation_results、validation_plot_config)への経路を Python SDK に提供する。 - シミュレーションの送信が、より一貫したパターンに統一された。冗長だった旧 エンドポイント群を削除した。
- シミュレーションの重複排除ロジックを修正し、「シミュレーションは既に存在する」 経路が実際にトリガーされ、重複行の蓄積が止まるようになった。
- 測定値の詳細:
Cycle number→Cycle countのカラム名変更後、Cycles タブが 再び表示され、サイクルフィルタスライダーの範囲も正しくなった。 propertiesまたはfileタイプの測定値が、空の時系列タブを描画する代わりに、 詳細パネルまたは SDK を指し示す情報アラートを表示するようになった。
Pipeline
Pipeline
改善
ionworks-schemaが、パイプライン全体にわたるパーサー入力の唯一の検証境界に なった。SDK はionworks-schemaに直接依存するようになった。- すべてのソルバーラッパーにわたってユーザー向けの最適化キーワード引数を標準化
した。
max_iterationsが旧来の複数の名前を置き換え、population_sizeが 差分進化の旧パラメータ名を置き換える。旧名はDeprecationWarningを発しつつ 引き続き動作する。DataFit.max_iterationsとFunctionTimeout.max_iterationsも同じ名前に揃えられた。 - プロトコルシミュレーション中の一時的なソルバー障害が、差分進化中に最適化を 停止させる代わりに、有限ペナルティの経路に落ちるようになった。プロトコルおよび 構成のエラーは引き続き明確に区別され、静的なバグは依然として表面化する。
pybamm.Experimentのperiodとtemperatureが実験のシリアライズを介して ラウンドトリップするようになった(修正はpybamm 26.4.3で出荷済み)。実験の スキーマは新しいフィールドセット(ステップごとのperiod、temperature、tags、description、direction、start_time、skip_ok、実験レベルのperiod、temperature、termination)を受け付ける。durationは"287 seconds"のような人間が読める文字列も受け付ける。- SimplePipeline ジョブがプロセス内でデータフィットを実行するようになったため、 分散評価が実際に発火する。接続が失敗した場合はプロセス内の経路にフォール バックする。レガシーの要素タイプラベルは、入口で正規化されるようになった。
Python API
Python API
改善
- 新しい SimplePipeline ワークフローのための
client.simple_pipelineサブクライアント。 client.protocol.convert(protocol, target)が、primary_bytes、text()、save(dir)ヘルパーを持つConvertResultを返す。UCP YAML プロトコルを ネイティブのベンダーファイル(Maccor、Arbin、Neware、BioLogic BT-Test、または Novonix)にエクスポートする。Maccor は主ファイルと並んでドライブサイクルの MWF アセットも返す。client.job.get_metadata(job_id)が、ジョブのメタデータのパース済みの内容を 返し、レガシーの結果エンドポイントでは到達できなかった大きな検証ペイロードへの アクセスを SDK に提供する。
Protocol Simulator
Protocol Simulator
改善
- BioLogic
.mpsパーサー: User Profile(ドライブサイクル)ステップが、埋め込まれた Urban Profile Table から、またはそれがない場合は付随する.txtファイルから 抽出されるようになった。UCP/PyBaMM では正が放電を表すように、取り込み時に電流の 符号が反転される。 - Arbin パーサーが、より堅牢にループを解決するよう書き直された。同じターゲットへの
兄弟後方 goto、ループをまたぐ goto の解決、数字を含む数式ラベルを修正する。
Pause ステップは UCP の第一級補助
Pauseステップを発行する。 - より多くの Arbin / Maccor ステップタイプを認識するようになった。各種ステップを
対応する UCP タイプに正しくマッピングし、先頭が負の電流式を
Dischargeに 分類する。 - 長いプロトコルでのステップごとのオーバーヘッドが大幅に削減された。不要な ルックアップやトレース評価がスキップされるケースが増え、処理が高速化した。
- 真のソルバー障害に対して専用の例外が送出されるようになった。プロトコルおよび 構成のエラーは元の例外タイプを維持し、ステップのコンテキストを得るだけである。
- ~28 行の前文に加えて
Type\tMode\tValue\t…ヘッダー行を含む実際の Maccor.MWFエクスポートがパースされるようになった。パーサーがヘッダーセンチネルを スキャンし、それを含めてそこまでをスキップしてから、残りを解析する。データ行 のみを含むファイルは引き続き変更なくパースされる。
Skills
Skills
改善
- 新しい
run-simple-pipelinesスキルが、SimplePipeline クライアントを エンドツーエンドで解説する。 process-data:protocolは電気化学的な結果に影響する試験条件(温度、C レート、 SoC、DoD、圧力)を保持し、一方test_setupは結果に影響しない物理的な手配 (サイクラーモデル、オペレーター、ラボ、チャンネル)を保持することを明確化した。test_setupは測定値にのみ存在し、セルインスタンスには存在しない。process-data: ステップカラムを伴うset_step_countが、曖昧さのない デフォルトになった。これにより、GITT やサブステップ付き RPT による減少 / 繰り返しのステップ ID も、単調なものと同じように機能する。set_cumulative_step_number(method="current sign")は、ステップカラムが まったく存在しない場合のフォールバックとして位置づけ直された。ステップ遷移で 重複するTime [s]行を発行するサイクラーへの注意書きを追加した。process-data: 必須のヘッダー監査ステップが 8 つのルール(すべてのファイルを 走査、コホート × カラムセットでグループ化、Standard / Auxiliary / Drop に分類、 リーダー出力を差分、補助カラムを保持、複数熱電対チャンネルを分離したまま維持、 コホートごとに単位 / 符号を確認、温度欠落を所見として表面化)と必須の確認 レポート形式を成文化した。これにより、標準化された parquet が書き込まれる前に、 サイクラーファミリー間でのカラムの黙った削除を捕捉できる。
リチウム硫黄化学を持つカスタム PyBaMM モデル
/models/upload-custom エンドポイントが chemistry フィールドを受け付ける
ようになり(デフォルトは lithium_ion)、Li-S モデルは実行時に化学を考慮した
初期状態のシムと、より高精度な数値許容誤差を得る。manage-projects SDK スキルは
アップロードワークフロー全体を文書化している。ECM フィット: 容量の共最適化とセグメントごとの初期 SoC
プロジェクトスコープの ECM フィットに対する、相互に関連するいくつかの改善。ocv_soc_curve(およびオプションの bounds_capacity)を与えると、Q を単一の
シードに固定する代わりに、セル容量 Q を他のパラメータと共に最適化できる。
25 °C のレートテストトレースでは、フィットされた容量がすべての設定にわたって
クーロンカウンティングの真値の 0.9 % 以内に収まるようになった。initial_soc が
リスト(測定値ごとに 1 エントリ)を受け付けるようになり、複数測定のフィットが
ギャップをまたいでクーロンを積分する代わりに、各セグメント境界で SoC をリセット
する。省略した場合、新しい自動シードルーチンが各セグメントの soc0 を精緻化
する。num_knots、num_knots_r0、knot_schedule、clamp_max_ratio が
/fit-from-measurements と /fit-from-file の第一級パラメータになった。境界の
デフォルトも緩められ、レートテストの順方向シミュレーションでの計算失敗を防ぐ。Python SDK のデフォルトプロジェクト
Ionworks クライアントが、構築時に project_id= 引数または新しい
IONWORKS_PROJECT_ID 環境変数からデフォルトの project_id を解決するように
なり、呼び出し側が毎回 project_id を引き回す必要がなくなった。従来の
PROJECT_ID 環境変数も引き続き動作するが、DeprecationWarning を発する。
すべての client.study.* メソッドは(リソース ID の後に)オプションのキーワード
として project_id を取り、デフォルトはクライアントの値となる。パイプラインと
最適化はこれをペイロードに自動注入する。構造化された測定検証イシュー
MeasurementValidationError.errors が list[ValidationIssue] になった。これは
安定した IssueCode(StrEnum)、severity、人間が読める message、JSON
ネイティブの payload を持つ凍結データクラスである。下流のコードは、メッセージ
文字列を grep する代わりに e.has_code(IssueCode.CURRENT_SIGN_REVERSED) で
チェックの同一性によって分岐できる。ionworksdata の自動修正パスは新しいコードを
キーにするようになった。IssueCode と ValidationIssue はトップレベルの
ionworks パッケージから再エクスポートされる。Studio
Studio
改善
- シミュレーションボードの CRUD がより堅牢なバックエンド API に移行され、 一部の環境で発生していた Visualization タブの空白表示が修正された。
- 最適化の Performance Detail および Performance Summary タブが、埋もれていた 検証イシューをタブの上のトップレベルのアラートとして表面化するようになった。 まれに発生する「空だが有効」なケースには、タブ内に情報「データなし」アラート を表示する。
- Visualization タブの防御的 UX: ボードが利用できない場合でも Data/Visualization トグルは表示され続け、ユーザーを空白ページに閉じ込める代わりに Data への 切り替えを促す警告アラートを表示する。
- 単一シミュレーション結果ページが、新規ナビゲーションでデータ読み込み前に 「Simulation not found」を一瞬表示しなくなった。
Pipeline
Pipeline
改善
ionworks-schemaが、パイプラインに既にあったConstraint、Penalty、CMAESOptions、PSOOptions、DEOptions、LatinHypercube、Uniformの スキーマクラスを獲得し、加えて目的関数、データフィット、パラメータ推定器、 正則化器、分布サンプラーにわたる約 40 個のクラスにドキュメントの充実が 施された。新しいドキュメントの骨格がサブモジュールごとにリファレンスページ を自動生成し、各スキーマクラスを対応するパイプラインのドキュメントページに クロスリンクする。
- 不正なパラメータの組み合わせで発生していたクラッシュが、データフィット全体を クラッシュさせる代わりに、既存のフィット失敗ペナルティパスにルーティングされる ようになった。クラウドフィットは生き続け、問題のあるサンプルには巨大なコストが 付くだけになる。
Python API
Python API
改善
- 新しい
client.urls.measurement(measurement_id, project_id)ヘルパーが、 測定値のウェブアプリディープリンクを返すようになり、呼び出し側が URL を手作りする必要がなくなった。
Skills
Skills
改善
manage-projectsが/models/upload-customのマルチパートワークフローと、 Model / ParameterizedModel の区別を文書化するようになった。upload-dataおよびその他の検証対応スキルを、エラー文字列の部分一致の 代わりに新しいIssueCode/ValidationIssueAPI とe.has_code(...)パターンを参照するよう更新した。