Skip to content

1.6.5

Choose a tag to compare

@github-actions github-actions released this 03 May 04:27

1.6.5 — Cumulative Quality Update (v1.6.2–v1.6.5)

Fixed

  • Wiki content language: entities, concepts, summaries, and page titles now correctly output in the selected wiki language when it differs from the UI language. Root cause: Chinese instruction text in user prompts was overriding the system-level language directive because LLMs prioritize user-prompt language signals over system-prompt instructions. All LLM-facing prompts are now in English, following the standard training pattern where English meta-instructions correctly govern target-language output.
  • {{ double brace JSON parse failures: normalizer dedupes prefill echo before parsing.
  • "after JSON at position N" parse failures: normalizer extracts valid JSON prefix when trailing content exists.
  • source_title missing validation: prompt now explicitly requires source_title; code falls back to file basename if still omitted.
  • Prefill safety: both AnthropicClient and AnthropicCompatibleClient now detect and recover from prefill { being stripped by the provider.

Added

  • Iterative batch extraction: analyzeSource extracts entities/concepts in batches of 20, preventing the max_tokens bottleneck that limited extraction from long sources.
  • Extraction granularity setting: Fine / Standard / Coarse dropdown with cost labeling.
  • Adaptive batch_size: when a batch response exceeds 70% of max_tokens, the next batch automatically shrinks by 25% (floor: 5 items) to prevent output truncation.
  • Anthropic prompt caching: static prompt prefix cached via cache_control ephemeral, reducing redundant token processing across batches.
  • Entity type expansion: added product, event entity types.
  • Ingestion report enhancements: elapsed time display, failed-item guidance text.
  • API Key password masking: settings input uses password field type.
  • Wiki Output Language setting: 8-language dropdown (English, 中文, 日本語, 한국어, Deutsch, Français, Español, Português) with custom language input for unsupported languages. Wiki content language is now independent of the UI language setting.
  • System prompt language directive architecture: buildWikiLanguageDirective() injects a per-task language instruction at the beginning of every LLM system prompt.
  • Belt-and-suspenders language reinforcement: finalPrompt appends a CRITICAL LANGUAGE REQUIREMENT hint at the end of the analyzeSource user prompt.

Changed

  • JSON parsing: complete rewrite with dual-layer architecture — Layer 1 normalizer (fences, {{/missing { correction, "after JSON" truncation) + Layer 2 extractor (brace counting, greedy regex fallback, LLM repair).
  • Summary quality: entity/concept summaries upgraded from 1 sentence to 2-4 sentences.
  • analyzeSource max_tokens: 4000 → 16000.
  • Entity extraction balance: prompt now emphasizes extracting important entities even with low mention frequency.
  • All LLM-facing prompts converted from bilingual to English-only: granularity instructions, batch context, merge strategies, page templates, index labels, contradiction notes, and conversation summary sections.
  • Query engine language alignment: buildWikiContext() now emits the language directive in the system prompt.
  • Entity types reduced from 8 to 6: removed "artifact" type (too vague, produced generic low-value pages).
  • Backward-compatible migration: existing installations without wikiLanguage automatically inherit from the language setting.

Manual Installation

  1. Download main.js, manifest.json, and styles.css from the assets below
  2. Create a folder llm-wiki inside your vault's .obsidian/plugins/ directory
  3. Copy the three files into that folder
  4. Enable the plugin in Settings → Community plugins
  5. Configure your LLM provider and API key in the plugin settings panel
  6. Select the desired wiki output language in the plugin settings