feat: v4.6.0 — AI assistant, collaboration, knowledge base, and 15 more features

- AI Assistant plugin: multi-provider chat (OpenAI/Anthropic/Ollama/LM Studio),
  summarize/improve/translate commands, proofread via ai:analyze; calls
  proxied through main so API keys stay out of the renderer
- Collaboration plugin: anchor-based comments in .comments/ sidecars with
  drift detection and F8 navigation
- Local knowledge base: [[wiki-links]] with click-to-create + Backlinks panel
- Crash recovery: debounced session snapshots with restore prompt on launch
- Version history: pre-save snapshots, History panel with restore/diff/delete
- Real PDF encryption: swap pdf-lib for @cantoo/pdf-lib (probe-driven UI)
- XLSX export (native workbooks via JSZip), ODT headers/footers + page size
- Offline KaTeX (bundled CSS+fonts), local-first PlantUML rendering
- Editor: vim mode toggle, snippet Tab-expansion, zen word-goal setter,
  writing heatmap, writing-studio panels wired with rail icons
- Quick Note global scratchpad (Ctrl+Alt+Q), markdownconverter:// deep links,
  REPL first-run confirmation
- Fix: Ctrl+Shift+P collision, pandoc converter availability check, CLI
  dangling --css/--reference-doc flags, dead converter button

8 new test suites; 613 tests green; lint clean
This commit is contained in:
2026-09-05 20:48:39 +05:30
parent b83ba91731
commit c4dcbd8caf
105 changed files with 5695 additions and 195 deletions
+21
View File
@@ -40,6 +40,10 @@ const ALLOWED_SEND_CHANNELS = [
'plugin-export-formats-registered',
'plugin-export-format-result',
// AI Assistant plugin (completions proxied through main; keys stay there)
'ai-assistant:complete',
'ai-assistant:status',
// Batch conversion
'batch-convert',
'select-folder',
@@ -155,6 +159,23 @@ const ALLOWED_SEND_CHANNELS = [
// Monospace font settings
'get-monospace-settings',
'set-monospace-settings',
// Vim keybinding mode
'get-vim-mode',
'set-vim-mode',
// PlantUML local rendering (optional CLI)
'plantuml:available',
'plantuml:render',
// Quick Note scratchpad
'quick-note:save',
// Document version history
'version-history:list',
'version-history:read',
'version-history:save',
'version-history:delete',
];
const ALLOWED_RECEIVE_CHANNELS = [