Skip to content

Commit 99fb224

Browse files
committed
release: v1.6.2
1 parent a843222 commit 99fb224

49 files changed

Lines changed: 1725 additions & 189 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,9 +279,26 @@ npm start -- --path "E:/Knowledge/ObsidianVault" --no-gpu
279279
Managing your knowledge base source is now easier than ever.
280280

281281
- **First Run Setup**: On first launch, you will be prompted to select your `Knowledge_Base` folder.
282-
- **Persistent Config**: Your selection is saved in `kb_config.json` and remembered across restarts.
282+
- **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.
283+
- **Legacy Auto-Migration**: If a legacy `kb_config.json` exists in the same config directory, NoteConnection automatically migrates it to `app_config.toml`.
283284
- **Change Anytime**: Use the **File > Change Knowledge Base...** menu option to switch folders instantly.
284285
- **Reset**: Use **File > Reset to Default** to return to the bundled demo notes.
286+
- **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.
287+
- **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`).
288+
- **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).
289+
290+
```toml
291+
# Minimal recommended app_config.toml
292+
knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
293+
user_language = "en"
294+
295+
[multi_window]
296+
single_window_mode = true
297+
hide_tauri_when_pathmode_opens = true
298+
restore_tauri_when_pathmode_exits = true
299+
confirm_before_full_shutdown_from_godot = true
300+
sync_language = true
301+
```
285302

286303
## 🏗️ Build & Deployment
287304

@@ -1136,9 +1153,26 @@ npm start -- --path "E:/Knowledge/ObsidianVault" --no-gpu
11361153
管理知识库源现在变得更加简单。
11371154
11381155
- **首次运行设置**: 首次启动时,系统会提示您选择 `Knowledge_Base` 文件夹。
1139-
- **持久化配置**: 您的选择保存在 `kb_config.json` 中,并在重启后自动加载。
1156+
- **持久化配置 (`app_config.toml`)**: KB 路径、语言及多窗口偏好默认保存到 `%LOCALAPPDATA%/NoteConnection/app_config.toml`(Windows),重启后自动恢复。
1157+
- **旧配置自动迁移**: 若同目录存在旧版 `kb_config.json`,启动时会自动迁移到 `app_config.toml`
11401158
- **随时更改**: 使用 **文件 > 更改知识库...** 菜单选项即时切换文件夹。
11411159
- **重置**: 使用 **文件 > 重置为默认** 返回由捆绑的演示笔记。
1160+
- **配置路径覆盖**: 可通过 `NOTE_CONNECTION_CONFIG_PATH`(完整文件路径)或 `NOTE_CONNECTION_CONFIG_DIR`(目录)自定义 `app_config.toml` 位置。
1161+
- **窗口行为可调**: 在 `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`
1162+
- **详细配置说明**: 参见 [`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)。
1163+
1164+
```toml
1165+
# 推荐最小 app_config.toml
1166+
knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
1167+
user_language = "en"
1168+
1169+
[multi_window]
1170+
single_window_mode = true
1171+
hide_tauri_when_pathmode_opens = true
1172+
restore_tauri_when_pathmode_exits = true
1173+
confirm_before_full_shutdown_from_godot = true
1174+
sync_language = true
1175+
```
11421176
11431177
## 🏗️ 构建与部署 (Build & Deployment)
11441178

TEST_REPORT.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,7 +1251,7 @@ Determine whether the Electron -> Tauri migration is currently complete enough t
12511251
| Cache decision and restore flow | IPC `checkCache` + `restoreCache` | Sidecar APIs + Tauri commands + modal prompt in `source_manager.js` | **Migrated** |
12521252
| Tutorial choice behavior | Welcome + tutorial choice | `welcome.js` + `tutorial.js` include skip/session guards | **Migrated** |
12531253
| Menu language switch | Electron dynamic menu rebuild | Tauri menu rebuild in `set_user_language` | **Partially Migrated** |
1254-
| Persistent KB path + language config | `kb_config.json` in Electron userData | Tauri currently defaults path, no equivalent persistent config file | **Not Fully Migrated** |
1254+
| Persistent KB path + language config | `kb_config.json` in Electron userData | Tauri persists KB path + language + multi-window settings in `app_config.toml` (auto-migrates legacy `kb_config.json`) | **Migrated (v1.6.0+)** |
12551255
| Godot process integration | N/A in Electron mainline release path | Tauri currently spawns Godot via hardcoded absolute path, not robust sidecar usage | **Not Fully Migrated** |
12561256
| Sidecar/Godot lifecycle shutdown guarantees | Electron app lifecycle owns process lifetime | Tauri code does not implement explicit shutdown management verification for spawned children | **Partially Migrated** |
12571257
| Release-ready path model | Electron used app-local protocol and known layout | Tauri sidecar paths are tuned for repo/dev layout (`dist/src/frontend`, `Knowledge_Base`) | **Partially Migrated** |
@@ -1272,9 +1272,9 @@ Determine whether the Electron -> Tauri migration is currently complete enough t
12721272

12731273
#### 2) High-Risk Gaps Before Removing Electron
12741274

1275-
- **Persistent user configuration parity is incomplete**:
1275+
- **Persistent user configuration parity is now complete (updated 2026-03-25)**:
12761276
- Electron persisted KB path and language in `kb_config.json`.
1277-
- Tauri currently returns default KB path and does not persist selected KB root across restarts in equivalent form.
1277+
- Tauri now persists KB path, language, and multi-window policy in `app_config.toml`, with startup auto-migration from legacy `kb_config.json`.
12781278
- **Godot launch path is environment-coupled**:
12791279
- `src-tauri/src/lib.rs` uses hardcoded absolute Windows paths for Godot executable/project.
12801280
- This is not portable across machines or release packaging.
@@ -1366,7 +1366,7 @@ Electron -> Tauri migration is **functionally successful in current desktop deve
13661366
- **Steps**:
13671367
1. Ran `npm start`.
13681368
2. Selected a custom folder in the First Run setup.
1369-
3. Verified `kb_config.json` was created in `AppData`.
1369+
3. Verified legacy `kb_config.json` was created in `AppData` (superseded by `app_config.toml` in v1.6.0+).
13701370
4. Used "File > Reset to Default" and "File > Change Knowledge Base" menus.
13711371
- **Result**: Config updates correctly; app reloads and loads the specific folder.
13721372
- **Status**: **Pass**
@@ -3728,7 +3728,7 @@ Electron -> Tauri migration is **functionally successful in current desktop deve
37283728
| 缓存提示与恢复 | IPC `checkCache`/`restoreCache` | sidecar API + Tauri 命令 + `source_manager.js` 弹窗 | **已迁移** |
37293729
| 教程选择逻辑 | Welcome + Tutorial | `welcome.js` + `tutorial.js` 会话跳过保护 | **已迁移** |
37303730
| 菜单语言切换 | Electron 动态重建菜单 | Tauri `set_user_language` 动态重建菜单 | **部分迁移** |
3731-
| KB 路径/语言持久化 | Electron `kb_config.json` | Tauri 尚无等价持久化配置文件闭环 | **未完全迁移** |
3731+
| KB 路径/语言持久化 | Electron `kb_config.json` | Tauri 已在 `app_config.toml` 持久化 KB 路径、语言与多窗口设置(启动自动迁移旧 `kb_config.json`| **已迁移(v1.6.0+)** |
37323732
| Godot 进程集成 | Electron 期未形成统一方案 | Tauri 仍使用硬编码绝对路径拉起 Godot | **未完全迁移** |
37333733
| 子进程生命周期收敛 | Electron 生命周期统一管理 | Tauri 未完成显式关闭与回收验证 | **部分迁移** |
37343734
| 发布态路径模型 | Electron `app://` + 明确资源关系 | Tauri 仍偏向仓库开发目录路径假设 | **部分迁移** |
@@ -3749,9 +3749,9 @@ Electron -> Tauri migration is **functionally successful in current desktop deve
37493749

37503750
#### 2) 立即删除 Electron 前的高风险缺口
37513751

3752-
- **用户配置持久化对等性不足**
3753-
- Electron `kb_config.json` 持久化。
3754-
- Tauri 尚未形成等价的 KB 路径与语言持久化闭环
3752+
- **用户配置持久化对等性已补齐(更新于 2026-03-25)**
3753+
- Electron 时代使用 `kb_config.json` 持久化。
3754+
- Tauri 已使用 `app_config.toml` 持久化 KB 路径、语言与多窗口策略,并在启动时自动迁移旧版 `kb_config.json`
37553755
- **Godot 启动路径耦合开发机**
37563756
- `src-tauri/src/lib.rs` 使用硬编码绝对路径。
37573757
- 换机或发布环境极易失效。
@@ -3859,7 +3859,7 @@ Electron -> Tauri 在**桌面开发态**已达到可用水平,但按 `docs/tau
38593859
- **步骤**:
38603860
1. 运行 `npm start`
38613861
2. 在首次运行设置中选择自定义文件夹。
3862-
3. 验证 `kb_config.json` 已在 `AppData` 中创建。
3862+
3. 验证旧版 `kb_config.json` 已在 `AppData` 中创建(该方案已在 v1.6.0+ 由 `app_config.toml` 取代)
38633863
4. 使用“文件 > 重置为默认”和“文件 > 更改知识库”菜单。
38643864
- **结果**: 配置更新正确;应用重载并加载指定文件夹。
38653865
- **状态**: **通过**

TODO.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3785,7 +3785,7 @@ Convert the last open `v1.5.9` sign-off item (Capacitor physical-device checklis
37853785

37863786
### Phase P0 - Must Complete Before Electron Removal
37873787

3788-
- [x] **Implement Tauri persistent config parity (`kb_config` equivalent)**
3788+
- [x] **Implement Tauri persistent config parity (`app_config.toml` + legacy `kb_config` auto-migration)**
37893789
- [x] Persist selected KB path in Tauri app data.
37903790
- [x] Persist user language in Tauri app data.
37913791
- [x] Load both values on startup before frontend initialization.
@@ -4183,7 +4183,7 @@ Convert the last open `v1.5.9` sign-off item (Capacitor physical-device checklis
41834183
- [x] **CSP Enhancement**: Updated Content Security Policy to allow external font loading (Google Fonts).
41844184
- [x] **Security Hardening**: Removed insecure `enableBlinkFeatures` flag.
41854185
- [x] **User-Defined Knowledge Base**
4186-
- [x] **Persistence**: Implemented `kb_config.json` to store user-selected paths.
4186+
- [x] **Persistence**: Implemented `app_config.toml` to store user-selected paths (with legacy `kb_config.json` auto-migration).
41874187
- [x] **First-Run Experience**: Added setup wizard for selecting initial KB folder.
41884188
- [x] **Menu Integration**: Added "Change Knowledge Base" and "Reset to Default" to File menu.
41894189
- [x] **Stability & Installer Reliability**
@@ -6127,7 +6127,7 @@ This document outlines the roadmap for building `NoteConnection`, a system capab
61276127

61286128
### 阶段 P0 - 移除 Electron 前必须完成
61296129

6130-
- [x] **实现 Tauri 持久化配置对等能力(等价 `kb_config`**
6130+
- [x] **实现 Tauri 持久化配置对等能力(`app_config.toml` + 旧版 `kb_config` 自动迁移**
61316131
- [x] 在 Tauri 应用数据目录持久化 KB 路径。
61326132
- [x] 在 Tauri 应用数据目录持久化语言设置。
61336133
- [x] 启动时在前端初始化前读取并应用。

docs/BILINGUAL_INDEX.md

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 2026-03-24 v1.6.0 - Bilingual Docs Pair Index
1+
# 2026-03-25 v1.6.0 - Bilingual Docs Pair Index
22

33
## English Document
44

@@ -9,9 +9,9 @@
99

1010
### Summary
1111

12-
- English files: `18`
13-
- Chinese files: `17`
14-
- Bilingual pairs: `17`
12+
- English files: `19`
13+
- Chinese files: `18`
14+
- Bilingual pairs: `18`
1515
- English-only files: `1`
1616
- Chinese-only files: `0`
1717

@@ -36,6 +36,7 @@
3636
| 15 | `TODO.md` | `docs/en/TODO.md` | `docs/zh/TODO.md` | Paired |
3737
| 16 | `User_Manual.md` | `docs/en/User_Manual.md` | `docs/zh/User_Manual.md` | Paired |
3838
| 17 | `walkthrough.md` | `docs/en/walkthrough.md` | `docs/zh/walkthrough.md` | Paired |
39+
| 18 | `app_config.toml_guide.md` | `docs/en/app_config.toml_guide.md` | `docs/zh/app_config.toml_guide.md` | Paired |
3940

4041
### Unmatched Files
4142

@@ -55,9 +56,9 @@
5556

5657
### 汇总
5758

58-
- 英文文件数:`18`
59-
- 中文文件数:`17`
60-
- 中英配对数:`17`
59+
- 英文文件数:`19`
60+
- 中文文件数:`18`
61+
- 中英配对数:`18`
6162
- 仅英文文件数:`1`
6263
- 仅中文文件数:`0`
6364

@@ -82,6 +83,7 @@
8283
| 15 | `TODO.md` | `docs/en/TODO.md` | `docs/zh/TODO.md` | 已配对 |
8384
| 16 | `User_Manual.md` | `docs/en/User_Manual.md` | `docs/zh/User_Manual.md` | 已配对 |
8485
| 17 | `walkthrough.md` | `docs/en/walkthrough.md` | `docs/zh/walkthrough.md` | 已配对 |
86+
| 18 | `app_config.toml_guide.md` | `docs/en/app_config.toml_guide.md` | `docs/zh/app_config.toml_guide.md` | 已配对 |
8587

8688
### 未配对文件
8789

docs/diataxis-map.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@
3838
"diataxis": "docs/diataxis/zh/how-to/single-window-runtime.md"
3939
}
4040
},
41+
{
42+
"id": "configure-app-config",
43+
"category": "how-to",
44+
"en": {
45+
"canonical": ["docs/en/app_config.toml_guide.md", "docs/en/User_Manual.md", "docs/en/README.md"],
46+
"diataxis": "docs/diataxis/en/how-to/configure-app-config.md"
47+
},
48+
"zh": {
49+
"canonical": ["docs/zh/app_config.toml_guide.md", "docs/zh/User_Manual.md", "docs/zh/README.md"],
50+
"diataxis": "docs/diataxis/zh/how-to/configure-app-config.md"
51+
}
52+
},
4153
{
4254
"id": "interfaces-and-runtime",
4355
"category": "reference",
@@ -50,6 +62,18 @@
5062
"diataxis": "docs/diataxis/zh/reference/interfaces-and-runtime.md"
5163
}
5264
},
65+
{
66+
"id": "app-config-schema",
67+
"category": "reference",
68+
"en": {
69+
"canonical": ["docs/en/app_config.toml_guide.md", "docs/en/Interface Document.md"],
70+
"diataxis": "docs/diataxis/en/reference/app-config-schema.md"
71+
},
72+
"zh": {
73+
"canonical": ["docs/zh/app_config.toml_guide.md", "docs/zh/Interface Document.md"],
74+
"diataxis": "docs/diataxis/zh/reference/app-config-schema.md"
75+
}
76+
},
5377
{
5478
"id": "release-and-governance",
5579
"category": "reference",
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# How-To: Configure app_config.toml
2+
3+
Use this guide to safely customize local runtime behavior (KB path, language, and single-window policy).
4+
5+
## Step 1: Locate the Active Config File
6+
7+
NoteConnection resolves config in this order:
8+
9+
1. `NOTE_CONNECTION_CONFIG_PATH`
10+
2. `NOTE_CONNECTION_CONFIG_DIR` + `app_config.toml`
11+
3. `%LOCALAPPDATA%/NoteConnection/app_config.toml` (Windows default)
12+
13+
## Step 2: Start from the Official Template
14+
15+
Copy from:
16+
17+
- [`docs/examples/app_config.template.toml`](../../../examples/app_config.template.toml)
18+
19+
## Step 3: Apply Your Policy
20+
21+
Recommended single-window profile:
22+
23+
```toml
24+
[multi_window]
25+
single_window_mode = true
26+
hide_tauri_when_pathmode_opens = true
27+
restore_tauri_when_pathmode_exits = true
28+
confirm_before_full_shutdown_from_godot = true
29+
sync_language = true
30+
```
31+
32+
## Step 4: Save and Restart
33+
34+
1. Exit NoteConnection.
35+
2. Save config as UTF-8 text.
36+
3. Restart and verify Path Mode window handoff.
37+
38+
## Step 5: Verify Language + KB Persistence
39+
40+
- Confirm selected KB path persists across restart.
41+
- Confirm language is applied on startup.
42+
- Confirm language sync in Path Mode if `sync_language = true`.
43+
44+
## Canonical Detailed Sources
45+
46+
- [docs/en/app_config.toml_guide.md](../../../en/app_config.toml_guide.md)
47+
- [docs/en/User_Manual.md](../../../en/User_Manual.md)

docs/diataxis/en/how-to/single-window-runtime.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ Use this guide to verify and operate Tauri/Godot single-window behavior.
2424

2525
- [docs/en/single_window_migration_plan.md](../../../en/single_window_migration_plan.md)
2626
- [docs/en/User_Manual.md](../../../en/User_Manual.md)
27+
- [docs/en/app_config.toml_guide.md](../../../en/app_config.toml_guide.md)

docs/diataxis/en/overview.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,10 @@ mkdocs build --config-file mkdocs.yml
2727
- Product overview: [docs/en/README.md](../../en/README.md)
2828
- Interface contracts: [docs/en/Interface Document.md](../../en/Interface%20Document.md)
2929
- User manual: [docs/en/User_Manual.md](../../en/User_Manual.md)
30+
- app_config guide: [docs/en/app_config.toml_guide.md](../../en/app_config.toml_guide.md)
3031
- Release compare report: [docs/en/release_v1.6.0_report.md](../../en/release_v1.6.0_report.md)
32+
33+
## Runtime Config Entry Points
34+
35+
- How-to: [Configure app_config.toml](./how-to/configure-app-config.md)
36+
- Reference: [app_config.toml Schema](./reference/app-config-schema.md)
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Reference: app_config.toml Schema
2+
3+
This page defines the authoritative `app_config.toml` runtime schema for NoteConnection `v1.6.0+`.
4+
5+
## File Resolution Priority
6+
7+
1. `NOTE_CONNECTION_CONFIG_PATH`
8+
2. `NOTE_CONNECTION_CONFIG_DIR` + `app_config.toml`
9+
3. `%LOCALAPPDATA%/NoteConnection/app_config.toml` (Windows default)
10+
11+
Legacy file migration:
12+
13+
- Legacy `kb_config.json` in the same config directory is auto-migrated to TOML at startup.
14+
15+
## Schema
16+
17+
```toml
18+
knowledge_base_path = "E:/Knowledge_project/NoteConnection_app/Knowledge_Base"
19+
user_language = "en"
20+
21+
[multi_window]
22+
single_window_mode = true
23+
hide_tauri_when_pathmode_opens = true
24+
restore_tauri_when_pathmode_exits = true
25+
confirm_before_full_shutdown_from_godot = true
26+
sync_language = true
27+
```
28+
29+
## Key Contract Table
30+
31+
| Key | Type | Default | Constraints | Runtime Contract |
32+
|---|---|---|---|---|
33+
| `knowledge_base_path` | `string` | auto default KB root | must be an existing directory | Persisted KB root. Normalized to `Knowledge_Base` root if path points inside it. |
34+
| `user_language` | `string` | `"en"` | `"en"` or `"zh"` (`"zh-CN"` is not accepted and falls back to `"en"`) | Controls startup language and menu language. |
35+
| `multi_window.single_window_mode` | `bool` | `true` | boolean | Governs single-window startup/handoff policy and Godot launch visibility mode. |
36+
| `multi_window.hide_tauri_when_pathmode_opens` | `bool` | `true` | boolean | If true, `toggle_pathmode_window(show_godot=true)` hides Tauri main window. |
37+
| `multi_window.restore_tauri_when_pathmode_exits` | `bool` | `true` | boolean | If true, `toggle_pathmode_window(show_godot=false)` restores and focuses Tauri window. |
38+
| `multi_window.confirm_before_full_shutdown_from_godot` | `bool` | `true` | boolean | If true, Godot close flow requires confirmation ("return" vs "close all"). |
39+
| `multi_window.sync_language` | `bool` | `true` | boolean | If true, language updates emit runtime sync event payload to frontend windows. |
40+
41+
## Backward-Compatible Aliases
42+
43+
| Canonical | Legacy Alias |
44+
|---|---|
45+
| `knowledge_base_path` | `knowledgeBasePath` |
46+
| `user_language` | `userLanguage` |
47+
| `[multi_window]` | `[multiWindow]` |
48+
| `single_window_mode` | `singleWindowMode` |
49+
| `hide_tauri_when_pathmode_opens` | `hideTauriWhenPathmodeOpens` |
50+
| `restore_tauri_when_pathmode_exits` | `restoreTauriWhenPathmodeExits` |
51+
| `confirm_before_full_shutdown_from_godot` | `confirmBeforeFullShutdownFromGodot` |
52+
| `sync_language` | `syncLanguage` |
53+
54+
## Runtime Projection to Frontend
55+
56+
Frontend hydration uses `invoke('get_app_runtime_config')` and projects values to:
57+
58+
- `window.__NC_APP_CONFIG.language`
59+
- `window.__NC_APP_CONFIG.multiWindow.singleWindowMode`
60+
- `window.__NC_APP_CONFIG.multiWindow.hideTauriWhenPathmodeOpens`
61+
- `window.__NC_APP_CONFIG.multiWindow.restoreTauriWhenPathmodeExits`
62+
- `window.__NC_APP_CONFIG.multiWindow.confirmBeforeFullShutdownFromGodot`
63+
- `window.__NC_APP_CONFIG.multiWindow.syncLanguage`
64+
65+
## Canonical Detailed Sources
66+
67+
- [docs/en/app_config.toml_guide.md](../../../en/app_config.toml_guide.md)
68+
- [docs/en/Interface Document.md](../../../en/Interface%20Document.md)

docs/diataxis/en/reference/interfaces-and-runtime.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,20 @@ This reference tracks canonical API/runtime contracts.
1414
- `invoke('get_sidecar_runtime_config')`
1515
- Rust sidecar runtime config command:
1616
- `get_sidecar_runtime_config`
17+
- Rust app runtime config command:
18+
- `get_app_runtime_config`
1719
- Runtime bridge readiness sequencing via `whenReady()`.
1820

21+
## app_config Runtime Contract Hook
22+
23+
- Frontend app-config hydration command:
24+
- `invoke('get_app_runtime_config')`
25+
- Hydrated projection:
26+
- `window.__NC_APP_CONFIG.language`
27+
- `window.__NC_APP_CONFIG.multiWindow.*`
28+
- Detailed schema reference:
29+
- [app_config.toml Schema](./app-config-schema.md)
30+
1931
## Policy Gate Families
2032

2133
- PathBridge strict schema

0 commit comments

Comments
 (0)