Releases: michaelpporter/breadcrumbs
Release list
4.14.3
Bug Fixes
- typed_link (1.12-compat) — inline Dataview properties are recognized again for users still on Obsidian < 1.13: paren/bracket wrappers (
(down:: [[Note]]),[down:: [[Note]]]), blockquoted fields (> [up:: [[Note]]]), and wrapped fields appearing mid-sentence rather than only at the start of a line (... is a child of (up:: [[Note]])). Promotes the 4.14.3-beta.1/beta.2 backport to stable (#724).
Full Changelog: 4.14.2...4.14.3
4.14.3-beta.2
release: 4.14.3-beta.2
4.21.1
Features
- Markmap toolbar —
type: markmapcodeblocks now show a zoom/fit toolbar over the mind map, so you can zoom in, zoom out, and re-fit the whole tree without scrolling or reaching for keyboard shortcuts.
Build
- Bumped JS dependencies (9 updates).
Full changelog: 4.21.0...4.21.1
4.14.3-beta.1
Bug Fixes
- typed_link (1.12-compat) — inline Dataview properties wrapped in parentheses or brackets (e.g.
(down:: [[Note]]),[down:: [[Note]]]) are recognized again. Backport of the 4.15.1 fix for users still on Obsidian < 1.13 (#724).
This is a beta prerelease from branch fix/724-inline-dataview-1.12-compat (PR #727) — install via BRAT to test before it merges.
Full Changelog: 4.14.2...4.14.3-beta.1
4.21.0
Features
- Edge audit — Ignore paths — the edge audit report now has an Ignore paths setting (Settings → Commands → Edge audit). Notes inside a listed folder or path are left out of the whole report — orphans, dangling edges, and the field checks alike. Matching uses folder semantics (one path per line; a note matches if its path equals, or is inside, a listed path), so
Templatescovers everything under that folder. It's report-only: unlike the global Excluded folders setting, ignored notes still get their breadcrumb edges in the graph — they just don't clutter the audit.
Full changelog: 4.20.0...4.21.0
4.20.0
Features
-
Generate edge audit report — a new command that walks your graph and writes a read-only Markdown report to a note in your vault (default
Breadcrumbs Edge Audit.md; re-running overwrites it). It's purely diagnostic — it never rewrites your frontmatter. The report surfaces:- Unused fields — edge fields defined in settings that produce no edges.
- Implied-only fields — fields only ever derived as implied edges, never explicit (expected for the reverse half of a transitive pair like
down/prev). - Mergeable fields — two or more fields whose explicit edges are strictly identical, so they're interchangeable.
- Orphan notes — notes with no breadcrumb edges in or out.
- Dangling edges — edges pointing at a note that doesn't exist.
Orphans and dangling targets render as wikilinks for click-through. Configure the output path under Settings → Commands → Edge audit.
Full changelog: 4.19.4...4.20.0
4.19.4
Security
- Pinned
undicito>=6.27.0to clear an advisory flagged by the Obsidian community scanner. It was pulled in transitively (markmap-lib→markmap-html-parser→cheerio→undici@6.26.0) and is tree-shaken out of the shippedmain.js, so there was no runtime exposure — but the lockfile reference still had to be moved out of the vulnerable range.
Full changelog: 4.19.3...4.19.4
4.19.3
A small quality-of-life release for date-note (and deeply-nested) trails.
Changed
- The trail view's grid now defaults to the
longestpath selection. Date notes link up to every ancestor level at once (year, quarter, month, week — all directly), so the oldalldefault drew every redundant path and the trail rendered as a cluttered fan of repeated ancestors.longestkeeps only the deepest chain —2026 → 2026-Q2 → 2026-06 → 2026-W26— so the trail reads as a clean line. - Existing trails keep their saved selection — flip it yourself via the trail's selection dropdown (the middle control) if you want the cleaner view.
Full changelog: 4.19.2...4.19.3
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
4.19.1
Features
- Export to canvas — a new command that lays out a note's neighbourhood as a native JSON Canvas (
.canvas). Pick which edge field-groups to follow and the depth, choose left-to-right or top-to-bottom layout, and the canvas is built as a tidy tree with each parent centred over its children. Defaults are configurable under Settings → Commands → Create canvas; re-exporting an existing canvas prompts to overwrite or create a new one. - Jump to neighbour (picker) — a fuzzy-suggest command listing all of the active note's neighbours (grouped by field) to jump to, complementing the existing "jump to first neighbour" commands.
- Per-field jump commands — "Jump to first neighbour by field:
<field>" is now registered for every edge field, so directions likeup/down/next/prevcan each be bound to their own hotkey.
Fixed
- Johnny.Decimal sibling edges now work at the category level (e.g.
11↔12under area10), not just for delimited items (11.01↔11.02). The sibling grouping now shares the same parent resolution as the up-edge builder.
Full changelog: 4.19.0...4.19.1