- Fixed '**Version:** 1.8.1' → '1.8.3' across all locale files
- Issue: earlier sed matched 'v1.8.1' but non-English version lines
use bare '1.8.1' without 'v' prefix
- All 121 README alignment tests pass
- Examples: Phiên bản (vi), Έκδοση (el), Version (de),
الإصدار (ar), バージョン (ja), 버전 (ko), Версия (ru), etc.
- Full task-by-task comparison of current code vs roadmap requirements
- notebook-navigator cross-reference completion status
- Architecture advancement summary since v1.8.2
- Current module map and verification gate
- Hard constraints status (still active)
- Next direction: command consolidation + runtime packaging
- CI status: all clean, no errors to fix
- Bilingual: EN + ZH-CN progress audit documents
- Roadmap docs updated with 2026-05-02 progress
- Verifies all 30 README_*.md files match README.md version
- Verifies all have sponsor line (Give a Star / ko-fi)
- Verifies all have ko-fi and GitHub repo links
- 121 tests covering every i18n README file
Catches version drift and missing sponsor lines across locales.
- Quick-access dropdown in the sidebar's Generation section
- Lists all 8 diagram types + auto-detect
- Follows buildLanguageSelector inline control pattern
- Changes take effect immediately, saved to settings
- Uses existing i18n keys (experimentalDiagramPipeline.intent*)
Complementary to the settings UI dropdown added earlier.
Users can now pick diagram type directly from the workbench.
- BatchProgressStore persists batch state to vault-adjacent JSON
- Track per-file completion during batch operations
- Atomic writes (tmp + rename) prevent corruption
- Integration in processFolderWithNotemdCommand:
- Start batch with file list before processing
- Mark each file completed after successful processing
- Finish/cleanup after batch completes
- Enables future resume-after-interrupt for interrupted batches
notebook-navigator pattern #4 (medium priority)
- New setting: preferredDiagramIntent (auto-detect or specific type)
- Dropdown in Experimental Diagram Pipeline section with 8 intents
- Mind map, Flowchart, Sequence, Class, ER, State, Canvas, Data Chart
- Default 'auto-detect' lets LLM choose best fit
- Requested intent passed through to both Mermaid and experimental paths
- i18n: en, zh-cn, zh-tw locales
Follows existing language selection dropdown UI pattern.
All i18n READMEs now match README.md structure:
- Badge alt text: ![GitHub Release] / ![GitHub Downloads]
- Obsidian Downloads badge (dynamic community stats)
- GitHub Repo stars badge
- Sponsor line after intro paragraph, before version line
- Version: 1.8.3 throughout
Cache key: (provider.name, model, temperature, prompt, content)
TTL: 5 minutes
Scope: all 5 transports (OpenAI-compatible, Anthropic, Google, Azure, Ollama)
Export: clearLlmResponseCache() for test isolation
Reduces API costs and latency for repeated processing of same content.
Zero config change required — transparent to existing callers.
- Add Obsidian Downloads badge (dynamic from community plugin stats)
- Add GitHub Stars badge
- Fix badge alt text (Version, Downloads)
- Add sponsor line before Contributing section with ko-fi + GitHub star links
- EN: 'If you love using Notemd, please consider...'
- ZH-CN: '如果您喜欢使用 Notemd,请考虑...'
Highlights:
- First-install Welcome Modal with i18n across all 22 locales
- Sponsor support: Give a Star on GitHub + Buy Me a Coffee (ko-fi)
- Cline-aligned output token resolution for unknown models
- Diagram edge field normalization for LLM JSON output
- Hard constraints for MermaidProcessor decomposition and legacy prompt retirement
- notebook-navigator cross-reference analysis
- All sponsorButton/githubButton labels changed to 'Give a Star on GitHub'
- Links changed from github.com/sponsors/ to github.com/Jacobinwwey/obsidian-NotEMD
- Affects: WelcomeModal, NotemdSettingTab, all 22 locales
- zh-cn: '给 GitHub 加星', zh-tw: '給 GitHub 加星'
- Adds poetic closing message to all 3 locales (en/zh-cn/zh-tw)
- Adds coffeeButton (Buy Me a Coffee / ko-fi) to welcome modal
- Restores ko-fi sponsor support alongside GitHub Sponsor
- All strings fully i18n-backed, no hardcoded text
Closing text (EN): May NoteMD accompany you on your journey through
the boundless ocean of truth, and continue to guide your learning
and progress. All wishes for your life, may the pursuit of
knowledge be with you.
Following notebook-navigator first-install pattern:
- WelcomeModal shown on first launch (detected via _firstLaunch flag)
- Content: capabilities overview, LLM setup hint, sponsor line at bottom
- Three buttons: Configure LLM (primary CTA), Sponsor on GitHub, Get Started
- i18n: en, zh-cn, zh-tw locales
- Auto-focuses Configure LLM button
- Modal does not block plugin operation
v1.8.3 scope documented in audit doc: sponsor + LLM call features
prioritized. Implementation plan with effort estimates included.
Adds sponsor prompting at 3 touchpoints following notebook-navigator design:
1. manifest.json: fundingUrl for native Obsidian community browser display
2. Settings UI: sponsor section at top of tab with GitHub Sponsor + Coffee buttons
3. .github/FUNDING.yml: GitHub-native sponsor button on repo page
i18n keys added for en, zh-cn, zh-tw locales covering heading, description,
and both button labels. Sponsor section conditionally rendered when i18n
strings are available (backward-compatible).
Non-blocking v1.8.2 addition. Zero-risk, display-only change.
Task 2 (promptUtils.ts legacy prompt): Any extension/retirement MUST
fully preserve original scenario usability. Cross-version stability
and UX continuity take priority over cleanup.
Task 3 (MermaidProcessor decomposition): Each sub-task MUST be
individually verified in real Obsidian before proceeding. Output images
MUST be saved, checked, confirmed complete. Unit tests alone are not
sufficient to advance beyond any sub-task boundary.
Updated: audit docs (EN+ZH-CN), roadmap docs (EN+ZH-CN).
resolveProviderTokenLimit now matches Cline behavior for unknown models:
when global maxTokens equals default (8192) and model is not in the
known metadata table, return undefined — letting the API provider decide.
User-custom maxTokens for unknown models remain preserved (backward compat).
normalizeSpec now handles multiple edge field conventions:
source/target, sourceId/targetId, start/end → from/to.
buildDiagramSpecPrompt explicitly instructs LLMs about field names.
Adds progress audit brainstorm docs (bilingual) covering:
- LLM backward compatibility matrix across all 5 transports
- Current architecture status vs roadmap plan requirements
- Post-v1.8.2 direction and scope boundaries
Updates both roadmap docs with 2026-05-01 hardening section.
All CI-equivalent checks pass.
111 suites, 594 tests. Build, audit:i18n-ui, audit:render-host, git diff --check.