プロジェクトのホームダッシュボード、平易な文章によるプロトコル作成、サイクラーエクスポート付きのテストリクエスト詳細ページ、そして Butler-Volmer ECM 要素
すべてのプロジェクトにホームページ
これまでプロジェクトを開くと、いきなりスタディ一覧に着地していた。 プロジェクトは、きちんとした ホームページ で開くようになった: アシスタントのプロンプトが中央前面に置かれ、実行中のパイプラインを 示す Running now パネル、直近に触ったスタディ・パイプライン・ 測定・会話が並ぶ Pick up where you left off の行、そして プロジェクトの各領域の件数付きブラウズタイルがある。ホームページから 質問すると、その質問を送信済みの状態で新しい Agent 会話が開く。平易な文章でテストを記述する
Lab のテストスケジューラが、説明からプロトコルを作成 できるように なった。「4.2 V から 2.5 V の間で 1C/1C サイクルを 100 サイクル、 休止 10 分」のように入力すると、検証済みのプロトコルが返り、 そのままリクエストできる。チャンネル上で物理的に何が実行されるかを 変えてしまう情報が説明から欠けている場合は、値を推測せずに問い返される。 一般的な慣行(周囲温度 25 °C、CC-CV テーパ、休止時間)は仮定され、 その内容が報告される。保存済みのプロトコルで用が足りる場合は、 新規作成ではなくそちらが提示される。ジェネレータが返すものは、 いずれもプラットフォームが受け付けるプロトコルである — あなたが目に する前に検証されている。テストリクエストに専用ページ、そしてサイクラーへのエクスポート
計画済みテストは、編集フォームに直接飛ぶのではなく 詳細ページ で 開くようになり、リクエスト、そのスケジューリング、そのアクションが 別々に配置される — 未スケジュールのリクエストが、半分空のフォームでは なく「まだ予約されていない」と読めるようになった。 このページから、リクエストのプロトコルをサイクラーのネイティブ形式で エクスポート できる — Maccor、Arbin、Neware、BioLogic(BT-Lab)、 Novonix に対応し、プレビューしてダウンロードできるため、ベンダー ソフトウェアでテストを作り直す必要がない。複数ファイルを必要とする エクスポートは、単一の zip として届く。ECM における電荷移動反応
Equivalent Circuit Model に、オプションの Butler-Volmer 電荷移動要素 が追加された。有効にすると、新しい Exchange current [A] パラメータに 駆動される対称な電荷移動過電圧が加わり、線形な直列抵抗では捉えられない レート依存の損失を表現できる — 低電流ではほぼ線形、高電流では対数的に 振る舞う。デフォルトでは無効なため、既存のモデルとシミュレーションは まったく変わらない。有効時には新しい Charge-transfer overpotential [V] 出力が利用できる。Studio
Studio
Improvements
- ECM のシミュレーション結果に、実際の voltage components プロットが 表示されるようになった — 開回路電圧、直列抵抗による電圧降下、そして RC ペアごとに 1 つのバンドが、端子電圧まで積み上げられる。
- 測定ビューに Filter by Steps or Cycles セレクタが追加された。 サイクルデータを持たない測定 — OCV シーケンス、パルスおよび DCIR テスト、シングルパスの特性評価 — も、フィルタコントロールが まったくない状態ではなく完全なステップフィルタを得られるようになり、 Steps で開く。
- チャンネルのインシデント履歴 — チャンネルを運用停止にすると、 その停止が原因、カテゴリ、報告者、報告時刻とともに記録されるように なった。停止中のチャンネルには、原因・開始時刻・経過時間を示す コールアウトと Return to service アクションが表示され、 チャンネルページには過去のインシデントが一覧される。
- 組織管理者が、Organization 設定の新しい Programs タブから Programs カタログを管理できるようになった — 計画済みテストの タグ付けに使うプログラムの作成、名称変更、削除ができる。
- プロトコルがプロジェクト単位にスコープされるようになった。 読み取り専用のライブラリを共有するのではなく、各プロジェクトが 標準プロトコルの編集可能な自身のコピーを持って始まるため、 あるプロジェクトでの編集が別のプロジェクトに影響することはない。 既存のプロジェクトにもそれぞれのコピーが投入されている。
- 測定の時系列アップロードが即座に返り、バックグラウンドで処理 されるようになった。進捗と処理エラーは測定一覧で確認できるため、 大きなアップロードがリクエストをブロックしなくなった。
- API キーの取り消しが、遅延なく 即時 に効くようになった。
- Agent ウィジェットの New chat ボタンが、最後の会話を開き直すのでは なく、実際に空の会話を開始するようになった。
- 返信中にページをリロードしても、Agent 会話の以前のメッセージが空に ならなくなった — 履歴とストリーミング中の返信が、一方が他方を 置き換えるのではなくマージされる。
- API キー認証の失敗時に、送信されたキーがエラーレスポンスに そのまま返らなくなった。返るのはキーの短いプレフィックスのみである。
- セル仕様を 最終更新 でソートまたはフィルタしてもエラーにならなく
なった — このフィールドが
created_atと並んで保存・返却される ようになった。 - 認証およびメンバーシップ照会の一時的な失敗が、不透明な失敗ではなく、 実際の原因を伴うリトライ可能なエラーとして報告されるようになった。
- 空白文字のみで構成されるプログラム名が拒否されるようになり、 プログラム関連のテキストが WCAG のコントラスト要件を満たすように なった。
Pipeline
Pipeline
Improvements
- パイプライン要素が 型付き結果オブジェクト を返すようになった —
パラメータ推定、最適化、事後分布、アンサンブル、回帰、検証の結果が
それぞれ独自の型を持ち、
Pipeline.resultsから到達できる。新しいiwp.analysis名前空間がフィット後の解析をまとめ、LinearConfidenceIntervalとSobolSensitivityを含む。 - 補間関数を値に持つパラメータ(たとえば目的関数ごとに与える実測の
周囲温度プロファイル)が、
pybamm.ParameterValuesからだけでなく、 素の辞書からもシリアライズできるようになった。配列値のパラメータは、 インデックス付きパラメータと誤読されるのではなく、正しく ラウンドトリップする。
- すべてのフィット結果が自身への参照を保持し、結果が必要以上に長く 生存していたメモリリークを修正した。また、子が偶然同じパラメータ値を 持っていた場合に、親の結果をコピーするとその子が黙って失われる問題も 修正した。
Python API
Python API
Improvements
- チャンネルインシデント 用、および バックグラウンド測定 アップロード フロー用の新しいクライアントを追加した。SDK から アップロードを開始し、その処理状態をポーリングできる。
- プロトコルのクライアントが、上記のプロジェクト単位プロトコルの変更に 合わせてプロジェクトスコープになった。
- 破壊的変更(
ionworkspipelineを直接使うユーザーのみ):result.optimizer_result、iwp.OptimizerResult、iwp.SamplerResultは、上記の型付き結果オブジェクト(OptimizationResult.x/.fun/.success、PosteriorResultなど)に置き換えて削除された。またRegressionResult.resultは.resultsになった。
Data Processing
Data Processing
Improvements
- Power [W] が、読み出しごとに導出されるのではなく、測定の処理時に 計算され時系列とともに保存されるようになった。処理中に電流の符号が 自動補正された場合も、正しい値が保たれる。
Protocol Simulator
Protocol Simulator
Improvements
- プロトコルを キャプチャした時点から厳密に再開 できるようになった — 位置、ループ回数、変数、サイクル番号、そして完全な物理状態まで含む ため、実行をチェックポイントし、休止ステップなしで精度を落とさずに 継続できる。
- 新しい プロトコル作成時の警告 が、実行前によくある間違いを指摘 する: 打ち間違いやスコープをまたぐジャンプ、存在しないサブルーチン、 決して満たされないループ条件、到達不能なステップ、ステップの方向と 矛盾する電圧制限、安全ウィンドウ外のターゲット、そして電流ベースの 終了条件を持つ休止である。これらは助言であり、今日動いているものが 動かなくなることはない。エラーとして捕まえたい場合はブロッキングに もできる。
- プロトコルが、導出された 電圧および電流の制限 を報告するように なった — ステップ、安全限界、ドライブサイクルから導かれる最小・最大 電圧と、充電・放電のピーク電流である。
- Maccor と Novonix のエクスポートが、最後ではなく 最も早い 継続時間 終了条件を使うようになった。ステップが要求より長く実行されることは なくなった。
- 素の数値が期待される箇所に、構造化された安全限界の値を書き出していた Novonix エクスポートの不具合を修正した。
- 2 つの分岐したコードパスが食い違っていた Arbin のループ検出と Neware のテンプレート処理のケースを修正した。
Skills
Skills
Improvements
- Manage equipment が、チャンネルのインシデント履歴の記録と読み出しを 扱うようになった。
- Upload data が、バックグラウンドアップロードのフローと、測定の 処理状態のポーリング方法を扱うようになった。
アプリ内 Agent チャット、クイックモデル付きのプロジェクト内 Battery Cycler Simulator、そしてプログラムとウォッチ対象チャンネルによる Lab テストスケジューリング
アプリに組み込まれた Agent チャット
新しいアプリ内 Agent が、Studio 内に会話型アシスタントを配置する。 データやモデルについて質問したり、ファイルを渡したり、それが 動作している間フォローしたりできる — 返信は生成されるにつれて ストリームで届き、各会話は保存されるため、後で再開できる。 Agent は組織ごとに隔離されたサンドボックスで実行される。まずは 限られた組織群にロールアウトされ、今後数週間にわたってより広く 利用可能になっていく。Battery Cycler Simulator が、プロジェクト内へ
プロトコルシミュレータがスタンドアロンページから プロジェクト内 に移動し、シミュレーションはそれらが属するセル、スタディ、 モデルと一緒に存在するようになった。新しい Quick model オプションを使うと、まずパラメータ化モデルを保存することなく、 すぐにシミュレーションできる — 化学系を選んで、容量と抵抗の スケールをインラインで設定するだけである。フィット済みのモデルを 使いたい場合は? From library トグルが、保存されたセル → パラメータ化モデルの選択に対して引き続き実行できる。Lab テストの計画と追跡
Lab ビューに、完全な テストスケジューラ が追加された。 チャンネル上のテストをリクエストすると、プラットフォームが 事前にプロトコルを検証する — 無効なプロトコルは、何が問題かに ついての明確なメッセージとともに、リクエストが保存される前に 拒否される。スケジューリングダイアログは、選択する際に各 チャンネルのライブ空き状況と電気的定格を表示し、既存のリクエストを コピーして新しいものの種にしたり、不要になったものを削除 したりできる。オプションの組織 Programs カタログを使うと、 各テストに属するプログラムをタグ付けでき、Lab wall と計画表に 表示される。エンジニアは、気になるテストに目を光らせるために チャンネルを watch し、Lab wall をそれらだけに絞り込むこともできる — そして watch は現在チャンネル上にある実行に紐付いているため、そのテストが 終了した瞬間に自動的にクリアされる。Studio
Studio
改善
- Battery Cycler Simulator がプロジェクト内に移動し、 保存済みのパラメータ化モデルなしでシミュレーションするための 新しい Quick model オプションが追加された。
- Lab テストスケジューラ — チャンネル上でテストをリクエスト、 コピー、削除できる。無効なプロトコルは、実行可能なエラーとともに 送信時に拒否される。
- Programs — 計画されたテストをタグ付けするための組織の オプションカタログで、Lab wall と計画表に表示される。
- チャンネルを watch して、そのライブテストをフォローし、 Lab wall をウォッチ対象のチャンネルに絞り込む。テストが完了 すると、watch は自動的にクリアされる。
- セル仕様は、デフォルトのパラメータ化モデル を指定できる ようになった。仕様に対して最初に作成されたモデルは、自動的に そのデフォルトになる。
- 測定詳細に、Time Series タブで選択可能な、派生された Power [W] カラム(電圧 × 電流)が追加された。
- 測定の Differential Analysis タブが、dV/dQ に加えて dQ/dV もプロットできるようになり、プロットタイプの ドロップダウンから切り替えられる。
- マテリアルプロパティデータセットと分析が ソース を 追跡するようになった — データセットまたは分析がパイプラインや 別の分析から計算されたときに、そのデータがどこから来たかを 確認してクリックスルーできる。
- 組織管理者は、メンバータブから直接メンバーに対して 招待を再送信 または パスワードリセットを送信 できる ようになり、メールでメンバーを追加する際に、新しく招待 されたユーザーと既に登録済みのユーザーが区別されるように なった。
- Lab は、他の機能領域と同じように、管理者の Navigation 設定から 組織ごとに表示または非表示にできるようになった。
- デプロイをまたいで開いたままにされた古いブラウザタブが、 メンテナンスページを表示するのではなく、新しいバージョンを 取り込むために 自動的にリロード されるようになった。
- 検証チャートおよびその他のチャートの、プロット軸、目盛 ラベル、タイトルが、ダークモード で読みやすくなった。
- メールによるメンバー追加が大文字小文字を区別しなくなり、 ケースの異なるアドレスがミスマッチを引き起こさなくなった。
- サイクラーおよびチャンネルの詳細ページが、リンクされた子 レコードを持つ機器の読み込み時にエラーにならなくなった。
Pipeline
Pipeline
改善
- MSMR ハーフセル OCP フィットが、フィットされたホストサイト 占有率(Xⱼ)の合計が 1 になるように制約するようになり、 エクスポートおよび下流で再利用される値が自己整合的になる。
- すべての評価が非有限な DataFit が、フィットが成功したかの ように初期推定値を静かに返すのではなく、明確なエラーで 失敗 するようになった。
Python API
Python API
改善
- フィット済みのモデルが、シミュレーション設定
(メッシュおよびソルバー設定)を永続化するようになり、
モデルはどこで使われても同じ方法でシミュレーションされる。
ModelおよびParameterizedModelクライアントは、その設定を 公開し、iws.models.SimulationSettings(...)を介してライブの PyBaMM オブジェクトからそれを構築する方法を文書化している。 SimplePipeline.createがスキーマオブジェクトを直接受け付ける ようになり(Pipeline.createと一致)、.to_config()を自分で 呼び出す必要がなくなった。dict も引き続き変更なく動作する。- 新しい
JobClient.get_plot_data(job_id, objective_name, …)が、 完了したジョブから DataFit のモデル vs データのオーバーレイを 直接返す。
Protocol Simulator
Protocol Simulator
改善
- Equivalent Circuit Model のインピーダンス(EIS) シミュレーションが、他のすべてのモデルと同じ標準の PyBaMM 機構を通じて実行されるようになった。
- チャンネルごとの温度を集約するステップ終端条件を持つ
Arbin プロトコル(例:
max(Temperature, …) > 55)が、 invalid-end-condition エラーで失敗するのではなく、正しく パースされるようになった。
サイクラーとチャンネルを追跡するための新しい Lab ビュー、測定分析、そして ECM でのスループットベースの劣化
Lab ビュー — すべてのサイクラーとチャンネルを一目で
新しいプロジェクトスコープの Lab ダッシュボードは、サイト → サイクラー → チャンネルとして整理されたすべてのテスト機器を表示 するため、どこで何が実行されているかを一目で把握できる。Lab wall は すべてのサイクラーを使用率バーと状態別チャンネル数とともに一覧 表示し、サイトおよびアンペア/ボルト定格範囲でフィルタリングできる。 サイクラーをドリルダウンするとフルチャンネルグリッドが表示され、 単一のチャンネルをドリルダウンすると、どのセルがテスト中か、 その測定履歴、そしてメモ付きの編集可能な運用停止トグルが正確に 確認できる。各チャンネルの状態 — 占有中、stale(更新が止まり、注意が 必要な可能性が高い実行)、空き、運用停止中 — は、 リンクされた測定から導出されるため、ライブテレメトリー接続なしで ビューは正確なまま保たれる。チャンネルカードには、利用可能な場合、 実行中のテストの推定終了時間も表示される。一連のスケジューリング ルールがデータの整合性を保つ: 同じチャンネル上で 2 つの実行が 重複することはできず、テストがアクティブな間にチャンネルを運用 停止にすることはできない。同じ機器の全体像は、Python SDK の新しいclient.lab サブクライアント
を通じてプログラム的に利用可能である — 全体的な使用率の照会、
空きチャンネルの一覧(必要な定格でオプションでフィルタリング)、
注意が必要な stale チャンネルの検索、特定のチャンネル上に何が
あるかの確認が、すべて単一の呼び出しで可能である。測定分析
測定に 分析 を添付できるようになった — 生の測定と並んで保存 される、抽出された特徴の名前付きテーブル(例: EIS からの ECM パラメータ、RPT データからの LLI/LAM 劣化点など)である。 測定詳細ページには測定の分析が一覧表示され、各分析には独自の 詳細ページ、データプレビュー、ダウンロード可能な parquet、 そしてソース測定へのリンクバックがある。分析は、新しいclient.analysis クライアントを介して Python SDK で完全に
サポートされる(polars/pandas DataFrame からの作成、リスト、
データ取得、更新、削除)。ECM でのスループットベースの劣化
Equivalent Circuit Model(iwp.models.ECM)に、オプトインの
劣化機能 が追加された: 容量と内部抵抗は、容量スループット
(|current| の連続積分)のユーザー指定関数として進化できる
ようになり、単一のシミュレーションで実行全体にわたるフェードを
捉えることができる。両オプションともデフォルトで定数であるため、
既存の ECM 設定は影響を受けない。Studio
Studio
改善
- グローバル検索 が、プロジェクト、スタディ、セルに加えて サイクラーとチャンネルもカバーするようになった — どこからでも 検索して、チャンネルの詳細ページに直接ジャンプできる。
- セル仕様の詳細ページが、3 つのタブ — Measurements、 Instances、Parameterized models — に整理され、それぞれ サーバーサイドのページネーション、フィルタリング、ソートが 可能になった。
- 組織管理者は、メンバーの アクセスを一時停止するが、 メンバーシップとロールを保持 できるようになり、後で 再アクティブ化することもできる。無効化されたユーザーには、 別の組織に切り替えるオプションのある専用画面が表示される。
- マテリアルとコンポーネントは、それらを参照するセル仕様の プロジェクトにスコープされるようになり、各プロジェクトの パラメータデータをそれ自身の境界内に保つ。
- プロジェクト測定グリッドを measurement id カラムで ソートしても、すべての行が消えなくなった。
Pipeline
Pipeline
改善
- ベイジアンサンプラーを使った DataFit 実行が、点推定だけでなく 完全な事後サンプル連鎖(パラメータごとのサンプルとサンプル ごとのコスト)も返すようになり、ジョブ結果から取得できる。
Python API
Python API
改善
- 時点ごとの機器の問い合わせ用の新しい
client.labサブクライアント: 全体的な使用率、空きチャンネル(必要な アンペア/ボルト定格でオプションでフィルタリング)、注意が 必要な stale チャンネル、そして特定のチャンネル上にある ものの確認。 - 測定分析の作成、一覧、取得、更新、削除のための新しい
client.analysisサブクライアント。DataFrame を透過的に parquet と相互にシリアライズする。 - 送信されたパイプラインは、
file:およびfolder:refs で ローカルデータを参照できるようになった。その内容は送信時に 読み取られてインライン化され、生の DataFrame に適用されるのと 同じインライン行キャップが、これらの refs に対しても正しく 適用されるようになった(非常に大きな CSV を指すfile:が もはやすり抜けることはない)。 - 生データのアップロードは、通常の測定アップロードと同じ高速 署名付き URL フローを使用するようになった。
Protocol Simulator
Protocol Simulator
改善
- Arbin の Power Simulation ドライブサイクルがサポート されるようになった — 電流ではなく電力(W)波形を適用できる ドライブサイクルステップにパースされ、Arbin の累積容量/ エネルギーカウンタがステップ全体にわたって正しくモデル化 される。
- 前ステップの数量を読み取る Arbin の
SetValueステップ (例:MV_UD1 = LS_CHAN_Discharge_Capacity、「C/20 容量を 測定してログに記録する」イディオム)が、未解決変数エラーで 失敗するのではなく、シミュレーション時に正しく解決される ようになった。そのため、その値に依存する下流ステップも実行 される。 - 親スケジュールのステップとステップインデックスおよびラベルを
たまたま共有する Arbin のサブスケジュールステップが、
duplicate-step-name エラーで衝突することがなくなった。
各サブスケジュールのステップは、
gotoターゲットを正しく 解決しつつ、区別されたままである。
Python API での EIS アップロード検証、そしてパイプライン詳細ページと ECM フィットの高速化
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 フィッティング、JSON 設定パス経由の ArrayDataFit、そしてほぼ瞬時の測定データ削除
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: [...]フィールドが 使われていた。
並列データフィット向けの再構築された実行エンジン、名前ベースの測定ルックアップ、Arbin サブスケジュール/ループサポート、より明確なモデルおよび重複エラー
データフィット向けに再構築された実行エンジン
データフィットの並列処理レイヤーが専用の実行エンジンとして再構築された。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エントリポイントと並んで。
拡散のみのフィット向け 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(上記で導入)は、ルーティングされたすべての リソースに対して環境認識型のリンクを構築するようになった。
⌘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 の逆引きを説明するようになったため、エージェントは材料を編集する 前に、どのセルスペックがその材料を参照しているかを見つけられる。
ブランドに沿ったテーマの刷新、検証プロットでのセマンティックズーム、新しいデータエージェントスキル、PyBaMM 26.6 対応の調整可能なソルバーオプション
ブランドに沿ったテーマの刷新
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 セルでは DFN は もはや「available」として提供されない。
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)を文書化し、バリデーターと変換ロジックに合致させ、 二重反転の罠を明示するようになった。