First stable release of the 1.3.x line (supersedes 1.2.0 on the latest tag).
Highlights
- Model history (undo/redo). Built-in undo/redo for models, with a configurable history limit (default 100) and safe handling of concurrent async transactions.
- Observer-based
gcTime(TanStack Query v5 semantics). Garbage collection now starts when a model loses its lastuseModelobserver instead of fromlastFetchedAt. Cache entries are never evicted while a model has active subscribers, which fixesisLoadingflicker on same-key refetches.gcTimenow defaults to 5 minutes, applied only after a model reaches zero observers. - Improved
flush/cancelhelpers for@Debounce/@Throttle.flushDebounce/cancelDebounce/flushThrottle/cancelThrottleare now keyed per instance (two instances of the same class no longer share a window) and return a deferred result, so the surrounding interceptor stack (@OnError,@Retry, …) observes the flushed call's return value or rejection.
Fixes
refetch()always returns a Promise, even when the query has no active entry yet — previously it returnedundefinedand broke.then/.catchcallers (#76).
Breaking / migration
- Removed the
cacheTimeoption (it was an alias forgcTime). UsegcTimeinstead. FieldPlugin.bindStategains an optionalmodelKeyargument and a new optionalonSubscriberChange(modelKey, bag, registryState, hasObservers)hook. External plugins implementing theFieldPlugininterface must accept (or ignore) the extra argument.
Docs
- New History and Utilities API documentation, plus a refreshed
llms.txt.