Skip to content

Claude Obsidian v2.2.0 - Backlog Triage

Latest

Choose a tag to compare

@AgriciDaniel AgriciDaniel released this 10 Sep 14:49
32ac5a0

Claude Obsidian v2.2.0 closes the open backlog after a full review of every issue, pull request, and branch: lint scoping, lock recovery, host validation, a layout change required for claude.ai plugin distribution, a single page-type vocabulary, gitignore-aware link resolution, and a ZCode host adapter.

Highlights

  • Lint skips dot-prefixed directories by default (.raw/, .claude/, .trash/), gains a repeatable --exclude GLOB flag with a matching engine parameter and vault-config array, and drops gitignored candidates from ambiguous wikilink resolution (#159, #163, #183, #184).
  • --force-stale-lock can reap a confirmed-dead same-host owner before --stale-after, for both the mutation lock and the capture queue lock, and runtime reads tolerate metadata-only mtime touches while still failing closed on any content change (#157).
  • The public-host validator rejects hex-dotted, octal-dotted, and short-form loopback spellings.
  • The five setup scripts moved from bin/ to scripts/, because claude.ai rejects organization-distributed plugins with a top-level bin/; package validation now guards against its return (#138). Invocations change from bash bin/setup-*.sh to bash scripts/setup-*.sh.
  • The page-type vocabulary is declared once in claude_obsidian/page_schema.py, question is routable in every mode, and wiki-mode.py route explains rejections (#148, #149).
  • Twelve skills state how ../wiki/references/ links resolve, enforced by package validation (#170).
  • Native Windows: CRLF frontmatter parses in contextual prefixes (#179, #180), test runs no longer crash on non-ASCII labels (#178), and the docs explain the python3 interpreter requirement for hooks plus the Claude Code release requirement (#162, #168).
  • New ZCode host adapter (--host zcode) with ZCODE.md (#146); scaffolded vaults pin absolute wikilinks (#182); wiki-ingest prefers markdown links for citable URLs (#171, #176).
  • ATTRIBUTION.md credits the adopted reranker designs from #62 and #77.

Contributor pull requests merged in this release: #146, #149, #159, #176, #178, #180, #182. Maintainer fixes were promoted through PR #186 and the release through PR #187.

Upgrade and migration

Upgrade the product independently from your vault. If you call the setup scripts from your own automation, change bin/ to scripts/. If you rely on the linter walking dot-prefixed directories, pass --exclude patterns explicitly or add a name to _DOT_DIR_KEEPLIST; no known vault content lives under dot-prefixed folders. Existing mode.json files gain the questions_folder key through the documented migration path.

See the install guide and the Windows and WSL guide.

Verification

  • 10 of 10 GitHub Actions jobs passed across Ubuntu, macOS, Windows portable, and the reproducible release artifact gate on the release PR; every merged PR ran the same matrix green.
  • Full hermetic suite and executable contracts passed on every merged branch.
  • Every fix landed with a regression test shown failing before the change.
  • Fresh-context verifier over the integrated diff: one blocker found and closed before merge (the runtime read retry now requires a byte-identical confirmation read).
  • Final archive built twice from merge commit 32ac5a02c4e082e4a5628ca810776375e134708e and matched byte for byte.

Artifact integrity

  • File: claude-obsidian-v2.2.0.zip
  • SHA-256: 6207f8aff60366adb441f4311e542fed42ef1edec1b303e78ee215cec8b64ffa
  • Size: 3,145,865 bytes
  • Payload: 203 files, 3,059,517 bytes
  • Artifact audit: 0 errors

Known limitations

  • Native Windows interactive testing was not available; the Windows portable automated surface passed, and the CRLF and interpreter findings rest on reporter reproductions plus code reading.
  • Wildcard-DNS loopback names (for example 127.0.0.1.nip.io) remain a documented residual gap in the host validator.
  • The .canvas/.base stem-addressing and Name.md.md resolution-order divergences noted in #163 are not addressed in this release.

Full changes: v2.1.1...v2.2.0