LinkNetwork.addFloatingLink(link) は LLink | undefined を返すようになりました。
新しい実行時リンクでは、未割り当てのリンク ID を渡し、返されたリンクを使用します。
undefined を返します。稼働中のリンクを暗黙に置き換えたり、渡されたリンクに別の ID を割り当てたりはしません。graph.floatingLinks は片端リンクのためのフィルタ済み互換ビューのままです。
graph.links と graph.floatingLinks は、独立したネイティブの Map ストレージではなく、所有者でフィルタされたストアに支えられた互換ビューです。通常の Map 読み取りメソッドはキャッシュされたメンバーシップスナップショットを使用します。トポロジのメンバーが変わった後は、既存のイテレーターを保持せず、新しいイテレーターを取得してください。どちらのビューも有効な Pinia を必要とし、ストアがない状態を空のグラフとしては表さなくなりました。
ネイティブの Map.set() と同様に、view.set(id, link) は登録結果ではなくビューを返します。登録は既存のリンクを保持したまま ID の衝突やターゲットの衝突を拒否することがあるため、ビュー経由で挿入する拡張機能は view.get(link.id) === link で成功を確認してください。同じビュー内のリンクと ID が衝突した後は、has() は true を返し、get() は既存のリンクを返します。その操作をカバーできる場合はグラフ接続 API とフローティングリンク API を優先してください。これらの API は周辺のライフサイクルを調整するためです。どちらのビューに対しても Map.prototype のメソッドを直接呼び出したり、ネイティブ Map の内部ストレージに依存したりしないでください。
入力の置き換えは、古いリンクの切断コールバックより前に新しいリンクをコミットするため、コールバックからの問い合わせは空の入力ではなく置き換え後のリンクを参照します。通常の接続コールバックはその後に続きます。
以前に戻り値を無視していた拡張機能は、渡されたリンクを保持、描画、変更する前に undefined を処理してください。新しい実行時リンクに正のリンク ID をあらかじめ指定せず、グラフに生成させてください。
永続化された ID の衝突修復は、ワークフローのインポートとデシリアライズの責務です。シリアライズされたトポロジをインポートする拡張機能は、実行時登録 API を使う前にその境界で競合する ID を正規化してください。
ルートの LGraph を構築する場合、またはシリアライズされたデータから設定する場合は、グラフのトポロジがライフサイクル全体を通じてストアに支えられているため、有効な Pinia が必要です。