Skip to content

Commit 65507d5

Browse files
committed
release: v1.6.3
1 parent 21727cc commit 65507d5

18 files changed

Lines changed: 1335 additions & 258 deletions

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,9 @@ For optimal performance with "GPU Optimised Rendering", especially on AMD RDNA c
348348
- **NoteMD Embedded Experience**:
349349
- Kept NoteMD as an embedded experience (not a standalone desktop window) aligned with both Tauri and Godot flows.
350350
- Fixed non-responsive `Browse` actions in Tauri NoteMD (file/folder/save pickers now complete the IPC flow).
351+
- Defaulted embedded NoteMD to a single `One-Click Extract` workflow that chains concept extraction, batch generation from titles, and batch Mermaid repair into a source-file-named KB folder.
352+
- Moved embedded NoteMD API configuration into `app_config.toml` under `[notemd]` and `[notemd.api]`, with matching fields in the embedded NoteMD window.
353+
- Added `noteconnection notemd ...` CLI entrypoints for shared NoteMD actions.
351354
- Added user guidance that PDF files must be converted to Markdown via Mineru before import.
352355
- **Platform & Toolchain Release Readiness**:
353356
- Standardized Java policy to **JDK 21+** and verified support for **JDK 23.0.1** in Android prerequisites/build tooling.

docs/en/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,10 @@ Unlike traditional "network" views that show a messy web of links, NoteConnectio
6161
### 5. NoteMD AI Document Workbench (v1.5.58)
6262

6363
- **Integrated NoteMD module**: Added `src/notemd/*` as a standalone, Obsidian-decoupled processing stack (LLM provider abstraction, prompt manager, batch/file processors, translation, Mermaid/formula fixers, and duplicate detection).
64-
- **New API surface**: Added `/api/notemd/*` endpoints for settings, file/folder processing, translation, content generation, concept extraction, duplicate checks, and cancellation.
64+
- **One-Click Extract workflow**: The embedded NoteMD window now defaults to a single standard workflow button that chains concept extraction, title-based batch generation, and batch Mermaid repair. Generated files land in a KB subfolder named after the source file.
65+
- **TOML-backed API profile**: Embedded NoteMD reads and writes its active API configuration from `app_config.toml` via `[notemd]` and `[notemd.api]`.
66+
- **CLI compatibility**: Core NoteMD workflows are invokable through `noteconnection notemd ...`, including `settings show`, `settings set-api`, `one-click-extract`, `batch-generate`, `batch-mermaid-fix`, and `fix-mermaid`.
67+
- **New API surface**: Added `/api/notemd/*` endpoints for settings, file/folder processing, workflow orchestration, translation, content generation, concept extraction, duplicate checks, and cancellation.
6568
- **Desktop + Bridge access**: Added Tauri menu/IPC `open_notemd` and bridge routing for NoteMD window access from web/Tauri/Godot-connected workflows.
6669
- **Safety defaults**: NoteMD file operations are constrained by KB-root sandbox checks, with SSE progress reporting and cancel support for long-running operations.
6770

docs/examples/app_config.template.toml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,30 @@ confirm_before_full_shutdown_from_godot = true
3737
# true -> keep language synchronized across Tauri and Godot runtime.
3838
# false -> disable runtime language sync broadcast to Path Mode.
3939
sync_language = true
40+
41+
[notemd]
42+
# true -> show developer-only step-by-step processing controls in the embedded NoteMD window.
43+
# false -> keep the UI focused on the default One-Click Extract workflow.
44+
developer_mode = false
45+
46+
# Default language used by embedded NoteMD prompts/settings.
47+
language = "en"
48+
49+
# Max approximate words per chunk sent to the extraction model.
50+
chunk_word_count = 2800
51+
52+
# Max completion tokens for NoteMD generation/extraction requests.
53+
max_tokens = 4096
54+
55+
# true -> automatically run Mermaid repair after Mermaid-producing generation flows.
56+
# false -> leave generated Mermaid untouched unless manually fixed.
57+
auto_mermaid_fix_after_generate = true
58+
59+
[notemd.api]
60+
# Active NoteMD API profile. This is the single embedded profile used by the NoteMD window and CLI.
61+
provider = "DeepSeek"
62+
base_url = "https://api.deepseek.com/v1"
63+
model = "deepseek-reasoner"
64+
api_key = ""
65+
api_version = ""
66+
temperature = 0.5

docs/zh/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@
5858
### 5. NoteMD AI 文档工作台(v1.5.58)
5959

6060
- **NoteMD 模块已集成**:新增 `src/notemd/*` 独立能力层(LLM 适配、提示词管理、批处理/文件处理、翻译、Mermaid/公式修复、重复检测)。
61-
- **新增 API 面**`/api/notemd/*` 覆盖设置、文件/文件夹处理、翻译、内容生成、概念提取、重复检测与任务取消。
61+
- **默认一键提取工作流**:嵌入式 NoteMD 现在默认保留一个 `One-Click Extract` 入口,按顺序串联“当前文件概念提取 -> 按标题批量生成 -> 批量 Mermaid 修复”,并将输出写入以源文件名命名的 KB 子目录。
62+
- **TOML API 配置**:嵌入式 NoteMD 的活动 API 配置改为写入 `app_config.toml` 中的 `[notemd]``[notemd.api]`
63+
- **CLI 兼容**:可通过 `noteconnection notemd ...` 调用核心 NoteMD 能力,例如 `settings show``settings set-api``one-click-extract``batch-generate``batch-mermaid-fix``fix-mermaid`
64+
- **新增 API 面**`/api/notemd/*` 覆盖设置、工作流编排、文件/文件夹处理、翻译、内容生成、概念提取、重复检测与任务取消。
6265
- **桌面与桥接接入**:新增 Tauri 菜单/IPC `open_notemd`,并在桥接链路支持 NoteMD 窗口打开。
6366
- **安全默认值**:NoteMD 文件操作启用 KB 根路径沙箱校验,长任务支持 SSE 进度回传与取消。
6467

package-lock.json

Lines changed: 8 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "noteconnection",
3-
"version": "1.6.2",
3+
"version": "1.6.3",
44
"description": "Hierarchical Knowledge Graph Visualization System",
55
"main": "dist/src/server.js",
66
"bin": {
@@ -132,6 +132,7 @@
132132
"@capacitor/cli": "^8.0.0",
133133
"@capacitor/core": "^8.0.0",
134134
"@capacitor/filesystem": "^8.1.2",
135+
"@iarna/toml": "^2.2.5",
135136
"@resvg/resvg-wasm": "^2.6.2",
136137
"@tauri-apps/api": "^2.10.1",
137138
"@tauri-apps/plugin-opener": "^2.5.3",

src/frontend/notemd.css

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,13 @@ button:hover {
186186
border-color: var(--accent);
187187
}
188188

189+
button.primary {
190+
border-color: rgba(123, 240, 214, 0.45);
191+
background: linear-gradient(160deg, #17475a, #123847);
192+
color: #efffff;
193+
font-weight: 600;
194+
}
195+
189196
button.ghost {
190197
white-space: nowrap;
191198
min-width: 96px;
@@ -212,6 +219,26 @@ button.danger {
212219
font-size: 0.84rem;
213220
}
214221

222+
input[readonly] {
223+
opacity: 0.82;
224+
cursor: default;
225+
}
226+
227+
input[type="checkbox"] {
228+
width: 18px;
229+
height: 18px;
230+
}
231+
232+
.advanced-panel.is-hidden {
233+
display: none;
234+
}
235+
236+
.developer-note {
237+
margin: 0.75rem 0 0;
238+
color: var(--muted);
239+
font-size: 0.84rem;
240+
}
241+
215242
@media (max-width: 920px) {
216243
.grid.two {
217244
grid-template-columns: 1fr;

src/frontend/notemd.html

Lines changed: 68 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -36,103 +36,113 @@ <h1>NoteMD Workspace</h1>
3636
</section>
3737

3838
<section class="panel">
39-
<h2>Runtime</h2>
39+
<h2>NoteMD API Settings</h2>
4040
<div class="grid two">
4141
<label>
42-
<span>Operation ID (optional)</span>
43-
<input id="op-id" type="text" placeholder="notemd-..." />
42+
<span>Provider</span>
43+
<input id="provider-name" type="text" placeholder="OpenAI / DeepSeek / ..." />
4444
</label>
4545
<label>
46-
<span>Target Language</span>
47-
<input id="target-language" type="text" value="English" />
46+
<span>Model</span>
47+
<input id="api-model" type="text" placeholder="gpt-4o-mini" />
4848
</label>
4949
</div>
50-
<div class="actions">
50+
<div class="grid two">
51+
<label>
52+
<span>Base URL</span>
53+
<input id="api-base-url" type="text" placeholder="https://api.openai.com/v1" />
54+
</label>
55+
<label>
56+
<span>API Key</span>
57+
<input id="api-key" type="password" placeholder="sk-..." />
58+
</label>
59+
</div>
60+
<div class="grid two">
61+
<label>
62+
<span>API Version (optional)</span>
63+
<input id="api-version" type="text" placeholder="2025-01-01-preview" />
64+
</label>
65+
<label>
66+
<span>Temperature</span>
67+
<input id="api-temperature" type="number" min="0" max="2" step="0.1" value="0.5" />
68+
</label>
69+
</div>
70+
<div class="grid two">
71+
<label>
72+
<span>Chunk Word Count</span>
73+
<input id="chunk-word-count" type="number" min="300" step="100" value="2800" />
74+
</label>
75+
<label>
76+
<span>Max Tokens</span>
77+
<input id="max-tokens" type="number" min="128" step="128" value="4096" />
78+
</label>
79+
</div>
80+
<div class="grid two">
81+
<label>
82+
<span>Developer Mode</span>
83+
<input id="developer-mode" type="checkbox" />
84+
</label>
85+
<label>
86+
<span>Operation ID (optional)</span>
87+
<input id="op-id" type="text" placeholder="notemd-..." />
88+
</label>
89+
</div>
90+
<div class="actions wrap">
5191
<button id="btn-load-settings">Load Settings</button>
52-
<button id="btn-save-settings">Save Settings JSON</button>
92+
<button id="btn-save-settings">Save TOML Settings</button>
5393
<button id="btn-test-llm">Test Active LLM</button>
5494
<button class="danger" id="btn-cancel-op">Cancel Operation</button>
5595
</div>
56-
<label class="full">
57-
<span>Settings JSON</span>
58-
<textarea id="settings-json" rows="8" spellcheck="false"></textarea>
59-
</label>
96+
<p id="developer-state" class="developer-note"></p>
6097
</section>
6198

6299
<section class="panel">
63-
<h2>File Operations</h2>
100+
<h2>Standard Extraction Workflow</h2>
101+
<p class="subtitle">
102+
Default flow: Extract concepts from the current file, generate concept notes from titles, then batch-fix Mermaid syntax in the generated folder.
103+
</p>
64104
<div class="grid two">
65105
<label>
66-
<span>File Path</span>
106+
<span>Source Markdown File</span>
67107
<div class="path-input-row">
68108
<input id="file-path" type="text" placeholder="Knowledge_Base/..." />
69109
<button id="btn-browse-file-path" type="button" class="ghost">Browse...</button>
70110
</div>
71111
</label>
72112
<label>
73-
<span>Output Path (optional)</span>
113+
<span>Output Folder Preview</span>
74114
<div class="path-input-row">
75-
<input id="output-path" type="text" placeholder="Knowledge_Base/.../output.md" />
76-
<button id="btn-browse-output-path" type="button" class="ghost">Browse...</button>
115+
<input id="output-folder-preview" type="text" placeholder="Knowledge_Base/<source-file-name>" readonly />
77116
</div>
78117
</label>
79118
</div>
80-
<div class="actions wrap">
81-
<button id="btn-process-file">Process File</button>
82-
<button id="btn-translate-file">Translate File</button>
83-
<button id="btn-fix-mermaid">Fix Mermaid</button>
84-
<button id="btn-fix-formulas">Fix Formulas</button>
85-
<button id="btn-check-duplicates">Check Duplicates</button>
86-
<button id="btn-extract-concepts">Extract Concepts</button>
119+
<div class="actions">
120+
<button id="btn-one-click-extract" class="primary">One-Click Extract</button>
87121
</div>
88122
</section>
89123

90-
<section class="panel">
91-
<h2>Folder Operations</h2>
124+
<section id="advanced-panel" class="panel advanced-panel is-hidden">
125+
<h2>Step-by-Step Processing</h2>
126+
<p class="subtitle">
127+
Visible only in developer mode. Use these controls to run each stage of the standard workflow manually.
128+
</p>
92129
<div class="grid two">
93130
<label>
94-
<span>Folder Path</span>
131+
<span>Workflow Folder</span>
95132
<div class="path-input-row">
96133
<input id="folder-path" type="text" placeholder="Knowledge_Base/..." />
97134
<button id="btn-browse-folder-path" type="button" class="ghost">Browse...</button>
98135
</div>
99136
</label>
100137
<label>
101-
<span>Output Folder (optional)</span>
102-
<div class="path-input-row">
103-
<input id="output-folder-path" type="text" placeholder="Knowledge_Base/.../processed" />
104-
<button id="btn-browse-output-folder-path" type="button" class="ghost">Browse...</button>
105-
</div>
106-
</label>
107-
</div>
108-
<div class="actions wrap">
109-
<button id="btn-process-folder">Process Folder</button>
110-
<button id="btn-translate-folder">Translate Folder</button>
111-
<button id="btn-generate-folder">Generate Empty Files</button>
112-
</div>
113-
</section>
114-
115-
<section class="panel">
116-
<h2>Generation</h2>
117-
<div class="grid two">
118-
<label>
119-
<span>Title</span>
120-
<input id="gen-title" type="text" placeholder="e.g. Graph Neural Networks" />
121-
</label>
122-
<label>
123-
<span>Save To File (optional)</span>
124-
<div class="path-input-row">
125-
<input id="gen-file" type="text" placeholder="Knowledge_Base/.../topic.md" />
126-
<button id="btn-browse-gen-file" type="button" class="ghost">Browse...</button>
127-
</div>
138+
<span>Target Language</span>
139+
<input id="target-language" type="text" value="English" />
128140
</label>
129141
</div>
130-
<label class="full">
131-
<span>Research Context (optional)</span>
132-
<textarea id="gen-context" rows="5"></textarea>
133-
</label>
134142
<div class="actions wrap">
135-
<button id="btn-generate-content">Generate Content</button>
143+
<button id="btn-extract-concepts">Extract Concepts (Current File)</button>
144+
<button id="btn-generate-folder">Batch Generate From Titles</button>
145+
<button id="btn-batch-fix-mermaid">Batch Mermaid Fix</button>
136146
</div>
137147
</section>
138148

0 commit comments

Comments
 (0)