Skip to main content
July 13, 2026
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 フィットも、フィット品質を完全に保持しつつ、 いくつかの内部フィット戦略の改善によりより高速かつ正確に なった。
改善
  • プロトコル詳細ページに、そのプロトコルを使用するすべての シミュレーションをリストする Simulations セクションが 表示されるようになった。パラメータ化モデルのシミュレーション リストで利用できるのと同じ一括アクション(スタディへの追加、 再実行、削除)が使える。
  • パイプラインの一括キャンセルが瞬時になった。UI は 楽観的更新で即座に切り替わり、遅いジョブ終了作業は バックグラウンドで実行されるようにオフロードされる。単一の 一括キャンセルエンドポイントが、フロントエンドが以前行って いたパイプラインごとのループを置き換える。
  • Cycle Filter が、利用可能なサイクル数を超える First NLast NRange の値をクランプするようになった: 利用可能な すべてのサイクルを返し、中立的なテキストで Showing all N cycles と表示する。明示的な単一サイクルの タイプミス(例: 100 サイクルの測定に対する 0,50,200)は 引き続きエラーになるが、以前の何千もの数字の壁のような メッセージではなく、短く実用的なメッセージを表示する。
  • Compute hours が、シミュレーション時間と並ぶ第一級の使用量 ディメンションになった。各組織の契約により駆動される。 アカウントドロワーは設定された使用量タイプごとにメーターを 1 つレンダリングし、直近の既知のメーター数のサイズに設定された プレースホルダーカードで統合ローディングシグナルでゲートされる ため、リストが読み込み時に一時的にゼロに崩れることは なくなった。
修正
  • 通常の Admin(スーパー管理者ではない)として組織を削除すると、 正しく 403 Forbidden を返すようになった。以前は削除は 静かにブロックされていたが、エンドポイントは 204 を返していた ため、組織はデータベースに残ったまま偽の成功を示していた。
  • 電流符号規約のドキュメントが、バックエンドフィールドの説明、 API discovery エンドポイント、およびデータアップロードのドキュメント 全体で修正された: 正 = 放電、負 = 充電(プラットフォームの 実際のデータと検証器と一致)。正当に異なる外部サイクラー規約 (例: BioLogic / Arbin のネイティブは 正 = 充電)の説明は 変更されていない。
改善
  • DEPSO オプティマイザのデフォルト集団サイズが 40 に キャップされるようになった。明示的な population_size 値は 引き続きキャップをバイパスする。自動スケーリングされる デフォルトのみが変更され、それもキャップを超える場合のみである。
修正
  • ローカルパイプライン実行が、これまで乖離していた 3 か所で サーバーの動作と一致するようになった。data キーのみを持つ OCP interpolant 入力が、メタデータ欠落として拒否されなくなった。 スキーマ提供の変換(Log10LogInverse、…)が静かに ドロップされなくなった。そして、それらのドロップの下流症状と して発火していた無意味なマルチスタートガード (Multiple multistarts are being used, but all initial guesses are identical) が、結果として消えた。
改善
  • 新しい ionworks-mcp パッケージ — Ionworks 公開 API を Claude Desktop や Claude Code のような MCP クライアントに 公開する軽量な読み取り専用 MCP(Model Context Protocol) サーバー。ionworks-api Python SDK 上の薄いラッパーであり (認証、リトライ、キャッシュ、ページネーションを継承)、 機能検出、セル階層(spec、instance、時系列・ステップ・ サイクル付き測定)、そしてマテリアルおよびマテリアル プロパティデータセットにまたがる 15 のツールを備える。 同じ IONWORKS_API_KEY 環境変数を使用し、時系列呼び出しが 制限のないペイロードをダンプすることがないよう、DataFrame を 返すツールに対して行のウィンドウ処理を必須化する (デフォルト 500 行、最大 5000、offset ページング、 オプションの columns プロジェクション)。書き込みや変更は 一切行わない。
  • GET /organizations/current/usage が公開になり、上限を 伴うディメンションごとの使用量(simulationcompute)を 返すようになったため、SDK クライアントは管理者トークンなしで 自身のクォータを読み取れるようになった。
改善
  • 明示的な sheets オプションのない Neware BTSDA .xlsx ファイルが、時系列が実際に存在する record シートを 自動選択するようになった — メタデータのみを含む最初のシートに デフォルト設定して Timestamp 欠落エラーで失敗する代わりに。 以前の「sheets={type: 'name', value: 'record'} を渡す必要が あります」という落とし穴は自動化された。record シートが ないファイルは引き続き最初のシートのデフォルトにフォールバック する。
修正
  • Maccor リーダーが Cycle C — 累積サイクルカウンタ、 真のサイクル番号 — を Cycle from cycler にマッピングする ようになった。以前は Cycle P — プログラム/ループカウンタで、 多くの場合 0 であり、プロシージャ内でリセットされうる — にマッピングしていたため、両方のカラムを含むファイルは サイクル番号として無意味なゼロを報告していた。
修正
  • サブスケジュール(SubSchedule ステップ)を参照する Arbin スケジュールが、Duplicate step name found: 'End Test' で パースに失敗しなくなった。予約された End Test 終端は 重複名チェックから除外される — 各サブスケジュールは自身の コピーを保持するため、任意のスコープからの goto: "End Test" はシミュレーション時にも解決する。 真に名前が衝突するブロック(例: 2 つのスコープに現れる ユーザー定義の Loop_X)は、これまでどおりエラーになる。