Skip to content

Obsidian root with a stray .obsidian folder is misclassified as a single vault #79

Description

@psimaker

Symptom

Connecting the Obsidian directory ("On My iPhone/Obsidian") shows the advisory "The folder you selected is itself a vault…" even though the selected folder is the vault container, and the vault list stays empty — the user-visible impression is that the Obsidian root is detected wrongly and vaults are not listed.

Cause (traced on device, 2026-07-08)

The container's top level held a stray .obsidian/ directory (plus .stfolder/.stignore leftovers of an earlier whole-root sync — the offering peer's vault config was synced straight into the root back then). The classification "is the selected root itself a vault?" relied solely on the presence of a top-level .obsidian/:

Layout observed (names genericized):

Obsidian/            ← selected container
  .obsidian/         ← stray leftover
  .stfolder/  .stfolder.removed-*/  .stignore
  VaultA/  [real vault]
  FolderB/           ← no .obsidian yet

Fix

A root holding at least one vault subfolder (direct subdirectory containing .obsidian/) classifies as a container, never as vault-as-root — one pure core (VaultManager.rootIsItselfVault) feeds every classification site. Decision record 014; regression suite VaultRootClassificationTests.

Related UX finding (same report)

Detected-but-not-yet-syncing vaults were invisible in the vault list (only synced folders produce rows), which amplified the "vaults are not listed" impression. Fixed by listing detected vaults as passive "not syncing yet" rows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions