4.19.2
A maintenance release β two user-facing bug fixes, plus six internal refactors that consolidate duplicated logic into small, tested seams (no behaviour change).
π Fixed
- The tree view's "Merge fields" toggle was inverted β it separated fields when set to merge, and vice versa. It now matches its label (and the trail-view / codeblock behaviour). If you'd used it before, it will feel flipped from what you're used to β that's the fix.
- Renaming or deleting an edge field now updates the Dataview builder's default field. Previously the rename/delete cascade skipped the Dataview source's default field, so it kept pointing at the old (now-invalid) field name until you fixed it by hand.
π§Ή Changed (internal β behaviour-preserving)
- The seven explicit edge builders that resolve a single field from frontmatter now share one
read_edge_fieldhelper, and invalid-field errors consistently name theBC-β¦-fieldkey. - The
typed_linkbuilder's inline-field parsing is now a pure, unit-testedparse_inline_fieldhelper (a redundant dedup layer was removed). - The Tree, Matrix, and Trail views share one
useViewSettingshelper for their settings mirror + loop-safe writeback. As a side effect, the views no longer write settings to disk on mount (only on an actual edit). - Settings-panel callbacks route their post-change side effects through one
commitSettings(policy)helper instead of ~140 callbacks each hand-pairing save with rebuild/refresh. - The WASM graph traversal is reached through a small TS facade (
traverse/with_traversal/sort_traversal);walk_to_rootswas extracted from the tree view. Both are now unit-tested. - The free-on-change/unmount lifecycle for derived WASM objects is owned by one
useOwnedrune helper instead of an identical effect hand-copied across 8 view components.
Full changelog: 4.19.1...4.19.2