Commit graph

395 commits

Author SHA1 Message Date
Jacobinwwey
b553ecd138 fix(readme): align all 29 i18n README version lines to 1.8.3
- 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.
2026-05-02 06:02:43 -05:00
Jacobinwwey
1232c40efb docs: comprehensive progress audit and next direction plan
- 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
2026-05-02 05:53:50 -05:00
Jacobinwwey
6972051f95 test: add README i18n alignment contract test
- 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.
2026-05-02 05:48:11 -05:00
Jacobinwwey
022ef48e53 feat(sidebar): add diagram intent selector in Notemd Workbench
- 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.
2026-05-02 05:33:58 -05:00
Jacobinwwey
86169b4cad docs: finalize audit doc — all notebook-navigator patterns complete 2026-05-02 05:29:08 -05:00
Jacobinwwey
c5a1e12c4d docs: add bilingual architecture overview with Mermaid diagrams
- System architecture diagram (user → plugin → LLM → diagram → output)
- LLM calling pipeline sequence diagram (cache, token resolution, transports)
- Diagram rendering platform flowchart (spec plane → render plane → targets)
- Token resolution logic decision tree
- Transport protocol table (5 runtimes, 25 providers)
- Diagram intent support matrix (8 intents, renderers, preview, export)
- Module map (13 modules with responsibilities)
- Key design decisions (6 items)
- Bilingual: docs/architecture.md + docs/architecture.zh-CN.md

notebook-navigator pattern #5 (low priority) — COMPLETE
2026-05-02 05:28:44 -05:00
Jacobinwwey
f03b97b6e1 docs: update audit doc — sync toggle complete, all medium priorities done 2026-05-02 05:25:50 -05:00
Jacobinwwey
dfb822bf83 feat(security): add per-setting sync toggle for API key locality
- LLMProviderConfig.localOnly flag: when true, provider config stays
  device-local (localStorage), not synced via data.json
- saveSettings: filters localOnly providers from data.json, stores
  them in localStorage separately
- loadSettings: merges localStorage providers back after loading
- Settings UI: toggle in provider details section
- i18n: en, zh-cn, zh-tw locales

notebook-navigator pattern #3 (low-medium priority).
Keeps API keys on-device while workflow settings can sync.
2026-05-02 05:25:31 -05:00
Jacobinwwey
478ca8e265 docs: update audit doc with batch progress and diagram intent progress 2026-05-02 05:22:18 -05:00
Jacobinwwey
cbb6e6c16b feat(batch): add batch progress store for interrupt-resume support
- 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)
2026-05-02 05:21:55 -05:00
Jacobinwwey
7a7c18eead feat(diagram): add preferred diagram intent selector in settings UI
- 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.
2026-05-02 05:15:58 -05:00
Jacobinwwey
ae0077d709 docs: complete i18n README alignment - badges, sponsor, version for all 31 files
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
2026-05-01 09:04:58 -05:00
Jacobinwwey
0940a0ce41 docs: update audit doc with LLM response cache progress 2026-05-01 08:58:29 -05:00
Jacobinwwey
81fff8742c feat(llm): add in-memory response cache for repeated identical LLM calls
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.
2026-05-01 08:58:14 -05:00
Jacobinwwey
8bebaa59eb docs: add sponsor line to all 29 i18n README files
Positioned just above the version footer line (*Notemd v1.8.3 - ...),
mirroring the manually edited README.md layout.
2026-05-01 08:46:54 -05:00
Jacobinwwey
2fad4d0437 docs: align README_zh.md sponsor position with README.md
Sponsor line now after intro text, before version line — mirroring
the manually edited README.md position. Removed duplicate sponsor
lines at bottom.
2026-05-01 08:44:30 -05:00
Jacobinwwey
a4d7788eb5 Add support links for Notemd in README
Added a call to action for users to support Notemd.
2026-05-01 21:41:25 +08:00
Jacobinwwey
9ead1d68b4 docs: move sponsor line above version footer, update all i18n READMEs to v1.8.3
- Sponsor line now positioned just above the version footer line
- All 31 i18n README files updated from v1.8.1 to v1.8.3
2026-05-01 08:39:31 -05:00
Jacobinwwey
f2a413651f Clean up README badges
Removed unnecessary download badge and GitHub stars badge.
2026-05-01 21:35:23 +08:00
Jacobinwwey
12dec2dedd docs: add sponsor line and badges to README (notebook-navigator pattern)
- 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,请考虑...'
2026-05-01 08:32:35 -05:00
Jacobinwwey
117676222c fix(ci): add missing release notes and docs/index.zh-CN.md for CI
- Add docs/releases/1.8.3.md and 1.8.3.zh-CN.md (bilingual release notes)
- Add docs/index.zh-CN.md (bilingual pair for docs/index.md)
- Fixes githubReleaseWorkflow.test.ts and docsBilingualSupport.test.ts CI failures
2026-05-01 08:20:29 -05:00
Jacobinwwey
a3603a9775 fix: restore bootstrap.ts required for render webview build
bootstrap.ts was accidentally removed in cleanup. It is required by
page.ts and renderFrame.ts for the iframe render host bootstrap bridge.
2026-05-01 08:16:28 -05:00
Jacobinwwey
6e6a3546cb chore: remove accidentally committed coverage, ref, and untracked files 2026-05-01 08:14:13 -05:00
Jacobinwwey
d986cdc86e release: v1.8.3
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
2026-05-01 08:13:52 -05:00
Jacobinwwey
cc7ec4849e refactor(sponsor): change GitHub Sponsor button to Give a Star on GitHub
- 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 加星'
2026-05-01 08:01:49 -05:00
Jacobinwwey
230db3862d fix funding 2026-05-01 20:46:05 +08:00
Jacobinwwey
a2a286338a chore: add ko_fi to FUNDING.yml for GitHub Sponsor button
Now supports both GitHub Sponsors and Ko-fi in the repository's
native Sponsor button (right sidebar on GitHub repo page).
2026-05-01 07:45:17 -05:00
Jacobinwwey
36a3684094 feat(welcome): add welcome+sponsor i18n to all 22 locales, fix ko-fi link
- Adds welcome modal keys (title, introText, setupHint, sponsorText,
  configureButton, sponsorButton, closeButton, closingText, coffeeButton)
  to all 19 additional locales (AR, DE, ES, FA, FR, ID, IT, JA, KO, NL,
  PL, PT, PT_BR, RU, TH, TR, UK, VI)
- Adds sponsor settings keys to all 19 additional locales
- Fixes coffee link: buymeacoffee.com -> ko-fi.com/jacobinwwey
- Closing text preserved in English for non-CJK locales (poetic text)
- Full i18n coverage: 22 locales total (en, zh-cn, zh-tw + 19 additional)
2026-05-01 07:40:39 -05:00
Jacobinwwey
b2fa9bf676 feat(welcome): add closingText and ko-fi coffee button to welcome modal
- 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.
2026-05-01 07:34:13 -05:00
Jacobinwwey
6e046bace3 feat: add first-install welcome modal with sponsor messaging (v1.8.3 prep)
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.
2026-05-01 07:10:46 -05:00
Jacobinwwey
e5e404029a feat: add sponsor/funding support (notebook-navigator pattern)
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.
2026-05-01 07:01:14 -05:00
Jacobinwwey
29f70d7853 docs: add notebook-navigator cross-reference analysis with improvement angles
Five improvement patterns identified from notebook-navigator v2.5.6:
1. Service layer with dependency injection (low priority)
2. LLM response caching by prompt/content hash (medium priority)
3. Per-setting sync toggle for API key locality (low-medium priority)
4. Batch pipeline with resume-after-interrupt (medium priority)
5. Architecture overview documentation (low priority)

None block v1.8.2. All are post-release improvements.
Full analysis in bilingual audit docs. Roadmap docs updated.
2026-05-01 06:46:00 -05:00
Jacobinwwey
4ef5f021be docs: codify hard constraints for MermaidProcessor decomposition and legacy prompt retirement
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).
2026-05-01 06:38:07 -05:00
Jacobinwwey
dd2616284f fix(llm): align unknown-model output tokens with Cline; harden diagram edge parsing
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.
2026-05-01 06:19:05 -05:00
Jacobinwwey
47d2c39373 Add .github/FUNDING.yml for Ko-fi sponsorship 2026-05-01 11:35:27 +08:00
Jacobinwwey
ae7fc55946 docs: ignore vitepress build artifacts 2026-04-16 09:01:59 -05:00
Jacobinwwey
ceeeb2a40c docs: add repo-backed vitepress preview 2026-04-16 09:00:44 -05:00
Jacobinwwey
1dfdb7c42d docs: enforce explicit locale pairs for plan docs 2026-04-16 08:31:41 -05:00
Jacobinwwey
35361d5c89 docs: split bilingual docs into paired language files 2026-04-16 07:41:02 -05:00
Jacobinwwey
7a66923b79 refactor: extract mermaid edge label helpers 2026-04-14 10:16:41 -05:00
Jacobinwwey
2c142fd970 refactor: extract mermaid note directive helpers 2026-04-14 10:11:30 -05:00
Jacobinwwey
8a0fcc28a8 refactor: extract mermaid legacy note helpers 2026-04-14 10:03:43 -05:00
Jacobinwwey
cbc325fab0 refactor: extract mermaid legacy bracket utilities 2026-04-14 09:56:24 -05:00
Jacobinwwey
eecceaaaa1 fix: escape flowchart mermaid pipe labels 2026-04-14 09:50:47 -05:00
Jacobinwwey
676c5a7e0b refactor: consolidate diagram command execution 2026-04-14 09:45:20 -05:00
Jacobinwwey
df629c8cf8 feat: enforce render-host bundle smoke gate 2026-04-14 09:35:57 -05:00
Jacobinwwey
6c74bf946b feat: localize experimental diagram actions across locales 2026-04-14 09:26:08 -05:00
Jacobinwwey
ce3b9238e9 feat: expose experimental diagram generation in sidebar 2026-04-14 09:19:21 -05:00
Jacobinwwey
d066769525 docs: realign diagram platform progress and roadmap 2026-04-14 09:12:27 -05:00
Jacobinwwey
1912b1c4e2 docs: propagate locale fallback guidance to all readmes 2026-04-14 08:59:20 -05:00