github atomicmemory/llm-wiki-compiler v0.4.0
v0.4.0 — claim provenance, schema layer, configurable timeouts

5 hours ago

Adds claim-level source-range provenance, a first-class schema layer for typed page kinds, configurable provider request timeouts, and a slug-based wikilink format that resolves reliably in Obsidian. See CHANGELOG.md for the full entry.

Highlights

Claim-level provenance (#22)

  • Citations can pin specific lines: ^[paper.md:42-58] (colon form) or ^[paper.md#L42-L58] (GitHub anchor form)
  • Mixed multi-source markers like ^[a.md, b.md:1-3] work too
  • Legacy paragraph form ^[paper.md] continues to work unchanged
  • Lint flags out-of-bounds spans, malformed entries, line 0, and reversed ranges

Schema layer (#23)

  • .llmwiki/schema.json|yaml|yml declares page kinds (concept, entity, comparison, overview), per-kind minWikilinks, and seed pages
  • New commands: llmwiki schema init, llmwiki schema show
  • schema-cross-link-minimum lint rule enforces per-kind link expectations
  • Seed pages generated during compile (and on the early-return path)
  • Review-mode candidates carry schemaViolations surfaced by review show

Configurable timeouts (#25)

  • LLMWIKI_REQUEST_TIMEOUT_MS — provider-agnostic
  • OLLAMA_TIMEOUT_MS — Ollama-specific override
  • Defaults raised: 30 minutes for Ollama (was inheriting 10 from the OpenAI SDK default), 10 minutes preserved for OpenAI

Slug-based wikilinks (#15)

  • Index, MOC, and the in-body resolver now emit [[slug|Title]] so Obsidian targets the file directly regardless of slug/title divergence

Infrastructure

  • Subprocess CLI test helpers (runCLI, expectCLIExit, expectCLIFailure, formatCLIFailure) capture full diagnostics so flakes surface their root cause without rerunning
  • vitest globalSetup builds dist once so parallel workers don't race on tsup --clean
  • Tests grew from 291 to 391

Contributors

Thanks to @ludevica for #15 and @BenGSt for reporting #11.

Install

npm install -g llm-wiki-compiler@0.4.0

Don't miss a new llm-wiki-compiler release

NewReleases is sending notifications on new releases.