June 1, 2026
Ionworks ソルバーがデフォルトとして IDAKLU を置き換え、失敗したパイプラインと最適化の構造化されたエラー詳細、Wasserstein の重み付けモードと MSMRFullCell の dQ/dU 出力
Ionworks ソルバー
新しいIonworksSolver が ionworkspipeline.Simulation 内のデフォルト
ソルバーになった。これは pybamm.IDAKLUSolver のドロップイン代替であり、DAE の
構造的特性(求積、線形定数 / 線形可変、ブロック定数 / ブロック可変)を検出し、
構造が許す場合は厳密な解析解で代替し、解析不可能なモデルでは IDAKLU に
フォールバックする。CasADi の CodeGenerator による実行時の C コード生成と
Numba-JIT 積分カーネルにより、解析パスでのステップごとのコストが削減される。
区分的補間は smoothing=0 も受け付けるようになり、ハードなステップ関数を直接
モデル化できる。失敗したパイプラインと最適化の構造化されたエラー詳細
パイプライン要素と最適化の失敗が、例外タイプと Sentry ディープリンクを伴う 構造化されたerror_detail を保持するようになった。2 つの新しいジョブエラー
コード CONFIGURATION_ERROR と SOLVER_ERROR が、ユーザーが修正可能な設定
ミスとソルバー側の失敗を区別する。パイプラインパッケージ内では、FuzzyDict /
ParameterStore が裸の KeyError の代わりに新しい ParameterNotFoundError を
発生させ、ConfigurationError が無効な設定と実行時エラーを区別するため、
分類器が正しいコードを付与する。Studio では、失敗した最適化が View in Sentry
ボタン(スーパー管理者のみ)を表示し、キャプチャされたイベントを直接開くように
なった。例外メッセージ自体はシリアライズ前に取り除かれるため、ユーザーに見える
診断情報は安全に共有できる。Wasserstein の重み付き点群モードと MSMRFullCell の dQ/dU 出力
iws.costs.Wasserstein / iwp.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プロトコル(例: YAML の ブロックスカラーとしてインライン化された約 96k 行の Urban Profile トレース)が、/protocols/parse-to-templateでエッジプロキシのタイムアウトを起こさなくなった。 変更後の YAML が低速な PyYAML パスで再解析されなくなった。 iws.direct_entries.DirectEntryがpybamm.ParameterValuesを直接受け付ける ようになった。呼び出し可能な値(濃度依存・温度依存の補間関数)はParameterValues.to_json()によって自動的にシンボル JSON にシリアライズされ、 パイプライン内のDirectEntry.from_schemaパスがそれらを pybamm シンボルに 逆シリアライズして戻すため、ローカルと API の消費パスが同じ挙動になる。
ionworkspipeline.*配下の子モジュールロガー(例:ionworkspipeline.data_fits.*)がset_logging_levelによって管理される ようになった。従来パッケージロガーは親ではなく兄弟だったため、サブモジュールの レコードがそれを通り越して伝播していた。
Python API
Python API
改善
client.simple_pipeline.create(...)がPipelineOptions(例:live_progress_updates=False)を受け付けるようになった。ワーカーは既にジョブ パラメータのpipeline_optionsを尊重していたが、これによりリクエストモデル、 サービス層、SDK クライアントが一貫してつながった。
- 送信される JSON ペイロードが、リクエストボディに datetime カラムを持つ pandas
DataFrame を含む場合に
TypeErrorを発生させなくなった。pd.Timestampはisoformat()でシリアライズされ、pd.NaTはnullになる。
Protocol Simulator
Protocol Simulator
修正
- BioLogic
.mpsパーサーが、lim*_seqが内部のサブサイクルポインタ≤ Ns+1を格納するlfp_gr_cccv.mpsのようなプロトコルでハングしなくなった。 前方ジャンプ(seq > Ns+1)のみが goto を発行し、後方または等しい値は通常の ステップ終了として扱われる。
Skills
Skills
改善
- Ionworks スキルが
gemini extensions install ~/ionworks-skillsによって Gemini CLI 拡張機能としてインストールできるようになった。GEMINI.mdコンテキスト ファイルが、すべての 8 つのスキルをセッションごとの受動的コンテキストとして 読み込む。Coding agents のドキュメントページが、Codex と Claude Code に加えて Gemini CLI、Cursor、GitHub Copilot のインストール経路をカバーするよう更新された。 - 新しいハーフセル MSMR テンプレート(
assets/half_cell_msmr_template.py)と、 parameterize スキルのdiscover_half_cell.py、inspect_half_cell_data.py、validate_half_cell_fit.pyヘルパー。リファレンスページはこのテンプレートを 必須とし、すべてのハーフセル OCP フィットが同じ正規の事前分布、マルチスタート、 Xj 法を使うよう、discover → inspect → scaffold → dry-run → submit → validate のワークフローを定めている。
- process-data スキルが、プラットフォームの実際の電流符号規約
(
positive = discharge)を文書化し、バリデーターとset_positive_current_for_discharge変換に合致させ、二重反転の罠を明示する ようになった。