Skip to content

v0.2.0

Choose a tag to compare

@Moon-DaeSeung Moon-DaeSeung released this 20 Feb 15:03
· 39 commits to main since this release

What's New in v0.2.0

Features

  • Suspense Supportquery() and query.infinite()suspense: true 옵션 추가. React <Suspense>와 자연스럽게 통합되며, 별도 hook 없이 기존 useModel() / create()로 동작. TypeScript에서 dataNonNullable<T>로 자동 추론됨 (#32)

  • Real-time Subscriptionsquery.realtime() 디스크립터 추가. WebSocket, SSE 등 실시간 데이터 소스를 query() 패턴으로 통합. connectionStatus, isConnected 상태 제공, subscribe 콜백으로 update(), set(), onStatus(), onError() 지원 (#30)

  • Persist Pluginpersist() 필드 디스크립터 추가. localStorage, sessionStorage 기본 어댑터 제공, 커스텀 PersistAdapter 인터페이스 지원. 크로스탭 동기화, 디바운스 write-back, SSR 안전, 커스텀 직렬화/역직렬화 (#31)

  • Decorators@Retry, @Queue, @Log, @Validate 데코레이터 추가. 글로벌 인터셉터, derived state, model validation 지원

Architecture

  • Plugin System — 모놀리식 구조에서 플러그인 아키텍처로 리팩토링. FieldPlugin 인터페이스를 통해 query, persist, realtime 등 기능이 코어 수정 없이 동적으로 등록됨. registerPlugin()으로 확장 가능 (#33)

  • Custom Proxy Layer — valtio 의존성 제거, 자체 프록시 기반 반응성 엔진 구현

Bug Fixes

  • query isLoading 계산 순서 수정 — error-retry 시 로딩 상태 정상 표시 (#17)
  • stale response race condition 수정 — 빠른 query arg 변경 시 최신 응답만 반영 (#17)
  • set() 호출 시 캐시 동기화 — staleTime 내 읽기 시 set 데이터 유지 (#17)
  • nextFetch cursor history 개선 — 다단계 뒤로가기 네비게이션 지원 (#17)
  • infinite query withCursor 제거, hasMore 가드 추가 (#15)

Docs

  • llm.txt 모듈형 레퍼런스 분리 — query, decorator 상세 레퍼런스 추가 (#34)

Full Changelog: v0.0.2...v0.2.0