Skip to content

[audit] obsidian.nvim v3.x breaking changes — review before updating #78

@stanfish06

Description

@stanfish06

What

obsidian.nvim has accumulated multiple breaking changes between the pinned commit (896d4515) and the current release (v3.14.0). While the current minimal config is unlikely to break immediately, updating without reviewing these will cause silent regressions.

Where

lua/config/plugin_config.lua:190–204 — the obsidian.setup() call.

obsidian.setup({
    workspaces = {
        { name = "notes", path = "~/Git/notes" },
    },
    daily_notes = {
        folder = "journal",
    },
})

Breaking changes in v3.x (since pinned commit)

Callback signature change (v3.14.0)

All functions under opts.callbacks had their first argument client removed:

-- Before (breaks silently if added):
opts.callbacks.enter_note = function(client, note) ... end

-- After:
opts.callbacks.enter_note = function(note) ... end

Current config does not use callbacks, so no immediate breakage — but any future callback additions must use the new signature.

Frontmatter config moved (v3.x)

-- Before:
opts.note_frontmatter_func = function(note) ... end
opts.disable_frontmatter = true

-- After:
opts.frontmatter = {
    func = function(note) ... end,
    enabled = false,
}

Completion trigger narrowed

Completion now only triggers on [[ (both markdown and wiki link styles). Previously it was more aggressive. This is less intrusive but means [[ is now the only entry point.

Search config reorganised

-- Before:
opts.search_max_links = 100
opts.sort_by = "modified"
opts.sort_reversed = true

-- After:
opts.search = {
    max_links = 100,
    sort_by = "modified",
    sort_reversed = true,
}

Legacy commands planned for removal

ObsidianQuickSwitch-style commands will be removed in a future release. Use :ObsidianSearch or the fzf-lua integration instead.

UI module deprecation

The built-in UI renderer (checkbox rendering, link concealing) is being deprecated in favour of dedicated markdown render plugins. The obsidian-nvim breaking changes wiki recommends render-markdown.nvim as a replacement.

Why it matters

The current config is minimal enough that a straight update to v3.14.0 will likely work. However:

  1. If callbacks are added in the future, the old signature will silently pass wrong arguments.
  2. The UI deprecation means obsidian's built-in checkbox/link concealing may degrade over time — pairing with render-markdown.nvim is the recommended path.

Recommended action

  1. Update obsidian.nvim to v3.14.0 (tracked in [deps] Plugin version tracking — 16 pinned packages due for review #77).
  2. Run :ObsidianNew and :ObsidianDailies to verify the workspace and daily notes still work.
  3. Consider adding render-markdown.nvim to replace the deprecated obsidian UI features — it provides better Markdown rendering in all buffers, not just Obsidian notes. See the render-markdown.nvim README for setup.
  4. Full breaking-changes reference: https://github.com/obsidian-nvim/obsidian.nvim/wiki/Breaking-Changes

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions