What's Changed
Added
- Macros: point the nested-type error at the property, not the expansion by @heirloomlogic in #70
- Persistence: merge the rows history says changed, not every row by @heirloomlogic in #78
- Persistence: read only the entities history says changed by @heirloomlogic in #81
Fixed
- Persistence: retry a failed flush instead of losing the write by @heirloomlogic in #62
- Undo: don't resurrect an entity another device deleted by @heirloomlogic in #63
- KeyValueStore: degrade on an unreachable Keychain instead of trapping by @heirloomlogic in #67
- Plugins: annotate every state slice with
@Swiduxso@Slicecompiles by @heirloomlogic in #68
Other Changes
- Persistence: a diagnostic channel for what isn't a failure by @heirloomlogic in #66
- Persistence: an editing hold for the edit the store can't see by @heirloomlogic in #71
- Persistence: preserve the identity of a deleted row by @heirloomlogic in #76
- Persistence: read and merge only the rows that changed by @heirloomlogic in #77
- Persistence: generate the by-identifier descriptor too by @heirloomlogic in #82
- Sync: tell the observer which stores are its own by @heirloomlogic in #83
- Persistence: carry a withheld row forward instead of freezing the anchor by @heirloomlogic in #84
- Persistence: carry a withheld row forward on the mergeRemote path too by @heirloomlogic in #88
- Persistence: a seam that makes a fetch throw, and the cover it unblocks by @heirloomlogic in #89
- Persistence: count what a tick re-offered apart from what it merged by @heirloomlogic in #90
- Audit: fix two data-loss paths and harden the killswitch cache by @heirloomlogic in #91
Full Changelog: 1.8.0...1.9.0