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가 필요합니다. 그래프 토폴로지가 생명주기 전반에 걸쳐 스토어 기반이기 때문입니다.