-
Notifications
You must be signed in to change notification settings - Fork 10
Releases: mutativejs/travels
Releases · mutativejs/travels
Release list
1.3.1
[1.3.1] - 2026年05月16日
Fixed
- Wrap object values returned from
setState(() => value)only when they do not contain Mutative drafts, removing noisy Mutative warnings while preserving draft-returning updater behavior. - Avoid Mutative warnings when manual
archive()merges pending patches. - Avoid scheduling pending-state cleanup microtasks for no-op updates.
- Avoid duplicate subscriber and devtools notifications for clean
replaceStateWithoutHistoryno-ops while preserving mutable external-state rebasing. - Fix release workflow polling for dispatched API Docs runs, including empty run conclusions while the deployment is still in progress.
Changed
- Reuse a single cloned patches snapshot for subscribers and devtools callbacks during each change event.
- Build API docs before npm publish, then deploy GitHub Pages from the validated release tag after npm publishing succeeds.
Documentation
- Clarify that
subscribepatch snapshots andgetHistory()arrays and entries are shared read-only data. - Clarify the release checklist for tag-driven npm publishing and GitHub Pages deployment.
Full Changelog: v1.3.0...v1.3.1
Assets 2
1.3.0
[1.3.0] - 2026年05月15日
Added
- Add versioned persistence APIs for serializing and restoring state, history, position, metadata, and schema version.
- Add persistence migration hooks and compatibility checks for safely loading older or unsupported snapshots.
- Add warnings for unsupported state shapes so applications can detect values that are unsafe for JSON Patch persistence.
- Add product-oriented history controls for archive metadata, pending history entries, manual pending metadata, and status reporting.
- Add integration examples for persistence adapters, local-first persistence, form builders, canvas editors, MobX, Pinia, Vue, and Zustand.
- Add browser, property-based, persistence, product API, Vue example, and type-level test coverage.
Fixed
- Validate persisted patches, patch paths, metadata entries, patch values, unsupported operations, and root add/remove operations before rehydration.
- Roll back failed transactions and isolate nested transactions to keep history and state consistent.
- Preserve, clone, serialize, and forward history metadata and pending manual patches consistently.
- Retain contiguous rehydrated history while respecting
maxHistory. - Keep Vue history methods and status refs in sync after controls updates.
- Avoid rebroadcasting remote snapshots and provide safer local-first snapshot fallback behavior.
- Handle rebase and reset no-op replacements without corrupting baseline history.
Changed
- GitHub Pages and npm publishing now run only from explicit
v*release tags. - Release tags must match the
package.jsonversion exactly, with a leadingv. - Tag releases now run the full CI, e2e, coverage, and benchmark gates before npm publishing or GitHub Pages deployment.
- Ordinary pushes to
mainnow run CI only and no longer publish docs, publish npm, or create release PRs. - Update release documentation to use manual version and changelog commits followed by explicit tag publishing.
Documentation
- Clarify README positioning, persistence usage, compatibility guidance, and framework integration paths.
- Add compatibility, migration, and release checklist documentation.
Full Changelog: v1.2.0...v1.3.0
Assets 2
1.2.0
[1.2.0] - 2026年04月22日
This release adds rebase(), a new API for clearing history and making the current state the new baseline.
What's Changed
- feat(rebase): creating rebase history function by @rajaomariajaona in #6
Added
rebase()onTravels- rebasable controls via
getControls() - dedicated tests covering normal, manual archive, mutable, and mid-history rebasing
- README guidance for
rebase()and external form manager integration
Important
rebase() is destructive:
- past history is removed
- future history is removed
- pending manual-archive changes are cleared
reset()returns to the rebased state
New Contributors
- @rajaomariajaona made their first contribution in #6
Full Changelog: v1.1.0...v1.2.0
Assets 2
1.1.0
[1.1.0] - 2026年02月28日
Fixed
- Preserve
Map/Setvalues when cloning patch history forgetPatches()and rehydration. - Keep
reset()baseline isolated forMap/Setstates even whenstructuredCloneis unavailable.
Changed
maxHistorynow strictly requires a non-negative integer. Invalid values such asNaN,Infinity, and decimals throw an error.- Invalid
initialPatchesnow default to safe fallback (discard persisted history and continue). SetstrictInitialPatches: trueto opt into fail-fast throws.
Full Changelog: v1.0.0...v1.1.0
Assets 2
1.0.0
[1.0.0] - 2026年01月24日
🎉 First Stable Release
Travels is a fast, framework-agnostic undo/redo library powered by Mutative JSON Patch. This v1.0.0 release marks the library as production-ready after extensive testing and refinement.
Highlights
- 10x faster than traditional snapshot-based undo systems
- Memory-efficient - stores only JSON Patches, not full state copies
- Framework-agnostic - works with React, Vue, Zustand, MobX, Pinia, or vanilla JS
- Full TypeScript support with comprehensive type definitions
Features
- Core API:
createTravels()withsetState,back,forward,go,reset - History Management:
getHistory(),getPosition(),getPatches(),canBack(),canForward() - Mutable Mode: Keep reactive state references stable for MobX, Vue/Pinia integration
- Manual Archive Mode: Batch multiple changes into a single undo step with
autoArchive: false - Persistence Support: Save and restore history with
initialPatchesandinitialPosition - Controls API:
getControls()for easy UI binding - Configurable Options:
maxHistory,enableAutoFreeze,strict,mark,patchesOptions
Bug Fixes (since v0.9.0)
- Fixed root replacement handling in mutable mode
- Fixed
hasOnlyArrayIndices,maxHistory, and reset edge cases - Fixed
pendingStaterace condition insetState
Performance
- Added caching for
getControls()andgetHistory()
Documentation
- Comprehensive README with API reference
- Framework integration examples (React, Vue, Zustand)
- Advanced patterns guide docs/advanced-patterns.md
- Mutable mode deep dive docs/mutable-mode.md
Breaking Changes
None. This is the first stable release.
Full Changelog: v0.9.0...v1.0.0
Assets 2
2 people reacted