Skip to content

Repair tree structure

Inbox helps you fix parent links that loop and notes that declare more than one root.

The up property makes the note hierarchy explicit, but an explicit hierarchy still needs one root and finite parent chains. Inbox reports loops and duplicate roots directly instead of letting an ambiguous tree silently change context labels.

  • Loop: “up links form a loop.”
  • Duplicate roots: Only one note can act as root.

Follow the message on the row. Resolving a tree issue clears its warning; other issues may still keep the note in Inbox.

A note can point to itself, or a chain of notes can lead back to where it started. Follow the parent links and change one so the chain reaches a root.

For example, if A links to B and B links back to A, keep A’s link and change B’s frontmatter to point at an existing parent outside that loop:

---
up: "[[Projects]]"
status: open
---

Make sure Projects does not lead back to A or B.

More than one indexed note declares up: "-". Choose the root to keep, such as Home, and give the others a parent link.

Home.md can remain a closed root:

---
up: "-"
status: closed
---

Archive.md, previously another root, can become its child:

---
up: "[[Home]]"
status: closed
---

When editing existing notes, preserve their status and other properties unless you intend to change them.

For a tree kept entirely inside your notes folder:

  • One note declares up: "-".
  • Each other note links to its parent.
  • Following parent links eventually reaches the root without a loop.

Existing parents outside the indexed notes are supported as external roots; see Sources. Missing or unresolved parents are a separate issue: Repair missing parent links.

  • Every note in an up loop reports up links form a loop.
  • Every note declaring up: - reports the duplicate-root message when more than one root exists.
  • A unique root remains a normal note with the usual task and status validations.
  • Other valid branches keep their context labels when one branch has a loop.

This example illustrates the issue. Replace its dates and parent links with ones that fit your vault.

---
status: open
up: "[[A]]"
---
- [ ] Break the loop 📅 2026-07-08
Inbox row explaining that the note up links form a loop
Tree loop
Open row showing a note with a looping up link
Looping note in Open