noteconnection 1.8.0 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +257 -1803
  2. package/dist/src/agent_workspace.contract.parity.test.js +105 -421
  3. package/dist/src/agent_workspace.frontend.test.js +410 -11
  4. package/dist/src/android.knowledgebase.picker.contract.test.js +102 -0
  5. package/dist/src/appimage.patchelf.test.js +113 -0
  6. package/dist/src/appimage.portability.test.js +156 -0
  7. package/dist/src/appimage.update.test.js +127 -0
  8. package/dist/src/backend/FileLoader.js +18 -4
  9. package/dist/src/backend/FileLoader.test.js +125 -0
  10. package/dist/src/backend/GraphBuilder.identity.test.js +86 -0
  11. package/dist/src/backend/GraphBuilder.js +66 -18
  12. package/dist/src/backend/GraphBuilder.matching.test.js +127 -0
  13. package/dist/src/backend/GraphMetrics.js +0 -3
  14. package/dist/src/backend/ResourceIdentity.js +155 -0
  15. package/dist/src/backend/ResourceIdentity.test.js +113 -0
  16. package/dist/src/backend/algorithms/CycleDetection.js +0 -1
  17. package/dist/src/backend/algorithms/HybridEngine.js +0 -3
  18. package/dist/src/backend/algorithms/LayoutEngine.js +0 -1
  19. package/dist/src/backend/algorithms/StatisticalAnalyzer.js +0 -4
  20. package/dist/src/backend/algorithms/TopologicalSort.js +0 -2
  21. package/dist/src/backend/build_dag.js +0 -1
  22. package/dist/src/capacitor.bridge.serialization.contract.test.js +3 -0
  23. package/dist/src/capacitor.runtime.contract.test.js +11 -2
  24. package/dist/src/core/Graph.js +138 -42
  25. package/dist/src/core/Graph.test.js +74 -0
  26. package/dist/src/core/NoteConnection.js +2 -2
  27. package/dist/src/core/PathBridge.js +265 -2
  28. package/dist/src/core/ResourceReference.js +17 -0
  29. package/dist/src/desktop.godot.pack.test.js +142 -0
  30. package/dist/src/desktop.runtime.graph.test.js +66 -0
  31. package/dist/src/export/WorkspaceExportBundle.js +44 -0
  32. package/dist/src/export/WorkspaceExportBundle.test.js +61 -0
  33. package/dist/src/foundation.release.evidence.contract.test.js +127 -9
  34. package/dist/src/foundation.sqlite.runtime.contract.test.js +6 -0
  35. package/dist/src/frontend/README.md +257 -1803
  36. package/dist/src/frontend/agent_workspace.js +665 -7
  37. package/dist/src/frontend/index.html +31 -2
  38. package/dist/src/frontend/knowledge_projection_contract.js +230 -0
  39. package/dist/src/frontend/knowledge_projection_store.js +214 -0
  40. package/dist/src/frontend/libs/path_core.js +158 -42
  41. package/dist/src/frontend/locales/en.json +32 -0
  42. package/dist/src/frontend/locales/zh.json +32 -0
  43. package/dist/src/frontend/mobile_budget_runtime.js +33 -0
  44. package/dist/src/frontend/mobile_exact_analyzer.js +393 -0
  45. package/dist/src/frontend/mobile_identity_contract.js +221 -0
  46. package/dist/src/frontend/mobile_semantic_comparator.js +264 -0
  47. package/dist/src/frontend/path.html +6 -2
  48. package/dist/src/frontend/simulationWorker.js +1 -1
  49. package/dist/src/frontend/source_manager.js +110 -4
  50. package/dist/src/frontend/storage_provider.js +661 -71
  51. package/dist/src/frontend/styles.css +107 -13
  52. package/dist/src/frontend/workspace_panes.js +111 -7
  53. package/dist/src/frontend.runtime.assets.contract.test.js +81 -0
  54. package/dist/src/graph.answer.operator.contract.test.js +72 -0
  55. package/dist/src/index.js +6 -2
  56. package/dist/src/index.knowledge-root.test.js +118 -0
  57. package/dist/src/indexing/IndexLifecycle.js +22 -0
  58. package/dist/src/indexing/IndexLifecycle.test.js +24 -0
  59. package/dist/src/knowledge.api.contract.test.js +4 -2
  60. package/dist/src/knowledge_projection.contract.test.js +134 -0
  61. package/dist/src/knowledge_projection_store.test.js +200 -0
  62. package/dist/src/learning/AnswerQualityEvaluation.js +153 -0
  63. package/dist/src/learning/AnswerQualityEvaluation.test.js +118 -0
  64. package/dist/src/learning/KnowledgeLearningPlatform.js +4687 -3892
  65. package/dist/src/learning/KnowledgeLearningPlatform.persistence.test.js +418 -0
  66. package/dist/src/learning/KnowledgeLearningPlatform.test.js +243 -6
  67. package/dist/src/learning/KnowledgeWorkspaceConversationRegression.js +25 -1
  68. package/dist/src/learning/KnowledgeWorkspaceConversationRegression.test.js +13 -5
  69. package/dist/src/learning/MeasurementEvidenceConflicts.test.js +78 -0
  70. package/dist/src/learning/PublicAnswerContract.test.js +85 -0
  71. package/dist/src/learning/PublicEvidenceSelection.test.js +94 -0
  72. package/dist/src/learning/PublicMeasurementDisclosure.test.js +54 -0
  73. package/dist/src/learning/agentConversationExecution.js +211 -0
  74. package/dist/src/learning/agentConversationExecution.test.js +209 -0
  75. package/dist/src/learning/agentConversationSerialization.js +266 -0
  76. package/dist/src/learning/agentConversationSerialization.test.js +165 -0
  77. package/dist/src/learning/agentResponseBudget.js +179 -0
  78. package/dist/src/learning/agentResponseBudget.test.js +97 -0
  79. package/dist/src/learning/agentWorkspaceCapabilityContracts.js +65 -0
  80. package/dist/src/learning/answerReleaseReview.js +1191 -250
  81. package/dist/src/learning/answerReleaseReview.test.js +1293 -7
  82. package/dist/src/learning/answerTaskPlan.js +473 -0
  83. package/dist/src/learning/conversationComposer.js +627 -386
  84. package/dist/src/learning/conversationComposer.test.js +1403 -0
  85. package/dist/src/learning/evidenceContextAssembler.js +312 -120
  86. package/dist/src/learning/graphAnswerCoverage.js +37 -0
  87. package/dist/src/learning/graphAnswerCoverage.test.js +93 -0
  88. package/dist/src/learning/graphAnswerCoverageCalibration.js +59 -0
  89. package/dist/src/learning/graphAnswerCoverageCalibration.test.js +46 -0
  90. package/dist/src/learning/graphAnswerFacts.js +94 -0
  91. package/dist/src/learning/graphAnswerFacts.test.js +39 -0
  92. package/dist/src/learning/graphAnswerPlan.js +908 -0
  93. package/dist/src/learning/graphAnswerPlan.test.js +907 -0
  94. package/dist/src/learning/graphAnswerQualityCalibration.js +255 -0
  95. package/dist/src/learning/graphAnswerQualityCalibration.test.js +72 -0
  96. package/dist/src/learning/graphAnswerQualityPolicy.js +30 -0
  97. package/dist/src/learning/graphClaimMatcher.js +104 -0
  98. package/dist/src/learning/graphConditionedContext.js +109 -0
  99. package/dist/src/learning/graphConditionedContext.test.js +99 -0
  100. package/dist/src/learning/graphContextAssembler.js +3 -13
  101. package/dist/src/learning/graphContextAssembler.test.js +2 -2
  102. package/dist/src/learning/graphExpansionPolicy.js +22 -0
  103. package/dist/src/learning/graphExpansionPolicy.test.js +33 -0
  104. package/dist/src/learning/identityMetadata.test.js +26 -0
  105. package/dist/src/learning/index.js +1 -0
  106. package/dist/src/learning/mobileAnswerProjection.js +104 -0
  107. package/dist/src/learning/mobileAnswerProjection.test.js +102 -0
  108. package/dist/src/learning/queryBackend.js +34 -10
  109. package/dist/src/learning/queryBackend.test.js +21 -0
  110. package/dist/src/learning/ragContextPack.js +115 -16
  111. package/dist/src/learning/ragContextPack.test.js +151 -0
  112. package/dist/src/learning/ragEvidenceQuality.js +96 -0
  113. package/dist/src/learning/ragEvidenceQuality.test.js +29 -0
  114. package/dist/src/learning/ragPublicText.js +67 -4
  115. package/dist/src/learning/ragPublicText.test.js +57 -0
  116. package/dist/src/learning/ragSufficiencyJudge.js +11 -1
  117. package/dist/src/learning/ragSufficiencyProviderJudge.js +16 -26
  118. package/dist/src/learning/ragSufficiencyProviderJudge.test.js +51 -0
  119. package/dist/src/learning/requestNormalization.js +106 -0
  120. package/dist/src/learning/requestNormalization.test.js +101 -0
  121. package/dist/src/learning/store.js +116 -12
  122. package/dist/src/learning/store.test.js +299 -0
  123. package/dist/src/learning/vectorAccelerationAdapter.js +22 -6
  124. package/dist/src/learning/vectorAccelerationAdapter.test.js +30 -0
  125. package/dist/src/learning/workspaceHydration.js +168 -0
  126. package/dist/src/learning/workspaceHydration.test.js +30 -0
  127. package/dist/src/license.policy.contract.test.js +9 -4
  128. package/dist/src/markdown/MarkdownGateway.js +4 -0
  129. package/dist/src/markdown/MarkdownGateway.test.js +59 -0
  130. package/dist/src/middleware/SseResponseWriter.js +122 -0
  131. package/dist/src/middleware/SseResponseWriter.test.js +54 -0
  132. package/dist/src/middleware/auth.js +28 -7
  133. package/dist/src/middleware/auth.test.js +33 -0
  134. package/dist/src/middleware/index.js +2 -1
  135. package/dist/src/mobile.android.evidence.contract.test.js +146 -0
  136. package/dist/src/mobile.android.signing.contract.test.js +66 -0
  137. package/dist/src/mobile.artifact.contract.test.js +144 -0
  138. package/dist/src/mobile.budget.contract.test.js +90 -0
  139. package/dist/src/mobile.canonical-id.readiness.test.js +54 -0
  140. package/dist/src/mobile.graph.parity.contract.test.js +207 -0
  141. package/dist/src/mobile.identity.contract.test.js +66 -0
  142. package/dist/src/mobile.identity.corpus.manifest.test.js +72 -0
  143. package/dist/src/mobile.identity.corpus.test.js +40 -0
  144. package/dist/src/mobile.native.recovery.contract.test.js +64 -0
  145. package/dist/src/mobile.pipeline.test.js +11 -1
  146. package/dist/src/mobile.profile.contract.test.js +225 -0
  147. package/dist/src/mobile.semantic.parity.test.js +92 -0
  148. package/dist/src/mobile_exact_analyzer.test.js +113 -0
  149. package/dist/src/notemd/ContentGenerator.js +4 -9
  150. package/dist/src/notemd/FileProcessor.js +4 -9
  151. package/dist/src/notemd/NotemdService.js +12 -17
  152. package/dist/src/notemd/Translator.js +4 -9
  153. package/dist/src/notemd/progressReporter.js +9 -0
  154. package/dist/src/notemd.server.integration.test.js +119 -4
  155. package/dist/src/notemd.workflow.pipeline.test.js +1 -1
  156. package/dist/src/pathbridge.handshake.contract.test.js +29 -0
  157. package/dist/src/pathbridge.host-adapter.contract.test.js +133 -0
  158. package/dist/src/pathcore.bundle.contract.test.js +8 -0
  159. package/dist/src/platform/ExportProfile.js +28 -0
  160. package/dist/src/platform/MobileBudget.js +11 -0
  161. package/dist/src/platform/PlatformCapabilities.js +14 -0
  162. package/dist/src/platform/PlatformCapabilities.test.js +6 -0
  163. package/dist/src/query_backend.external_http.integration.test.js +2 -2
  164. package/dist/src/release.godot.mirror.contract.test.js +28 -4
  165. package/dist/src/resources/ResourceRegistry.js +40 -0
  166. package/dist/src/resources/ResourceRegistry.test.js +36 -0
  167. package/dist/src/routes/index.js +0 -4
  168. package/dist/src/routes/knowledge.js +46 -33
  169. package/dist/src/routes/knowledgePayload.js +185 -0
  170. package/dist/src/routes/knowledgePayload.test.js +53 -0
  171. package/dist/src/routes/markdown.js +8 -0
  172. package/dist/src/routes/notemd.js +990 -234
  173. package/dist/src/routes/registry.contract.test.js +5 -2
  174. package/dist/src/routes/registry.shadow.contract.test.js +22 -0
  175. package/dist/src/routes/render.js +14 -51
  176. package/dist/src/runtime.capabilities.test.js +18 -2
  177. package/dist/src/server.js +566 -1090
  178. package/dist/src/server.migration.test.js +417 -15
  179. package/dist/src/sidecar.build.lock.contract.test.js +201 -0
  180. package/dist/src/sidecar.freshness.contract.test.js +184 -0
  181. package/dist/src/sidecar.replacement.boundary.contract.test.js +6 -3
  182. package/dist/src/sidecar.supply.readiness.contract.test.js +11 -0
  183. package/dist/src/simulation.worker.offline.test.js +104 -0
  184. package/dist/src/storage.provider.capacitor.content.contract.test.js +4 -1
  185. package/dist/src/storage.provider.contract.test.js +152 -1
  186. package/dist/src/tauri.frontend.build.contract.test.js +8 -0
  187. package/dist/src/tauri.window.evidence.execution.test.js +68 -0
  188. package/dist/src/utils/RuntimePaths.js +6 -0
  189. package/dist/src/utils/RuntimePaths.test.js +27 -0
  190. package/dist/src/windows.installer.build.test.js +109 -0
  191. package/dist/src/windows.installer.payload.test.js +76 -0
  192. package/dist/src/windows.installer.runtime.test.js +69 -0
  193. package/dist/src/workspace/WorkspaceRegistry.js +13 -0
  194. package/package.json +32 -10
  195. package/dist/src/routes/data.js +0 -267
  196. package/dist/src/routes/diagnostics.js +0 -51
package/README.md CHANGED
@@ -1,257 +1,98 @@
1
- # 2026-04-07 v1.7.0
2
-
3
- # NoteConnection Knowledge Graph
4
-
5
- <img width="606" height="309" alt="banner" src="https://github.com/user-attachments/assets/92e90de5-2b1a-4398-8e8b-6e142c92b6a2" />
1
+ # NoteConnection
6
2
 
7
3
  <div align="center">
8
4
 
9
- ### Legacy Navigation Row (from shared bilingual table)
10
- | **English** | [Key Features](#key-features-en) | [Hardware](#hardware-en) | [Architecture](#architecture-en) | [Quick Start](#quick-start-en) | [CLI](#cli-en) | [Changelog](#changelog-en) |
11
- | :---------: | :------------------------------: | :----------------------: | :------------------------------: | :----------------------------: | :------------: | :------------------------: |
12
- | **中文** | [核心特性](#key-features-zh) | [硬件配置](#hardware-zh) | [系统架构](#architecture-zh) | [快速开始](#quick-start-zh) | [CLI](#cli-zh) | [更新日志](#changelog-zh) |
13
-
14
- </div>
15
-
16
- # NoteConnection: Hierarchical Knowledge Graph Visualization System
17
-
18
- > **Unlock the Structure of Your Knowledge.**
19
-
20
- [![npm version](https://badge.fury.io/js/noteconnection.svg)](https://badge.fury.io/js/noteconnection)
21
-
22
- **NoteConnection** is a high-performance, standalone visualization system engineered to transform unstructured Markdown knowledge bases into **Directed Acyclic Graphs (DAGs)**.
23
-
24
- Unlike traditional "network" views that show a messy web of links, NoteConnection reveals the **hierarchy**, **learning paths**, and **dependency structures** hidden within your notes. It is built for scalability, capable of handling tens of thousands of nodes with ease, and operates completely independently of any specific note-taking app.
25
-
26
- <img width="2010" height="2011" alt="image" src="https://github.com/user-attachments/assets/fa55676d-f58d-414e-943c-7a10567f88a5" />
27
-
28
- ---
29
-
30
- ## Current Mainline Architecture Status (2026-07-03)
31
-
32
- ### English
33
-
34
- - The Mermaid fallback failure class reported through the Node-side renderer is now closed at the correct owners: `src/notemd/MermaidProcessor.ts` and `src/reader_renderer.ts` both normalize malformed quoted bracketed-node labels per line before parse/render. `PathBridge` remains transport-only.
35
- - Guided Learning no longer pays repeated full hosted `Graph` / `PathEngine` reconstruction for the same graph snapshot. `src/frontend/workspace_panes.js` now reuses the hosted Future Path runtime by source-graph signature while keeping the pending-pane behavior in `src/frontend/agent_workspace.js`.
36
- - Hosted Future Path runtime reuse now has a narrower owner: `src/frontend/hosted_future_path_runtime.js` holds signature-based cache identity plus cold/hot-path diagnostics, and `workspace_panes.js` now consumes that owner instead of holding the cache logic inline.
37
- - Guided Learning first-open behavior is now two-stage: when local graph state is already available, the pending pane can render an immediate hosted Future Path projection before `/api/knowledge/path` returns, and identical in-flight Learning Path requests are deduped by normalized payload.
38
- - Knowledge Workspace public answers now consume bounded DAG context on the main answer path instead of collapsing to only the first top-hit sentence. `src/learning/graphContextAssembler.ts` now emits `anchorGraphProfile`, and `conversationComposer.ts` plus `answerReleaseReview.ts` use bounded path and degree context while keeping the public answer contracted.
39
- - The local design references under `ref/enterprise_agent_platform` and `ref/codex` now reinforce the current owner split: runtime/retrieval/memory/release-review stay local, and model-visible context stays bounded and additive.
40
- - Compared with the 2026-05-25 through 2026-06-18 plan chain, the missing gap is no longer whether DAG context reaches the public answer path. The remaining gap is calibration and architecture concentration inside a few oversized owners.
41
- - Current architecture pressure is still concentrated in `src/server.ts` (~15850 lines), `src/learning/KnowledgeLearningPlatform.ts` (~11200), `src/frontend/workspace_panes.js` (~9289), `src/frontend/agent_workspace.js` (~4882), and `src/learning/answerReleaseReview.ts` (~4261). The next step is narrower extraction around real invariants, not another framework import pass.
42
- - Current code-vs-plan details are tracked in [Agent Knowledge Workspace Graph Preview and Review Closure (2026-06-20)](docs/solutions/agent-knowledge-workspace-graph-preview-and-review-closure-2026-06-20.md) and the [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md).
43
-
44
- ### 中文
45
-
46
- - 通过 Node 侧 renderer 暴露出来的 Mermaid 回退失败类现在已经在正确 owner 处关闭:`src/notemd/MermaidProcessor.ts` 与 `src/reader_renderer.ts` 现在都会在解析/渲染前按行归一化畸形带引号 bracketed-node label;`PathBridge` 继续只做 transport。
47
- - Guided Learning 对同一图快照不再重复支付完整托管 `Graph` / `PathEngine` 重建成本。`src/frontend/workspace_panes.js` 现在会按 source-graph signature 复用 hosted Future Path runtime,同时保留 `src/frontend/agent_workspace.js` 中已有的 pending-pane 行为。
48
- - Hosted Future Path runtime 复用现在也有了更窄的 owner:`src/frontend/hosted_future_path_runtime.js` 持有按签名复用的 cache identity 与冷/热路径诊断,`workspace_panes.js` 不再内联持有整套 cache 逻辑。
49
- - Guided Learning 首开现在也变成了两阶段行为:只要本地图状态已可用,pending pane 就能在 `/api/knowledge/path` 返回前先渲染 hosted Future Path 投影,而且相同的在途 Learning Path 请求会按归一化 payload 去重。
50
- - Knowledge Workspace 的公开回答现在已经在主回答路径消费有界 DAG context,而不再只退化成首条 top-hit 句子。`src/learning/graphContextAssembler.ts` 现在会发射 `anchorGraphProfile`,`conversationComposer.ts` 与 `answerReleaseReview.ts` 会在保持回答收缩的前提下使用 bounded path / degree context。
51
- - 本地 `ref/enterprise_agent_platform` 与 `ref/codex` 设计参考现在进一步支撑当前 owner 切分:runtime / retrieval / memory / release-review 继续留在本地运行时,model-visible context 继续保持 bounded + additive。
52
- - 相对 2026-05-25 到 2026-06-18 的方案链,当前缺口已经不再是“DAG context 有没有真正进入公开回答路径”。剩余缺口主要是回答校准,以及少数大 owner 内的架构集中度。
53
- - 当前架构压力仍集中在 `src/server.ts`(约 `15850` 行)、`src/learning/KnowledgeLearningPlatform.ts`(约 `11200` 行)、`src/frontend/workspace_panes.js`(约 `9289` 行)、`src/frontend/agent_workspace.js`(约 `4882` 行)与 `src/learning/answerReleaseReview.ts`(约 `4261` 行)。下一步应该围绕真实不变量做窄提取,而不是再做一轮框架导入。
54
- - 当前代码 / 方案对齐详情见 [Agent 知识工作区图预览与回答审核收口(2026-06-20)](docs/solutions/agent-knowledge-workspace-graph-preview-and-review-closure-2026-06-20.md) 与 [开发进度看板](docs/diataxis/zh/explanation/development-progress-dashboard.md)。
55
-
56
- ---
57
-
58
- ## Current Mainline Architecture Status (2026-06-24)
59
-
60
- ### English
61
-
62
- - The Agent Knowledge Workspace closure now combines three mainline owners: bounded DAG context assembly, deterministic final-answer release review, and right-pane graph/source projections.
63
- - Public answers remain contracted to the reviewed answer path; citations, graph context, reviewer details, provenance diagnostics, and developer traces belong to secondary panes, artifacts, traces, or exports.
64
- - Matched-file discoverability is now intentionally compact: users get a question-mark help affordance for "left-click opens source and highlights the basis" instead of permanent instructional text in the workspace.
65
- - The matched-file/source-focus path is now right-pane-first: source clicks resolve candidate paths, render Markdown, highlight matched evidence, and expose close controls for the affected right-pane surfaces.
66
- - `Related Focus` is implemented as a side-pane Focus-mode host backed by the main graph projection contract and the shared double-click decision contract; it switches anchors and opens Markdown inside the pane without moving the main graph DOM or calling the global reader, and the hosted view intentionally omits the main toolbar frame, visible edge layer, and dense background context dots. `Learning Path` hosts the Godot Future Path `diffusion/core/treeLayout` contract, inherits matching Path-mode expansion/collapse/completion state when the live target matches, and routes DOM input through TreeRenderer-style spine-only signals, including right-click prerequisite collapse for the selected node.
67
- - The hosted `Related Focus` viewport now has pane-local wheel zoom, icon reset, and icon focus-history controls; these controls are intentionally scoped to the right-side Knowledge Focus pane and do not mutate the Tauri main graph runtime.
68
- - The hosted `Learning Path` Future Path surface now routes node double-click to the same pane-local Markdown reader used by Knowledge Focus, so opening concrete node text stays inside the Guided Learning pane instead of delegating to the global reader.
69
- - The current implementation uses resolved graph labels such as `water glass`, not internal atom IDs, for the knowledge graph preview surface. This behavior is pinned by strict browser verification.
70
- - Current code-vs-plan details are tracked in [Agent Knowledge Workspace Graph Preview and Review Closure (2026-06-20)](docs/solutions/agent-knowledge-workspace-graph-preview-and-review-closure-2026-06-20.md) and the [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md).
71
-
72
- ### 中文
73
-
74
- - Agent Knowledge Workspace 本轮收口现在合并了三类主线 owner:有界 DAG context assembly、确定性最终回答 release review,以及右侧 graph/source projection。
75
- - 公开回答继续收缩到经过审核的回答路径;citation、graph context、reviewer detail、provenance diagnostics 与 developer trace 进入次级 pane、artifact、trace 或 export。
76
- - 命中文件可发现性现在刻意保持克制:用户通过问号帮助入口了解“左键打开源文档并高亮依据”,而不是在 workspace 中常驻说明文案。
77
- - 命中文件 / source-focus 路径现在以右侧 pane 为权威阅读面:单击后解析候选路径、渲染 Markdown、高亮命中依据,并在受影响的右侧 pane surface 上提供关闭控件。
78
- - `关联聚焦` 已实现为右侧 pane 内托管的 Focus-mode:复用主图投影契约与共享双击决策契约,在 pane 内切换 anchor 或打开 Markdown,不移动主图 DOM,也不调用全局 reader;托管视图刻意不显示主界面的工具框、可见边线与密集灰色背景 context 点。`学习路径` 托管 Godot Future Path 的 `diffusion/core/treeLayout` 契约;当主 Path mode 当前 target 匹配时,会继承其 expansion/collapse/completion 状态包,并将 DOM 输入路由为 TreeRenderer 风格的 spine-only 信号,包括对选中主干节点的右键 prerequisite 收起。
79
- - 托管 `关联聚焦` viewport 现在具备 pane-local 滚轮缩放、图标式 reset 与图标式 focus history 控件;这些控制只作用于右侧知识聚焦 pane,不会修改 Tauri 主图运行时。
80
- - 托管 `学习路径` Future Path surface 现在把节点双击路由到与知识聚焦相同的 pane-local Markdown reader,因此打开具体节点文本会留在引导式学习 pane 内,而不是委托给全局 reader。
81
- - 当前实现使用 `water glass` 这类解析后的图标签,而不是内部 atom ID,作为知识图预览展示名称;该行为已由 strict browser verification 固定。
82
- - 当前代码 / 方案对齐详情见 [Agent 知识工作区图预览与回答审核收口(2026-06-20)](docs/solutions/agent-knowledge-workspace-graph-preview-and-review-closure-2026-06-20.md) 与 [开发进度看板](docs/diataxis/zh/explanation/development-progress-dashboard.md)。
83
-
84
- ---
85
-
86
- ## Current Mainline Architecture Status (2026-06-17)
87
-
88
- ### English
89
-
90
- - The current DAG clarification is now explicit: "graph structure" means this project's existing DAG-shaped `KnowledgeAtom` / `RelationEdge` / `TemporalEdge` substrate, not a generic graph database integration target.
91
- - The 2026-06-17 agent-knowledge slice now includes a first-class graph-conditioned context assembly step: `src/learning/graphContextAssembler.ts` selects the anchor, reorders support nodes, attaches explicit store-backed `connectionPaths`, builds bounded predecessor/successor windows, records evidence refs/diagnostics, and still preserves legacy `assistantMessage` compatibility.
92
- - Persistence is guarded for this slice: before auto-saving a rebuilt learning snapshot, `KnowledgeLearningPlatform` merges still-valid store-side relation/temporal edges into the new snapshot so read-side query/conversation flows do not erase externally enriched DAG edges before path enrichment can inspect them.
93
- - The next architecture move is no longer extracting the assembler itself; it is expanding graph-aware ranking features beyond relation-degree bonuses, hardening right-pane diagnostics, and adding graph-specific quality gates on top of the new bounded context pack.
94
- - The public answer contract is now enforced in the current composer path: `answer` / `directAnswer` stays to the targeted response, while citations, connection paths, temporal details, durable artifacts, and developer traces belong in the evidence pane or export payload unless the user explicitly asks to inspect them.
95
- - The prior DSPy / Guidance / Semantic Kernel / LangChain Core / LiteLLM review is retained as design input only. The main runtime should stay TypeScript-native and use local graph store operations instead of importing Python prompt frameworks into the Tauri/Node path.
96
- - Current code-vs-plan details are tracked in [Agent Knowledge DAG Answer Contract Plan (2026-06-17)](docs/solutions/agent-knowledge-dag-answer-contract-plan-2026-06-17.md), [Knowledge Workspace and DAG Alignment Plan (2026-06-10)](docs/solutions/knowledge-workspace-dag-alignment-2026-06-10.md), and the [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md).
97
-
98
- ### 中文
5
+ <img width="606" height="309" alt="NoteConnection banner" src="https://github.com/user-attachments/assets/92e90de5-2b1a-4398-8e8b-6e142c92b6a2" />
99
6
 
100
- - 当前已明确:这里的“图结构”指本项目现有 DAG 形态的 `KnowledgeAtom` / `RelationEdge` / `TemporalEdge` 底座,不是泛化的图数据库接入目标。
101
- - 2026-06-17 agent knowledge 切片现在已经包含一等 graph-conditioned context assembly 步骤:`src/learning/graphContextAssembler.ts` 会在回答合成前选择 anchor、重排 support node、挂接 store 支撑的显式 `connectionPaths`、构建有界 predecessor/successor window,并记录 evidence ref / diagnostics,同时保持 legacy `assistantMessage` 兼容。
102
- - 当前切片也补了持久化保护:`KnowledgeLearningPlatform` 在自动保存重建后的 learning snapshot 前,会把仍然有效的 store 侧 relation/temporal edges 合并回新快照,避免 read-side query/conversation 流程在路径增强读取前抹掉外部增强的 DAG 边。
103
- - 下一步正确的架构动作已经不再是“把 assembler 抽出来”,而是基于新的 bounded context pack 继续扩展 graph-aware ranking feature、右侧原文诊断以及图专项质量门禁。
104
- - 公开回答契约已在当前 composer 路径中强制收缩:`answer` / `directAnswer` 只保留 targeted response;citation、connection path、temporal detail、durable artifact 与 developer trace 默认进入 evidence pane 或 export payload,除非用户显式要求查看。
105
- - 先前对 DSPy / Guidance / Semantic Kernel / LangChain Core / LiteLLM 的研究继续作为设计输入,不作为运行时依赖引入。主运行时应保持 TypeScript-native,并优先使用本地图 store operations。
106
- - 当前代码 / 方案对齐详情见 [Agent Knowledge DAG Answer Contract Plan (2026-06-17)](docs/solutions/agent-knowledge-dag-answer-contract-plan-2026-06-17.md)、[Knowledge Workspace and DAG Alignment Plan (2026-06-10)](docs/solutions/knowledge-workspace-dag-alignment-2026-06-10.md) 与 [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md)。
7
+ [![npm version](https://badge.fury.io/js/noteconnection.svg)](https://www.npmjs.com/package/noteconnection)
8
+ [![License: GPL-3.0-only](https://img.shields.io/badge/license-GPL--3.0--only-blue.svg)](LICENSE)
9
+ [![Latest Release](https://img.shields.io/github/v/release/Jacobinwwey/NoteConnection?label=release)](https://github.com/Jacobinwwey/NoteConnection/releases/latest)
10
+ [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-2f6f9f)](https://jacobinwwey.github.io/NoteConnection/)
107
11
 
108
- ---
12
+ **A local-first knowledge graph, learning workspace, and RAG runtime for Markdown knowledge bases.**
109
13
 
110
- ## Current Mainline Architecture Status (2026-06-10)
14
+ [中文 README](README_zh.md) | [Quick Start](#quick-start) | [Feature Tour](#feature-tour) | [Architecture](#architecture) | [CLI](#cli-reference) | [Documentation](#documentation) | [Acknowledgments](#acknowledgments)
111
15
 
112
- - The current `main` branch has code-backed scoped retrieval, grounded conversation, durable resource/index/workspace/session/memory/export substrate, explicit export profiles, and PNG-first Godot/mobile render materialization.
113
- - The Knowledge Workspace now includes an in-pane scope switcher, a compact `/api/knowledge/conversation` status strip, grouped file-first knowledge hits, source-markdown rendering with matched-span highlighting in the focus pane, and durable workflow artifacts for `flashcard_batch` and `knowledge_run`.
114
- - Agent conversation runtime is no longer limited to one flat string: `answer`, `assistantBlocks`, `knowledgeRun`, grouped knowledge points, citations, memory actions, and trace are all present while legacy `assistantMessage` remains valid.
115
- - The current DAG-backed learning substrate is real: `KnowledgeAtom`, `RelationEdge`, `TemporalEdge`, path queries, mastery-path/session logic, and `KnowledgeQueryItem.relationPath` already exist. The remaining gap is not “having a graph,” but letting answer planning consume it through a dedicated graph-conditioned context layer.
116
- - graphdb/sqlite and ANN/external connector paths remain operational baselines, not production-closed claims. Release closure still depends on repeated soak evidence, workload thresholds, recall/latency calibration, strict rollout proof, and multi-host evidence.
117
- - `npm run verify:foundation:release-evidence` audits the latest sqlite soak and ANN release-gate reports for freshness and passing gates before host evidence is used as release context; `npm run verify:foundation:release-evidence:strict` requires repeated fresh valid history and is exposed in foundation readiness as `foundation_release_evidence_history`; `npm run verify:foundation:release-evidence:multi-host` is available for release windows that require host diversity.
118
- - The current architecture pressure remains ownership reduction: `src/server.ts`, `src/learning/KnowledgeLearningPlatform.ts`, `src/frontend/agent_workspace.js`, and `src/frontend/workspace_panes.js` remain the main simplification targets.
119
- - Current code-vs-plan details are tracked in [Knowledge Workspace and DAG Alignment Plan (2026-06-10)](docs/solutions/knowledge-workspace-dag-alignment-2026-06-10.md), [Architecture Progress Alignment and Mainline Plan (2026-06-06)](docs/solutions/architecture-progress-alignment-2026-06-06.md), and the [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md).
120
-
121
- ---
122
-
123
- <a id="key-features-en"></a>
124
-
125
- ## 🚀 Key Features
126
-
127
- ### 1. Visualization & Layout
128
-
129
- - **Structure Over Chaos**: Switch between **Force-Directed** (Physics) and **DAG** (Hierarchical) layouts. The DAG layout automatically identifies "Prerequisites" and "Next Steps" to arrange concepts in logical layers.
130
- - **Dual Rendering Engine (v0.8.7)**: Seamlessly toggle between **SVG** (for interactivity) and **Canvas** (for high-performance rendering of 10,000+ nodes).
131
- - **Interactive Focus Mode**: Click any node to isolate it and its context. Features **Freeze on Select** (v0.8.9) to prevent drift, adjustable **Vertical/Horizontal Spacing** (v0.8.8), and absolute visual consistency upon exit. Use the **Random Focus** (dice icon) to discover new connections (v1.0.0).
132
- - **Absolute Offline Support (v1.0.0)**: All library dependencies (D3, KaTeX, Marked, Mermaid, JSZip) are migrated to local assets, ensuring 100% functionality without internet.
133
- <img width="2010" height="2011" alt="image" src="https://github.com/user-attachments/assets/52785445-20bf-4ecc-847a-23863f291b6a" />
134
-
135
- ### 2. Intelligence & Inference
136
-
137
- - **Hybrid Inference Engine**: Combines **Statistical Probability** ($P(A|B)$) and **Vector Similarity** (TF-IDF) to infer hidden dependencies (e.g., "Fluorescence" implies "Photon") without external AI APIs.
138
- - **Scalable Clustering**: Aggregates thousands of nodes into high-level "Concept Bubbles" based on folder structure or tags for a cleaner overview.
139
-
140
- <img width="3723" height="1992" alt="image" src="https://github.com/user-attachments/assets/9e56e567-1742-48cf-b720-cf65a47fd317" />
141
-
142
- ### 3. Path Mode: Structured Learning (v1.2.0)
143
-
144
- - **Curriculum Generation**: Instantly transforms your graph into linear learning paths.
145
- - **Domain Learning**: Master an entire concept cluster (Topological Sort).
146
- - **Diffusion Learning**: Find the most efficient path to a specific goal (Shortest Path + Prerequisites).
147
- - **Hybrid Architecture**: Connects to a high-fidelity **Godot 4.3 Desktop Renderer** via WebSocket (`ws://localhost:9876`) for AAA-quality visualization, while maintaining full web compatibility.
148
- - **Smart Strategies**: Choose "Foundational" (Base-first) or "Core" (Importance-first) sorting to suit your learning style.
149
-
150
- ### 4. Performance & Control
151
-
152
- - **High-Capacity Parallel Processing**: Utilizes Node.js `worker_threads` (up to 12 cores) to distribute computationally intensive keyword matching.
153
- - **Simulation Controls (v0.9.0)**: Fine-tune the physics with a **Speed/Damping Slider** or use the **Freeze Layout** switch to stop the simulation for stable manual arrangement.
154
- - **Hover Lock**: Hovering over a node temporarily locks its position, allowing for stable inspection of connections.
155
-
156
- <img width="2012" height="2024" alt="image" src="https://github.com/user-attachments/assets/e5e4c42d-54a7-463c-bc43-0feb42469a12" />
157
-
158
- ---
159
-
160
- <a id="hardware-en"></a>
161
-
162
- ## 💻 Hardware & Driver Requirements
163
-
164
- ### Supported AMDGPU Architectures
165
-
166
- NoteConnection utilizes `gpu.js` for WebGL-based acceleration and plans to support local AI inference via ROCm.
167
-
168
- - **RDNA 3 (Recommended)**: Radeon RX 7000 Series (e.g., **RX 7900 XT/XTX**).
169
- - _Status_: Best performance for both WebGL and Compute.
170
- - **RDNA 2**: Radeon RX 6000 Series.
171
- - _Status_: Stable and mature support.
172
-
173
- ### Driver Configuration
174
-
175
- #### Windows (Development Environment)
176
-
177
- - **Driver**: **AMD Software: Adrenalin Edition** (23.12.1+).
178
- - Required for DirectX 12/Vulkan/OpenGL support which underpins WebGL.
179
- - **Build Tools**: To compile `headless-gl` for Node.js:
180
- - Python 3.x installed and in PATH.
181
- - Visual Studio Build Tools (C++ workload).
182
-
183
- #### Linux (Recommended for AI)
16
+ </div>
184
17
 
185
- - **Mesa (RADV/Radeonsi)**: Default open-source driver. Best for general WebGL and `gpu.js`.
186
- - **ROCm (Radeon Open Compute)**: Install **only** if planning to develop the AI inference features (future roadmap). NoteConnection's core visualization runs fine on standard Mesa drivers.
18
+ ## What It Is
187
19
 
188
- ---
20
+ > **Unlock the structure of your knowledge.**
189
21
 
190
- <a id="architecture-en"></a>
22
+ NoteConnection is a high-performance standalone system that transforms unstructured Markdown knowledge bases into directed knowledge graphs, learning paths, and grounded answers.
191
23
 
192
- ## 🏢 System Architecture
24
+ Unlike traditional network views that show a dense web of links, NoteConnection focuses on **hierarchy**, **learning paths**, **dependency structure**, and **source-grounded exploration**. It is designed for large local knowledge bases, works independently of any specific note-taking app, and now ships as a browser/server runtime, Tauri desktop app, Godot Path Mode renderer, and Tauri Android build.
193
25
 
194
- NoteConnection is built on a modular architecture designed for performance and extensibility.
26
+ <img width="2010" height="2011" alt="NoteConnection graph overview" src="https://github.com/user-attachments/assets/fa55676d-f58d-414e-943c-7a10567f88a5" />
195
27
 
196
- ### Backend (`src/backend`)
28
+ ## Homepage Guide
197
29
 
198
- - **GraphBuilder**: The core orchestrator. It manages the pipeline from file reading to graph construction.
199
- - **Worker Threads**: Heavy lifting (keyword matching, text analysis) is offloaded to a pool of worker threads (`src/backend/workers`), ensuring the main thread remains responsive.
200
- - **Inference Engines**:
201
- - `StatisticalAnalyzer`: Calculates co-occurrence matrices.
202
- - `VectorSpace`: Handles TF-IDF embedding and cosine similarity.
203
- - `HybridEngine`: Combines signals to suggest directed edges.
30
+ | Need | Start here |
31
+ |---|---|
32
+ | Install or run the app | [Quick Start](#quick-start) |
33
+ | Understand the main product surfaces | [Three Ways to Use NoteConnection](#three-ways-to-use-noteconnection) |
34
+ | See the restored detailed feature walkthrough | [Feature Tour](#feature-tour) |
35
+ | Understand the code owners and runtime flow | [Architecture](#architecture) |
36
+ | Configure a knowledge base | [Configuration](#configuration) |
37
+ | Use the command line | [CLI Reference](#cli-reference) |
38
+ | Read long-form docs | [Documentation](#documentation) |
39
+ | Check recent releases | [Release Notes](#release-notes) |
204
40
 
205
- ### Frontend (`src/frontend`)
41
+ ## Current Architecture Snapshot
206
42
 
207
- - **Dual-Engine Renderer**:
208
- - **D3.js (SVG)**: Used for high-fidelity, interactive graphs with detailed tooltips and CSS styling.
209
- - **HTML5 Canvas**: Optimized for rendering massive datasets where DOM manipulation overhead is too high.
210
- - **State Management**: `SettingsManager` persists user preferences (Physics, Visuals) to `localStorage`.
211
- - **Layout Logic**: Custom algorithms for Sugiyama-style layering and Force-directed physics.
43
+ This README is intentionally **not** the mainline architecture ledger. The previous dated architecture-status blocks were removed from the front page so the README stays useful as a product and contributor entry point.
212
44
 
213
- ### Desktop Bridge (`src/core`)
45
+ Current state in brief:
214
46
 
215
- - **PathBridge**: standard WebSocket server (Port 9876) that exposes the internal graph state to external applications (e.g., Godot Engine), enabling hybrid web/native visualization pipelines.
47
+ - **Knowledge Workspace** uses scoped retrieval, grouped knowledge hits, right-pane source focus, matched-span highlighting, conversation status visibility, and graph-aware answer composition.
48
+ - **RAG path** is TypeScript-native: retrieval, bounded graph context assembly, sufficiency/release review, citations, memory actions, and public-answer contraction stay inside the local runtime.
49
+ - **Graph substrate** is real code: `KnowledgeAtom`, `RelationEdge`, `TemporalEdge`, path queries, mastery paths, session state, and export bundles are part of the implementation.
50
+ - **Compatibility** is preserved through legacy `assistantMessage`, typed `assistantBlocks`, `app_config.toml` migration, Markdown reader fallback, and runtime-first packaging.
51
+ - **Architecture pressure** remains in large owners such as `src/server.ts`, `src/learning/KnowledgeLearningPlatform.ts`, `src/frontend/workspace_panes.js`, and `src/frontend/agent_workspace.js`. Future work should extract around real invariants, not import another broad orchestration framework.
52
+ - **Coverage-driven graph answers** now use a typed `GraphAnswerPlan` and required-claim coverage review. Anchor spans, evidenced graph neighbors, relation edges, and omissions survive into response traces, knowledge-run artifacts, and export reports; public answers are no longer governed by a 900-character or six-sentence ceiling.
53
+ - **Public evidence shaping** removes source authoring instructions, Markdown table scaffolding, and fenced renderer payloads without reducing semantic coverage. This is a content-quality boundary, not a length contraction mechanism.
54
+ - **Coverage calibration and bounded expansion** now add polarity-aware multilingual claim matching, a versioned 24-case calibration corpus, novelty-aware claim ordering, and a replayable one-step graph expansion policy restricted to explicit deep/research requests. The Grounding Inspector exposes compact plan/coverage diagnostics without leaking planning scaffolding into the public answer.
55
+ - **Graph-answer ownership is now explicit**: `graphContextAssembler.ts` selects the bounded subgraph, `graphAnswerPlan.ts` plans evidenced claims, `conversationComposer.ts` realizes them, and `answerReleaseReview.ts` enforces final grounding and coverage. Shared graph-window facts live in `graphAnswerFacts.ts`; this removes composer/reviewer policy drift without introducing another orchestration layer.
216
56
 
217
- ---
57
+ Detailed progress tracking belongs in:
218
58
 
219
- <a id="quick-start-en"></a>
59
+ - [Development Progress Dashboard](docs/diataxis/en/explanation/development-progress-dashboard.md)
60
+ - [Agent Knowledge Workspace Graph Preview and Review Closure](docs/solutions/agent-knowledge-workspace-graph-preview-and-review-closure-2026-06-20.md)
61
+ - [Knowledge Workspace and DAG Alignment Plan](docs/solutions/knowledge-workspace-dag-alignment-2026-06-10.md)
62
+ - [Coverage-driven Graph Answer Planning](docs/plans/2026-07-11-coverage-driven-graph-answer-planning.md)
220
63
 
221
- ## 📦 Quick Start
64
+ ## Quick Start
222
65
 
223
- ### Desktop System Dependencies
66
+ ### Desktop system dependencies
224
67
 
225
- | Platform | Required Dependencies |
68
+ | Platform | Required dependencies |
226
69
  |---|---|
227
70
  | **Linux** | `libwebkit2gtk-4.1-dev`, `libgtk-3-dev`, `libsoup3.0`, `libjavascriptcoregtk-4.1-0` (Ubuntu/Debian: `sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev patchelf`) |
228
- | **macOS** | No additional dependencies (system WebKit included) |
71
+ | **macOS** | No additional dependencies; system WebKit is included |
229
72
  | **Windows** | [Edge WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/) (pre-installed on Windows 11; Windows 10 may need manual install) |
230
73
 
231
74
  > **Linux Wayland users**: Godot Path Mode requires `GDK_BACKEND=x11` on pure Wayland compositors. The launcher sets this automatically when `XDG_SESSION_TYPE=wayland` is detected.
232
75
 
233
- ### Option 1: Windows Installer (Recommended)
76
+ ### Option 1: install a desktop release
234
77
 
235
- 1. Download `NoteConnection.Setup.exe` from the [Latest Releases](https://github.com/Jacobinwwey/NoteConnection/releases).
236
- 2. Run the installer.
237
- 3. Launch NoteConnection from your desktop or start menu.
78
+ Download the latest installer or package from [Releases](https://github.com/Jacobinwwey/NoteConnection/releases/latest).
238
79
 
239
- ### Option 2: Run with npx
80
+ Release assets currently include Windows installers, macOS DMG, Linux AppImage/deb, and Android APK.
240
81
 
241
- No installation required.
82
+ ### Option 2: run from npm
242
83
 
243
84
  ```bash
244
85
  npx noteconnection
245
86
  ```
246
87
 
247
- ### Option 3: Global Installation
88
+ ### Option 3: install globally
248
89
 
249
90
  ```bash
250
91
  npm install -g noteconnection
251
92
  noteconnection
252
93
  ```
253
94
 
254
- ### Option 4: Local Development
95
+ ### Option 4: develop locally
255
96
 
256
97
  ```bash
257
98
  git clone https://github.com/Jacobinwwey/NoteConnection.git
@@ -260,1112 +101,201 @@ npm install
260
101
  npm start
261
102
  ```
262
103
 
263
- - Server runs at: `http://localhost:3000`
264
-
265
- ### Option 5: Mobile Support (Android)
104
+ The development server runs at `http://localhost:3000`.
266
105
 
267
- NoteConnection supports Android via **Tauri Android** (native shell pipeline). The Capacitor APK path is **deprecated** and retained for historical reference only.
268
-
269
- #### Prerequisites
270
-
271
- - **Node.js** (LTS)
272
- - **Java JDK** (21 or higher)
273
- - **Android SDK** (Configured in `ANDROID_HOME` or via Android Studio)
274
-
275
- #### Recommended: Tauri Android Build (Native Shell)
106
+ For GPU-enabled Tauri development on Windows:
276
107
 
277
108
  ```bash
278
- # First-time setup
279
- npm run tauri:android:init
280
-
281
- # Development build
282
- npm run tauri:android:dev
283
-
284
- # Release APK/AAB
285
- npm run tauri:android:build
109
+ npm run tauri:dev:mini:gpu
286
110
  ```
287
111
 
288
- For universal APK (armeabi-v7a + arm64-v8a + x86_64):
112
+ Use that script instead of appending `--gpu` to another npm command.
289
113
 
290
- ```bash
291
- npm run tauri:android:build:universal
292
- ```
114
+ ### Option 5: Android
293
115
 
294
- #### Deprecated: Capacitor Build
116
+ NoteConnection supports Android through **Tauri Android**. The older Capacitor APK path is deprecated and retained only as historical reference.
295
117
 
296
- The Capacitor APK path (`build_apk.bat`, `npm run mobile:build:capacitor`) is deprecated as of 2026-05. The `android/` Capacitor project directory is retained for historical reference. All active Android development targets the Tauri Android pipeline.
297
- # First-time setup on the machine
298
- npm run tauri:android:init
118
+ Prerequisites:
299
119
 
300
- # Build APK/AAB through Tauri Android pipeline
301
- npm run tauri:android:build
302
- ```
303
-
304
- #### Method C: Capacitor Manual Build Steps
305
-
306
- 1. **Build Web Assets**:
307
- ```bash
308
- npm run build
309
- ```
310
- 2. **Sync to Android Platform**:
311
- ```bash
312
- npx cap sync
313
- ```
314
- 3. **Build APK**:
315
- Open the `android` directory in Android Studio and build, or use the command line:
316
- ```bash
317
- cd android
318
- ./gradlew assembleDebug
319
- ```
320
- APK will be located at: `android/app/build/outputs/apk/debug/app-debug.apk`
321
-
322
- #### Mobile Capability Boundary
323
-
324
- - Capacitor packaging path does not embed the desktop Node sidecar workflow, but native Capacitor runtime can still build graph payloads locally when Filesystem APIs are available and the dataset stays within mobile limits.
325
- - Tauri Android path provides the native-shell runtime route and uses Android-native `build_graph_runtime` when mobile-side parity with the Tauri architecture is required.
326
-
327
- ### 3. Usage Guide
328
-
329
- 1. **Select Source**: Use the dropdown in the top-left to choose a folder from `Knowledge_Base`.
330
- 2. **Load**: Click "Load". For large datasets (>200 files), parallel processing engages automatically.
331
- 3. **Explore**:
332
- - **Layout**: Toggle **DAG** for hierarchy or **Force** for clusters.
333
- - **Renderer**: Switch to **Canvas** if the graph feels sluggish.
334
- - **Focus**: Click a node to enter Focus Mode. Use the sliders to adjust spacing.
335
- - **Control**: Use the **Simulation** panel to freeze the layout or adjust speed.
336
-
337
- <a id="cli-en"></a>
338
-
339
- ## 🖥️ CLI Usage (v0.9.71)
340
-
341
- You can load a knowledge base and build the graph directly from the command line without using the UI. This is useful for automated builds or headless environments.
342
-
343
- ### Usage
120
+ - Node.js LTS
121
+ - Java JDK 21 or newer
122
+ - Android SDK configured through `ANDROID_HOME` or Android Studio
344
123
 
345
124
  ```bash
346
- npm start -- --path "<path_to_knowledge_base>" [options]
125
+ npm run tauri:android:init
126
+ npm run tauri:android:dev
127
+ npm run tauri:android:build
347
128
  ```
348
129
 
349
- ### Options
350
-
351
- | Option | Description | Default |
352
- | ----------- | -------------------------------------------------------------------- | ------------------------------ |
353
- | `--path` | Absolute path to the folder containing your Markdown files. | `Knowledge_Base` |
354
- | `--gpu` | Enable AMDGPU/WebGL acceleration for layout and vector calculations. | `true` (if hardware supported) |
355
- | `--no-gpu` | Disable GPU acceleration (Force CPU). | `false` |
356
- | `--static` | Enable Static Mode (Backend calculation only, frozen frontend). | `false` |
357
- | `--workers` | Number of worker threads to use. | `numCPUs - 1` |
130
+ For the primary Android release path, use `npm run mobile:build:release`. It targets Tauri Android and runs the slim budget and Android prerequisite gates. `npm run mobile:build:compatibility` is retained for explicitly validating the historical Capacitor plus Tauri pair; it is not the release path.
358
131
 
359
- ### Example
132
+ For a universal APK:
360
133
 
361
134
  ```bash
362
- # Basic Load
363
- npm start -- --path "C:/Users/MyName/Documents/MyNotes"
364
-
365
- # GPU Accelerated Build
366
- npm start -- --path "E:/Knowledge/ObsidianVault" --gpu
367
-
368
- # Force CPU (if GPU has issues)
369
- npm start -- --path "E:/Knowledge/ObsidianVault" --no-gpu
370
- ```
371
-
372
- **Note:** CLI runs generate unique data files (`data_cli_{kb_name}_{time}.js`) to preserve the original `data.js`. When the server starts, it will automatically serve these specific files to the frontend.
373
-
374
- ## 📂 User-Defined Knowledge Base (v1.0.0)
375
-
376
- Managing your knowledge base source is now easier than ever.
377
-
378
- - **First Run Setup**: On first launch, you will be prompted to select your `Knowledge_Base` folder.
379
- - **Persistent Config (`app_config.toml`)**: Your KB path, language, and multi-window preferences are saved in `%LOCALAPPDATA%/NoteConnection/app_config.toml` (Windows default) and remembered across restarts.
380
- - **Legacy Auto-Migration**: If a legacy `kb_config.json` exists in the same config directory, NoteConnection automatically migrates it to `app_config.toml`.
381
- - **Change Anytime**: Use the **File > Change Knowledge Base...** menu option to switch folders instantly.
382
- - **Reset**: Use **File > Reset to Default** to return to the bundled demo notes.
383
- - **Config Path Overrides**: Set `NOTE_CONNECTION_CONFIG_PATH` (full file path) or `NOTE_CONNECTION_CONFIG_DIR` (directory) to customize where `app_config.toml` is stored.
384
- - **Window Behavior Tuning**: Edit `[multi_window]` in `app_config.toml` (`single_window_mode`, `hide_tauri_when_pathmode_opens`, `restore_tauri_when_pathmode_exits`, `confirm_before_full_shutdown_from_godot`, `sync_language`).
385
- - **Reader Protocol Tuning**: Edit `[frontend_settings.reading]` to control markdown rendering runtime (`markdown_engine`, `chunk_block_size`, `prefetch_blocks`, `index_cache_ttl_sec`, `max_doc_bytes`).
386
- - **Detailed Config Guide**: See [`docs/en/app_config.toml_guide.md`](docs/en/app_config.toml_guide.md) and template [`docs/examples/app_config.template.toml`](docs/examples/app_config.template.toml).
387
-
388
- ```toml
389
- # Minimal recommended app_config.toml
390
- knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
391
- user_language = "en"
392
-
393
- [multi_window]
394
- single_window_mode = true
395
- hide_tauri_when_pathmode_opens = true
396
- restore_tauri_when_pathmode_exits = true
397
- confirm_before_full_shutdown_from_godot = true
398
- sync_language = true
399
-
400
- [frontend_settings.reading]
401
- mode = "window"
402
- markdown_engine = "auto" # "legacy" | "pulldown" | "auto"
403
- chunk_block_size = 36
404
- prefetch_blocks = 8
405
- index_cache_ttl_sec = 1800
406
- max_doc_bytes = 100663296
135
+ npm run tauri:android:build:universal
407
136
  ```
408
137
 
409
- ### Markdown Reader Protocol (v1.6.8)
410
-
411
- - **Dual-engine gray release**:
412
- - `markdown_engine = "auto"`: prefer `pulldown-cmark`, fallback to legacy on failure.
413
- - `markdown_engine = "pulldown"`: keep automatic fallback to legacy to avoid blank readers.
414
- - `markdown_engine = "legacy"`: force original parser path.
415
- - **Unified cross-window behavior**: Tauri reader and Godot reader now both consume the same sidecar markdown protocol (`index/chunk/resolve-node/resolve-wiki`).
416
- - **Large file stability**: reader no longer requires single-shot full markdown payloads and supports block-based incremental loading.
417
- - **Mermaid reliability hardening**:
418
- - Godot reader Mermaid rendering now uses `renderer = "auto"` so it can prefer frontend bridge and automatically fallback to local `resvg` when bridge render is unavailable.
419
- - Mermaid fences must start on a new line; inline `$$```mermaid` patterns can break block classification.
420
- - Use `npm run verify:markdown:mermaid:fence -- Knowledge_Base/testconcept` to catch malformed inline Mermaid fences before release.
421
- - **Local MCP web-debug baseline (Runbrowser)**:
422
- - Build locally from source: `pnpm --filter @jiweiyuan/runbrowser-server build`, `pnpm --filter @jiweiyuan/runbrowser-core build`, `pnpm --filter @jiweiyuan/runbrowser-mcp build`.
423
- - Run local MCP entrypoint: `node E:\Knowledge_project\tools\runbrowser\packages\mcp\bin.js`.
424
-
425
- ## 🏗️ Build & Deployment
426
-
427
- For developers building from source, NoteConnection now defaults to the runtime-first path:
428
-
429
- - **Electron desktop pipeline was removed on 2026-03-01 (deprecated and decommissioned).**
430
-
431
- - **Tauri Build (`npm run tauri:build`)**: Default desktop package path. Uses runtime-first assets and excludes pre-generated graph payloads.
432
- - **Tauri Mini Build (`npm run tauri:build:mini`)**: Legacy-compatible alias of the same runtime-first packaging path.
433
- - **Tauri Full Graph Build (`npm run tauri:build:full`)**: Explicit opt-in path for including generated graph assets when real files are present locally.
434
- - **Build (`npm run build`)**: Default runtime-first frontend build.
435
- - **Build Full Graph Assets (`npm run build:full`)**: Explicit opt-in frontend build for local/demo scenarios that need pre-generated graph assets.
436
- - **Godot Bootstrap** (`npm run prepare:godot:bin`): materializes the host Godot sidecar from local overrides/search paths, cache, or a pinned download URL.
437
- - **Desktop Release Godot Mirror**: release CI now seeds a project-controlled GitHub Releases mirror tag for Godot archives, then downloads mirror-first with upstream fallback.
438
- - **LFS Policy Guard** (`npm run verify:lfs:policy`): blocks new Git LFS drift under `src/frontend/` and `src-tauri/bin/` while migration still carries legacy exemptions. Future strict mode is available via `npm run verify:lfs:policy:strict`.
439
- - **Sidecar Supply Readiness** (`npm run verify:sidecar:supply`): reports whether the current desktop host is offline-ready or still network-dependent before shrinking the remaining sidecar LFS bridge.
440
- - **GPU Dev Start (`npm run tauri:dev:mini:gpu`)**: Recommended GPU-enabled Tauri development command.
441
- - **Do not use** `npm run tauri:dev:mini --gpu` because npm treats `--gpu` as config and prints warnings.
442
-
443
- ## 📚 Documentation Architecture (Diataxis + MkDocs)
444
-
445
- - Canonical long-form docs remain under `docs/en/*` and `docs/zh/*`.
446
- - Diataxis navigation pages are maintained under `docs/diataxis/<lang>/*`.
447
- - Mapping governance is versioned in `docs/diataxis-map.json`.
448
- - Run mapping validation: `npm run docs:diataxis:check`.
449
- - Run local docs site preview: `npm run docs:site:serve`.
450
- - Build static docs site: `npm run docs:site:build`.
451
- - GitHub Pages Docs Portal (project site): `https://jacobinwwey.github.io/NoteConnection/`.
452
- - Host root (for routing baseline): `https://jacobinwwey.github.io/`.
453
- - Recommended lookup entry points:
454
- - Users: `/diataxis/zh/tutorials/first-run/` or `/diataxis/en/tutorials/first-run/`
455
- - Developers: `/diataxis/en/reference/interfaces-and-runtime/` and `/diataxis/en/reference/release-and-governance/`
456
- - Maintainers assessing LFS / desktop bootstrap risk: `/en/sidecar_supply_strategy/` or `/zh/sidecar_supply_strategy/`
457
- - Maintainers comparing mirror cost / user friction / maintenance burden: `/diataxis/en/explanation/sidecar-supply-feasibility/` or `/diataxis/zh/explanation/sidecar-supply-feasibility/`
458
- - CI auto publish workflow (GitHub Pages): `.github/workflows/docs-github-pages-publish.yml`.
459
- - Manual rollback entry: run workflow dispatch and set `git_ref` to a stable tag/commit.
460
- - MkDocs base/path can be overridden by environment variables: `MKDOCS_SITE_URL`, `MKDOCS_BASE_PATH`.
461
- - CI policy gate for docs mapping and site build: `.github/workflows/docs-diataxis-site.yml`.
462
- - Docs release + rollback runbook:
463
- - English: [`docs/en/docs_release_and_rollback.md`](docs/en/docs_release_and_rollback.md)
464
- - 中文: [`docs/zh/docs_release_and_rollback.md`](docs/zh/docs_release_and_rollback.md)
465
-
466
- ## 🛠️ Hardware & Driver Requirements (AMDGPU)
467
-
468
- For optimal performance with "GPU Optimised Rendering", especially on AMD RDNA cards (like RX 7900XT):
469
-
470
- 1. **Drivers**: Ensure you have the latest **AMD Adrenalin Edition** drivers installed.
471
- 2. **Node.js**: The project uses `gpu.js` which relies on `headless-gl` for Node.js context.
472
- - On Windows, this usually works out of the box with standard build tools (`windows-build-tools`).
473
- - If you encounter `gl` errors, ensure Python and C++ compilers are available.
474
-
475
- <a id="changelog-en"></a>
476
-
477
- ## 📅 Changelog
478
-
479
- ### v1.7.0 - Startup Acceleration Closure, Multi-Platform Validation, and Learning Roadmap Foundation (2026-03-31)
480
- - **Tag Compare Snapshot (`v1.6.0..v1.7.0`)**:
481
- - `47` commits, `160` files changed, `+20,224 / -1,444` churn.
482
- - Engineering footprint concentrated in: `src/frontend/`, `scripts/`, `docs/`, `src-tauri/`, `package*.json`.
483
- - **Startup Runtime Optimization Closure (Phase 2/3/4 + v1.1 Hardening)**:
484
- - Added startup delta tick transport (`tickMode: full|delta`) with low-alpha adaptive controls (`lowAlphaDeltaEpsilonMultiplier`, `lowAlphaFullSyncEveryTicks`).
485
- - Added frame-coalesced startup tick application on main thread to reduce redundant repaint pressure near stable phase.
486
- - Hardened warm-start recovery with strict snapshot validation (fingerprint, age, node/edge consistency, position coverage threshold).
487
- - Expanded startup telemetry at `T5 stable_layout` with `tickSummary` (`fullTicks`, `deltaTicks`, `deltaRatio`, payload and frame metrics).
488
- - **Cross-Platform Startup Validation Toolchain**:
489
- - Added/extended compare + matrix + watch + simulate + cohorts + signoff automation scripts for startup KPI governance.
490
- - Introduced no-hardware engineering signoff flow (Windows real logs + simulated cohorts) while preserving release-grade requirement for real multi-device cohorts.
491
- - **Runtime Contract and Documentation Alignment**:
492
- - Synced Diataxis EN/ZH runtime references with the new startup profile fields and telemetry semantics.
493
- - Extended startup acceleration plan docs with v1.1 optimization and risk-guardrail closure details.
494
- - Added bilingual knowledge-mastery evolution roadmap docs and integrated them into Diataxis navigation and mapping.
495
- - **Version Metadata Alignment**:
496
- - Unified release metadata to `1.7.0` in `package.json`, `package-lock.json`, and `src-tauri/tauri.conf.json`.
497
-
498
- ### v1.6.7 - Docs Governance Cleanup & GitHub Pages Stabilization (2026-03-29)
499
- - Removed unrelated external community UI documentation references from the repository documentation system.
500
- - Replaced legacy external runbooks with project-owned docs operations runbooks:
501
- - `docs/en/docs_release_and_rollback.md`
502
- - `docs/zh/docs_release_and_rollback.md`
503
- - Updated Diataxis governance mapping and cross-links to use the new canonical runbook paths.
504
- - Added GitHub Pages preflight verification in docs publish workflow to surface clear warnings when Pages is not enabled.
505
- - Resolved docs portal 404 condition by enabling repository Pages with `gh-pages` branch as publish source.
506
- - Prepared formal release metadata and version alignment to `1.6.7` (npm + Tauri).
507
-
508
- ### v1.6.6 - Unified Provider Runtime & TOML Settings Consolidation (2026-03-26)
509
- - Upgraded NoteMD API calling flow to a definition-driven provider architecture inspired by recent obsidian-NotEMD and cline patterns.
510
- - Added transport-based dispatch (openai-compatible, anthropic, google, azure-openai, ollama) and provider metadata (apiKeyMode, apiTestMode, category).
511
- - Expanded built-in provider presets: Qwen, Doubao, Moonshot, GLM, MiniMax, Groq, Together, Fireworks, Requesty, OpenAI Compatible.
512
- - Unified runtime settings persistence in app_config.toml across Tauri + Godot + NoteMD:
513
- - full NoteMD settings in [notemd] + [[notemd.providers]] (with legacy [notemd.api] compatibility mirror)
514
- - Godot Path Mode settings in [path_mode] with runtime API endpoint /api/path-mode/settings
515
- - Godot settings panel migrated to runtime TOML sync path.
516
- - Hardened Rust-side TOML writes to preserve unknown sections, preventing accidental loss of [notemd] / [path_mode] when Tauri updates KB path or language.
517
- - Updated bilingual documentation and templates for v1.6.6 schema and operations.
518
- ### v1.6.5 - Documentation Portal Update (2026-03-26)
519
-
520
- - Published MkDocs documentation to GitHub Pages project site.
521
- - Added bilingual README guidance for docs lookup paths (user/tutorial and developer/reference entry points).
522
- - Standardized docs publish flow for maintainers:
523
- - `npm run docs:site:build`
524
- - `.github/workflows/docs-github-pages-publish.yml` (`workflow_dispatch` supports `git_ref` rollback)
525
- ### v1.6.0 - Unified Runtime, NoteMD Integration & Release Hardening (2026-03-23)
526
-
527
- - **Tag Compare Snapshot (`v1.3.0..v1.6.0`)**:
528
- - `107` commits, `301` files changed, `+125,957 / -10,083` churn.
529
- - File-level status: `241` added, `56` modified, `3` deleted, `1` renamed.
530
- - Largest engineering footprint: `src/`, `docs/`, `scripts/`, `path_mode/`, `src-tauri/`.
531
-
532
- - **Single-Window Runtime Orchestration**:
533
- - Implemented Tauri <-> Godot visibility handoff so only one primary window is shown at a time.
534
- - Added Godot close-confirm flow ("Return to main interface" vs "Close all windows") to prevent accidental full shutdown.
535
- - Stabilized Godot window visibility control and removed deprecated foreground APIs.
536
- - **NoteMD Embedded Experience**:
537
- - Kept NoteMD as an embedded experience (not a standalone desktop window) aligned with both Tauri and Godot flows.
538
- - Fixed non-responsive `Browse` actions in Tauri NoteMD (file/folder/save pickers now complete the IPC flow).
539
- - 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.
540
- - Moved embedded NoteMD API configuration into `app_config.toml` under `[notemd]` and `[notemd.api]`, with matching fields in the embedded NoteMD window.
541
- - Added `noteconnection notemd ...` CLI entrypoints for shared NoteMD actions.
542
- - Added user guidance that PDF files must be converted to Markdown via Mineru before import.
543
- - **Platform & Toolchain Release Readiness**:
544
- - Standardized Java policy to **JDK 21+** and verified support for **JDK 23.0.1** in Android prerequisites/build tooling.
545
- - Added Android/Tauri patching and verification scripts for prerequisite checks, sidecar validation, and strict evidence gates.
546
- - **Reliability & Security Gates**:
547
- - Expanded CI/workflow coverage for FixRisk operational readiness, mobile e2e contracts, wasm parity, SBOM, attestation, and signature/privacy checks.
548
- - Added broad contract-level regression coverage across mobile/runtime/pathbridge/storage layers.
549
- - Included pre-release CI compatibility fixes for runtime bridge invoke-contract assertions and unsigned SBOM transparency policy handling.
550
- - **Build Performance & Developer Experience**:
551
- - Added low-memory Tauri build wrappers and release-profile safeguards for constrained environments.
552
- - Added sidecar readiness preflight to skip redundant rebuilds during dev startup, reducing warm `tauri:dev:mini:gpu` startup latency.
553
-
554
- ### v1.5.58 - Godot Path UI Enhancements (2026-03-19)
555
- - **Visuals**: Added Vertical/Horizontal main spine layout toggle and premium aesthetic color schemes (Nord, Tokyo Night, etc).
556
- - **Interactions**: Upgraded hover info box with deep node interactivity (Left/Double/Right click).
557
-
558
- ### v1.5.x Migration Runtime Logs (Canonical Archive)
559
- - Full bilingual logs are centrally archived in [`export.md`](export.md).
560
- - This README keeps summary pointers in the changelog for readability.
561
- - `2026-03-03 v1.5.10`: Option A P0 Status Update (Tauri Android Native Folder/Build/Content Flow)
562
- - `2026-03-03 v1.5.5`: Migration Status Revalidation
563
- - `2026-03-03 v1.5.3`: Migration Gate Closure Update
564
- - `2026-03-02 v1.5.1`: Tauri Migration Progress Update (Desktop + Android)
565
-
566
- ### v1.4.5 - Physically-Based Bubbles & Interactive Physics (2026-03-01)
567
-
568
- - **Godot Renderer Upgrade**:
569
- - **Spectral Bubble Shader**: Introduced an advanced 81-wavelength Thin-Film Interference shader (`sp_spectral_filter`) combined with 3D noise for hyper-realistic iridescent soap bubbles.
570
- - **Interactive Physics**: Converted all static bubbles into physically simulated `RigidBody3D` entities. Bubbles now gently float, bump into each other, and orbit their targets naturally.
571
- - **Environment Cleared**: Removed the floor to allow 360-degree floating visualization without ground clipping.
572
- - **UI Enhancements**:
573
- - **Cancel Completion**: The "Mark Complete" button dynamically turns into "Cancel Completion" for already learned nodes, making curriculum management much more forgiving and interactive.
574
-
575
- ### v1.4.4 - Tauri Bridge Stabilization & Cache Workflow Hardening (2026-03-01)
576
-
577
- - **Electron -> Tauri Runtime Alignment**:
578
- - **Path Consistency**: Unified runtime path resolution so sidecar graph artifacts are read from bundled frontend assets and written to a writable runtime data directory.
579
- - **Knowledge Base Discovery**: Standardized folder listing and loading flow for `Knowledge_Base` source roots in Bridge-first mode.
580
- - **Build/Load Safety**:
581
- - **Cache Decision Flow**: Restored pre-build decision behavior (`Load Existing` vs `Regenerate`) when target cache already exists.
582
- - **Duplicate Request Suppression**: Added frontend + backend de-dup guards to prevent repeated restore/build execution on a single load action.
583
- - **PathBridge / WebSocket Stability**:
584
- - **Client Diagnostics**: Added tagged client connect/close logging (id, tag, code, reason) for precise bridge RCA.
585
- - **Godot URL Compatibility**: Fixed Godot websocket URL parsing by switching to `ws://127.0.0.1:9876/?client=godot`.
586
- - **Idle Reconnect Elimination (Tauri)**: Disabled `frontend-early` auto-connect in Tauri mode to stop background `1001` reconnect churn.
587
- - **Language/Menu Sync Robustness**:
588
- - **Idempotent Sync**: Added language sync guards in both frontend i18n and Tauri Rust command handlers to avoid repeated no-op menu updates.
589
-
590
- ### v1.4.3 - 9-Rule Tree Layout Engine (2026-02-26)
591
-
592
- - **Layout Engine Upgrade**:
593
- - **Spine & Tributaries Logic**: Replaced basic geometric node placement with a robust 9-Rule Topological Layout engine (Expansion Order, Preceding Immunity, Following Migration, Single Appearance, Cross-Tributary Isolation, Spine Always Visible, Sticky Claim, Unit Migration, Tributary Hierarchy Immunity).
594
- - **Node Ownership**: Implemented a recursive claiming system where expanding nodes naturally claim their prerequisites (tributaries), arranging them in a visually structured hierarchy.
595
- - **Frontend Enhancements**:
596
- - **Expansion Tracking**: The system now seamlessly tracks node expansion orders, ensuring precise deterministic rendering as complex prerequisite chains are unspooled.
597
- - **Sticky Claims (Configurable)**: Node ownership persists across view updates, avoiding jarring layout reorganizations during consecutive clicks.
598
- - **Godot Renderer Adaptations**:
599
- - **Expansion Badges**: Added intuitive `[+]`/`[-]` badges in the Godot desktop renderer to indicate combinable prerequisite branches visually.
600
- - **Spine Highlighting**: Core critical-path nodes ("Spine") receive an elegant glowing border to distinguish the primary learning flow from peripheral branches.
601
-
602
- ### v1.4.1 - Tree View Interaction Fixes (2026-02-01)
603
-
604
- - **Interaction Polish**:
605
- - **Long Press Navigation**: Fixed an issue where Long Press (0.6s) on a node would trigger the Context Menu instead of navigating to the node. Now correctly switches the Central Node.
606
- - **Collapse All**: Added a dedicated `[-]` button to the Learning Path header and enabled Middle Click to instantly collapse all expanded nodes.
607
- - **Right-Click Toggle**: Fixed a regression where Right-Click would not correctly toggle node expansion states.
608
- - **Lazy Loading UI**: Replaced separate `(+)/(-)` buttons with a unified, state-aware `[Count]` indicator that toggles visibility of prerequisite chains.
609
-
610
- ### v1.4.0 - Path Mode Learning UX & Tree View (2026-01-30)
611
-
612
- - **Path Mode Bug Fixes**:
613
- - **Unmark Sync Fix**: Added `unmarkComplete` and `completionSync` handlers to `PathBridge.ts`.
614
- - **UI Sync on Unmark**: Tree panel refresh + central bubble progress update after unmarking.
615
- - **Shader Syntax Fix**: Corrected `depth_draw_alpha_prepass` to `depth_prepass_alpha`.
616
- - **Path Mode Learning UI**:
617
- - **Navigation History**: Return button with dropdown for learning history.
618
- - **Edit Mode**: Toggle to enable/disable unmarking nodes on PC.
619
- - **Tree Panel**: Collapsible dependency tree with visual states.
620
- - **Progress Display**: "X of N" progress indicator on central bubble.
621
- - **Planned: Enhanced Graphical Tree View**:
622
- - SubViewport overlay with bezier curves (mind-map style).
623
- - 4 visual themes: Colorful (default), Dark, Glass, Minimal.
624
-
625
- ### v1.3.0 - Path Mode Polish & UI Refinements (2026-01-24)
626
-
627
- - **Reader Integration**:
628
- - **Seamless Access**: Double-clicking the central node in "Orbital Layout" now instantly opens the `Reader`, displaying full node content.
629
- - **Data Fetching**: Fixed a critical issue where the reader would open empty; now correctly retrieves full metadata from the global graph state.
630
- - **Visual Polish**:
631
- - **Orbital Layout**: Significantly improved node dispersion (Radius 350-950px) to reduce label overlap.
632
- - **Edge Clarity**: In Orbital mode, strictly hides edges not connected to the central node, reducing visual clutter by 90%.
633
- - **Label Visibility**: Peripheral nodes now always display labels, sized proportionally to their distance (max 16px).
634
- - **Depth of Field**: Adjusted opacity falloff to ensure distant nodes remain visible (min 0.4 opacity).
635
- - **UX Improvements**:
636
- - **Target Selection**: Increased the "Target Node" search limit from 20 to 300, ensuring users can find any node in the graph.
637
- - **Interactive Layers**: Fixed `z-index` layering issues where the Reader window was previously hidden behind the Path visualization.
638
-
639
- ### v1.2.0 - Path Mode & Desktop Renderer (2026-01-23)
640
-
641
- - **Path Mode**: Introduced a major new feature set for converting graphs into linear learning paths.
642
- - **Learning Modes**: 'Domain Learning' (Topological) and 'Diffusion Learning' (Goal-oriented).
643
- - **Visualization**: New Radial and Tree layouts powered by D3/Canvas.
644
- - **Strategies**: 'Foundational' and 'Core' sorting algorithms.
645
- - **Hybrid Architecture**:
646
- - **Godot Bridge**: Implemented `PathBridge.ts` to sync graph state with external renderers via WebSocket (Port 9876).
647
- - **Native Rendering**: Added support for Godot 4.3 to render the graph with high-fidelity Vulkan graphics (Source in `path_mode/`).
648
- - **DevOps**:
649
- - **NPM Scripts**: Added `pathmode:dev` and `pathmode:test` workflows.
650
- - **UI Stability**: Fixed critical bugs in Radial Layout visibility (`centerView`) and Exit Mode logic.
651
-
652
- ### v1.1.2 - Path Resolution & UI Stability (2026-01-23)
653
-
654
- - **Backend Protocol Fix**:
655
- - Improved `src/server.ts` to correctly handle URL query parameters (e.g., `?v=timestamp`) for static files.
656
- - Resolves issues where cache-busting URLs would return 404 on Windows.
657
- - **UI Interaction Fix**:
658
- - **Welcome Modal**: Fixed a bug in `welcome.js` where skipping the tutorial would cause the folder selection menu to become unresponsive due to `z-index` clobbering.
659
- - Guaranteed `z-index: 1000` preservation for `#source-control` across all modal dismissal paths.
660
-
661
- ### v1.1.1 - Mobile Build Automation (2026-01-22)
662
-
663
- - **Mobile DevOps**:
664
- - Introduced `build_apk.bat` for one-click Android APK generation on Windows.
665
- - Automated environment checks (Node, JDK, Android SDK) and project scaffolding.
666
- - **Documentation**: Added comprehensive guides for mobile building in README and User Manual.
667
-
668
- ### v1.1.0 - CI/CD Automation (2026-01-22)
669
-
670
- - **GitHub Actions Integration**:
671
- - Added automated npm publishing workflow triggered on releases and version tags.
672
- - Added version consistency check to prevent mismatched releases.
673
- - **DevOps**: Streamlined release process with `git tag v1.1.0 && git push --tags`.
674
-
675
- ### v1.0.1 - Maintenance & UX Refinement (2026-01-21)
676
-
677
- - **Multilingual Consolidation**:
678
- - Removed redundant hardcoded translation logic in `app.js`.
679
- - Centralized all UI strings into `I18nManager` for consistent language switching.
680
- - Fixed "Mixed Language" issue in Welcome Modal where some labels remained in English.
681
- - **Onboarding UX Fixes**:
682
- - **Tutorial Stability**: Fixed a crash in Focus Mode tutorial by exposing `enterFocusMode` correctly.
683
- - **Welcome Modal Timing**: Resolved race conditions in `source_manager.js` to ensure the modal displays accurately after data is loaded.
684
- - **Protocol & Caching**:
685
- - **Cache-Busting Handler**: Implemented a dynamic script loader in `source_manager.js` using timestamps to prevent browsers from serving stale `data.js` or `app.js`.
686
- - **Refined Protocol Handler**: Optimized `app://` protocol in `main.ts` using `net.fetch` for more robust local file serving in production.
687
-
688
- ### v1.0.0 - Production Release (2026-01-14)
689
-
690
- - **Stability & Mini Build Reliability**: Major fixes for the "Mini" build mode.
691
- - **First-Run Fix**: Resolved critical crashes when no data is present on first launch (Added `typeof` safety checks).
692
- - **Artifact Cleanup**: Build process now automatically cleans up previous data artifacts to ensure minimum installer size (~70MB).
693
- - **Worker Path Fix**: Corrected path resolution for backend workers in production builds (Resolved double-dist folder issue).
694
- - **Absolute Offline Strategy**: All external CDN dependencies migrated to local assets. The system is now 100% functional without an internet connection.
695
- - **Focus Mode Refinement**:
696
- - **Visual Restoration**: Fixed a bug where nodes retained Focus Mode sizes after exit. Now perfectly restores pre-focus radius and font-size.
697
- - **Stability**: Fixed D3 sibling selection (`getAttribute`) errors during Focus entry.
698
- - **Physics & Spacing Overhaul**:
699
- - **New Defaults**: Standard link distance increased to **250px** and collision radius to **25px**.
700
- - **Expanded Customization**: Slider ranges increased significantly (up to 600px distance / 100px collision).
701
- - **Quality of Life**: Knowledge Base "All Folders" is now automatically selected in Electron mode for a smoother start.
702
- - **Performance & Focus Overhaul**:
703
- - **O(1) Neighbor Lookup**: Adjacency caching reduces transition time from O(N\*M) to O(1).
704
- - **Batched Rendering**: UI updates synchronized via `requestAnimationFrame`.
705
- - **User-Defined Knowledge Base**: New First-Run Setup, persistent configuration, and menu controls.
706
- - **Security & CSP**: Enhanced CSP for extreme offline security and removed deprecated flags.
707
-
708
- ### v0.9.83 (2026-01-13)
709
-
710
- - **GPU Worker Integration**: Fully enabled GPU acceleration in the frontend Simulation Worker. The worker now dynamically imports `gpu-browser.min.js` and `layout_gpu.js` and respects the `gpuRendering` setting.
711
- - **Performance Fix**: Resolved an issue where "GPU Optimised Rendering" was ignored during the initialization phase, forcing CPU calculation. Large graphs now load significantly faster.
712
- - **Robustness**: Fixed a critical bug in `updateParams` where existing GPU force instances were accidentally overwritten by CPU forces when changing physics settings.
713
-
714
- ### v0.9.82 (2026-01-12)
715
-
716
- - **Worker Sync & Stability**: Introduced the Worker Handshake Protocol (`isLayoutSwitching`) to eliminate layout "bounce" and race conditions during transitions.
717
- - **Focus Mode Interaction**: Decoupled manual dragging from physics in Focus Mode, ensuring nodes stay exactly where positioned without simulation interference.
718
- - **Layout Persistence**: Added a 50% restoration safety threshold to the layout cache; automatically falls back to simulation relaxation if data is inconsistent.
719
- - **Analysis Stability**: Optimized layout logic to prevent redundant resets during panel resizing while "Freeze Layout" is active.
720
-
721
- ### v0.9.74 (2026-01-12)
722
-
723
- - **GPU Link Force**: Implemented high-performance GPU-accelerated spring forces using `gpu.js`. Supports "Gather" algorithm for efficient neighbor processing.
724
- - **Physics Robustness**: Introduced velocity clamping (MAX_VELOCITY=100) and NaN/Infinity safety guards in GPU kernels to prevent node "explosions" and disappearing nodes.
725
- - **Layout Switching Fix**: Implemented robust state preservation (`layoutCache`) for Force and DAG layouts, ensuring node positions are saved and restored without "teleportation". Fixed a critical crash in `updateLayout` and added Focus Mode support for GPU forces.
726
- - **GPU Resource Management**: Refactored `layout_gpu.js` to use a Singleton pattern for the GPU context, preventing WebGL context leaks (limit 16) when toggling settings.
727
-
728
- ### v0.9.71 (2026-01-10)
729
-
730
- - **Backend Parallel Layout**: Accelerated front-end loading by pre-calculating node positions on the backend using worker threads or GPU.
731
- - **GPU Optimised Rendering**: In the backend layout, added support for AMDGPU acceleration.
732
- - **Static Mode**: Implemented strict simulation freezing for massive graphs (>5000 nodes) to save resources.
733
- - **CLI Support**: Added full CLI argument support for automated building and loading.
734
- - **Extreme Scale Optimization**: Disabled edge rendering entirely for graphs with >10,000 nodes to prevent browser crashes.
735
-
736
- ### v0.9.70 - Frontend Initialization Fix (2026-01-09)
737
-
738
- - [x] **Critical Fix**: Fixed a race condition where the rendering loop started before UI controls were fully initialized, causing blank screens and unresponsive buttons on large datasets.
739
-
740
- ### v0.9.69 - Frontend Crash Fix (2026-01-09)
741
-
742
- - [x] **Critical Fix**: Resolved a "Maximum call stack size exceeded" crash in the frontend when loading graphs with over 100,000 edges. This fixes the "Nodes: 0" issue for massive datasets.
743
-
744
- ### v0.9.67 - Compact Mode & Canvas Fix (2026-01-08)
745
-
746
- - [x] **Compact Mode**: Added a new mode that hides edges by default to improve performance for massive graphs (>5k nodes). This mode is automatically enabled for large datasets but can be toggled in settings.
747
- - [x] **Canvas Fix**: Resolved an issue where large graphs would display a blank screen on load by forcing an initial canvas render frame.
748
- - [x] **Optimization**: Rendering loop now completely skips edge iteration in Compact Mode, significantly reducing CPU usage during idle or pan/zoom.
749
-
750
- ### v0.9.61 - Frontend Memory Optimization (2026-01-07)
751
-
752
- - [x] **Smart Rendering**: Automatically switches to **Canvas** mode by default when the graph contains more than 3000 nodes.
753
- - [x] **Performance**: Reduces browser memory footprint and improves frame rates for large datasets on initial load.
754
-
755
- ### v0.9.60 - Parallel Graph Metrics (2026-01-07)
756
-
757
- - [x] **Performance**: Parallelized the "Graph Metrics" calculation (Betweenness Centrality) using worker threads.
758
- - [x] **Scalability**: Distributed heavy Brandes Algorithm computations across multiple CPU cores, ensuring faster graph construction for large datasets.
759
-
760
- # 2026-01-07 v0.9.59 - Vector Space Memory Fix (Sparse Matrix)
761
-
762
- **Goal**: Resolve the "Heap out of memory" crash on Windows 10/11 (128GB RAM) when processing 13k+ files by replacing the dense TF-IDF matrix with a Sparse Vector implementation.
763
-
764
- - [x] **Memory Optimization**
765
- - [x] **Sparse Vectors**: Refactored `VectorSpace` to use `Uint32Array` (indices) and `Float32Array` (values) instead of standard Javascript Arrays.
766
- - [x] **Efficiency**: Reduced memory footprint for 13k files from ~10GB+ (dense) to <500MB (sparse).
767
- - [x] **Algorithm**: Optimized Cosine Similarity calculation to use sparse dot product ($O(min(N, M))$).
768
- - [x] **Config**: Increased default Node.js heap limit to 12GB (`--max-old-space-size=12288`) in `package.json` to utilize available system RAM.
769
-
770
- # 2026-01-07 v0.9.58 - Hybrid Inference Resource Reuse (Optimization)
771
-
772
- - [x] **Memory Optimization**: Implemented resource reuse logic for "Statistical Matrix" and "Vector Space" in `GraphBuilder`.
773
- - [x] **Efficiency**: Prevents redundant recalculation of heavy data structures during Hybrid Inference, eliminating memory spikes and resolving OOM crashes on large datasets.
774
- - [x] **Cleanup**: Added strict memory cleanup steps after inference tasks complete.
775
-
776
- ### v0.9.57 - Worker Memory Optimization (2026-01-07)
777
-
778
- - [x] **Stability Fix**: Resolved "Heap out of memory" crashes when processing large datasets (>13k files) by optimizing the data transfer strategy for Worker Threads.
779
- - [x] **Efficiency**: Workers now receive file paths and read content on-demand, eliminating the memory overhead of cloning large file content strings across threads.
780
-
781
- ### v0.9.56 - Hybrid Inference Memory Optimization (2026-01-05)
782
-
783
- - [x] **Memory Analysis**: Added granular performance logging to the Hybrid Inference engine, tracking heap usage every 1000 nodes to identify memory spikes on Windows.
784
- - [x] **Optimization**: Implemented aggressive memory cleanup (clearing matrices and nullifying vector space) immediately after inference completion to prevent Heap OOM.
785
-
786
- ### v0.9.55 - Heap OOM Fix & Iterative DFS (2026-01-05)
787
-
788
- - [x] **Stability Fix**: Resolved "Heap out of memory" crashes on Windows 10/11 by implementing explicit memory clearing for file content before the algorithmic phase.
789
- - [x] **Robustness**: Refactored `CycleDetector` to use an **Iterative DFS** (stack-based) approach, eliminating stack overflow risks on deep graphs.
790
- - [x] **Observability**: Split performance logging for "Algorithmic Core" into distinct "Cycle Detection" and "Topological Sort" phases for precise debugging.
791
-
792
- ### v0.9.54 - Welcome Experience (2026-01-05)
793
-
794
- - [x] **Onboarding**: Added a "Welcome" modal that appears when the graph is empty, guiding new users to select a source and load data.
795
- - [x] **UX**: Highlights the "Source Select" controls during the welcome state.
796
-
797
- ### v0.9.53 - Core API Decoupling (2026-01-05)
798
-
799
- - [x] **Architecture Refactor**: Extracted the core graph building logic into a standalone `NoteConnection` class (`src/core/NoteConnection.ts`).
800
- - [x] **Plugin Prep**: Decoupled the core API from CLI/Server-specific file operations, enabling direct integration with future Joplin/Obsidian plugins.
801
- - [x] **Documentation**: Updated User Manual with missing "Max Workers" performance setting.
802
-
803
- ### v0.9.52 - Cycle Detection Memory Optimization (2026-01-05)
804
-
805
- - [x] **Stability Fix**: Resolved a critical "Heap out of memory" crash on Windows 10/11 when building large graphs with many cycles.
806
- - [x] **Algorithm Optimization**: Updated `CycleDetector` to limit the number of detected cycles, preventing excessive memory consumption during recursion.
807
-
808
- ### v0.9.51 - Performance Logging & Crash Reporting (2026-01-03)
809
-
810
- - [x] **System Monitoring**: Implemented comprehensive performance logging for backend processes (CPU, Memory, Time).
811
- - [x] **GPU Diagnostics**: Added execution timing and memory tracking for GPU acceleration steps.
812
- - [x] **Crash Reporting**: Implemented `CrashLogger` to automatically record unhandled exceptions and worker failures to `crash.log` for debugging stability issues on Windows 11.
813
- - [x] **Optimization**: Integrated `PerformanceLogger` across the entire Graph Construction pipeline (Node Init, Edge Matching, Inference).
814
-
815
- ### v0.9.50 - GPU Acceleration (2026-01-02)
816
-
817
- - [x] **Verification**: Confirmed feasibility of using **AMD Radeon 7900XT** for graph construction acceleration via `gpu.js`.
818
- - [x] **Strategy**: Validated that Mathematical Inference (Vector Similarity) can be offloaded to GPU, while Text Processing remains optimized on CPU.
819
- - [x] **Implementation**: Added `amdgpu` module with `VectorSpaceGPU` class. Integrated into `GraphBuilder` to automatically use GPU for Cosine Similarity matrix calculations when enabled.
820
-
821
- ### v0.9.49 - Statistical Analysis Memory Optimization (2026-01-02)
822
-
823
- - [x] **Performance**: Fixed a critical "Heap out of memory" crash when processing large datasets (>10,000 files) by optimizing the Statistical Analyzer algorithm.
824
- - [x] **Efficiency**: Reduced the complexity of co-occurrence matrix calculation by ~30x using a sparse, file-centric approach.
825
-
826
- ### v0.9.49 - UI Controls for Parallel Processing (2026-01-02)
827
-
828
- - [x] **Settings UI**: In the Settings Modal, added a "Performance" section with a slider and number input to control "Max Workers".
829
- - [x] **API Integration**: The "Load" button now sends the user-defined worker limit to the backend build process.
830
- - [x] **Persistence**: The worker setting is saved in `localStorage` alongside other preferences.
831
-
832
- ### v0.9.48 - Parallel Processing Optimization (2026-01-02)
833
-
834
- - [x] **Configurable Workers**: Added 'maxWorkers' configuration to allow utilizing more CPU cores for graph building and statistical inference. Removed the hardcoded limit of 12 workers.
835
-
836
- ### v0.9.47 - Focus Mode Interaction & Layout Fixes (2026-01-02)
837
-
838
- - [x] **Interaction Logic**: Fixed an issue where double-clicking a node to enter Focus Mode would accidentally trigger a zoom-in event. Added event propagation control to prevent this (SVG & Canvas).
839
- - [x] **Vertical Layout Spacing**: Increased the horizontal offset of node labels in Vertical Focus Mode to prevent text from overlapping with nodes, improving readability (SVG & Canvas).
840
-
841
- ### v0.9.46 - Focus Mode UI Cleanup & Canvas Edge Fix (2025-12-26)
842
-
843
- - [x] **Immersive Focus**: The main control panel and source selection bar are now completely hidden during Focus Mode for a distraction-free experience.
844
- - [x] **Canvas Polish**: Removed edge rendering in Canvas Focus Mode to reduce visual noise.
845
-
846
- ### v0.9.45 - Canvas Interactivity & Cleanup (2025-12-26)
847
-
848
- - [x] **Canvas Interactive**: Canvas mode now supports Hover (Highlight), Single Click (Stats), and Double Click (Focus Mode) interactions, bringing it to feature parity with SVG.
849
- - [x] **Visual Fixes**: Fixed an issue where nodes in Canvas mode were rendered too large; they now respect "Size By" settings.
850
- - [x] **Cleanup**: Removed the deprecated "View Mode" (Clusters) feature.
851
-
852
- ### v0.9.44 - Independent Focus Mode Spacing (2025-12-26)
853
-
854
- - [x] **Smart Spacing**: "Layer-Space" and "Node-Space" settings are now saved independently for "Horizontal" and "Vertical" focus layouts.
855
- - [x] **Optimized Defaults**: Reduced default Horizontal Layer-Space by 50% and Vertical Node-Space by 75% for tighter, more readable layouts.
856
-
857
- ### v0.9.43 - Context-Aware Settings UI (2025-12-26)
858
-
859
- - [x] **Dynamic Labels**: The "Repulsion Strength" label in the settings now dynamically changes between "Repulsion (Force)" and "Repulsion (DAG)" to clearly indicate which layout configuration is being modified.
860
-
861
- ### v0.9.42 - Distinct Repulsion Settings (2025-12-26)
862
-
863
- - [x] **Mode-Specific Physics**: "Repulsion Strength" is now configured independently for "Force" and "DAG" modes.
864
- - [x] **Smart Defaults**: Set default repulsion to **-550** for Force layout (clusters) and **-850** for DAG layout (hierarchy) to optimize initial visual separation.
865
- - [x] **Context-Aware Settings**: The Settings Modal automatically shows the repulsion value for the current layout.
866
-
867
- ### v0.9.41 - Settings Modal Simulation Freeze (2025-12-26)
868
-
869
- - [x] **Resource Saving**: The simulation now automatically pauses when the "Visualization Settings" modal is opened, reducing CPU usage during configuration. It resumes upon closing unless "Freeze Layout" is globally enabled.
870
-
871
- ### v0.9.40 - Freeze Layout Priority Fix (Settings Modal) (2025-12-26)
872
-
873
- - [x] **Settings Isolation**: Adjusting parameters in the "Visualization Settings" modal (e.g., Repulsion, Opacity) no longer triggers a simulation restart if the layout is frozen. Visual changes apply immediately, while physics updates await unfreezing.
874
-
875
- ### v0.9.39 - Layout Switch Relaxation & Freeze Logic (2025-12-26)
876
-
877
- - [x] **Consistent Transition**: Switching layouts now triggers the same "Rapid Relaxation" (0.2 damping for 2s) as the initial load, ensuring nodes arrange themselves quickly.
878
- - [x] **Smart Freeze**: If "Freeze Layout" is active during a switch, the simulation runs for the 2-second relaxation period to establish the new structure before automatically freezing.
879
-
880
- ### v0.9.38 - Quick Start Guide HTML Rendering Fix (2025-12-26)
881
-
882
- - [x] **Rich Text Support**: Fixed an issue where HTML tags (e.g., bold text, line breaks) in the localized UI were displayed as raw text. The system now correctly renders HTML formatting in translations.
883
-
884
- ### v0.9.37 - Rapid Relaxation Strategy (2025-12-26)
885
-
886
- - [x] **Smart Damping**: The simulation now starts with low friction (0.2) for 2 seconds to allow rapid untangling of nodes ("relaxation"), then automatically increases to high friction (0.95) for stability.
887
-
888
- ### v0.9.36 - Freeze Layout Priority Fix (2025-12-26)
889
-
890
- - [x] **Strict Freeze**: If "Freeze Layout" is active, changing "Degree Basis" or "Size By" settings no longer wakes up the simulation. Visuals update (node sizes change) while positions remain strictly locked.
891
-
892
- ### v0.9.35 - Viewport Culling Relaxation (2025-12-26)
893
-
894
- - [x] **Smoother Culling**: Increased the off-screen "active" buffer to 800px (visual), preventing nodes near the edge from freezing abruptly during panning.
895
- - [x] **Extended Zoom**: Lowered the global simulation freeze threshold from 0.4x to 0.1x, allowing physics to continue running even when significantly zoomed out.
896
-
897
- ### v0.9.34 - Global Layout Update Fix (2025-12-26)
898
-
899
- - [x] **Layout Transition Logic**: Implemented a global unfreeze mechanism during layout switching.
900
- - [x] **Override Culling**: Switching layouts (e.g., Force to DAG) now forcefully clears viewport culling locks (`isCulled`, `fx`, `fy`), ensuring all nodes, including off-screen ones, correctly participate in the new layout arrangement.
901
-
902
- ### v0.9.33 - Layout State Caching (Instant Switch) (2025-12-26)
903
-
904
- - [x] **Template States**: Implemented independent state caching for "Force" and "DAG" layouts.
905
- - [x] **Instant Switch**: Switching layouts now saves the current state and restores the target state instantly without recalculation or visual movement, preserving the exact arrangement of each view.
906
-
907
- ### v0.9.32 - High Damping & Render Optimization (2025-12-26)
908
-
909
- - [x] **Damping**: Increased default friction to 0.92 for faster settling.
910
- - [x] **Render Culling**: DOM updates are skipped for off-screen frozen nodes.
911
-
912
- ### v0.9.31 - Simulation Optimization (Viewport Culling) (2025-12-26)
913
-
914
- - [x] **Performance**: Implemented smart viewport culling to reduce simulation load.
915
- - [x] **Full View Freeze**: Automatically freezes the simulation when zoomed out (< 0.4x) to view the entire graph.
916
- - [x] **Off-screen Freezing**: When zoomed in, only nodes within the visible viewport (plus a buffer) are simulated; off-screen nodes are frozen.
917
-
918
- ### v0.9.30 - Focus Mode Layout Isolation (2025-12-26)
919
-
920
- - [x] **Position Consistency**: Implemented coordinate backup/restore logic (`x`, `y`, `fx`, `fy`) for Focus Mode.
921
- - [x] **Behavior**: Exiting Focus Mode now reverts the graph layout to its _exact_ state prior to entry, discarding any temporary arrangements or drags made during the focused session.
922
- - [x] **UX**: Fulfills the requirement that Focus Mode should have zero impact on the main interface's layout structure.
923
-
924
- ### v0.9.29 - Freeze Layout Persistence (2025-12-26)
925
-
926
- - [x] **Bug Fix**: Resolved an issue where opening the Analysis Panel or resizing the window would override the "Freeze Layout" state, causing unwanted node movement.
927
- - [x] **Robustness**: The physics simulation now strictly respects the frozen state during layout changes, ensuring nodes remain stationary as expected.
928
-
929
- ### v0.9.27 - Freeze Layout Priority Fix (2025-12-26)
930
-
931
- - [x] **Logic Correction**: Resolved a conflict where "Exit Focus Mode" would unconditionally restart the physics simulation, overriding the "Freeze Layout" state.
932
- - [x] **Priority Enforcement**: If "Freeze Layout" is checked, exiting Focus Mode now stops the simulation and forces a static render update, ensuring nodes remain strictly inactive as requested.
933
-
934
- ### v0.9.26 - UX Enhancements & Quick Start (2025-12-26)
935
-
936
- - [x] **Freeze Layout Quick Button**: Added a dedicated freeze button (❄️) to the main interface for instant access, improving mobile usability.
937
- - [x] **Sync**: State is synchronized with the simulation panel checkbox.
938
- - [x] **Visuals**: Button turns red when frozen.
939
- - [x] **Quick Start Manual**: Implemented a "Quick Start Guide" modal for new users.
940
- - [x] **Content**: Covers Loading, Navigation, Focus Mode, and Controls.
941
- - [x] **Onboarding**: Automatically shows on first visit (unless "Don't show again" is checked).
942
- - [x] **Access**: Accessible anytime via the new "Help" (❓) button.
943
- - [x] **Localization**: Fully localized new UI elements in English and Chinese.
944
-
945
- ### v0.9.25 - Freeze Layout Optimization (2025-12-25)
946
-
947
- - [x] **Resource Optimization**: In the main interface (SVG Mode), enabling "Freeze Layout" now completely disables node dragging in addition to stopping the simulation.
948
- - [x] **Logic**: Prevents the physics simulation from restarting (waking up) due to drag events, ensuring maximum CPU/Memory savings.
949
- - [x] **Focus Mode Preservation**: Dragging and manual positioning capabilities remain fully active in Focus Mode, unaffected by the global freeze setting.
950
-
951
- ### v0.9.24 - Focus Mode Memory Optimization (2025-12-25)
952
-
953
- - [x] **Simulation Optimization**: Restricted physics simulation during Focus Mode to only active nodes (focus center + neighbors).
954
- - [x] **Resource Saving**: Background nodes are frozen (removed from simulation loop), significantly reducing CPU/Memory usage while maintaining their exact visual state.
955
- - [x] **Seamless Restoration**: Background nodes are instantly restored to their original positions upon exiting Focus Mode.
956
-
957
- ### v0.9.23 - Default Settings Adjustment (2025-12-25)
958
-
959
- - [x] **Reading Window**: Set default font size (zoom level) to minimum (0.5x) for compact reading.
960
- - [x] **Simulation Physics**: Increased default Damping (velocityDecay) from 0.4 to 0.6 for more stable graph movement.
961
-
962
- ### v0.9.22 - Mobile Popup Adaptation (2025-12-25)
963
-
964
- - [x] **Touch Interaction**: Added support for dragging the statistics popup on mobile devices by holding the title bar.
965
- - [x] **Pinch-to-Zoom**: Implemented two-finger pinch gesture to resize/scale the popup content on touch screens.
966
- - [x] **UX Polish**: Prevented page scrolling during popup interactions for a smoother experience.
967
-
968
- ### v0.9.21 - Strict Edge Visibility & Optimization (2025-12-25)
969
-
970
- - [x] **Strict Edge Visibility**: Enforced rule where edges are completely hidden (opacity 0) by default in SVG mode, matching Canvas mode behavior.
971
- - [x] **Performance Optimization**: Reduced rendering overhead by ensuring relationship lines are calculated and drawn _only_ during interaction (Hover/Click/Focus), complying with strict visibility requirements.
972
-
973
- ### v0.9.20 - Selection State Auto-Clear on Focus Entry (2025-12-24)
974
-
975
- - [x] **Clean Focus Transition**: When double-clicking a node to enter Focus Mode, any existing selection or highlight state is now automatically cleared, providing a clean and uncluttered focused view.
976
- - [x] **Auto-Hide Popup**: The statistics popup is automatically hidden when entering Focus Mode, preventing visual conflicts.
977
- - [x] **Enhanced UX**: Ensures users always start with a pristine focused context without residual artifacts from previous node selections.
978
-
979
- ### v0.9.19 - Focus Mode & Popup Enhancements (2025-12-24)
138
+ ## Three Ways to Use NoteConnection
980
139
 
981
- - [x] **Focus Mode Re-entry**: Fixed issue where double-clicking a related node while in focus mode wouldn't refresh properly. Now seamlessly switches focus between connected nodes.
982
- - [x] **Draggable Popup**: Node statistics popup can now be dragged by its header to any screen position for better workspace organization.
983
- - [x] **Zoomable Popup**: Added zoom controls (+/−/⟲) to scale popup content from 0.5x to 2.0x for improved readability.
984
- - [x] **Resizable Popup**: Enabled browser-native resize handle for manual popup size adjustment.
985
- - [x] **State Management**: Improved node visibility flag reset to prevent accumulation issues when switching focus contexts.
140
+ ### 1. Knowledge Graph Workspace
986
141
 
987
- ### v0.9.18 - Node Highlighting Refactor (2025-12-24)
142
+ Load a Markdown folder, build a graph, switch between force-directed and DAG views, inspect focus neighborhoods, and open matching source documents.
988
143
 
989
- - [x] **Modular Architecture**: Created dedicated `NodeHighlightManager` class for clean separation of highlighting logic.
990
- - [x] **Unified Interface**: Single API for both PC (hover) and mobile (click) interactions.
991
- - [x] **State Management**: Proper tracking of highlight/frozen states with focus mode awareness.
992
- - [x] **Enhanced Rendering**: Consistent visual behavior across SVG and Canvas modes.
993
- - [x] **Bilingual Documentation**: Comprehensive Chinese/English comments throughout the codebase.
994
- - [x] **Robust Integration**: Full compatibility with existing focus mode, analysis panel, and statistics popup features.
144
+ Basic workflow:
995
145
 
996
- ### v0.9.17 - SVG Visual Completeness
146
+ 1. Choose a folder from `Knowledge_Base` or configure your own vault path.
147
+ 2. Click **Load**.
148
+ 3. Use DAG layout for hierarchy, force-directed layout for clusters, and Canvas for large graphs.
149
+ 4. Click a node to enter Focus Mode and inspect its context.
997
150
 
998
- - [x] **Colored Arrows**: SVG edges now use Red and Blue arrowheads when highlighted, ensuring the entire connection is color-coded.
151
+ ### 2. Knowledge Workspace RAG
999
152
 
1000
- ### v0.9.16 - Interaction Completeness
153
+ Ask scoped questions against the current knowledge base. The answer path uses grouped knowledge points, citations, graph context, sufficiency checks, and release review while keeping the public response to one user-facing answer.
1001
154
 
1002
- - [x] **Full Context**: Clicking or hovering a node now reveals **all** connections (In & Out) regardless of the active filter mode.
1003
- - [x] **Canvas Polish**: Added bold styling for highlighted edges in the Canvas renderer.
155
+ The current implementation is designed around **RSE-style evidence shaping** and **document augmentation**: matched nodes are not treated as isolated snippets; they can be enriched by bounded neighboring context, source spans, graph paths, and review gates before an answer is released.
1004
156
 
1005
- ### v0.9.14 - Visual & Data Fixes
157
+ ### 3. Path Mode and Guided Learning
1006
158
 
1007
- - [x] **Edge Highlighting**: Fixed an issue where edge colors (Red/Blue) and bold styling were not applying correctly in SVG mode.
1008
- - [x] **Data Deduplication**: Ensured neighbor lists in the Statistics Popup do not contain duplicate entries.
159
+ Generate structured learning paths from graph topology. Path Mode can run through the web UI and through the Godot desktop renderer via `PathBridge` on `ws://localhost:9876`.
1009
160
 
1010
- ### v0.9.13 - Focus Mode Isolation
161
+ ## Why A Knowledge Graph?
1011
162
 
1012
- - [x] **Interaction Constraint**: Ensured that the floating statistics popup and associated highlighting are strictly disabled when Focus Mode is active, preventing context conflict.
163
+ Plain keyword search retrieves documents. NoteConnection tries to expose structure:
1013
164
 
1014
- ### v0.9.12 - Independent Statistics Popup
165
+ - prerequisite and successor relationships;
166
+ - relation paths between concepts;
167
+ - temporal and scoped evidence;
168
+ - focus neighborhoods around a selected node;
169
+ - learning routes reusable by the UI and agent workflows.
1015
170
 
1016
- - [x] **Node Statistics**: Implemented a separate floating window for node details (In/Out Degree) to decouple it from the main Degree Analysis panel.
1017
- - [x] **Visualization**: In-degree and Out-degree relationships are clearly distinguished with Red/Blue indicators in the popup.
171
+ This makes the graph useful both for visual exploration and for grounded answer construction.
1018
172
 
1019
- ### v0.9.10 - Interaction Refinement (Click-to-Freeze)
173
+ ## Feature Tour
1020
174
 
1021
- - [x] **Inspection**: Clicking a node now freezes the entire simulation for stable inspection of connections.
1022
- - [x] **Resume**: Clicking the background resumes the simulation (if not manually frozen).
175
+ ### 1. Visualization and layout
1023
176
 
1024
- ### v0.9.9 - Mobile Analysis Panel Polish
177
+ - **Structure over chaos**: Switch between **Force-Directed** physics and **DAG** hierarchical layouts. The DAG layout identifies prerequisites and next steps so concepts are arranged in logical layers.
178
+ - **Dual rendering engine**: Switch between **SVG** for high-fidelity interaction and **Canvas** for large graphs with 10,000+ nodes.
179
+ - **Interactive Focus Mode**: Click a node to isolate it and its context. Focus Mode supports freeze-on-select behavior, adjustable vertical/horizontal spacing, stable exit behavior, and random focus discovery.
180
+ - **Offline-first assets**: D3, KaTeX, Marked, Mermaid, JSZip, and related frontend libraries are served from local assets so the core graph reader remains usable without internet access.
1025
181
 
1026
- - [x] **Mobile Adaptation**: Implemented slide gestures (up/down) to resize the analysis panel, full-screen drag snap, and drag handle.
1027
- - [x] **Interaction**: Verified node click sync between analysis panel and graph.
182
+ <img width="2010" height="2011" alt="Focus and layout example" src="https://github.com/user-attachments/assets/52785445-20bf-4ecc-847a-23863f291b6a" />
1028
183
 
1029
- ### v0.9.8 - Analysis Interaction Refinement
184
+ ### 2. Intelligence and inference
1030
185
 
1031
- - [x] **Graph Sync**: Clicking table rows now highlights nodes in the graph.
1032
- - [x] **Mobile UX**: Fixed mobile scrolling in Analysis Panel.
186
+ - **Hybrid inference engine**: Combines statistical probability (`P(A|B)`) and vector similarity (TF-IDF) to infer hidden dependencies without requiring external AI APIs.
187
+ - **Scalable clustering**: Aggregates thousands of nodes into high-level concept bubbles based on folder structure or tags.
188
+ - **Graph-aware retrieval**: Knowledge Workspace ranking can use local hybrid signals, vector signals, bounded graph distance, path confidence, temporal invalidity, and relation intent.
1033
189
 
1034
- ### v0.9.7 - Focus Mode Interaction Fix
190
+ <img width="3723" height="1992" alt="Concept cluster overview" src="https://github.com/user-attachments/assets/9e56e567-1742-48cf-b720-cf65a47fd317" />
1035
191
 
1036
- - [x] **Focus Mode**: Fixed a bug where changing the layout type did not trigger an immediate refresh.
192
+ ### 3. Path Mode: structured learning
1037
193
 
1038
- ### v0.9.6 - Analysis & Visuals Polish
194
+ - **Curriculum generation**: Transform a graph into a linear learning path.
195
+ - **Domain learning**: Master an entire concept cluster through topological ordering.
196
+ - **Diffusion learning**: Find an efficient path toward a specific target using shortest-path and prerequisite context.
197
+ - **Hybrid rendering**: Connect the TypeScript graph runtime to a Godot 4.3 desktop renderer through WebSocket while retaining web compatibility.
198
+ - **Learning strategies**: Choose foundational/base-first or core/importance-first sorting based on learning style.
1039
199
 
1040
- - [x] **Analysis Panel**: Added "Full Screen" toggle and "Pinch-to-Zoom" for better mobile readability.
1041
- - [x] **Visuals**: Fixed Mermaid Zoom text styling; Added background click to clear highlights.
200
+ ### 4. Performance and control
1042
201
 
1043
- ### v0.9.5 - Refined Mobile Experience & Focus Semantics
202
+ - **Parallel processing**: Uses Node.js `worker_threads` to distribute keyword matching and graph-related heavy work.
203
+ - **Simulation controls**: Speed/damping sliders and freeze-layout controls keep large graph views inspectable.
204
+ - **Hover lock**: Hovering over a node temporarily locks its position so connections can be inspected without drift.
1044
205
 
1045
- - [x] **Focus Mode**: Added "Hierarchical (Left-Right)" layout and semantic labels ("Helping to understand" / "Further exploration").
1046
- - [x] **Analysis Panel**: Optimized for mobile (scrollable) and added click-to-highlight interaction with the main graph.
1047
- - [x] **Visuals**: Enhanced Mermaid diagram text visibility for light backgrounds; Fixed Focus Mode centering.
206
+ ### 5. NoteMD AI Document Workbench
1048
207
 
1049
- ### v0.9.2 - Mobile UI Optimization
208
+ - **Integrated NoteMD module**: `src/notemd/*` provides an Obsidian-decoupled processing stack: LLM provider abstraction, prompt manager, batch/file processors, translation, Mermaid/formula fixers, and duplicate detection.
209
+ - **One-Click Extract workflow**: The embedded NoteMD window can chain concept extraction, title-based batch generation, and batch Mermaid repair. Generated files land in a KB subfolder named after the source file.
210
+ - **TOML-backed API profile**: Embedded NoteMD reads and writes API settings through `app_config.toml` under `[notemd]` and `[notemd.api]`.
211
+ - **CLI compatibility**: Core workflows are available through `noteconnection notemd ...`, including `settings show`, `settings set-api`, `one-click-extract`, `batch-generate`, `batch-mermaid-fix`, and `fix-mermaid`.
212
+ - **API surface**: `/api/notemd/*` covers settings, file/folder processing, workflow orchestration, translation, content generation, concept extraction, duplicate checks, and cancellation.
213
+ - **Desktop and bridge access**: Tauri menu/IPC and bridge routing open NoteMD from web/Tauri/Godot-connected workflows.
214
+ - **Safety defaults**: File operations are constrained by KB-root sandbox checks, with SSE progress and cancellation support for long-running work.
1050
215
 
1051
- - [x] **Responsive Controls**: Main panel collapses on mobile; Focus UI moved to bottom.
1052
- - [x] **Touch Zoom**: Added pinch-to-zoom support in the Reading Window.
216
+ <img width="2012" height="2024" alt="Controls and NoteMD workspace" src="https://github.com/user-attachments/assets/e5e4c42d-54a7-463c-bc43-0feb42469a12" />
1053
217
 
1054
- ### v0.9.0 - Precise Control & Stability (2025-12-23)
218
+ ## Architecture
1055
219
 
1056
- - [x] **Hover Lock**: Hovering over a node locks its position to prevent inspection drift.
1057
- - [x] **Simulation Controls**: Added **Freeze Layout** checkbox and **Speed/Damping** slider.
1058
-
1059
- ### v0.8.9 - Stability Improvements
1060
-
1061
- - [x] **Freeze on Select**: Nodes in Focus Mode retain their position after interaction.
1062
-
1063
- ### v0.8.8 - Scalability Defaults
1064
-
1065
- - [x] **Clutter Reduction**: Edges and orphans hidden by default.
1066
- - [x] **Horizontal Spacing**: New slider for horizontal node separation in Focus Mode.
1067
-
1068
- ### v0.8.7 - Rendering Engine
1069
-
1070
- - [x] **Canvas Renderer**: Added HTML5 Canvas support for high performance.
1071
- - [x] **Worker Scaling**: Increased thread limit to 12.
1072
-
1073
- ---
1074
-
1075
- ---
1076
-
1077
-
1078
- ## 中文文档
1079
-
1080
-
1081
- # 2026-04-07 v1.7.0
1082
- # NoteConnection: 层级知识图谱可视化系统
1083
-
1084
- <img width="606" height="309" alt="banner" src="https://github.com/user-attachments/assets/92e90de5-2b1a-4398-8e8b-6e142c92b6a2" />
1085
-
1086
- ---
1087
-
1088
- ---
1089
- > **解锁你知识库的深层结构。**
1090
-
1091
- **NoteConnection** 是一个高性能的独立可视化系统,旨在将非结构化的 Markdown 知识库转化为**有向无环图 (DAG)**。
1092
-
1093
- 与展示杂乱链接网的传统“网络”视图不同,NoteConnection 揭示了隐藏在笔记中的**层级关系**、**学习路径**和**依赖结构**。它专为可扩展性而设计,能够轻松处理数万个节点,并且完全独立于任何特定的笔记应用程序运行。
1094
-
1095
- <img width="2784" height="2034" alt="image" src="https://github.com/user-attachments/assets/0ea42609-4296-42ea-978d-c6cb7d448068" />
1096
- <img width="3543" height="2159" alt="image" src="https://github.com/user-attachments/assets/0b2d80f5-ec8c-4ac1-9607-b925d4ab5f82" />
1097
-
1098
- ---
1099
-
1100
- ## 当前主线架构状态(2026-06-10)
1101
-
1102
- - 当前 `main` 已具备代码支撑的 scoped retrieval、grounded conversation、持久化 resource/index/workspace/session/memory/export 底座、显式 export profiles,以及 Godot/mobile PNG-first 渲染物化边界。
1103
- - 知识工作区除了工作区内 scope 切换器、conversation API 状态条、按文件优先的 grouped knowledge hit 与 focus pane 中的 matched-span 高亮之外,还已经具备 durable workflow artifact:`flashcard_batch` 与 `knowledge_run`。
1104
- - agent conversation 运行时已经不再只是单一回答字符串:`answer`、`assistantBlocks`、`knowledgeRun`、按文档聚合的 `knowledgePoints`、citations、memory actions 与 trace 已进入当前兼容性表面,同时保留 legacy `assistantMessage`。
1105
- - 现有 DAG 学习底座是真实存在的:`KnowledgeAtom`、`RelationEdge`、`TemporalEdge`、path query、mastery-path/session 逻辑以及 `KnowledgeQueryItem.relationPath` 都已落地。真正剩余的缺口不是“有没有图”,而是“回答规划层还没有 dedicated graph-conditioned context layer”。
1106
- - graphdb/sqlite 与 ANN/external connector 仍是 operational baseline。生产闭环仍需要多轮 soak 证据、工作负载阈值、recall/latency 校准、strict rollout proof 与多宿主证据。
1107
- - 当前 release-evidence 审计面已由 `verify:foundation:release-evidence`、`verify:foundation:release-evidence:strict` 与 `verify:foundation:release-evidence:multi-host` 统一。
1108
- - 下一阶段架构工作仍是缩减 `src/server.ts`、`src/learning/KnowledgeLearningPlatform.ts`、`src/frontend/agent_workspace.js` 与 `src/frontend/workspace_panes.js` 的所有权压力。
1109
- - 当前代码 / 方案详细对齐请查看 [知识工作区与 DAG 对齐推进方案(2026-06-10)](docs/solutions/knowledge-workspace-dag-alignment-2026-06-10.md)、[架构推进对齐与主线推进方案(2026-06-06)](docs/solutions/architecture-progress-alignment-2026-06-06.md) 与 [开发进度看板](docs/diataxis/zh/explanation/development-progress-dashboard.md)。
1110
-
1111
- ---
1112
-
1113
- <a id="key-features-zh"></a>
1114
-
1115
- ## 🚀 核心特性
1116
-
1117
- ### 1. 可视化与布局
1118
-
1119
- - **结构优于混沌**: 在 **力导向 (Force-Directed)** 和 **DAG (层级)** 布局之间切换。DAG 布局自动识别“先决条件”和“后续步骤”,将概念按逻辑分层排列。
1120
- - **双渲染引擎 (v0.8.7)**: 无缝切换 **SVG** (用于交互) 和 **Canvas** (用于 10,000+ 节点的高性能渲染)。
1121
- - **交互式专注模式**: 点击任意节点以隔离它及其上下文。包含 **选中冻结** (v0.8.9) 以防止漂移,可调节的 **垂直/水平间距** (v0.8.8),以及退出后完美的视觉状态恢复 (v1.0.0)。
1122
- - **完全离线化支持 (v1.0.0)**: 所有关键库依赖(D3, KaTeX, Marked, Mermaid 等)均已本地化,确保 100% 离线可用性。
1123
-
1124
- <img width="3404" height="2028" alt="image" src="https://github.com/user-attachments/assets/39ea71da-be14-4fdc-9fec-9f33cab92e1b" />
1125
-
1126
- ### 2. 智能与推断
1127
-
1128
- - **混合推断引擎**: 结合 **统计概率** ($P(A|B)$) 和 **向量相似度** (TF-IDF) 推断隐藏的依赖关系(例如,“荧光”隐含“光子”),无需外部 AI API。
1129
- - **可扩展聚类**: 基于文件夹结构或标签,将数千个节点聚合为高级“概念气泡”,提供清晰的概览。
1130
-
1131
- <img width="3723" height="2007" alt="image" src="https://github.com/user-attachments/assets/10978984-3e2d-4ab6-8b44-342d4f3c3800" />
1132
-
1133
- ### 3. Path Mode (路径模式): 结构化学习 (v1.2.0)
1134
-
1135
- - **课程生成**: 将复杂的网状图瞬间转化为线性的学习路径。
1136
- - **领域学习 (Domain Learning)**: 掌握整个概念集群(拓扑排序)。
1137
- - **扩散学习 (Diffusion Learning)**: 寻找通往特定目标的最优路径(最短路径 + 前置依赖)。
1138
- - **混合架构**: 通过 WebSocket (`ws://localhost:9876`) 连接到高保真 **Godot 4.3 桌面渲染器**,实现 3A 级的可视化效果,同时保持完全的 Web 兼容性。
1139
- - **智能策略**: 支持 "基础优先" (Foundational) 或 "核心优先" (Core) 排序,适应不同的学习风格。
1140
-
1141
- ### 4. 性能与控制 (Performance & Control)
1142
-
1143
- - **高容量并行处理**: 利用 Node.js `worker_threads` (最多 12 核) 分发计算密集的关键词匹配任务。
1144
- - **模拟控制 (v0.9.0)**: 通过 **速度/阻尼滑块** 微调物理效果,或使用 **冻结布局** 开关停止模拟以进行稳定的手动排列。
1145
- - **悬停锁定**: 悬停在节点上时暂时锁定其位置,以便稳定地检查连接。
1146
-
1147
- <img width="2012" height="2024" alt="image" src="https://github.com/user-attachments/assets/bf6e7508-7e42-46cb-9a3e-b92be063ad3d" />
1148
-
1149
- ---
1150
-
1151
- <a id="hardware-zh"></a>
1152
-
1153
- ## 💻 硬件与驱动要求 (Hardware & Driver Requirements)
1154
-
1155
- ### 支持的 AMDGPU 架构
1156
-
1157
- NoteConnection 利用 `gpu.js` 进行基于 WebGL 的加速,并计划通过 ROCm 支持本地 AI 推断。
1158
-
1159
- - **RDNA 3 (推荐)**: Radeon RX 7000 系列 (例如 **RX 7900 XT/XTX**)。
1160
- - _状态_: WebGL 和计算性能最佳。
1161
- - **RDNA 2**: Radeon RX 6000 系列。
1162
- - _状态_: 稳定且成熟的支持。
1163
-
1164
- ### 驱动配置
1165
-
1166
- #### Windows (开发环境)
1167
-
1168
- - **驱动程序**: **AMD Software: Adrenalin Edition** (23.12.1+)。
1169
- - 需要 DirectX 12/Vulkan/OpenGL 支持以底层支持 WebGL。
1170
- - **构建工具**: 用于为 Node.js 编译 `headless-gl`:
1171
- - 安装 Python 3.x 并加入 PATH。
1172
- - Visual Studio Build Tools (C++ 工作负载)。
1173
-
1174
- #### Linux (AI 推荐)
1175
-
1176
- - **Mesa (RADV/Radeonsi)**: 默认开源驱动。最适合通用 WebGL 和 `gpu.js`。
1177
- - **ROCm (Radeon Open Compute)**: 仅在计划开发 AI 推断功能(未来路线图)时安装。NoteConnection 的核心可视化在标准 Mesa 驱动上运行良好。
1178
-
1179
- ---
1180
-
1181
- <a id="architecture-zh"></a>
1182
-
1183
- ## 🏗️ 系统架构
1184
-
1185
- NoteConnection 基于模块化架构构建,旨在实现高性能和可扩展性。
1186
-
1187
- ### 后端 (`src/backend`)
1188
-
1189
- - **GraphBuilder**: 核心协调器。管理从文件读取到图构建的整个流程。
1190
- - **Worker Threads**: 繁重的任务(关键词匹配、文本分析)被卸载到工作线程池 (`src/backend/workers`),确保主线程保持响应。
1191
- - **推断引擎**:
1192
- - `StatisticalAnalyzer`: 计算共现矩阵。
1193
- - `VectorSpace`: 处理 TF-IDF 嵌入和余弦相似度。
1194
- - `HybridEngine`: 结合信号建议有向边。
1195
-
1196
- ### 前端 (`src/frontend`)
1197
-
1198
- - **双引擎渲染器**:
1199
- - **D3.js (SVG)**: 用于高保真、交互式图表,具有详细的工具提示和 CSS 样式。
1200
- - **HTML5 Canvas**: 针对海量数据集进行了优化,消除了 DOM 操作的开销。
1201
- - **状态管理**: `SettingsManager` 将用户偏好(物理、视觉)持久化到 `localStorage`。
1202
- - **布局逻辑**: 自定义的 Sugiyama 风格分层算法和力导向物理算法。
1203
-
1204
- ### 桌面桥接 (Desktop Bridge) (`src/core`)
1205
-
1206
- - **PathBridge**: 标准 WebSocket 服务器 (端口 9876),将内部图谱状态暴露给外部应用程序(例如 Godot 引擎),实现混合 Web/原生可视化管线。
1207
-
1208
- ---
1209
-
1210
- <a id="quick-start-zh"></a>
1211
-
1212
- ## 📦 快速开始
1213
-
1214
- ### 桌面系统依赖
1215
-
1216
- | 平台 | 必要依赖 |
1217
- |---|---|
1218
- | **Linux** | `libwebkit2gtk-4.1-dev`、`libgtk-3-dev`、`libsoup3.0`、`libjavascriptcoregtk-4.1-0`(Ubuntu/Debian: `sudo apt install libwebkit2gtk-4.1-dev libgtk-3-dev libsoup-3.0-dev patchelf`) |
1219
- | **macOS** | 无需额外依赖(系统内置 WebKit) |
1220
- | **Windows** | [Edge WebView2 运行时](https://developer.microsoft.com/microsoft-edge/webview2/)(Windows 11 预装;Windows 10 可能需要手动安装) |
1221
-
1222
- > **Linux Wayland 用户**:Godot Path Mode 在纯 Wayland 合成器上需要 `GDK_BACKEND=x11`。启动器检测到 `XDG_SESSION_TYPE=wayland` 时会自动设置。
1223
-
1224
- ### 选项 1: Windows 安装程序 (推荐)
1225
-
1226
- 1. 从 [最新发布页面](https://github.com/Jacobinwwey/NoteConnection/releases) 下载 `NoteConnection.Setup.exe`。
1227
- 2. 运行安装程序。
1228
- 3. 从桌面或开始菜单启动 NoteConnection。
1229
-
1230
- ### 选项 2: 使用 npx 运行
1231
-
1232
- 无需安装。
1233
-
1234
- ```bash
1235
- npx noteconnection
220
+ ```mermaid
221
+ flowchart LR
222
+ A["Markdown knowledge base"] --> B["Graph build pipeline"]
223
+ B --> C["Knowledge graph store"]
224
+ C --> D["Graph visualization"]
225
+ C --> E["Scoped retrieval"]
226
+ E --> F["Graph context assembly"]
227
+ F --> G["Answer sufficiency and release review"]
228
+ G --> H["One public answer with citations"]
229
+ C --> I["Path Mode and mastery workflows"]
1236
230
  ```
1237
231
 
1238
- ### 选项 3: 全局安装
232
+ Core owners:
1239
233
 
1240
- ```bash
1241
- npm install -g noteconnection
1242
- noteconnection
1243
- ```
234
+ | Layer | Main paths | Responsibility |
235
+ |---|---|---|
236
+ | Server and routes | `src/server.ts`, `src/routes/` | HTTP API, static serving, diagnostics, modular route dispatch |
237
+ | Graph core | `src/core/`, `src/backend/` | graph construction, layout/path engines, workers, bridge contracts |
238
+ | Learning runtime | `src/learning/` | scoped retrieval, conversation, graph context, mastery, quality, memory policy |
239
+ | Frontend workspace | `src/frontend/` | graph UI, Knowledge Workspace panes, source focus, runtime bridge |
240
+ | Desktop/mobile shell | `src-tauri/`, `path_mode/` | Tauri packaging, sidecars, Godot Path Mode, Android runtime |
241
+ | Documentation | `docs/` | Diataxis docs, release notes, bilingual guides, architecture records |
1244
242
 
1245
- ### 选项 4: 本地开发
243
+ ### Backend
1246
244
 
1247
- ```bash
1248
- git clone https://github.com/Jacobinwwey/NoteConnection.git
1249
- cd NoteConnection
1250
- npm install
1251
- npm start
1252
- ```
245
+ - `GraphBuilder` manages the pipeline from file reading to graph construction.
246
+ - Worker threads offload keyword matching and text analysis so the main thread stays responsive.
247
+ - `StatisticalAnalyzer`, `VectorSpace`, and `HybridEngine` combine co-occurrence, TF-IDF, cosine similarity, and directed edge inference.
1253
248
 
1254
- - 服务器运行于: `http://localhost:3000`
249
+ ### Frontend
1255
250
 
1256
- ### 选项 5: 移动端支持 (Android)
251
+ - D3/SVG handles high-fidelity interaction.
252
+ - Canvas handles large graph rendering.
253
+ - Web workers keep path/layout work off the UI thread.
254
+ - Knowledge Workspace panes keep source focus, evidence rendering, learning paths, and graph previews in one workspace.
1257
255
 
1258
- NoteConnection 通过 **Tauri Android**(原生壳流水线)支持 Android。Capacitor APK 路径已**废弃**,仅保留作为历史参考。
256
+ ### Desktop bridge
1259
257
 
1260
- #### 先决条件
258
+ - `PathBridge` exposes internal graph state over WebSocket (`ws://localhost:9876`).
259
+ - Godot Path Mode acts as a renderer and interaction surface; heavy graph logic remains in the TypeScript runtime.
260
+ - Godot paths must keep PNG/materialized render boundaries and avoid direct SVG assumptions.
1261
261
 
1262
- - **Node.js** (LTS)
1263
- - **Java JDK** (21 或更高版本)
1264
- - **Android SDK** (配置在 `ANDROID_HOME` 或通过 Android Studio 安装)
1265
-
1266
- #### 推荐: Tauri Android 构建(原生壳)
262
+ ## CLI Reference
1267
263
 
1268
264
  ```bash
1269
- # 首次初始化
1270
- npm run tauri:android:init
1271
-
1272
- # 开发构建
1273
- npm run tauri:android:dev
1274
-
1275
- # 发布 APK/AAB
1276
- npm run tauri:android:build
1277
- ```
1278
-
1279
- 构建通用 APK(armeabi-v7a + arm64-v8a + x86_64):
1280
-
1281
- ```bash
1282
- npm run tauri:android:build:universal
265
+ npm start -- --path "<path_to_knowledge_base>" [options]
1283
266
  ```
1284
267
 
1285
- #### 已废弃: Capacitor 构建
1286
-
1287
- Capacitor APK 路径(`build_apk.bat`、`npm run mobile:build:capacitor`)已于 2026-05 废弃。`android/` 目录保留作为历史参考。所有活跃的 Android 开发均以 Tauri Android 流水线为目标。
268
+ | Option | Description | Default |
269
+ |---|---|---|
270
+ | `--path` | Absolute path to the folder containing Markdown files | `Knowledge_Base` |
271
+ | `--gpu` | Enable GPU/WebGL acceleration for layout and vector calculations | auto when supported |
272
+ | `--no-gpu` | Disable GPU acceleration and force CPU | `false` |
273
+ | `--static` | Enable backend-only static mode with frozen frontend layout | `false` |
274
+ | `--workers` | Worker thread count | `numCPUs - 1` |
1288
275
 
1289
- #### 历史参考: Capacitor 手动构建步骤
1290
-
1291
- 1. **构建 Web 资源**:
1292
- ```bash
1293
- npm run build
1294
- ```
1295
- 2. **同步到 Android 平台**:
1296
- ```bash
1297
- npx cap sync
1298
- ```
1299
- 3. **构建 APK**:
1300
- 在 Android Studio 中打开 `android` 目录并构建,或使用命令行:
1301
- ```bash
1302
- cd android
1303
- ./gradlew assembleDebug
1304
- ```
1305
- APK 将位于: `android/app/build/outputs/apk/debug/app-debug.apk`
1306
-
1307
- #### 移动端能力边界
1308
-
1309
- - Capacitor 打包路径本身不内置桌面 Node sidecar,但在具备 Filesystem API 且数据量不超过移动端限制时,Capacitor 原生运行时仍可本地图谱构建。
1310
- - 如果需要与 Tauri 架构一致的移动端原生壳能力,请使用 Tauri Android 路径;该路径会通过 Android 原生命令 `build_graph_runtime` 构图。
1311
-
1312
- ---
1313
-
1314
- <a id="cli-zh"></a>
1315
-
1316
- ## 🖥️ CLI 命令行使用 (v0.9.71)
1317
-
1318
- 您可以直接从命令行加载知识库并构建图谱,而无需使用 UI。这对于自动构建或无头环境非常有用。
1319
-
1320
- ### 使用方法
276
+ Examples:
1321
277
 
1322
278
  ```bash
1323
- npm start -- --path "<知识库路径>" [选项]
1324
- ```
1325
-
1326
- ### 选项
1327
-
1328
- | 选项 | 描述 | 默认值 |
1329
- | ----------- | ----------------------------------------- | --------------------- |
1330
- | `--path` | 包含 Markdown 文件的文件夹的绝对路径。 | `Knowledge_Base` |
1331
- | `--gpu` | 为布局和向量计算启用 AMDGPU/WebGL 加速。 | `true` (如果硬件支持) |
1332
- | `--no-gpu` | 禁用 GPU 加速 (强制使用 CPU)。 | `false` |
1333
- | `--static` | 启用静态模式 (仅后端计算,前端布局冻结)。 | `false` |
1334
- | `--workers` | 要使用的 Worker 线程数。 | `numCPUs - 1` |
1335
-
1336
- ### 示例
1337
-
1338
- ```bash
1339
- # 基础加载
1340
279
  npm start -- --path "C:/Users/MyName/Documents/MyNotes"
1341
-
1342
- # GPU 加速构建
1343
280
  npm start -- --path "E:/Knowledge/ObsidianVault" --gpu
1344
-
1345
- # 强制 CPU (如果 GPU 出现问题)
1346
281
  npm start -- --path "E:/Knowledge/ObsidianVault" --no-gpu
1347
282
  ```
1348
283
 
1349
- **注意:** CLI 运行会生成唯一的静态数据文件 (`data_cli_{kb_name}_{time}.js`) 以保护原始 `data.js`。服务器启动时,它会自动为前端提供这些特定的文件。
284
+ CLI runs generate unique data files such as `data_cli_{kb_name}_{time}.js` to preserve the original `data.js`. When the server starts, it automatically serves those files to the frontend.
1350
285
 
1351
- ---
286
+ ## Configuration
1352
287
 
1353
- ## 📂 用户定义知识库 (User-Defined Knowledge Base - v1.0.0)
288
+ Runtime configuration is stored in `app_config.toml`.
1354
289
 
1355
- 管理知识库源现在变得更加简单。
290
+ Default Windows path:
1356
291
 
1357
- - **首次运行设置**: 首次启动时,系统会提示您选择 `Knowledge_Base` 文件夹。
1358
- - **持久化配置 (`app_config.toml`)**: KB 路径、语言及多窗口偏好默认保存到 `%LOCALAPPDATA%/NoteConnection/app_config.toml`(Windows),重启后自动恢复。
1359
- - **旧配置自动迁移**: 若同目录存在旧版 `kb_config.json`,启动时会自动迁移到 `app_config.toml`。
1360
- - **随时更改**: 使用 **文件 > 更改知识库...** 菜单选项即时切换文件夹。
1361
- - **重置**: 使用 **文件 > 重置为默认** 返回由捆绑的演示笔记。
1362
- - **配置路径覆盖**: 可通过 `NOTE_CONNECTION_CONFIG_PATH`(完整文件路径)或 `NOTE_CONNECTION_CONFIG_DIR`(目录)自定义 `app_config.toml` 位置。
1363
- - **窗口行为可调**: 在 `app_config.toml` 的 `[multi_window]` 段调整 `single_window_mode`、`hide_tauri_when_pathmode_opens`、`restore_tauri_when_pathmode_exits`、`confirm_before_full_shutdown_from_godot`、`sync_language`。
1364
- - **阅读协议可调**: 在 `[frontend_settings.reading]` 中统一调节 Markdown 渲染链路(`markdown_engine`、`chunk_block_size`、`prefetch_blocks`、`index_cache_ttl_sec`、`max_doc_bytes`)。
1365
- - **详细配置说明**: 参见 [`docs/zh/app_config.toml_guide.md`](docs/zh/app_config.toml_guide.md) 与模板 [`docs/examples/app_config.template.toml`](docs/examples/app_config.template.toml)。
292
+ ```text
293
+ %LOCALAPPDATA%/NoteConnection/app_config.toml
294
+ ```
295
+
296
+ Minimal example:
1366
297
 
1367
298
  ```toml
1368
- # 推荐最小 app_config.toml
1369
299
  knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
1370
300
  user_language = "en"
1371
301
 
@@ -1385,594 +315,118 @@ index_cache_ttl_sec = 1800
1385
315
  max_doc_bytes = 100663296
1386
316
  ```
1387
317
 
1388
- ### Markdown 阅读协议(v1.6.8)
1389
-
1390
- - **双引擎灰度发布**:
1391
- - `markdown_engine = "auto"`:优先 `pulldown-cmark`,失败自动回退 legacy。
1392
- - `markdown_engine = "pulldown"`:仍保留自动回退 legacy,避免阅读器空白。
1393
- - `markdown_engine = "legacy"`:强制使用旧解析链路。
1394
- - **双窗口统一行为**:Tauri 阅读器与 Godot 阅读器都统一消费 sidecar Markdown 协议(`index/chunk/resolve-node/resolve-wiki`)。
1395
- - **大文档稳定性提升**:阅读链路不再依赖单次整文全量载入,改为块级增量加载。
1396
- - **Mermaid 稳定性加固**:
1397
- - Godot 阅读器 Mermaid 渲染已切换为 `renderer = "auto"`,优先走前端桥接渲染,桥接不可用时自动回退本地 `resvg`。
1398
- - Mermaid fenced code 必须独占新行起始;`$$```mermaid` 这类行内拼接会导致分块识别失败。
1399
- - 发布前可执行 `npm run verify:markdown:mermaid:fence -- Knowledge_Base/testconcept`,提前拦截异常 Mermaid fence。
1400
- - **本地 MCP 网页调试基线(Runbrowser)**:
1401
- - 建议按源码本地构建:`pnpm --filter @jiweiyuan/runbrowser-server build`、`pnpm --filter @jiweiyuan/runbrowser-core build`、`pnpm --filter @jiweiyuan/runbrowser-mcp build`。
1402
- - 本地 MCP 入口:`node E:\Knowledge_project\tools\runbrowser\packages\mcp\bin.js`。
1403
-
1404
- ## 🏗️ 构建与部署 (Build & Deployment)
1405
-
1406
- 对于从源码构建的开发者,NoteConnection 现在默认采用 runtime-first 路径:
1407
-
1408
- - **Electron 桌面构建链路已于 2026-03-01 下线(弃用并完成清退)。**
1409
- - **Tauri 构建** (`npm run tauri:build`):默认桌面打包路径,采用 runtime-first 资产流,不默认打入预生成图谱载荷。
1410
- - **Tauri 精简构建** (`npm run tauri:build:mini`):与当前默认 runtime-first 打包路径保持兼容的旧别名。
1411
- - **Tauri 完整图谱构建** (`npm run tauri:build:full`):仅在本地存在真实图谱文件时,显式选择把生成型图谱资产打入包中。
1412
- - **Build (`npm run build`)**:默认 runtime-first 前端构建。
1413
- - **完整图谱前端构建** (`npm run build:full`):仅供本地 / demo 场景显式选择预生成图谱资产。
1414
- - **Godot Bootstrap** (`npm run prepare:godot:bin`):可从本地覆盖路径 / 搜索目录 / 缓存 / 固定下载 URL 物化当前主机所需的 Godot sidecar。
1415
- - **桌面 Release Godot 镜像**:release CI 现在会先在项目 GitHub Releases 中维护 Godot 镜像 tag,并以“镜像优先、上游回退”方式下载。
1416
- - **LFS Policy Guard** (`npm run verify:lfs:policy`):在迁移仍保留历史豁免项时,阻止新的 Git LFS 路径再次进入 `src/frontend/` 与 `src-tauri/bin/`。未来严格模式可通过 `npm run verify:lfs:policy:strict` 启用。
1417
- - **Sidecar 供给就绪度** (`npm run verify:sidecar:supply`):在继续缩减桌面 sidecar 的 LFS 桥接之前,显式报告当前主机是否已具备离线 bootstrap 能力,还是仍依赖网络。
1418
- - **GPU 开发启动(推荐)** (`npm run tauri:dev:mini:gpu`)。
1419
- - **不要使用** `npm run tauri:dev:mini --gpu`,该写法会被 npm 当作配置参数并触发告警。
1420
-
1421
- ## 📚 文档架构(Diataxis + MkDocs)
1422
-
1423
- - 权威长文档仍保持在 `docs/en/*` 与 `docs/zh/*`。
1424
- - Diataxis 导航页维护在 `docs/diataxis/<lang>/*`。
1425
- - 映射治理文件为 `docs/diataxis-map.json`。
1426
- - 映射一致性校验:`npm run docs:diataxis:check`。
1427
- - 本地预览文档站点:`npm run docs:site:serve`。
1428
- - 构建静态文档站点:`npm run docs:site:build`。
1429
- - GitHub Pages 文档入口(project site):`https://jacobinwwey.github.io/NoteConnection/`。
1430
- - 根域名(路由基线):`https://jacobinwwey.github.io/`。
1431
- - 推荐查询入口:
1432
- - 用户文档:`/diataxis/zh/tutorials/first-run/` 或 `/diataxis/en/tutorials/first-run/`
1433
- - 开发文档:`/diataxis/en/reference/interfaces-and-runtime/` 与 `/diataxis/en/reference/release-and-governance/`
1434
- - 维护者评估 LFS / 桌面 bootstrap 风险:`/en/sidecar_supply_strategy/` 或 `/zh/sidecar_supply_strategy/`
1435
- - 维护者比较镜像成本 / 用户门槛 / 维护负担:`/diataxis/en/explanation/sidecar-supply-feasibility/` 或 `/diataxis/zh/explanation/sidecar-supply-feasibility/`
1436
- - CI 自动发布工作流(GitHub Pages):`.github/workflows/docs-github-pages-publish.yml`。
1437
- - 手动回滚入口:运行 workflow_dispatch 并设置 `git_ref` 为稳定 tag/commit。
1438
- - MkDocs base/path 可通过环境变量覆盖:`MKDOCS_SITE_URL`、`MKDOCS_BASE_PATH`。
1439
- - CI 文档治理工作流:`.github/workflows/docs-diataxis-site.yml`。
1440
- - 文档发布与回滚运行手册:
1441
- - English:[`docs/en/docs_release_and_rollback.md`](docs/en/docs_release_and_rollback.md)
1442
- - 中文:[`docs/zh/docs_release_and_rollback.md`](docs/zh/docs_release_and_rollback.md)
1443
-
1444
- ---
1445
-
1446
- <a id="changelog-zh"></a>
1447
-
1448
- ## 更新日志 (Changelog)
1449
-
1450
- ### v1.7.0 - 启动加速收口、多平台验证与学习路线图底座 (2026-03-31)
1451
- - **Tag 对比快照(`v1.6.0..v1.7.0`)**:
1452
- - `47` 个提交、`160` 个变更文件、`+20,224 / -1,444` 代码/文档变更量。
1453
- - 工程变更面主要集中在:`src/frontend/`、`scripts/`、`docs/`、`src-tauri/`、`package*.json`。
1454
- - **启动运行时优化收口(Phase 2/3/4 + v1.1 加固)**:
1455
- - 新增启动 tick 差量传输(`tickMode: full|delta`),并引入低 alpha 自适应控制(`lowAlphaDeltaEpsilonMultiplier`、`lowAlphaFullSyncEveryTicks`)。
1456
- - 主线程新增按帧合并的 startup tick 应用策略,减少稳定阶段附近的重复重绘压力。
1457
- - 加固 warm-start 恢复,新增严格快照校验(fingerprint、age、node/edge 一致性、position coverage 阈值)。
1458
- - 在 `T5 stable_layout` 扩展启动遥测,新增 `tickSummary`(`fullTicks`、`deltaTicks`、`deltaRatio`、payload/frame 指标)。
1459
- - **跨平台启动验证工具链**:
1460
- - 新增/扩展 compare、matrix、watch、simulate、cohorts、signoff 自动化脚本,形成启动 KPI 治理闭环。
1461
- - 建立“无硬件工程签收”流程(Windows 实机日志 + 模拟 cohorts),并保留正式发布阶段的实机多设备 cohorts 要求。
1462
- - **运行时契约与文档对齐**:
1463
- - 同步 Diataxis EN/ZH 运行时参考文档,对齐新的 startup profile 字段与遥测语义。
1464
- - 扩展启动加速方案文档,纳入 v1.1 优化与风险护栏收口细节。
1465
- - 新增知识掌握演进路线图双语文档,并接入 Diataxis 导航与映射。
1466
- - **版本元数据对齐**:
1467
- - 将 `package.json`、`package-lock.json`、`src-tauri/tauri.conf.json` 的发布元数据统一到 `1.7.0`。
1468
-
1469
- ### v1.6.7 - 文档治理清理与 GitHub Pages 稳定性修复 (2026-03-29)
1470
- - 清理并移除了项目文档体系中与本项目无关的外部社区界面文档引用。
1471
- - 将历史外部手册替换为项目内通用文档运维手册:
1472
- - `docs/en/docs_release_and_rollback.md`
1473
- - `docs/zh/docs_release_and_rollback.md`
1474
- - 同步更新 Diataxis 映射与跨文档链接,确保权威来源路径一致。
1475
- - 在文档发布工作流新增 GitHub Pages 预检步骤,未启用 Pages 时给出明确告警。
1476
- - 已通过仓库 Pages 启用与 `gh-pages` 源配置修复文档站点 404 问题。
1477
- - 完成下个正式版本发布准备,并将版本统一到 `1.6.7`(npm + Tauri)。
1478
-
1479
- ### v1.6.6 - Provider 运行时流程与 TOML 配置统一 (2026-03-26)
1480
- - 参考 obsidian-NotEMD 与 cline 的 Provider 策略,重构 NoteMD API 调用流为定义驱动。
1481
- - 新增 transport 分发(openai-compatible / anthropic / google / azure-openai / ollama)与 provider 元数据(apiKeyMode、apiTestMode、category)。
1482
- - 扩展内置 Provider 预设:Qwen、Doubao、Moonshot、GLM、MiniMax、Groq、Together、Fireworks、Requesty、OpenAI Compatible。
1483
- - 完成 Tauri + Godot + NoteMD 的 app_config.toml 统一配置:
1484
- - NoteMD 全量配置持久化到 [notemd] + [[notemd.providers]](保留 [notemd.api] 兼容镜像)
1485
- - Path Mode 配置持久化到 [path_mode],并提供 /api/path-mode/settings 读写接口
1486
- - Godot 设置面板升级为运行时 TOML 同步链路。
1487
- - 加固 Rust 端 TOML 回写:保留未知 section,避免 Tauri 更新 KB/语言时覆盖 [notemd] / [path_mode]。
1488
- - 同步更新 v1.6.6 双语模板与 Diataxis 文档。
1489
-
1490
- ### v1.6.5 - 文档门户更新 (2026-03-26)
1491
-
1492
- - 已将 MkDocs 文档发布到 GitHub Pages project site。
1493
- - 在 README 中补充了面向用户与开发者的中英文文档检索入口。
1494
- - 维护者发布流程统一为:
1495
- - `npm run docs:site:build`
1496
- - `.github/workflows/docs-github-pages-publish.yml`(`workflow_dispatch` 支持 `git_ref` 回滚)
1497
-
1498
- ### v1.6.0 - 单窗口运行时、NoteMD 集成与发布加固 (2026-03-23)
1499
-
1500
- - **Tag 对比快照(`v1.3.0..v1.6.0`)**:
1501
- - `107` 个提交、`301` 个变更文件、`+125,957 / -10,083` 代码/文档变更量。
1502
- - 文件状态分布:新增 `241`、修改 `56`、删除 `3`、重命名 `1`。
1503
- - 主要工程变更面集中在:`src/`、`docs/`、`scripts/`、`path_mode/`、`src-tauri/`。
1504
-
1505
- - **单窗口运行时编排**:
1506
- - 实现 Tauri <-> Godot 的可见性切换,同一时刻仅显示一个主窗口。
1507
- - 增加 Godot 关闭确认流程(“返回主界面” / “关闭全部窗口”),避免误操作导致全局退出。
1508
- - 修复并稳定 Godot 窗口可见性控制,移除已弃用前台激活调用。
1509
- - **NoteMD 嵌入式体验**:
1510
- - 保持 NoteMD 为嵌入式能力(非独立桌面窗口),与 Tauri/Godot 双前端统一。
1511
- - 修复 Tauri 中 NoteMD 的 `Browse` 按钮无响应问题(文件/文件夹/保存选择器端到端可用)。
1512
- - 增加导入提示:PDF 需先通过 Mineru 转换为 Markdown 再导入。
1513
- - **平台与工具链发布就绪**:
1514
- - 统一 Java 基线为 **JDK 21+**,并验证 **JDK 23.0.1** 在 Android 构建链路可用。
1515
- - 新增 Android/Tauri 的补丁与校验脚本,覆盖前置依赖、sidecar 有效性、严格证据门禁。
1516
- - **可靠性与安全门禁**:
1517
- - 扩展 CI/工作流:FixRisk 运维就绪、移动端 e2e 合约、wasm parity、SBOM、attestation、签名与隐私清单校验。
1518
- - 新增多层合约回归覆盖(mobile/runtime/pathbridge/storage)。
1519
- - 纳入发布前 CI 兼容修复:runtime bridge invoke 契约断言兼容与无签名 SBOM transparency 条件化策略。
1520
- - **构建性能与开发体验**:
1521
- - 增加低内存 Tauri 构建包装器与 release 配置保护,提升受限内存环境可构建性。
1522
- - 增加 sidecar 预检,避免开发期重复重建,缩短 `tauri:dev:mini:gpu` 热启动耗时。
1523
-
1524
- ### v1.5.x 迁移运行时日志(统一归档)
1525
- - 完整双语日志统一归档在 [`export.md`](export.md)。
1526
- - 本 README 在更新日志中保留摘要指针,避免将日志前置堆叠在文档开头。
1527
- - `2026-03-03 v1.5.10`:方案 A P0 状态更新(Tauri Android 原生目录/构建/内容链路)
1528
- - `2026-03-03 v1.5.5`:迁移状态复验
1529
- - `2026-03-03 v1.5.3`:迁移闸门收口更新
1530
- - `2026-03-02 v1.5.1`:Tauri 迁移进度更新(桌面 + Android)
1531
-
1532
- ### v1.4.4 - Tauri 桥接稳定化与缓存流程加固 (2026-03-01)
1533
-
1534
- - **Electron -> Tauri 运行时对齐**:
1535
- - **路径一致性**: 统一运行时路径解析,sidecar 图谱产物从打包前端资源读取,并写入可写运行时数据目录。
1536
- - **知识库目录发现**: 在 Bridge-first 模式下标准化 `Knowledge_Base` 源根目录的文件夹枚举与加载流程。
1537
- - **构建/加载安全性**:
1538
- - **缓存决策流程恢复**: 当目标缓存已存在时,恢复“直接加载缓存 / 重新生成”分流逻辑。
1539
- - **重复请求抑制**: 在前端与后端双层增加去重保护,避免单次加载触发重复 restore/build。
1540
- - **PathBridge / WebSocket 稳定性**:
1541
- - **客户端诊断增强**: 增加带标签的连接/断开日志(id、tag、code、reason),用于精准定位桥接问题。
1542
- - **Godot URL 兼容修复**: 将 Godot WebSocket 地址修正为 `ws://127.0.0.1:9876/?client=godot`,解决 URL 解析错误。
1543
- - **Tauri 空闲重连消除**: 在 Tauri 模式禁用 `frontend-early` 自动连接,消除后台 `1001` 循环重连。
1544
- - **语言/菜单同步稳健性**:
1545
- - **幂等同步**: 在前端 i18n 与 Tauri Rust 命令两端增加幂等保护,避免重复无效菜单刷新。
1546
-
1547
- ### v1.4.1 - 树状视图交互修复 (2026-02-01)
1548
-
1549
- - **交互优化**:
1550
- - **长按导航**: 修复了节点长按 (0.6秒) 会触发右键菜单而不是导航的问题。现在长按可正确切换为中心节点。
1551
- - **全部折叠**: 在学习路径头部添加了 `[-]` 按钮,并支持中键点击以立即折叠所有已展开的节点。
1552
- - **右键切换**: 修复了右键点击无法正确切换节点展开/折叠状态的回归问题。
1553
- - **懒加载 UI**: 将分离的 `(+)/(-)` 按钮替换为统一的状态感知 `[计数]` 指示器,用于切换前置依赖链的可见性。
1554
-
1555
- ### v1.4.0 - 路径模式学习体验与树视图 (2026-01-30)
1556
-
1557
- - **路径模式 Bug 修复**:
1558
- - **取消标记同步修复**: 在 `PathBridge.ts` 中添加了 `unmarkComplete` 和 `completionSync` 处理程序。
1559
- - **取消标记后 UI 同步**: 树面板刷新 + 中心气泡进度更新。
1560
- - **着色器语法修复**: 将 `depth_draw_alpha_prepass` 修正为 `depth_prepass_alpha`。
1561
- - **路径模式学习 UI**:
1562
- - **导航历史**: 带下拉菜单的返回按钮,用于浏览学习历史。
1563
- - **编辑模式**: 切换开关,用于启用/禁用取消节点标记。
1564
- - **树面板**: 可折叠的依赖树,带视觉状态。
1565
- - **进度显示**: 中心气泡上的"X of N"进度指示器。
1566
- - **计划中: 增强图形化树视图**:
1567
- - SubViewport 叠加面板 + 贝塞尔曲线(思维导图风格)。
1568
- - 4 种可选视觉主题: 彩色、深色、玻璃、极简。
1569
-
1570
- ### v1.3.0 - 路径模式打磨与 UI 优化 (Path Mode Polish & UI Refinements) (2026-01-24)
1571
-
1572
- - **阅读器集成 (Reader Integration)**:
1573
- - **无缝访问**: 在“轨道布局”中双击中心节点现在会立即打开`阅读器`,显示完整的节点内容。
1574
- - **数据获取**: 修复了阅读器打开为空的关键问题;现在可以正确地从全局图状态检索完整的元数据。
1575
- - **视觉打磨 (Visual Polish)**:
1576
- - **轨道布局**: 显著改进了节点分散度(半径 350-950px),减少了标签重叠。
1577
- - **边缘清晰度**: 在轨道模式下,严格隐藏未连接到中心节点的边,将视觉混乱减少了 90%。
1578
- - **标签可见性**: 周围节点现在总是显示标签,并根据距离按比例缩放(最大 16px)。
1579
- - **景深 (DoF)**: 调整了不透明度衰减,以确保远处的节点保持可见(最小 0.4 不透明度)。
1580
- - **用户体验改进 (UX Improvements)**:
1581
- - **目标选择**: 将“目标节点”搜索限制从 20 增加到 300,确保用户可以找到图中的任何节点。
1582
- - **交互层级**: 修复了 `z-index` 层级问题,之前的阅读器窗口被隐藏在路径可视化后面。
1583
-
1584
- ### v1.2.0 - 路径模式与桌面渲染器 (2026-01-23)
1585
-
1586
- - **路径模式 (Path Mode)**: 引入了一套主要的新功能,用于将图谱转化为线性的学习路径。
1587
- - **学习模式**: '领域学习' (拓扑排序) 和 '扩散学习' (目标导向)。
1588
- - **可视化**: 由 D3/Canvas 驱动的全新径向和树状布局。
1589
- - **策略**: '基础优先' 和 '核心优先' 排序算法。
1590
- - **混合架构**:
1591
- - **Godot 桥接**: 实现了 `PathBridge.ts`,通过 WebSocket (端口 9876) 与外部渲染器同步图谱状态。
1592
- - **原生渲染**: 添加了对 Godot 4.3 的支持,以渲染高保真的 Vulkan 图形 (源码位于 `path_mode/`).
1593
- - **运维 (DevOps)**:
1594
- - **NPM 脚本**: 添加了 `pathmode:dev` 和 `pathmode:test` 工作流。
1595
- - **UI 稳定性**: 修复了径向布局可见性 (`centerView`) 和退出模式逻辑中的关键 Bug。
1596
-
1597
- ### v1.1.2 - 路径解析与 UI 稳定性 (2026-01-23)
1598
-
1599
- - **后端协议修复**:
1600
- - 改进了 `src/server.ts`,使其能够正确处理静态文件的 URL 查询参数(如 `?v=timestamp`)。
1601
- - 解决了 Windows 环境下带缓存刷新参数的 URL 返回 404 的问题。
1602
- - **UI 交互修复**:
1603
- - **欢迎弹窗**: 修复了 `welcome.js` 中的一个错误,即跳过教程会导致文件夹选择菜单因 `z-index` 被清除而无法响应的问题。
1604
- - 确保 `#source-control` 在所有弹窗关闭路径下都能保持 `z-index: 1000`。
1605
-
1606
- ### v1.1.1 - 移动端构建自动化 (2026-01-22)
1607
-
1608
- - **移动端运维**:
1609
- - 引入了 `build_apk.bat`,用于在 Windows 上一键生成 Android APK。
1610
- - 自动化环境检查(Node, JDK, Android SDK)和项目脚手架搭建。
1611
- - **文档**: 在 README 和用户手册中添加了移动端构建的详细指南。
1612
-
1613
- ### v1.1.0 - CI/CD 自动化 (2026-01-22)
1614
-
1615
- - **GitHub Actions 集成**:
1616
- - 新增自动 npm 发布工作流,支持发布事件和版本标签触发。
1617
- - 新增版本一致性检查,防止版本号不匹配的发布。
1618
- - **DevOps**: 简化发布流程,使用 `git tag v1.1.0 && git push --tags` 即可发布。
1619
-
1620
- ### v1.0.1 - 维护与体验优化 (2026-01-21)
1621
-
1622
- - **多语言体系整合**:
1623
- - 移除了 `app.js` 中冗余的硬编码翻译逻辑。
1624
- - 将所有 UI 字符串集成至 `I18nManager`,确保全应用语言切换的一致性。
1625
- - 修复了欢迎弹窗中部分标签显示为英文的“语种混合”问题。
1626
- - **新人引导体验修复**:
1627
- - **教程稳定性**: 通过正确暴露 `enterFocusMode` 接口,修复了专注模式教程引发的崩溃。
1628
- - **欢迎弹窗逻辑**: 优化了 `source_manager.js` 中的加载时序,确保在数据状态确认后准确触发弹窗。
1629
- - **协议与缓存优化**:
1630
- - **缓存刷新机制**: 在 `source_manager.js` 中实现了带时间戳的动态脚本加载器,防止浏览器加载旧版的 `data.js` 或 `app.js`。
1631
- - **协议处理器精简**: 优化了 `main.ts` 中的 `app://` 协议处理器,采用 `net.fetch` 提供更稳健的本地文件访问支持。
1632
-
1633
- ### v1.0.0 - 正式发布 (Production Release) (2026-01-14)
1634
-
1635
- - **稳定性与精简版可靠性**: 对“精简模式”进行了重大修复。
1636
- - **首次启动修复**: 解决了应用在无数据状态下首次启动时的崩溃问题(增加了 `typeof` 安全检查)。
1637
- - **产物自动清理**: 构建过程自动清理旧的数据残留,确保安装包体积最小化 (~70MB)。
1638
- - **Worker 路径修复**: 修正了生产构建中后端工作线程的双层 `dist` 路径解析错误。
1639
- - **完全离线化策略**: 所有外部依赖均已迁移为本地资源。系统现在可在完全离线环境下运行。
1640
- - **专注模式细化**:
1641
- - **视觉状态恢复**: 修复了退出专注模式后节点大小错误的 Bug。现在能完美恢复原始半径和字体大小。
1642
- - **交互稳定性**: 修复了进入专注模式时的 D3 事件关联错误。
1643
- - **物理与间距优化**:
1644
- - **全新默认值**: 默认链接距离增加至 **250px**,碰撞半径增加至 **25px**。
1645
- - **扩展自定义范围**: 滑动条范围增加至 600px 距离 / 100px 碰撞。
1646
- - **性能与专注模式重构**:
1647
- - **O(1) 邻居查找**: 在客户端实现邻接缓存,将切换耗时从 $O(N \times M)$ 降低至 $O(1)$。
1648
- - **批量渲染**: 使用 `requestAnimationFrame` 同步渲染,确保平滑过渡。
1649
- - **用户定义知识库**: 全新的知识库路径管理、持久化配置及菜单控制。
1650
- - **安全与 CSP**: 增强了 CSP 以支持极端的离线安全,并移除了已弃用的 Electron 标志。
1651
-
1652
- ### v0.9.83 (2026-01-13)
1653
-
1654
- - **GPU 工作线程集成**: 全面启用了前端模拟工作线程 (Simulation Worker) 中的 GPU 加速。工作线程现在可以动态导入 `gpu-browser.min.js` 和 `layout_gpu.js`,并遵循 `gpuRendering` 设置。
1655
- - **性能修复**: 解决了在初始化阶段忽略“GPU 优化渲染”设置、导致强制使用 CPU 计算的问题。现在大型图谱的加载速度显著提升。
1656
- - **稳健性**: 修复了 `updateParams` 中的一个关键错误,即在更改物理设置时,现有的 GPU 力实例会被意外地替换为 CPU 力。
1657
-
1658
- ### v0.9.74 (2026-01-12)
1659
-
1660
- - **GPU 链接力 (Link Force)**: 使用 `gpu.js` 实现了高性能的 GPU 加速弹簧力。支持 "Gather" 算法,用于高效的邻居处理。
1661
- - **物理稳健性**: 在 GPU 核函数中引入了速度钳位 (MAX_VELOCITY=100) 和 NaN/无穷大安全防护,防止节点“爆炸”和消失。
1662
- - **布局切换修复**: 实现了 Force 和 DAG 布局的稳健状态保存 (`layoutCache`),确保节点位置在切换时被保存和恢复,消除了“瞬移”现象。修复了 `updateLayout` 中的关键崩溃,并增加了专注于模式对 GPU 力的支持。
1663
- - **GPU 资源管理**: 重构 `layout_gpu.js` 使用单例模式管理 GPU 上下文,防止在切换设置时发生 WebGL 上下文泄漏 (限制 16 个)。
1664
-
1665
- ### v0.9.71 (2026-01-10)
1666
-
1667
- - **后端并行布局**: 通过使用 Worker 线程或 GPU 在后端预计算节点位置,加速前端加载。
1668
- - **GPU 优化渲染**: 在后端布局中添加了对 AMDGPU 加速的支持。
1669
- - **静态模式**: 为海量图谱 (>5000 节点) 实现了严格的模拟冻结以节省资源。
1670
- - **CLI 支持**: 添加了完整的 CLI 参数支持,用于自动化构建和加载。
1671
- - **极端规模优化**: 对于超过 10,000 个节点的图谱,完全禁用了边渲染,以防止浏览器崩溃。
1672
-
1673
- ### v0.9.67 - 紧凑模式与 Canvas 修复 (2026-01-08)
1674
-
1675
- - [x] **紧凑模式**: 添加了一种新模式,默认隐藏边以提高海量图谱(>5k 节点)的性能。此模式在大数据集上自动启用,但可以在设置中切换。
1676
- - [x] **Canvas 修复**: 解决了大图在加载时因强制初始 Canvas 渲染帧而显示白屏的问题。
1677
- - [x] **优化**: 渲染循环现在在紧凑模式下完全跳过边迭代,显著降低了空闲或平移/缩放期间的 CPU 使用率。
1678
-
1679
- ### v0.9.61 - 前端内存优化 (Frontend Memory Optimization) (2026-01-07)
1680
-
1681
- - [x] **智能渲染**: 当图谱包含超过 3000 个节点时,默认自动切换到 **Canvas** 模式。
1682
- - [x] **性能**: 降低浏览器内存占用,并提高大数据集初始加载时的帧率。
1683
-
1684
- ### v0.9.60 - 并行图指标计算 (Parallel Graph Metrics) (2026-01-07)
1685
-
1686
- - [x] **性能**: 使用 Worker 线程并行化了“图指标”计算(介数中心性)。
1687
- - [x] **可扩展性**: 将繁重的 Brandes 算法计算分发到多个 CPU 核心,确保大数据集的图构建更快。
1688
-
1689
- ### v0.9.58 - 混合推断资源重用 (优化) (Hybrid Inference Resource Reuse) (2026-01-07)
1690
-
1691
- - [x] **内存优化**: 在 `GraphBuilder` 中为“统计矩阵”和“向量空间”实现了资源重用逻辑。
1692
- - [x] **效率**: 防止在混合推断期间重复计算繁重的数据结构,消除了内存峰值并解决了大数据集上的 OOM 崩溃问题。
1693
- - [x] **清理**: 在推断任务完成后添加了严格的内存清理步骤。
1694
-
1695
- ### v0.9.82 - 稳健性增强与交互优化 (2026-01-12)
1696
-
1697
- - [x] **握手协议**: 引入了 Worker 握手协议 (`isLayoutSwitching`),有效解决了布局切换竞态,防止延迟消息导致 UI 跳变。
1698
- - [x] **专注模式隔离**: 为专注模式实现了完全的手动坐标管理,拖动节点不再受物理引擎干扰,确保定位精准。
1699
- - [x] **布局缓存安全**: 增加了 50% 的布局恢复安全阈值,缓存异常时自动执行物理松弛,防止图谱崩溃。
1700
- - [x] **分析面板稳定**: 优化了面板缩放时的渲染逻辑,在“冻结布局”激活时严格禁止不必要的物理重启。
1701
-
1702
- ### v0.9.57 - Worker 内存优化 (Worker Memory Optimization) (2026-01-07)
1703
-
1704
- - [x] **稳定性修复**: 通过优化 Worker 线程的数据传输策略,解决了处理大数据集 (>13k 文件) 时的“堆内存溢出”崩溃问题。
1705
- - [x] **效率**: Worker 现在接收文件路径并按需读取内容,消除了跨线程克隆大型文件内容字符串的内存开销。
1706
-
1707
- ### v0.9.56 - 混合推断内存优化 (Hybrid Inference Memory Optimization) (2026-01-05)
1708
-
1709
- - [x] **内存分析**: 为混合推断引擎添加了细粒度的性能日志,每 1000 个节点跟踪一次堆内存使用情况,以识别 Windows 上的内存峰值。
1710
- - [x] **优化**: 在推断完成后立即实施激进的内存清理(清除矩阵和置空向量空间),以防止堆内存溢出。
1711
-
1712
- ### v0.9.55 - 堆内存溢出修复与迭代 DFS (Heap OOM Fix & Iterative DFS) (2026-01-05)
1713
-
1714
- - [x] **稳定性修复**: 通过在算法阶段之前显式清除文件内容内存,解决了 Windows 10/11 上的“堆内存溢出”崩溃问题。
1715
- - [x] **稳健性**: 重构 `CycleDetector` 使用 **迭代 DFS**(基于栈)方法,消除了深度图上的堆栈溢出风险。
1716
- - [x] **可观测性**: 将“算法核心”的性能日志拆分为“循环检测”和“拓扑排序”两个独立阶段,以便进行精确调试。
1717
-
1718
- ### v0.9.54 - 欢迎体验 (Welcome Experience) (2026-01-05)
1719
-
1720
- - [x] **引导 (Onboarding)**: 添加了一个“欢迎”模态框,当图谱为空时出现,引导新用户选择数据源并加载数据。
1721
- - [x] **用户体验 (UX)**: 在欢迎状态下高亮显示“源选择”控件。
1722
-
1723
- ### v0.9.53 - 核心 API 解耦 (Core API Decoupling) (2026-01-05)
1724
-
1725
- - [x] **架构重构**: 将核心图构建逻辑提取到独立的 `NoteConnection` 类 (`src/core/NoteConnection.ts`) 中。
1726
- - [x] **插件准备**: 将核心 API 与 CLI/服务器特定的文件操作解耦,从而支持与未来的 Joplin/Obsidian 插件直接集成。
1727
- - [x] **文档**: 更新了用户手册,补充了缺失的“最大 Worker”性能设置。
1728
-
1729
- ### v0.9.52 - 循环检测内存优化 (Cycle Detection Memory Optimization) (2026-01-05)
1730
-
1731
- - [x] **稳定性修复**: 解决了在构建具有大量循环的大型图谱时,Windows 10/11 上发生的关键“堆内存溢出”崩溃问题。
1732
- - [x] **算法优化**: 更新了 `CycleDetector` 以限制检测到的循环数量,防止递归期间过度的内存消耗。
1733
-
1734
- ### v0.9.51 - 性能日志与崩溃报告 (Performance Logging & Crash Reporting) (2026-01-03)
1735
-
1736
- - [x] **系统监控**: 为后端流程(CPU、内存、时间)实现了全面的性能日志记录。
1737
- - [x] **GPU 诊断**: 为 GPU 加速步骤添加了执行计时和内存跟踪。
1738
- - [x] **崩溃报告**: 实现了 `CrashLogger`,自动将未处理的异常和 Worker 故障记录到 `crash.log`,以便调试 Windows 11 上的稳定性问题。
1739
- - [x] **优化**: 将 `PerformanceLogger` 集成到整个图构建管道(节点初始化、边匹配、推断)中。
1740
-
1741
- ### v0.9.50 - GPU 加速 (GPU Acceleration) (2026-01-02)
1742
-
1743
- - [x] **验证**: 确认了使用 **AMD Radeon 7900XT** 通过 `gpu.js` 加速图构建的可行性。
1744
- - [x] **策略**: 验证了数学推断(向量相似度)可以卸载到 GPU,而文本处理仍保留在 CPU 上进行优化。
1745
- - [x] **实现**: 添加了 `amdgpu` 模块和 `VectorSpaceGPU` 类。集成到 `GraphBuilder` 中,在启用时自动使用 GPU 进行余弦相似度矩阵计算。
1746
-
1747
- ### v0.9.49 - 统计分析内存优化 (Statistical Analysis Memory Optimization) (2026-01-02)
1748
-
1749
- - [x] **性能**: 通过优化统计分析器算法,修复了处理大数据集 (>10,000 文件) 时关键的“堆内存溢出”崩溃问题。
1750
- - [x] **效率**: 使用稀疏的、以文件为中心的方法,将共现矩阵计算的复杂度降低了约 30 倍。
1751
-
1752
- ### v0.9.49 - 并行处理 UI 控制 (UI Controls for Parallel Processing) (2026-01-02)
1753
-
1754
- - [x] **设置界面**: 在设置模态框中添加了“性能” (Performance) 部分,包含用于控制“最大 Worker”的滑块和数字输入框。
1755
- - [x] **API 集成**: “加载”按钮现在会将用户定义的 Worker 限制发送到后端构建流程。
1756
- - [x] **持久化**: Worker 设置与其他偏好一起保存在 `localStorage` 中。
1757
-
1758
- ### v0.9.48 - 并行处理优化 (Parallel Processing Optimization) (2026-01-02)
1759
-
1760
- - [x] **可配置 Worker**: 添加了 'maxWorkers' 配置,允许利用更多 CPU 核心进行图构建和统计推断。移除了 12 个 Worker 的硬编码限制。
1761
-
1762
- ### v0.9.46 - 专注模式 UI 清理与 Canvas 边修复 (Focus Mode UI Cleanup & Canvas Edge Fix) (2025-12-26)
1763
-
1764
- - [x] **沉浸式专注**: 专注模式期间,主控制面板和源选择栏现在完全隐藏,以提供无干扰的体验。
1765
- - [x] **Canvas 打磨**: 移除了 Canvas 专注模式下的边渲染,以减少视觉噪音。
1766
-
1767
- ### v0.9.45 - Canvas 交互与清理 (Canvas Interactivity & Cleanup) (2025-12-26)
1768
-
1769
- - [x] **Canvas 交互**: Canvas 模式现在支持悬停 (高亮)、单击 (统计) 和双击 (专注模式) 交互,与 SVG 功能对齐。
1770
- - [x] **视觉修复**: 修复了 Canvas 模式下节点渲染过大的问题;现在它们遵循“大小依据”设置。
1771
- - [x] **清理**: 移除了已弃用的“视图模式” (聚类) 功能。
1772
-
1773
- ### v0.9.44 - 独立专注模式间距 (Independent Focus Mode Spacing) (2025-12-26)
1774
-
1775
- - [x] **智能间距**: “层间距”和“节点间距”设置现在针对“水平”和“垂直”专注布局独立保存。
1776
- - [x] **优化默认值**: 将默认水平层间距减少 50%,垂直节点间距减少 75%,以获得更紧凑、更易读的布局。
1777
-
1778
- ### v0.9.43 - 上下文感知设置 UI (Context-Aware Settings UI) (2025-12-26)
1779
-
1780
- - [x] **动态标签**: 设置中的“排斥力强度”标签现在会在“排斥力 (力导向)”和“排斥力 (DAG)”之间动态变化,以清晰指示正在修改哪种布局配置。
1781
-
1782
- ### v0.9.42 - 独立排斥力设置 (Distinct Repulsion Settings) (2025-12-26)
1783
-
1784
- - [x] **特定模式物理**: “排斥力强度”现在可以针对“力导向”和“DAG”模式独立配置。
1785
- - [x] **智能默认值**: 将力导向布局(聚类)的默认排斥力设置为 **-550**,DAG 布局(层级)设置为 **-850**,以优化初始视觉分离。
1786
- - [x] **上下文感知设置**: 设置模态框会自动显示当前布局的排斥力数值。
318
+ More configuration details:
1787
319
 
1788
- ### v0.9.41 - 设置模态框模拟冻结 (Settings Modal Simulation Freeze) (2025-12-26)
320
+ - [English app_config guide](docs/en/app_config.toml_guide.md)
321
+ - [Config template](docs/examples/app_config.template.toml)
1789
322
 
1790
- - [x] **资源节省**: 打开“可视化设置”模态框时,模拟现在会自动暂停,从而减少配置期间的 CPU 使用率。关闭时会自动恢复,除非全局启用了“冻结布局”。
323
+ ## Markdown Reader Protocol
1791
324
 
1792
- ### v0.9.40 - 冻结布局优先级修复 (设置模态框) (2025-12-26)
325
+ - `markdown_engine = "auto"` prefers `pulldown-cmark` and falls back to the legacy renderer on failure.
326
+ - Tauri reader and Godot reader consume the same sidecar Markdown protocol: `index`, `chunk`, `resolve-node`, and `resolve-wiki`.
327
+ - Large files are loaded incrementally instead of requiring one full Markdown payload.
328
+ - Mermaid fences must start on their own line. Use `npm run verify:markdown:mermaid:fence -- Knowledge_Base/testconcept` before release-sensitive changes.
1793
329
 
1794
- - [x] **设置隔离**: 如果布局已冻结,在“可视化设置”模态框中调整参数(例如排斥力、透明度)不再触发模拟重启。视觉更改立即生效,而物理更新等待解冻。
330
+ ## Build And Test
1795
331
 
1796
- ### v0.9.39 - 布局切换松弛与冻结逻辑 (Layout Switch Relaxation & Freeze Logic) (2025-12-26)
1797
-
1798
- - [x] **一致过渡**: 切换布局现在会触发与初始加载相同的“快速松弛”(0.2 阻尼持续 2 秒),确保节点快速排列。
1799
- - [x] **智能冻结**: 如果在切换期间激活了“冻结布局”,模拟将运行 2 秒的松弛期以建立新结构,然后自动冻结。
1800
-
1801
- ### v0.9.38 - 快速开始指南 HTML 渲染修复 (Quick Start Guide HTML Rendering Fix) (2025-12-26)
1802
-
1803
- - [x] **富文本支持**: 修复了本地化 UI 中的 HTML 标签(例如粗体文本、换行符)显示为原始文本的问题。系统现在可以正确渲染翻译中的 HTML 格式。
1804
-
1805
- ### v0.9.37 - 快速松弛策略 (Rapid Relaxation Strategy) (2025-12-26)
1806
-
1807
- - [x] **智能阻尼**: 模拟现在以低摩擦 (0.2) 启动 2 秒,以允许节点快速解开(“松弛”),然后自动增加到高摩擦 (0.95) 以保持稳定。
1808
-
1809
- ### v0.9.36 - 冻结布局优先级修复 (Freeze Layout Priority Fix) (2025-12-26)
1810
-
1811
- - [x] **严格冻结**: 如果“冻结布局”处于激活状态,更改“度数基准”或“大小依据”设置不再唤醒模拟。视觉效果更新(节点大小改变),而位置严格锁定。
1812
-
1813
- ### v0.9.35 - 视口剔除放宽 (Viewport Culling Relaxation) (2025-12-26)
1814
-
1815
- - [x] **平滑剔除**: 将屏幕外“活动”缓冲区增加到 800px (视觉),防止边缘附近的节点在平移期间突然冻结。
1816
- - [x] **扩展缩放**: 将全局模拟冻结阈值从 0.4x 降低到 0.1x,允许物理模拟在大幅缩小时继续运行。
1817
-
1818
- ### v0.9.34 - 全局布局更新修复 (Global Layout Update Fix) (2025-12-26)
1819
-
1820
- - [x] **布局转换逻辑**: 实现了布局切换期间的全局解冻机制。
1821
- - [x] **覆盖剔除**: 切换布局(例如从 Force 到 DAG)现在会强制清除视口剔除锁定(`isCulled`,`fx`,`fy`),确保所有节点(包括屏幕外的节点)都能正确参与新的布局排列。
1822
-
1823
- ### v0.9.33 - 布局状态缓存 (即时切换) (2025-12-26)
1824
-
1825
- - [x] **模板状态**: 为“Force”和“DAG”布局实现了独立的状态缓存。
1826
- - [x] **即时切换**: 切换布局现在会保存当前状态并立即恢复目标状态,无需重新计算或视觉移动,从而保留每个视图的精确排列。
1827
-
1828
- ### v0.9.32 - 高阻尼与渲染优化 (2025-12-26)
1829
-
1830
- - [x] **阻尼**: 将默认摩擦力增加到 0.92 以加快稳定速度。
1831
- - [x] **渲染剔除**: 跳过屏幕外冻结节点的 DOM 更新。
1832
-
1833
- ### v0.9.31 - 模拟优化 (视口剔除) (2025-12-26)
1834
-
1835
- - [x] **性能**: 实现了智能视口剔除以减少模拟负载。
1836
- - [x] **全景冻结**: 当缩小到查看整个图表 (< 0.4x) 时自动冻结模拟。
1837
- - [x] **屏幕外冻结**: 放大时,仅模拟可见视口(加上缓冲区)内的节点;屏幕外的节点被冻结。
1838
-
1839
- ### v0.9.30 - 专注模式布局隔离 (Focus Mode Layout Isolation) (2025-12-26)
1840
-
1841
- - [x] **位置一致性**: 为专注模式实现了坐标备份/恢复逻辑 (`x`, `y`, `fx`, `fy`)。
1842
- - [x] **行为**: 退出专注模式现在会将图表布局恢复到进入前的*精确*状态,丢弃专注会话期间所做的任何临时排列或拖动。
1843
- - [x] **UX**: 满足了专注模式应对主界面布局结构零影响的要求。
1844
-
1845
- ### v0.9.29 - 冻结布局持久化 (Freeze Layout Persistence) (2025-12-26)
1846
-
1847
- - [x] **Bug 修复**: 解决了打开分析面板或调整窗口大小时会覆盖“冻结布局”状态,导致节点意外移动的问题。
1848
- - [x] **稳健性**: 物理模拟现在在布局变更期间严格遵守冻结状态,确保节点按预期保持静止。
1849
-
1850
- ### v0.9.27 - 条件重启 (Conditional Restart) (2025-12-26)
1851
-
1852
- - [x] **逻辑修正**: 解决了“退出专注模式”会无条件重启物理模拟,覆盖“冻结布局”状态的冲突。
1853
- - [x] **优先级执行**: 如果选中了“冻结布局”,退出专注模式现在会停止模拟并强制进行静态渲染更新,确保节点按请求保持严格静止。
1854
-
1855
- ### v0.9.26 - UX 增强与快速开始 (UX Enhancements & Quick Start) (2025-12-26)
1856
-
1857
- - [x] **冻结布局快速按钮**: 在主界面添加了专用的冻结按钮 (❄️) 以便即时访问,提高了移动端可用性。
1858
- - [x] **同步**: 状态与模拟面板复选框同步。
1859
- - [x] **视觉**: 冻结时按钮变红。
1860
- - [x] **快速开始指南**: 为新用户实现了“快速开始指南”模态框。
1861
- - [x] **内容**: 涵盖加载、导航、专注模式和控制。
1862
- - [x] **引导**: 首次访问时自动显示(除非选中“不再显示”)。
1863
- - [x] **访问**: 可通过新的“帮助” (❓) 按钮随时访问。
1864
- - [x] **本地化**: 全面本地化了新的 UI 元素(中/英)。
1865
-
1866
- ### v0.9.25 - 冻结布局优化 (Freeze Layout Optimization) (2025-12-25)
1867
-
1868
- - [x] **资源优化**: 在主界面(SVG 模式)中,启用“冻结布局”现在除了停止模拟外,还会完全禁用节点拖动。
1869
- - [x] **逻辑**: 防止因拖动事件而重启(唤醒)物理模拟,从而确保最大限度地节省 CPU/内存。
1870
- - [x] **专注模式保留**: 专注模式下的拖动和手动定位功能保持完全激活,不受全局冻结设置的影响。
1871
-
1872
- ### v0.9.19 - 专注模式与弹窗增强 (Focus Mode & Popup Enhancements) (2025-12-24)
1873
-
1874
- - [x] **专注模式重新进入**: 修复了在专注模式下双击相关节点时无法正确刷新的问题。现在可以在连接的节点之间无缝切换专注。
1875
- - [x] **可拖动弹窗**: 节点统计弹窗现在可以通过标题栏拖动到屏幕上的任何位置,以便更好地组织工作区。
1876
- - [x] **可缩放弹窗**: 添加了缩放控制 (+/−/⟲),可将弹窗内容从 0.5x 缩放到 2.0x,以提高可读性。
1877
- - [x] **可调整大小弹窗**: 启用了浏览器原生调整大小手柄,用于手动调整弹窗大小。
1878
- - [x] **状态管理**: 改进了节点可见性标志重置,以防止切换专注上下文时出现累积问题。
1879
-
1880
- ### v0.9.18 - 节点高亮重构 (Node Highlighting Refactor) (2025-12-24)
1881
-
1882
- - [x] **模块化架构**: 创建了专用的 `NodeHighlightManager` 类,实现高亮逻辑的清晰分离。
1883
- - [x] **统一接口**: 为 PC(悬停)和移动端(点击)交互提供单一 API。
1884
- - [x] **状态管理**: 正确跟踪高亮/冻结状态,并具备专注模式感知能力。
1885
- - [x] **增强渲染**: SVG 和 Canvas 模式之间的一致视觉行为。
1886
- - [x] **双语文档**: 整个代码库中全面的中英文注释。
1887
- - [x] **稳健集成**: 与现有的专注模式、分析面板和统计弹窗功能完全兼容。
1888
-
1889
- ### v0.9.17 - SVG 视觉完整性 (SVG Visual Completeness)
1890
-
1891
- - [x] **彩色箭头**: SVG 边现在在高亮时使用红色和蓝色箭头,确保整个连接颜色编码一致。
1892
-
1893
- ### v0.9.16 - 交互完整性 (Interaction Completeness)
1894
-
1895
- - [x] **完整上下文**: 点击或悬停节点现在会显示**所有**连接 (入度和出度),无论当前过滤器模式如何。
1896
- - [x] **Canvas 打磨**: 为 Canvas 渲染器中的高亮边添加了加粗样式。
1897
-
1898
- ### v0.9.14 - 视觉与数据修复 (Visual & Data Fixes)
1899
-
1900
- - [x] **边高亮**: 修复了 SVG 模式下边颜色(红/蓝)和加粗样式未正确应用的问题。
1901
- - [x] **数据去重**: 确保统计弹窗中的邻居列表不包含重复条目。
1902
-
1903
- ### v0.9.13 - 专注模式隔离 (Focus Mode Isolation)
1904
-
1905
- - [x] **交互约束**: 确保在专注模式处于激活状态时,严格禁用浮动统计弹窗和相关高亮显示,以防止上下文冲突。
1906
-
1907
- ### v0.9.12 - 独立统计弹窗 (Independent Statistics Popup)
1908
-
1909
- ### v0.9.10 - 交互完善 (点击冻结)
1910
-
1911
- - [x] **检查**: 点击节点现在会冻结整个模拟,以便稳定地检查连接。
1912
- - [x] **恢复**: 点击背景会恢复模拟(如果未手动冻结)。
1913
-
1914
- ### v0.9.9 - 移动端分析面板打磨
1915
-
1916
- - [x] **移动端适配**: 实现了滑动(上/下)手势以调整分析面板大小、全屏拖动吸附以及移动端拖动手柄。
1917
- - [x] **交互**: 验证了分析面板与图表之间的节点点击同步。
332
+ ```bash
333
+ npm install
334
+ npm run build
335
+ npm run build:vite
336
+ npm test
337
+ npm run docs:diataxis:check
338
+ npm run docs:site:build
339
+ ```
1918
340
 
1919
- ### v0.9.8 - 分析交互完善
341
+ Desktop and mobile builds:
1920
342
 
1921
- - [x] **图表同步**: 点击表格行现在会高亮显示图表中的节点。
1922
- - [x] **移动端 UX**: 修复了分析面板中的移动端滚动问题。
343
+ ```bash
344
+ npm run tauri:dev
345
+ npm run tauri:build
346
+ npm run tauri:android:init
347
+ npm run tauri:android:dev
348
+ npm run tauri:android:build
349
+ ```
1923
350
 
1924
- ### v0.9.7 - 专注模式交互修复
351
+ Build notes:
1925
352
 
1926
- - [x] **专注模式**: 修复了切换布局类型不会触发立即刷新的 Bug。
353
+ - Electron desktop packaging was removed on 2026-03-01.
354
+ - `npm run tauri:build` is the default desktop package path.
355
+ - `npm run tauri:build:full` is explicit opt-in for packaging generated graph assets.
356
+ - `npm run verify:lfs:policy`, `npm run verify:sidecar:supply`, and SBOM gates protect release packaging.
1927
357
 
1928
- ### v0.9.6 - 分析与视觉打磨
358
+ ## Documentation
1929
359
 
1930
- - [x] **分析面板**: 添加了 "全屏" 切换和 "捏合缩放" 以提高移动端可读性。
1931
- - [x] **视觉效果**: 修复了 Mermaid 缩放文本样式;添加了背景点击以清除高亮。
360
+ - Documentation hub: [docs/index.md](docs/index.md)
361
+ - Chinese README: [README_zh.md](README_zh.md)
362
+ - English docs mirror: [docs/en/README.md](docs/en/README.md)
363
+ - Chinese docs mirror: [docs/zh/README.md](docs/zh/README.md)
364
+ - User manual: [docs/en/User_Manual.md](docs/en/User_Manual.md) / [docs/zh/User_Manual.md](docs/zh/User_Manual.md)
365
+ - Interface document: [docs/en/Interface Document.md](<docs/en/Interface Document.md>) / [docs/zh/Interface Document.md](<docs/zh/Interface Document.md>)
366
+ - Release notes: [docs/release_notes_v1.8.0.md](docs/release_notes_v1.8.0.md)
367
+ - GitHub Pages docs: [jacobinwwey.github.io/NoteConnection](https://jacobinwwey.github.io/NoteConnection/)
1932
368
 
1933
- ### v0.9.5 - 移动体验优化与专注语义
369
+ ## Security And Privacy
1934
370
 
1935
- - [x] **专注模式**: 添加了 "层级 (从左到右)" 布局和语义标签 ("Helping to understand" / "Further exploration")。
1936
- - [x] **分析面板**: 针对移动端优化(可滚动),并添加了与主图的点击高亮交互。
1937
- - [x] **视觉效果**: 增强了 Mermaid 图表在浅色背景下的文本可见性;修复了专注模式居中问题。
371
+ - Graph building and local retrieval run on the user's machine.
372
+ - LLM-backed features use user-configured providers and should be treated as optional runtime integrations.
373
+ - Do not commit local vaults, `app_config.toml`, provider keys, generated private evidence, or machine-specific sidecar overrides.
374
+ - Release workflows include SBOM, sidecar, LFS, migration, docs, mobile, and runtime evidence gates.
1938
375
 
1939
- ### v0.9.2 - 移动端 UI 优化
376
+ ## Release Notes
1940
377
 
1941
- - [x] **响应式控件**: 主面板在移动端折叠;专注 UI 移至底部。
1942
- - [x] **触摸缩放**: 阅读窗口添加了捏合缩放支持。
378
+ README keeps only a compact release summary. Full release history belongs in [GitHub Releases](https://github.com/Jacobinwwey/NoteConnection/releases) and `docs/release_notes_*.md`.
1943
379
 
1944
- ### v0.9.0 - 精确控制与稳定性 (2025-12-23)
380
+ Recent releases:
1945
381
 
1946
- - [x] **悬停锁定**: 悬停节点时锁定其位置,防止检查时漂移。
1947
- - [x] **模拟控制**: 添加了 **冻结布局** 复选框和 **速度/阻尼** 滑块。
382
+ - **v1.8.0** - Knowledge Workspace RSE/document-augmented RAG, graph-conditioned answer composition, Agent Workspace UI/status improvements, runtime probes, release governance, and multi-platform assets.
383
+ - **v1.7.0** - Startup acceleration closure, multi-platform validation, and learning roadmap foundation.
384
+ - **v1.6.7** - Docs governance cleanup and GitHub Pages stabilization.
385
+ - **v1.6.6** - Unified provider runtime and TOML settings consolidation.
1948
386
 
1949
- ### v0.8.9 - 稳定性改进
387
+ ## Acknowledgments
1950
388
 
1951
- - [x] **选中冻结**: 专注模式下的节点在交互后保留其位置。
389
+ NoteConnection has benefited from many open-source projects and local reference mirrors. These acknowledgments mean design influence, implementation reference, runtime dependency, or tooling inspiration depending on the project; they do not imply endorsement by the listed maintainers.
1952
390
 
1953
- ### v0.8.8 - 可扩展性默认值
391
+ - [GitNexus](https://github.com/abhigyanpatwari/GitNexus) - README information architecture, repo context, staleness, and agent-consumable knowledge graph ideas.
392
+ - [obsidian-NotEMD](https://github.com/Jacobinwwey/obsidian-NotEMD) - NoteMD workflows, provider settings, and Markdown enhancement UX.
393
+ - [Obsidian Smart Connections](https://github.com/brianpetro/obsidian-smart-connections) - vault-aware semantic retrieval and local knowledge interaction patterns.
394
+ - [DeepTutor](https://github.com/HKUDS/DeepTutor) - tutor/workspace concepts and agent-native learning product references.
395
+ - [AnythingLLM](https://github.com/Mintplex-Labs/anything-llm) - local RAG workspace and document-chat product references.
396
+ - [Cherry Studio](https://github.com/CherryHQ/cherry-studio) - desktop AI workspace, provider configuration, and user-facing model operations.
397
+ - [Fast-GraphRAG](https://github.com/circlemind-ai/fast-graphrag) - graph-RAG ingestion/query design input.
398
+ - [Graphiti](https://github.com/getzep/graphiti) - temporal knowledge graph and evolving context design input.
399
+ - [Neo4j GraphRAG Python](https://github.com/neo4j/neo4j-graphrag-python) - graph-backed retrieval and explainable query contracts.
400
+ - [OpenAI Codex](https://github.com/openai/codex) - agent workspace, local execution, and tool-bound development workflow references.
401
+ - [enterprise_agent_platform](https://github.com/datagallery-lab/enterprise_agent_platform) - enterprise agent runtime and pipeline separation references.
402
+ - [AhaDiff](https://github.com/AGI-is-going-to-arrive/ahadiff) - diff learning, review, and repository intelligence references.
403
+ - [DSPy](https://github.com/stanfordnlp/dspy) - typed LM programs, evaluation, and optimizer-loop design ideas.
404
+ - [Guidance](https://github.com/guidance-ai/guidance) - constrained generation and structured output contract ideas.
405
+ - [Semantic Kernel](https://github.com/microsoft/semantic-kernel) - plugin/orchestration boundary references.
406
+ - [LangChain](https://github.com/langchain-ai/langchain) - orchestration, tool, and evaluation surface references.
407
+ - [LiteLLM](https://github.com/BerriAI/litellm) - provider routing and gateway design references.
408
+ - [Tauri](https://github.com/tauri-apps/tauri) - desktop and Android application shell.
409
+ - [Godot Engine](https://github.com/godotengine/godot) - Path Mode renderer foundation.
410
+ - [Readest](https://github.com/readest/readest) - cross-platform reader and Tauri product references.
411
+ - [Lorien](https://github.com/mbrlabs/Lorien) - Godot canvas/whiteboard interaction reference.
412
+ - [D3](https://github.com/d3/d3), [Mermaid](https://github.com/mermaid-js/mermaid), [KaTeX](https://github.com/KaTeX/KaTeX), [Marked](https://github.com/markedjs/marked), and [JSZip](https://github.com/Stuk/jszip) - frontend rendering and document-processing foundations.
1954
413
 
1955
- - [x] **减少杂乱**: 默认隐藏边和孤立节点。
1956
- - [x] **水平间距**: 专注模式下新增水平节点分隔滑块。
414
+ ## License
1957
415
 
1958
- ### v0.8.7 - 渲染引擎
416
+ This project is licensed under the [GNU General Public License v3.0](LICENSE) (`GPL-3.0-only`).
1959
417
 
1960
- - [x] **Canvas 渲染器**: 添加 HTML5 Canvas 支持以实现高性能。
1961
- - [x] **Worker 扩展**: 将线程限制增加到 12。
418
+ ## 2026-07-19 v1.8.0 Graph Answer Planning Correction
1962
419
 
1963
- ## Acknowledgments / 致谢
420
+ The graph-answer pipeline is now executable end to end in both RAG and non-RAG conversations. The earlier implementation built and exported `GraphAnswerPlan`, but the RAG composer returned before consuming it; release diagnostics therefore overstated actual graph use. `conversationComposer.ts` now realizes ordered required claims first and uses ranked RAG clauses as bounded supplemental evidence.
1964
421
 
1965
- Standing on the shoulders of these great projects. Thank you to their authors and maintainers!
422
+ Distinct high-confidence claims are required by information value after semantic deduplication, not by a one-claim-per-role quota. Public claim statements are shaped before planning so authoring instructions, table scaffolding, and renderer payloads cannot become mandatory answer content. Release revision preserves the ordered required plan instead of replacing it with a shorter answer, and runtime acceptance verifies final required-ID coverage and claim order.
1966
423
 
1967
- 感谢以下优秀开源项目及其作者与维护者:
424
+ Coverage remains deterministic concept, polarity, and normalized-text matching; it is not semantic entailment. Clause-level evidence shaping now segments dense fragments, ranks complete clauses, and preserves the raw fragment as provenance. The remaining calibration problem is multilingual: source-quality and semantic-dedup thresholds need a versioned readability/coverage corpus rather than character or sentence ceilings.
1968
425
 
1969
- - **[obsidian-notemd](https://github.com/Jacobinwwey/obsidian-NotEMD)** — the heart of our Notemd engine ❤️
1970
- - **[GitNexus](https://github.com/Compound-Engineering/GitNexus)** — shared types, staleness tracking, and graph ops patterns
1971
- - **[DeepTutor](https://github.com/DeepTutor/DeepTutor)** — agent-native two-layer model (Tools + Capabilities)
1972
- - **[cline](https://github.com/cline/cline)** — co-located test architecture that keeps our tests close
426
+ ## 2026-07-19 v1.8.0 Final Architecture and Progress Audit
1973
427
 
1974
- ## License / 开源许可
428
+ The current `main` implementation satisfies the completed Scheme B / Coverage-driven requirements: the graph plan executes in both RAG and non-RAG paths, distinct same-role claims remain coverable, release revision preserves required claim order, bounded graph expansion is restricted to explicit deep/research intent, and final runtime acceptance checks required claim IDs rather than answer length. The legacy gate name `public_surface_contraction` remains for compatibility, but it no longer imposes a 900-character or sentence-count ceiling.
1975
429
 
1976
- This project is licensed under the **GNU General Public License v3.0 (GPL-3.0-only)**.
430
+ The code-humanizer follow-up consolidated graph-window fact selection and NoteMD no-op progress reporters, then removed backend comments that only narrated code. The source-quality phase added deterministic clause segmentation/scoring, clause-local filtering, supplemental semantic deduplication, and release-safe duplicate removal. The latest verified baseline is 124/124 Jest suites, 1,155 tests passed, 26 skipped; TypeScript, production/Vite build, strengthened Water Glass runtime acceptance, Diataxis, MkDocs, and diff hygiene pass.
1977
431
 
1978
- 本项目采用 **GNU General Public License v3.0(GPL-3.0-only)** 开源协议。
432
+ One calibration direction and one decision gate remain. Multilingual source-quality, semantic-dedup, and readability thresholds need joint regression evidence so fluency improves without losing required graph claims or provenance. Answer-planning orchestration should leave `KnowledgeLearningPlatform.ts` only when a new owner can perform the complete planned/reviewed-answer operation and reduce caller knowledge; this is not an unfinished phase, and a pass-through extraction would be architectural churn rather than progress.